# Webhook Examples

## Webhook Overview

Our API can **push real‑time notifications** to your application every time a transaction is created, updated, or otherwise changes state. These event callbacks---**webhooks**---eliminate the need for constant polling and let you trigger downstream business logic (e.g., ledger updates, email receipts, or risk checks) the moment they happen.

### How it works 🚀

1. **Receive**\
   When a qualifying event occurs, we send a signed `POST` request containing a JSON payload like the samples shown below.
2. **Acknowledge**\
   Return an HTTP `2xx` status within 10 seconds. Any non‑2xx code triggers an automatic retry with exponential back‑off (up to 24 hours).
3. **Verify (recommended)**\
   Use the `X‑Signature` header to validate the payload's HMAC‑SHA256 signature against your webhook secret.

> **Need a sandbox?**\
> Point your endpoint to `https://webhook.site/...` (or any catcher) to inspect payloads while you build.

The sections that follow contain **de‑identified sample payloads** for each transaction type---purchase authorizations, reloads, ATM withdrawals, balance inquiries, and more. Copy them into your tests or monitoring tools to simulate live traffic and ensure your integration is production‑ready.

### Purchase (Internet / Phone Authorization) — PP80DS

```json
{
  "MessageType": "Transaction",
  "Amount": "114013",
  "ApprovalCode": "377907",
  "CalculatedFeeAmount": "",
  "CardNumber": "6970",
  "CardStatus": "ACT",
  "TimeStamp": "2025-04-18 14:55:28",
  "PostTransactionCardBalance": "0",
  "PostTransactionHoldsBalance": "114013",
  "TerminalAddress": "BIOPLUS SP PHARMACYINDIA",
  "TerminalCity": "INDIANAPOLIS",
  "TerminalCountry": "US",
  "TerminalID": "0001",
  "TerminalNameLocation": "",
  "TerminalOwner": "Sample Pharmacy",
  "TransactionCode": "PP80DS",
  "TransactionDescription": "Purchase (Internet / Phone Authorization)",
  "TransactionId": "967297ae-e208-4268-a0ea-e1bea1d1b75d",
  "TransactionOrigin": "POS",
  "UniqueRequestId": "",
  "MCC": "5912",
  "RetailPackId": "1000000001",
  "IssuerName": "HealthCo Rx",
  "ProductType": "Virtual Rx Sample Plan",
  "ISOFullMessage": "ISO0260…(truncated)",
  "AdditionalDataCode": "",
  "AdditionalDataCodeDesc": "",
  "AdditionalFeeOperation": "Credit",
  "AdditionalFee": "0",
  "BusinessProcessId": "29342e21:19649b139bd:-4f4c"
}

```

### Authorization — PP00DS

```json
{
  "MessageType": "Transaction",
  "Amount": "39625",
  "ApprovalCode": "339792",
  "CalculatedFeeAmount": "",
  "CardNumber": "3803",
  "CardStatus": "ACT",
  "TimeStamp": "2025-04-18 14:52:36",
  "PostTransactionCardBalance": "0",
  "PostTransactionHoldsBalance": "39625",
  "TerminalAddress": "OPTUM ",
  "TerminalCity": "+18000000000",
  "TerminalCountry": "US",
  "TerminalID": "SSVQDG73",
  "TerminalNameLocation": "",
  "TerminalOwner": "Sample Specialty Pharma",
  "TransactionCode": "PP00DS",
  "TransactionDescription": "Authorization",
  "TransactionId": "7b7a0b2e-dbc2-4243-957b-26f535d8655c",
  "TransactionOrigin": "POS",
  "UniqueRequestId": "",
  "MCC": "5912",
  "RetailPackId": "1000000002",
  "IssuerName": "HealthCo Rx",
  "ProductType": "Juice Payroll 1",
  "ISOFullMessage": "ISO0260…(truncated)",
  "AdditionalDataCode": "",
  "AdditionalDataCodeDesc": "",
  "AdditionalFeeOperation": "Credit",
  "AdditionalFee": "0",
  "BusinessProcessId": "-3c9fb275:19649a97fa3:-4d74"
}

```

### Balance Inquiry — XP31DS

```json
{
  "MessageType": "Transaction",
  "Amount": "0",
  "ApprovalCode": "NA",
  "CalculatedFeeAmount": "",
  "CardNumber": "2675",
  "CardStatus": "ACT",
  "TimeStamp": "2025-04-18 14:52:34",
  "PostTransactionCardBalance": "226302",
  "PostTransactionHoldsBalance": "0",
  "TerminalAddress": "",
  "TerminalCity": "Glendale",
  "TerminalCountry": "US",
  "TerminalID": "user",
  "TerminalNameLocation": "",
  "TerminalOwner": "AgriTech Payments",
  "TransactionCode": "XP31DS",
  "TransactionDescription": "Balance Inquiry",
  "TransactionId": "bc21cfa6-d6a0-437c-8c59-c913d6f3de86",
  "TransactionOrigin": "PRX",
  "UniqueRequestId": "a48d8f62-0951-49d9-8557-2fe993ed4a0c",
  "MCC": "",
  "RetailPackId": "1000000003",
  "IssuerName": "AgriTech Payments",
  "ProductType": "AgriCard EMV Sample",
  "ISOFullMessage": "",
  "AdditionalDataCode": "",
  "AdditionalDataCodeDesc": "",
  "AdditionalFeeOperation": "",
  "AdditionalFee": "",
  "BusinessProcessId": "-670803ed:19649aeffa9:-4f9e"
}
```

