Submit VAT return for period
curl -X POST https://test-api.service.hmrc.gov.uk/organisations/vat/MY_HMRC_VRN/returns \
-H 'Authorization: Bearer HMRC_ACCESS_TOKEN' \
-H 'Accept: application/vnd.hmrc.1.0+json' \
-H 'Content-Type: application/json' \
-d '{
"periodKey": "A001",
"vatDueSales": 105.50,
"vatDueAcquisitions": -100.45,
"totalVatDue": 5.05,
"vatReclaimedCurrPeriod": 105.15,
"netVatDue": 100.10,
"totalValueSalesExVAT": 300,
"totalValuePurchasesExVAT": 300,
"totalValueGoodsSuppliedExVAT": 3000,
"totalAcquisitionsExVAT": 3000,
"finalised": true
}'
<?php
// The version number (9_5_0) should match version of the Chilkat extension used, omitting the micro-version number.
// For example, if using Chilkat v9.5.0.48, then include as shown here:
include("chilkat_9_5_0.php");
$rest = new CkRest();
// URL: https://test-api.service.hmrc.gov.uk/organisations/vat/MY_HMRC_VRN/returns
$bTls = true;
$port = 443;
$bAutoReconnect = true;
$success = $rest->Connect('test-api.service.hmrc.gov.uk',$port,$bTls,$bAutoReconnect);
if ($success != true) {
print 'ConnectFailReason: ' . $rest->get_ConnectFailReason() . "\n";
print $rest->lastErrorText() . "\n";
exit;
}
// See the Online Tool for Generating JSON Creation Code
$json = new CkJsonObject();
$json->UpdateString('periodKey','A001');
$json->UpdateNumber('vatDueSales','105.50');
$json->UpdateNumber('vatDueAcquisitions','-100.45');
$json->UpdateNumber('totalVatDue','5.05');
$json->UpdateNumber('vatReclaimedCurrPeriod','105.15');
$json->UpdateNumber('netVatDue','100.10');
$json->UpdateNumber('totalValueSalesExVAT','300');
$json->UpdateNumber('totalValuePurchasesExVAT','300');
$json->UpdateNumber('totalValueGoodsSuppliedExVAT','3000');
$json->UpdateNumber('totalAcquisitionsExVAT','3000');
$json->UpdateBool('finalised',true);
$rest->AddHeader('Content-Type','application/json');
$rest->AddHeader('Authorization','Bearer HMRC_ACCESS_TOKEN');
$rest->AddHeader('Accept','application/vnd.hmrc.1.0+json');
$sbRequestBody = new CkStringBuilder();
$json->EmitSb($sbRequestBody);
$sbResponseBody = new CkStringBuilder();
$success = $rest->FullRequestSb('POST','/organisations/vat/MY_HMRC_VRN/returns',$sbRequestBody,$sbResponseBody);
if ($success != true) {
print $rest->lastErrorText() . "\n";
exit;
}
$respStatusCode = $rest->get_ResponseStatusCode();
if ($respStatusCode >= 400) {
print 'Response Status Code = ' . $respStatusCode . "\n";
print 'Response Header:' . "\n";
print $rest->responseHeader() . "\n";
print 'Response Body:' . "\n";
print $sbResponseBody->getAsString() . "\n";
exit;
}
$jsonResponse = new CkJsonObject();
$jsonResponse->LoadSb($sbResponseBody);
// See the Online Tool for Generating JSON Parse Code
$processingDate = $jsonResponse->stringOf('processingDate');
$paymentIndicator = $jsonResponse->stringOf('paymentIndicator');
$formBundleNumber = $jsonResponse->stringOf('formBundleNumber');
?>
{
"processingDate": "2019-02-18T14:37:56.561Z",
"paymentIndicator": "BANK",
"formBundleNumber": "948551092841"
}