POST
Take a look at our OpenAPI (Swagger-Spec) schema to learn more about the API calls.
The POST
endpoint is used to issue Miles to a Collector’s account in real-time for a basket transaction at checkout. With this method selected The total Miles to be issued are calculated by the Partner.
API call validation process
After making a call to POST
, you will receive one of the following responses:
- If the call is SUCCESSFUL
- You will receive a response code of
200
- No further action is required
- You will receive a response code of
- If the call is SUCCESSFUL but issuances are pending and causing a delay
- You will receive a response code of
202
- No further action is required
- Resubmitting the same request will have no effect on the transaction
- You will receive a response code of
- If the call is REJECTED due to incorrect or invalid details
- You will receive a response code of
400
- You must retry the request with a valid transaction record and/or the corrected details
- You will receive a response code of
- If the call FAILS due to an error or other issue
- You will receive a response code of
500
- It’s recommended you retry the request at least 2 additional times
- You will receive a response code of
Note
The “FAIL” response above could indicate a system error on our end. If this happens, please contact our Support Desk for assistance.Sample request
curl -X POST https://cert.airmilesapis.ca/checkout/issuance/post \
-H "Authorization: Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJ..." \
-H "Content-Type: application/json" \
-H "Idempotency-Key: 123e4567-e89b-12d3-a456-426655440000" \
-d {
"basketGSTAmount": 0,
"basketPSTAmount": 0,
"basketHSTAmount": 3.25,
"basketQSTAmount": 0,
"basketPreTaxAmount": 24.97,
"basketPostTaxAmount": 28.22,
"checkoutDateTime": "2019-05-30T14:12:59.479Z",
"checkoutTransactionId": "12340001111",
"collectorNumber": "81111111111",
"context": {"key1": "value1","key2": "value2"},
"coupon": ["57841","57862"],
"deviceId": "POS1",
"issuances": [{
"contributingItemIds": ["SKU1234","SKU1252"],
"issuanceOfferCode": "STANDARD",
"locationCode": "1100",
"milesAmount": 5,
"offerDescription": "Bonus Miles for Groceries.",
"offerId": "123454"
}],
"items": [{
"id": "SKU1234",
"name": "Dog Food",
"number": 1,
"quantity": 2,
"baseAmount": 9.99,
"finalAmount": 19.98,
"departmentId":"10001",
"categoryId" : "11101"
},
{
"id": "SKU1252",
"name": "Potato Chips",
"number": 2,
"quantity": 1,
"baseAmount": 4.99,
"finalAmount": 4.99,
"departmentId":"10001",
"categoryId" : "11101"
}],
"locationCode": "1137",
"sponsorCode": "KELL",
"tender": ["CASH","CREDIT"]
}
Request parameters
* required field
Parameter | Description |
---|---|
basketGSTAmount |
The dollar amount of GST (Government Sales Tax) to be added.
Example: |
basketHSTAmount |
The dollar amount of HST (Harmonized Sales Tax) to be added.
Example: |
basketPSTAmount |
The dollar amount of PST (Provincial Sales Tax) to be added.
Example: |
basketQSTAmount |
The dollar amount of QST (Quebec Sales Tax) to be added.
Example: |
basketPostTaxAmount * |
The total dollar amount of the basket, POST-TAX (i.e., what the Collector spent at checkout).
Example: |
basketPreTaxAmount * |
The total dollar amount of the basket, PRE-TAX (i.e., before taxes are calculated and added to the total).
Example: |
checkoutDateTime * |
Standard date/time format for the transaction at checkout. (see ISO-8601)
Examples:
|
checkoutTransactionId * |
Unique identifier generated by the Partner for the transaction at checkout.
Example: |
collectorNumber * |
The customer’s AIR MILES account number.
Example: |
context |
Notes or additional information that is desired on each request as a key value pair.
Example: |
coupon |
A list of all coupon codes applied to the bill at checkout.
Example: |
deviceId |
ID number used to identify the POS terminal currently in use.
Example: |
issuances * |
This mandatory object contains data elements related to issuance data.
Example:
|
items |
This optional object contains data elements related to purchase details, including the list of item(s) purchased, their quantity, individual price, and total amount paid (pre-tax). Click below to see additional details on the data object’s elements, including their descriptions and examples.
Example:
|
locationCode |
A maximum of four alpha-numeric characters created by the Partner and used to identify the Partner’s location.
Example: |
sponsorCode * |
Alpha-numeric value used to identify the Partner.
Example: |
tender |
The method of payment used to pay for the transaction at checkout.
Example: |
Sample response
HTTP/1.1 200 OK
Content-Type: application/json;charset=UTF-8
Transfer-Encoding: chunked
Date: Mon, 29 Oct 2018 15:27:34 GMT
{
"basketGSTAmount": 0,
"basketPSTAmount": 0,
"basketHSTAmount": 3.25,
"basketQSTAmount": 0,
"basketPreTaxAmount": 24.97,
"basketPostTaxAmount": 28.22,
"checkoutDateTime": "2019-05-30T14:12:59.479Z",
"checkoutTransactionId": "12340001111",
"collectorNumber": "81111111111",
"coupon": ["57841","57862"],
"deviceId": "POS1",
"issuances": [{
"confirmationNumber": "0ed100a4-fc9a-41bb-a747-942c2593b683",
"contributingItemIds": ["SKU1234","SKU1252"],
"issuanceOfferCode": "STANDARD",
"locationCode": "1100",
"milesAmount": 5,
"offerDescription": "Bonus Miles for Groceries.",
"offerId": "123454",
"processedDateTime": "2019-05-30T14:12:59.479Z",
"status": "CONFIRMED"
}],
"items": [{
"id": "SKU1234",
"name": "Dog Food",
"number": 1,
"quantity": 2,
"baseAmount": 9.99,
"finalAmount": 19.98,
"departmentId":"10001",
"categoryId" : "11101"
},
{
"id": "SKU1252",
"name": "Potato Chips",
"number": 2,
"quantity": 1,
"baseAmount": 4.99,
"finalAmount": 4.99,
"departmentId":"10001",
"categoryId" : "11101"
}],
"locationCode": "1137",
"sponsorCode": "KELL",
"tender": ["CASH","CREDIT"],
"context": {"key1": "value1","key2": "value2"},
"transactionId": "c4f6cd00-dd00-4aaf-9099-b0685ab710b3"
}
Response parameters
Only parameters unique to the Sample Response are listed below. For all other parameters, refer to the table above.
Parameter | Description |
---|---|
issuances |
Array value describing the issuance offers redeemed by the Collector.
Example:
|
transactionId |
A unique ID created for the particular transaction.
Example: |
Status codes
Refer to our Audit report errors table for more information.
Status Code | Description |
---|---|
200 | Request processed successfully. |
202 | Request still processing, please wait. |
400 | Bad request, failed to process. |
500 | Request failed due to internal error. |