transaction Call
Description
This endpoint is used to submit the details of a completed member purchase or to cancel a transaction using its confirmation code.
Submit Transaction Flow
Use this endpoint after the transaction is completed and all external payments have been approved. The purchase details sent (such as total, shopping cart items, and applied gifts/deals) are used by the loyalty system to segment members, award points, punch cards, or trigger rewards and automations.
The transaction call should be sent for all purchases (including non-members) to provide actionable data for BI.
Guaranteed delivery is required, especially if response is a 5xx error or there's a communication failure.
Cancel Transaction Flow
Use this endpoint to cancel a transaction using the confirmation code received from the transaction response.
If loyalty points/credits were used, cancelling the transaction does not automatically cancel the payment. You must send a separate payment cancel request.
Request Format
Headers
| Name | Type | Required | Description |
|---|---|---|---|
x-source-type | string | ✅ | Source type (POS, Kiosk, Web, etc.) |
x-source-name | string | ✅ | Name of client system or integration |
x-pos-id | string | ✅ | Unique POS terminal ID |
x-branch-id | string | ✅ | Branch/location ID |
Body
{
"member": {
"phoneNumber": "1234567890"
},
"transaction": {
"transactionId": "TX12345",
"openTime": "2025-05-23T12:00:00Z",
"totalAmount": 5000,
"totalTaxAmount": 800,
"totalGeneralDiscount": 500,
"orderType": "dineIn",
"items": [
{
"lineId": "1",
"code": "PLU123",
"name": "Burger",
"departmentCode": "FOOD",
"departmentName": "Main Dishes",
"quantity": 2,
"grossAmount": 3000,
"netAmount": 2500,
"action": "sale",
"tags": ["combo"]
},
{
"lineId": "2",
"code": "PLU124",
"name": "Fries",
"departmentCode": "FOOD",
"departmentName": "Sides",
"quantity": 1,
"grossAmount": 2000,
"netAmount": 1500,
"action": "sale",
"tags": []
}
],
"meansOfPayment": [
{
"type": "CASH",
"amount": 4000
},
{
"type": "CARD",
"amount": 1000
}
],
"tags": ["delivery"],
"employee": "Jane Doe"
},
"usedAssets": [
{
"key": "string",
"code": "string",
"appliedAmount": 0
}
],
"appliedDeals": [
{
"key": "string",
"appliedAmount": 0
}
]
}
Response Format
{
"status": "success",
"data": {}
}
Error Example
{
"status": "error",
"error": {
"code": "522",
"message": "Used asset is already used."
}
}
Related Use Cases
- Finalizing member purchases with loyalty impact
- Logging non-member transactions for analytics
- Cancelling previously submitted purchases