### VRX Reload — XP20DS

```json
{
  "MessageType": "Transaction",
  "Amount": "39625",
  "ApprovalCode": "NA",
  "CalculatedFeeAmount": "",
  "CardNumber": "3803",
  "CardStatus": "ACT",
  "TimeStamp": "2025-04-18 14:52:33",
  "PostTransactionCardBalance": "39625",
  "PostTransactionHoldsBalance": "0",
  "TerminalAddress": "",
  "TerminalCity": "Scottsdale",
  "TerminalCountry": "US",
  "TerminalID": "User",
  "TerminalNameLocation": "",
  "TerminalOwner": "HealthCo Rx",
  "TransactionCode": "XP20DS",
  "TransactionDescription": "VRX Reload",
  "TransactionId": "81cf8891-5548-455d-a8d1-bb0b9943885e",
  "TransactionOrigin": "PRX",
  "UniqueRequestId": "aaf922b8-a590-a16b-0cf4-4f2583c54418",
  "MCC": "",
  "RetailPackId": "1000000002",
  "IssuerName": "HealthCo Rx",
  "ProductType": "Virtual Rx Sample Plan",
  "ISOFullMessage": "",
  "AdditionalDataCode": "",
  "AdditionalDataCodeDesc": "",
  "AdditionalFeeOperation": "",
  "AdditionalFee": "",
  "BusinessProcessId": "-3c9fb275:19649a97fa3:-4d86"
}
```

### VRX Unload — XP25DS

```json
{
  "MessageType": "Transaction",
  "Amount": "119843",
  "ApprovalCode": "NA",
  "CalculatedFeeAmount": "",
  "CardNumber": "3905",
  "CardStatus": "ACT",
  "TimeStamp": "2025-04-18 14:52:26",
  "PostTransactionCardBalance": "0",
  "PostTransactionHoldsBalance": "0",
  "TerminalAddress": "",
  "TerminalCity": "Scottsdale",
  "TerminalCountry": "US",
  "TerminalID": "User",
  "TerminalNameLocation": "",
  "TerminalOwner": "HealthCo Rx",
  "TransactionCode": "XP25DS",
  "TransactionDescription": "VRX Unload",
  "TransactionId": "44e4c517-222a-4cce-91b6-4f23dd58867d",
  "TransactionOrigin": "PRX",
  "UniqueRequestId": "3299d8f1-083b-554b-85af-dfd4ccca453b",
  "MCC": "",
  "RetailPackId": "1000000004",
  "IssuerName": "HealthCo Rx",
  "ProductType": "Virtual Rx Sample Plan",
  "ISOFullMessage": "",
  "AdditionalDataCode": "",
  "AdditionalDataCodeDesc": "",
  "AdditionalFeeOperation": "",
  "AdditionalFee": "",
  "BusinessProcessId": "-3c9fb275:19649a97fa3:-4d94"
}
```

### ATM Withdrawal — AP01DS

```json
{
  "MessageType": "Transaction",
  "Amount": "40400",
  "ApprovalCode": "879913",
  "CalculatedFeeAmount": "",
  "CardNumber": "5352",
  "CardStatus": "ACT",
  "TimeStamp": "2025-04-18 14:54:58",
  "PostTransactionCardBalance": "311",
  "PostTransactionHoldsBalance": "22785",
  "TerminalAddress": "HAPO COMMUNITY CUPascoWA",
  "TerminalCity": "Pasco",
  "TerminalCountry": "US",
  "TerminalID": "G8814A",
  "TerminalNameLocation": "",
  "TerminalOwner": "Sample Community CU",
  "TransactionCode": "AP01DS",
  "TransactionDescription": "ATM Withdrawal",
  "TransactionId": "a132aba2-a461-4fa7-85e7-847377ce6dc0",
  "TransactionOrigin": "ATM",
  "UniqueRequestId": "",
  "MCC": "6011",
  "RetailPackId": "1000000008",
  "IssuerName": "AgriTech Payments",
  "ProductType": "AgriCard EMV Sample",
  "ISOFullMessage": "ISO0160…(truncated)",
  "AdditionalDataCode": "",
  "AdditionalDataCodeDesc": "",
  "AdditionalFeeOperation": "Debit",
  "AdditionalFee": "2",
  "BusinessProcessId": "-3c9fb275:19649a97fa3:-4cc0"
}

```


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://apidocs.juicefin.com/apis/transactions/webhook-examples.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
