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
}'
require 'chilkat'
rest = Chilkat::CkRest.new()
# 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().to_s() + "\n";
print rest.lastErrorText() + "\n";
exit
end
# See the Online Tool for Generating JSON Creation Code
json = Chilkat::CkJsonObject.new()
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 = Chilkat::CkStringBuilder.new()
json.EmitSb(sbRequestBody)
sbResponseBody = Chilkat::CkStringBuilder.new()
success = rest.FullRequestSb("POST","/organisations/vat/MY_HMRC_VRN/returns",sbRequestBody,sbResponseBody)
if (success != true)
print rest.lastErrorText() + "\n";
exit
end
respStatusCode = rest.get_ResponseStatusCode()
if (respStatusCode >= 400)
print "Response Status Code = " + respStatusCode.to_s() + "\n";
print "Response Header:" + "\n";
print rest.responseHeader() + "\n";
print "Response Body:" + "\n";
print sbResponseBody.getAsString() + "\n";
exit
end
jsonResponse = Chilkat::CkJsonObject.new()
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"
}