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
}'
func chilkatTest() {
let rest = CkoRest()
var success: Bool
// URL: https://test-api.service.hmrc.gov.uk/organisations/vat/MY_HMRC_VRN/returns
var bTls: Bool = true
var port: Int = 443
var bAutoReconnect: Bool = true
success = rest.Connect("test-api.service.hmrc.gov.uk", port: port, tls: bTls, autoReconnect: bAutoReconnect)
if success != true {
print("ConnectFailReason: \(rest.ConnectFailReason.intValue)")
print("\(rest.LastErrorText)")
return
}
// See the Online Tool for Generating JSON Creation Code
let json = CkoJsonObject()
json.UpdateString("periodKey", value: "A001")
json.UpdateNumber("vatDueSales", numericStr: "105.50")
json.UpdateNumber("vatDueAcquisitions", numericStr: "-100.45")
json.UpdateNumber("totalVatDue", numericStr: "5.05")
json.UpdateNumber("vatReclaimedCurrPeriod", numericStr: "105.15")
json.UpdateNumber("netVatDue", numericStr: "100.10")
json.UpdateNumber("totalValueSalesExVAT", numericStr: "300")
json.UpdateNumber("totalValuePurchasesExVAT", numericStr: "300")
json.UpdateNumber("totalValueGoodsSuppliedExVAT", numericStr: "3000")
json.UpdateNumber("totalAcquisitionsExVAT", numericStr: "3000")
json.UpdateBool("finalised", value: true)
rest.AddHeader("Content-Type", value: "application/json")
rest.AddHeader("Authorization", value: "Bearer HMRC_ACCESS_TOKEN")
rest.AddHeader("Accept", value: "application/vnd.hmrc.1.0+json")
let sbRequestBody = CkoStringBuilder()
json.EmitSb(sbRequestBody)
let sbResponseBody = CkoStringBuilder()
success = rest.FullRequestSb("POST", uriPath: "/organisations/vat/MY_HMRC_VRN/returns", requestBody: sbRequestBody, responseBody: sbResponseBody)
if success != true {
print("\(rest.LastErrorText)")
return
}
var respStatusCode: Int = rest.ResponseStatusCode.intValue
if respStatusCode >= 400 {
print("Response Status Code = \(respStatusCode)")
print("Response Header:")
print("\(rest.ResponseHeader)")
print("Response Body:")
print("\(sbResponseBody.GetAsString())")
return
}
let jsonResponse = CkoJsonObject()
jsonResponse.LoadSb(sbResponseBody)
// See the Online Tool for Generating JSON Parse Code
var processingDate: String?
var paymentIndicator: String?
var formBundleNumber: String?
processingDate = jsonResponse.StringOf("processingDate")
paymentIndicator = jsonResponse.StringOf("paymentIndicator")
formBundleNumber = jsonResponse.StringOf("formBundleNumber")
}
{
"processingDate": "2019-02-18T14:37:56.561Z",
"paymentIndicator": "BANK",
"formBundleNumber": "948551092841"
}