Receipt created webhook
Triggered as a result of a basket being sent successfully to Spaaza and a digital receipt being subsequently created in Spaaza.
Contents
Payload version
The shape of the transaction payload delivered to generic (https) webhooks depends on the webhook_config_payload_spaaza_api_version configured for the webhook:
- Version > 1.4.8: The modern payload format is used. The shopper is represented in the
userobject, which includes fields such asmember_number,opt_in_programme, andloyalty_status. - Version <= 1.4.8: The legacy payload format is used. The shopper is represented in the
shopperobject, which has a different structure.
New webhook configurations should use a payload version greater than 1.4.8 to receive the modern format.
Modern payload (version > 1.4.8)
The object returned for webhook configurations with webhook_config_payload_spaaza_api_version greater than 1.4.8 is as follows:
{
"id": 123456,
"chain_id": 1740,
"retailer_basket_code": "0000100101000000102",
"timestamp": "2026-01-15T11:56:04Z",
"type": "in_store",
"quantity": 1,
"country_code": "ZA",
"fx_rate": 1,
"currency": {
"currency_id": 2,
"currency_code": "EUR",
"currency_name_en": "Euro",
"currency_symbol": "\u20ac"
},
"subtotal": 1000,
"subtotal_converted": 1000,
"total_value": 1000,
"total_converted": 1000,
"shipping_charge": 0,
"shipping_charge_converted": 0,
"notes": "",
"tax_lines": [],
"payment_methods": [
{
"payment_method": "Cash EUR",
"payment_amount": 1000,
"payment_amount_converted": null
}
],
"chain": {
"id": 1740,
"name": "ACME",
"email": "support@acme.co.za",
"logo_url": "https://s3-eu-west-1.amazonaws.com/receipts-chain-logo/1000.png",
"website_url": "",
"currency": "South African Rand",
"currency_code": "ZAR",
"currency_symbol": "R",
"business": {
"id": 0,
"name": "ACME Cape Town",
"address": {
"address_1": "1 Table Mountain Drive",
"address_2": "",
"address_3": "",
"towncity": "Cape Town",
"postal_code": "",
"country_code": "ZA",
"region": "",
"location": {
"lat": -33.962822,
"lon": 18.409841
},
"google_place_id": ""
},
"phone_number": "+272189777777",
"format": "",
"email": "table-mountain@acme.co.za",
"branch_code": "CPT-01",
"website_url": "",
"review_url": ""
},
"receipts_service_active": true,
"password_reset_url": ""
},
"employee": null,
"user": {
"id": 897654,
"user_id": 897654,
"first_name": "John",
"last_name": "Smith",
"username": "john.smith@email.com",
"country_code": "ZA",
"gender": "M",
"birthday": "1982-05-30",
"signup_channel": "",
"auxiliary_identifier": "",
"authentication_point_identifier": "",
"authentication_point": {
"is_multi": false,
"id": 0
},
"mailing_list": {
"mailing_list_subscribed": true,
"printed_mailing_list_subscribed": false,
"sms_opted_in": false
},
"opt_in_programme": {
"programme_opted_in": true,
"join_date": "2025-06-15T00:00:00Z"
},
"obfuscated": false,
"is_influencer": false,
"member_number": {
"type": "regular",
"code": "897654"
},
"language": "",
"registered": true,
"is_employee": false,
"loyalty_status": {
"campaign_id": 0,
"name": "",
"description": "",
"loyalty_level_id": 0,
"points_balance_current": 0,
"monetary_balance_current": 0,
"points_to_proceed_next_level": 0,
"points_to_remain_current_level": 0,
"last_review_date": "",
"next_review_date": "",
"date_reached": ""
},
"phone_number": "",
"home_store": {
"home_store_id": null,
"home_store_name": "",
"home_store_owner_code": ""
},
"push_notification_subscription": {
"subscribed": false,
"subscriptions": []
}
},
"line_items": [
{
"product_id": 0,
"barcode": "2000046371025",
"original_retailer_item_code": "",
"basket_item_subtotal": 1000,
"return_item": false,
"return_transaction_id": 0,
"retailer_product_code": "",
"sku": "2000046371025",
"name": "ACME shorts",
"description": "the best pair you can buy",
"cost_price": 0,
"original_price": 1000,
"original_price_converted": 1000,
"sale_price": 1000,
"sale_price_converted": 1000,
"quantity": 1,
"quantity_unit": "",
"metadata": {
"brand": "",
"color": "blue",
"size": "L",
"image_url": "",
"category": "",
"webshop_url": ""
},
"product": null,
"purchase_progress_distribution": [],
"voucher_distribution": []
}
],
"monetary_wallet": {
"contributions": [
{
"amount": 100,
"campaign_title": "Earn big on every purchase"
}
],
"total": 1640,
"title": "ACME Bucks"
},
"entries_wallet": null,
"points_wallet": {
"contributions": [],
"total": 0,
"title": ""
},
"basket_vouchers": [
{
"campaign_title": "Acme Loyalty Campaign",
"campaign_id": 1805,
"campaign_title_localised": "Acme Loyalty Campaign",
"voucher_text": "5% off for Acme customers",
"task_id": 0,
"amount": 22.5,
"discount_ratio": 0,
"type": "basket",
"description": "",
"notes": "",
"title": "",
"image_url": ""
}
],
"honour_vouchers": []
}
Legacy payload (version <= 1.4.8)
For webhook configurations with webhook_config_payload_spaaza_api_version of 1.4.8 or lower, the legacy payload format is used. The main difference is that the shopper is represented in a shopper object instead of user, and some fields present in the modern format are not included.
{
"id": 123456,
"retailer_basket_code": "0000100101000000102",
"fx_rate": 1,
"currency": {
"currency_id": 2,
"currency_code": "EUR",
"currency_name_en": "Euro",
"currency_symbol": "\u20ac"
},
"timestamp": "2026-01-15T11:56:04Z",
"type": "in_store",
"quantity": 1,
"subtotal": 1000,
"subtotal_converted": 1000,
"total_value": 1000,
"total_converted": 1000,
"shipping_charge": 0,
"shipping_charge_converted": 0,
"payment_methods": [
{
"payment_method": "Cash EUR",
"payment_amount": 1000,
"payment_amount_converted": null
}
],
"line_items": [
{
"product_id": 0,
"barcode": "2000046371025",
"sku": "2000046371025",
"name": "ACME shorts",
"description": "the best pair you can buy",
"original_price": 1000,
"original_price_converted": 1000,
"quantity": 1,
"sale_price": 1000,
"sale_price_converted": 1000,
"metadata": {
"brand": "",
"color": "blue",
"size": "L",
"image_url": "",
"category": "",
"webshop_url": ""
}
}
],
"tax_lines": [],
"chain": {
"id": 1740,
"name": "ACME",
"email": "support@acme.co.za",
"logo_url": "https://s3-eu-west-1.amazonaws.com/receipts-chain-logo/1000.png",
"website_url": "",
"currency": "South African Rand",
"currency_symbol": "R",
"business": {
"id": 0,
"name": "ACME Cape Town",
"address": {
"address_1": "1 Table Mountain Drive",
"address_2": "",
"address_3": "",
"towncity": "Cape Town",
"postal_code": "",
"country_code": "ZA",
"location": {
"lat": -33.962822,
"lon": 18.409841
}
},
"phone_number": "+272189777777",
"email": "table-mountain@acme.co.za",
"website_url": ""
},
"receipts_service_active": true
},
"shopper": {
"id": 897654,
"user_name": "",
"entity_code": "",
"first_name": "John",
"last_name": "Smith",
"country_code": "",
"gender": "M",
"birthday": "1982-05-30",
"total_points_balance": 0,
"email": "john.smith@email.com",
"opted_in": false,
"mailing_list_subscribed": true
},
"monetary_wallet": {
"contributions": [
{
"amount": 100,
"campaign_title": "Earn big on every purchase"
}
],
"total": 1640,
"title": "ACME Bucks"
},
"points_wallet": {
"contributions": [],
"total": 0,
"title": ""
},
"basket_vouchers": [
{
"campaign_title": "Acme Loyalty Campaign",
"campaign_id": 1805,
"campaign_title_localised": "Acme Loyalty Campaign",
"voucher_text": "5% off for Acme customers",
"task_id": 0,
"amount": 22.5,
"discount_ratio": 0,
"type": "basket",
"description": "",
"notes": "",
"title": "",
"image_url": ""
}
]
}