Post Processing
Overview
This hook is activated after processing the financial request but before receipt processing. Only approved responses will trigger a call on this hook.
Request Structure
| Element | Type | Description | Size | Required |
|---|---|---|---|---|
| apiVersion | String | API version number | V20 | Required |
| action | String | "POST_PROCESSING" | V30 | Required |
| transactionType | String | Transaction that the terminal is currently performing. Valid values:
| F8 | Required |
| requestDateTime | String | Date and time of the request (YYYY-MM-DDTHH:MM:SSZ). The format is based on the standard RFC 3339 internet profile -- a subset of ISO 8601. | F20 | Required |
| language | String | Terminal Language. Provides the two-letter language code according to the ISO 639-1 standard. For a complete list of language codes, visit: https://en.wikipedia.org/wiki/List_of_ISO_639-1_codes. | V30 | Required |
| correlationId | String | Correlates a series of requests within the same flow. | V50 | Required |
| terminalId | String | Terminal ID. | F8 | Required |
| merchantId | String | Merchant ID | V13 | Required |
| merchantName | String | Merchant Name | V100 | Required |
| merchantAddress | Object | Required | - | Required |
| unitNumber | String | Unit number | V19 | Optional |
| streetNumber | String | Street number | V19 | Optional |
| streetName | String | The full street name | V100 | Optional |
| province | String | Province or state ISO 3166-2 code | V3 | Optional |
| city | String | Name of the city / locality | V100 | Optional |
| postalCode | String | Zip code or postal code | V30 | Optional |
| country | String | The country code according to iso-3166-1-alpha-2 | V2 | Optional |
| receipt | String | Financial receipt data sent using ISO-8895-1 encoding | V4000 | Conditional |
| transactionAmount | Object | Payment amount received / approved | V10 | Conditional |
| amount | String | The value must be in cents. Therefore $10.59 must be sent as 1059 | V10 | Required |
| currency | String | Provides the three-letter currency code according to the ISO 4217 standard. For a complete list of currency codes, visit: ISO 4217 | V4 | Required |
| authorizedAmount | Object | Payment amount received / approved | V10 | Conditional |
| amount | String | The value must be in cents. Therefore $10.59 must be sent as 1059 | V10 | Required |
| currency | String | Provides the three-letter currency code according to the ISO 4217 standard. For a complete list of currency codes, visit: ISO 4217 | V4 | Required |
| remainingAmount | Object | Remaining amount that is owed | V10 | Optional |
| amount | String | The value must be in cents. Therefore $10.59 must be sent as 1059 | V10 | Required |
| currency | String | Provides the three-letter currency code according to the ISO 4217 standard. For a complete list of currency codes, visit: ISO 4217 | V4 | Required |
| amountDetails | Object | Amount Details breakdown | - | Optional |
| tipAmount | Object | Tip transaction amount | - | Optional |
| amount | String | The value must be in cents. Therefore $10.59 must be sent as 1059 | V10 | Required |
| currency | String | Provides the three-letter currency code according to the ISO 4217 standard. For a complete list of currency codes, visit: ISO 4217 | V4 | Required |
| subtotalAmount | Object | Subtotal amount (before taxes) | - | - |
| amount | String | The value must be in cents. Therefore $10.59 must be sent as 1059 | V10 | Required |
| currency | String | Provides the three-letter currency code according to the ISO 4217 standard. For a complete list of currency codes, visit: ISO 4217 | V4 | Required |
| taxes | Array | Maximum of 5 tax objects | - | - |
| taxName | String | Name to be displayed on receipt (hst, gst etc) | V15 | - |
| taxAmount | Object | Corresponding amount | - | - |
| amount | String | The value must be in cents. Therefore $10.59 must be sent as 1059 | V10 | Required |
| currency | String | Provides the three-letter currency code according to the ISO 4217 standard. For a complete list of currency codes, visit: ISO 4217 | V4 | Required |
| cashbackAmount | Object | Cashback amount | - | Conditional |
| amount | String | The value must be in cents. Therefore $10.59 must be sent as 1059 | V10 | Required |
| currency | String | Provides the three-letter currency code according to the ISO 4217 standard. For a complete list of currency codes, visit: ISO 4217 | V4 | Required |
| surchargeAmount | Object | Surcharge amount on transaction | - | Conditional |
| amount | String | The value must be in cents. Therefore $10.59 must be sent as 1059 | V10 | Required |
| currency | String | Provides the three-letter currency code according to the ISO 4217 standard. For a complete list of currency codes, visit: ISO 4217 | V4 | Required |
| paymentMethod | Object | Payment method response object | - | Conditional |
| paymentMethodInformation | Object | Details about the card used in the payment method. | - | Conditional |
| paymentAccountReference | String | Used to link Primary Account Number (PAN) based transactions and transactions on associated payment tokens without using the PAN as the linking mechanism. | V29 | Conditional |
| cardInformation | Object | Information about the card being used for the transaction | - | Conditional |
| bankIdentificationNumber | String | BIN: Bank Identification Number. Consists of the first six to eight digits of the Primary Account Number (PAN) and identifies the relevant payment network and the specific payment issuing institution. | V8 | Conditional |
| lastFour | String | Last 4 digits of the card. | F4 | Conditional |
| cardBrand | String | Displays the card brand name associated with the card type. "VISA" "MASTERCARD" "AMERICAN_EXPRESS" "INTERAC" "JCB" "DISCOVER" "UNIONPAY" "GIFT MONERIS" "GIFT DATACANDY" "GIFT GIVEX" | V50 | Conditional |
| cardType | String | Card type: “CREDIT” “DEBIT” "GIFT" | V50 | Conditional |
| cardFingerprint | String | Unique card identifier. Fingerprinting randomly assigns identifiers for cards that share the same Primary Account Number (PAN) to easily identify when multiple payments methods are attached to the same underlying card, and assists merchants identify individual customers across various channels; i.e. loyalty programs. | V255 | Conditional |
| issuer | String | Card issuer | V100 | Conditional |
| transactionDetails | Object | Additional details about the transaction outcome. | - | Conditional |
| transactionUniqueId | String | Realtime transaction identifier from the host. | F15 | Conditional |
| isoResponseCode | String | ISO response Code | V2 | Conditional |
| responseCode | String | Moneris Host Response Code. | V3 | Conditional |
| sequenceNumber | String | Sequence number | V18 | Conditional |
| authorizationCode | String | Authorization code returned from the issuing institution. | V8 | Conditional |
{
"apiVersion": "2025-01-09",
"correlationId": "example_correlationId",
"requestDateTime": "2025-12-31T23:59:60Z",
"merchantId": "example_merchantId",
"merchantName": "example_merchantName",
"merchantAddress": {
"unitNumber": "1A",
"streetNumber": "12",
"streetName": "Yonge St",
"province": "ON",
"city": "Toronto",
"postalCode": "M4W 3H7",
"country": "CA"
},
"terminalId": "example_terminalId",
"action": "POST_PROCESSING",
"transactionAmount": {
"amount": "16000",
"currency": "CAD"
},
"authorizedAmount": {
"amount": "16000",
"currency": "CAD"
},
"remainingAmount": {
"amount": "0",
"currency": "CAD"
},
"amountDetails": {
"subtotalAmount": {
"amount": "10000",
"currency": "CAD"
},
"tipAmount": {
"amount": "1000",
"currency": "CAD"
},
"taxes": [
{
"taxName": "HST",
"taxAmount": {
"amount": "500",
"currency": "CAD"
}
},
{
"taxName": "GST",
"taxAmount": {
"amount": "500",
"currency": "CAD"
}
}
],
"cashbackAmount": {
"amount": "16000",
"currency": "CAD"
},
"surchargeAmount": {
"amount": "0",
"currency": "CAD"
}
},
"paymentMethod": {
"paymentMethodInformation": {
"paymentAccountReference": "11112222333344445555666677778",
"cardInformation": {
"bankIdentificationNumber": "123456",
"lastFour": "1234",
"cardBrand": "MASTERCARD",
"cardType": "CREDIT",
"cardFingerprint": "1Q2W3E4r5t6rfwewerwewrrw",
"issuer": "RBC"
}
}
},
"transactionDetails": {
"transactionUniqueId": "938c2cc0dcc05f2b68c4287040cfcf71",
"isoResponseCode": "00",
"responseCode": "000",
"message": "approved",
"ecommerceIndicator": "AUTHENTICATED_ECOMMERCE"
}
}Response Structure
| Element | Type | Description | Size | Required |
|---|---|---|---|---|
| apiVersion | String | API version number | V20 | Required |
| correlationId | String | Echo from the request | V50 | Required |
| responseDateTime | String | Date and time of the response (YYYY-MM-DDTHH:MM:SSZ). The format is based on the standard RFC 3339 internet profile — a subset of ISO 8601. | F20 | Required |
| action | String | "POST_PROCESSING" | V50 | Required |
| status* | String | HTTP Status Codes for the overall transaction request. | F3 | Required |
| receipt** | Object | JSON Object | - | Conditional |
| line1 | String | Line 1 of the receipt insert for Third-Party app message | V60 | Optional |
| line2 | String | Line 2 of the receipt insert for Third-Party app message | V60 | Optional |
| line3 | String | Line 3 of the receipt insert for Third-Party app message | V60 | Optional |
{
"apiVersion": "3.0",
"correlationId": "example_correlationId",
"responseDateTime": "2025-12-31T23:59:60Z",
"action": "POST_PROCESSING",
"status": "200",
"receipt": {
"line1": "\\2\\LAmount:\\2\\R$100.00",
"line2": "\\2\\LPoints:\\2\\R200 pts",
"line3": "\\2\\LBalance:\\2\\R1000 pts"
}
}Notes:
- The receipt object will be processed only when the “status” field indicates “200”, processed OK
- The receipt lines support limited formatting descriptors, each descriptor prefixed by “\”
- Font size: 1, 2, 3. Font size 2 is the main font size used in the body of the financial receipt
- Alignment info: L - left, C - center, R - right aligned

