No-Receipt Adjustment
POST/client/users/:correlation_id/adjustments
This request allows adjustments to be made when a transaction receipt is not available. No-Receipt Adjustments or reversals do not reference an original transaction and therefore there is nothing to compare the reversal to, so none of the original offers can be clawed back. The original transaction(s) will not reflect the adjustment, nor can reward controls be applied.
However:
-
Points will be clawed back against Base and Base Membership offers (not including frequency offers).
-
Relevant program contributions are clawed back and membership tiers adjusted (if applicable).
-
Relevant offer completions are clawed back as well.
-
There may be restrictions on how old the transaction can be with adjustments still allowed.
Notes:
-
For a single member, or In a household, if a redemption transaction begins, but one or more of the cards are subsequently set to a non-active state such as Suspended, Lost or Stolen, Fraud/Abuse, Cancelled, or Damaged and there is a subsequent adjustment (full, partial, or void), then to prevent fraud, the adjustment amount is still applied to single members or proportionally to all household members who had active cards before the redemption transaction began.
-
If a single member or household member is in a tier program, and points/status are set to roll over from one period to the next, then any adjustments that reduce or increase member point balances can affect the current tier. If the adjustment is to a previous period, then it can affect the rolled-over tier status as well. In a household, adjustments to this or previous periods may affect the tier status of all members of the household.
Request
The cart details in ES Console will reflect the result of the adjustment in the currency used.
Body
| Attribute | Definition | Format | Notes |
|---|---|---|---|
| channel | The channel through which the transaction occurred. | Enum: "STORE", "POS", "WEBSITE", "APP", "PARTNER" | |
| locale | The locale of the member from the POS system. | String | Optional. Currently "en-CA" or "fr-CA". If locale is set by the POS system in the Start Session request, this overrides locale set in the member provide and as the system default. |
| externalTransactionID | Unique identifier for transaction used by the client. | String | Optional. |
| transactionDate | Current date and time. | String | Date of the Transaction (Full Date and Time) must be in an ISO-8601-compliant format, for example: 2022-01-17T13:48:59-04:00. |
| retailBanner | The name of the company. | String | For instance, "BUYCO". |
| storeNumber | The store number of the store with which the transaction is associated. | Number | |
| tillNumber | The till number within the store with which the transaction is associated. | Number | This attribute is optional. |
| employeeCode | The employee number of the till operator. | Number | This attribute is optional for operations, but required for analytics. |
| priceMatrix | Retail or employee transaction. | Enum: "R" or "E" | R = Retail E = Employee |
| action | The action to be carried out for the adjustment. | String | The action is always ADJ_NO_RECEIPT for this specific request. |
| reversalLineItems | Contains the details for one item in the reversal transaction. | Array | |
| subCategory | Same subcategory as in Product feed. | Number | Can be blank to force system to grab subcategory from product data. This is an optional attribute. |
| sku | The product identifier. | Number | For instance, may be scanned at Point of Sale. |
| quantity | Number of the item in this transaction. | Number | Single-unit MSRP in pennies. |
| originalSaleAmount | The Manufacturer's Suggested Retail price for a product. | Number | Single-unit MSRP in pennies. |
| saleAmount | MSRP less the discount, the actual sale price. | Number | MSRP minus item discount in pennies. |
| itemDiscount | Amount discounted. | Number | This attribute is optional and is in pennies. |
| itemTax | Tax on the item. | Number | Tax on the line item in pennies. |
| finalSaleAmount | Total sale amount for a specific product, the discounted price times the quantity purchased. | Number | quantity * saleAmount |
| tags | Additional information about the transaction. | String | Required, but can be empty. |
| itemCost | Total cost for a specific product, the cost per unit times the quantity purchased. | Number | cost per unit * quantity. This attribute is optional. |
| tender | Object containing information about various payment methods | Object | Required for payment type to show in reports, but not all values within it are required. |
| {payment method} | Object containing detailed payment details for a Visa credit card | Object | Contains possible values: "VISA", "LOYALTY", "CASH", "GIFTCARD". Details are provided in the next four attributes below. |
| amount | Number of dollars involved in the adjustment that are relevant to the credit card | Number | Required |
| idType | Method of identifying the card in the report | Enum: "LAST_4" | Optional. Identified by last 4 digits. |
| prefix | Standard prefix to the credit card number | Number | Optional |
| suffix | Suffix to the credit card number | Number | Optional |
| linked | If linked to a partner, this is the code for the partner name | Enum: "BANKNAME" | Optional |
| LOYALTY | Shows value of rewards points used | String |
Response
| Attribute | Definition | Format | Notes |
|---|---|---|---|
| message | Message returned to indicate that adjustment has been made. | String | For example: "No-receipt return logged." |
Error Responses
| statusCode | errorMessage | errorCode | Definition |
|---|---|---|---|
| 400 Bad Request | Must provide a session correlation ID | INVALID_REQUEST | Session correlation ID must be provided to process this request |
| 400 Bad Request | No Reversal Items Specified for Adjustment | INVALID_REQUEST | When there are no items on 'reversalLineItems' |
| 400 Bad Request | Cart cannot contain zero-quantity line items | INVALID_REQUEST | When cart has items with quantity 0 |
| 400 Bad Request | Transaction is older than ${adjustmentPeriod} days | INVALID_REQUEST | When time to make adjustments is expired. See configuration ConfigType = ‘ADJUSTMENT_FEATURE’, attribute ‘adjustmentPeriod’ |
| 400 Bad Request | Transaction is not adjustable | INVALID_REQUEST | The selected transaction cannot be adjusted |
| 403 Forbidden | No-receipt reversals are disabled | FEATURE_DISABLED | When no-receipt transactions are not enabled. See configuration ConfigType = ‘ADJUSTMENT_FEATURE’, attribute ‘NoReceiptReturns’.’Enable’ |
Request
Responses
- 200
- 400
- 403
200 - Points Adjusted
Response Headers
Thu, 21 May 2020 03:44:18 GMT39keep-alive0e19ea4e-8276-4367-9fe9-00c5478000f4no-referrer1;mode=block*max-age=86400max-age=31536000vibrate 'none'; geolocation 'none'sameoriginconnect-src 'none';object-src https://*.cloudfront.net;script-src https://*.cloudfront.netM3PazFa2oAMFu3A=no-cache, no-store, must-revalidatenosniffRoot=1-5ec5f911-d718ca277b215cb975f36b34;Sampled=0400 - Must Provide Session Correlation ID
Response Headers
Thu, 21 May 2020 03:44:18 GMT39keep-alive0e19ea4e-8276-4367-9fe9-00c5478000f4no-referrer1;mode=block*max-age=86400max-age=31536000vibrate 'none'; geolocation 'none'sameoriginconnect-src 'none';object-src https://*.cloudfront.net;script-src https://*.cloudfront.netM3PazFa2oAMFu3A=no-cache, no-store, must-revalidatenosniffRoot=1-5ec5f911-d718ca277b215cb975f36b34;Sampled=0403 - Feature is Disabled
Response Headers
Thu, 21 May 2020 03:44:18 GMT39keep-alive0e19ea4e-8276-4367-9fe9-00c5478000f4no-referrer1;mode=block*max-age=86400max-age=31536000vibrate 'none'; geolocation 'none'sameoriginconnect-src 'none';object-src https://*.cloudfront.net;script-src https://*.cloudfront.netM3PazFa2oAMFu3A=no-cache, no-store, must-revalidatenosniffRoot=1-5ec5f911-d718ca277b215cb975f36b34;Sampled=0