Step 3. Get Notification to reflect transactions in your CRM
As soon as Customer initiates a deposit, Cashier will send a Notification Webhook to Merchant system.

Optionally, Merchant is able to receive a real-time notifications regarding transactions status changes via Notification API. For that purposes Merchant has to implement Notification API on their end.
Cashier uses Notification endpoint to notify Merchants about a result of payment processing.
When the Notification is sent to the Merchant’s URL, Cashier expects the Merchant’s server to respond with Status code 200 – OK. After that, the Notification is considered as successfully sent.
URL: Merchant API Notification URL
Merchant will provide it as soon as they prepare the endpoint described below.
HTTP Method: POST
Headers:
- Content-type:
application/json - Authorization: Deposit Page JWT bearer token.
Request fields:
| Name | Type | Size/Format | Mandatory | Description |
|---|---|---|---|---|
customerId | string | only digits | true | Customer unique identifier. |
transactionId | string | Format: UUID | true | Transaction unique identifier. |
currency | string | ISO currency code: wiki | true | Original transaction currency of deposit requested by merchant. |
amount | int | In minor units: wiki | true | Original transaction amount requested by Merchant. |
amountUSD | int | In minor units: wiki | true | USD equivalent of Original Amount. |
status | string | enum | true | Transaction status. Possible values: PENDING, SUCCESS, FAILED, AUTHORIZED |
errors | Array of JSON objects | Example: errors: [ { {'code' : "INVALID", 'message': "Invalid transaction"}, {'code' : "INVALID2", 'message': "Invalid transaction2"} | false | Failed reasons. Only for failed transactions. |
brandName | string | Latin chars with no spaces | true | Merchant name provided as part of credentials. |
transactionDate | string | DATETIME Example: "2020-09-25 07:17:39.821057" | false | Transaction date. |
paymentType | string | enum | false | Possible values: CREDIT_CARD, APM |
processorName | string | false | Payment Provider Company name. PSP/APM name defined by Cashier. | |
processorPaymentMethod | string | Example: IDeal, Qiwi | false | Payment Provider name. PSP/APM name defined by Merchant |
cardType | string | Example: Visa, MasterCard | false | Card type such as "Visa" or "Mastercard". |
cсType | string | Example: debit, credit | false | Card type, such as credit, debit, corporate. |
cсLevel | string | Example: GOLD, PLATINUM | false | Card type such as "GOLD" or "PLATINUM". |
cardBin | string | Max (6) | false | First 6 digits of Credit Card. |
cardLast4Digits | string | Max (4) | false | Last 4 digits of Credit Card. |
cardExpMonth | string | Max (2) | false | Credit Card Expiry Month. |
cardExpYear | string | Max (4) | false | Credit Card Expiry Year. |
bankName | string | false | Customer’s bank name. | |
accountID | string | false | Merchant ID of merchant in Cashier System. Provided by Cashier Customer Support Team. | |
externalTransactionId | string | false | PSP/APM's transaction ID number. | |
transactionType | string | enum | false | Possible values: deposit, refund. |
ip | string | IPv4 | IPv6 | false | Customer's IP Address. |
source | string | enum | false | Source of the transaction. Possible values: "MOBILE_WEB", "MOBILE_APP", "WEB". |
depositCurrencyToUSDMarketRate | numeric | With 4 places in decimal part | false | Market rate between deposit currency and USD. |
depositCurrencyToEUROMarketRate | numeric | With 4 places in decimal part | false | Market rate between deposit currency and EUR. |
convertedCurrencyToEUROMarketRate | numeric | With 4 places in decimal part | false | Market rate between converted currency and EUR. |
convertedCurrencyToUSDMarketRate | numeric | With 4 places in decimal part | false | Market rate between converted currency and USD. |
convertedCurrency | string(3) | Currency ISO code | false | Currency of deposit accepted by Payment provider. |
convertedAmount | int | In minor units | false | Converted amount of the deposit in converted currency (including configured markUp/Down) to be send to Provider. |
marketRate | numeric | With 4 places in decimal part | false | Market rate between converted currency and original deposit currency. |
markUpDown | int | false | Merchant’s markUp/Down impacts exchange rate from Original to Converted currency. | |
exchangeRate | numeric | With 4 places in decimal part | false | Final exchange rate used to convert from original to converted currency Example: Market rate: 1.0 MarkUpDown: 105% ExchangeRate will be 1.05. |
public_title | string | false | Displayed name of APM payment method. | |
user_agent | string | false | Browser of the Customer. | |
bin_country | string(2) | ISO2 Country code | false | Customer’s card bank country. |
receivedAmount | int | In minor units | false | Amount , actually paid by the customer in converted currency. |
depositedAmount | int | In minor units | false | Final amount which will be deposited to the customer’s account in Original deposit currency. |
variable1 | string | false | Custom variable forwarded from Deposit page to Merchant system via Notifications Webhooks. | |
variable2 | string | false | Custom variable forwarded from Deposit page to Merchant system via Notifications Webhooks. | |
variable3 | string | false | Custom variable forwarded from Deposit page to Merchant system via Notifications Webhooks | |
relatedTransactionId | string | Format: UUID | false | Parent original deposit transaction identifier. Applicable for refunds. |
originTransactionId | string | false | Merchant’s internal transaction ID. Applicable for refunds. |
SUCCESS Deposit. Notification body example:
{
"transactionId": "f7c26f04-39e6-4ad7-b5a2-a5e28e4a4071",
"relatedTransactionId": null,
"amount": 10000,
"currency": "USD",
"amountUSD": 10000,
"status": "SUCCESS",
"errors": [],
"transactionDate": "2025-02-11T10:03:24.844036+00:00",
"transactionType": "deposit",
"externalTransactionId": "67ab206d07598",
"originTransactionId": null,
"brandName": "Phantom360",
"customerID": "4",
"accountID": "94e0c2d3-bfc6-4188-8bad-9351a6008a5c",
"ip": "2a09:bac0:1000:645::84:8e",
"fakeIp": null,
"source": "WEB",
"paymentType": "CREDIT_CARD",
"processorName": "PHANTOM_2D",
"processorPaymentMethod": "Credit Card",
"midType": null,
"cardType": "MASTERCARD",
"cardBin": "507860",
"cardLast4Digits": "3448",
"cardExpMonth": "12",
"cardExpYear": "2036",
"bankName": "BANCO BNP PARIBAS BRASIL S.A.",
"ccType": "credit",
"ccLevel": null,
"convertedAmount": 10000,
"convertedCurrency": "USD",
"marketRate": 1,
"markUpDown": 100,
"exchangeRate": 1,
"depositCurrencyToUSDMarketRate": 1,
"depositCurrencyToEUROMarketRate": 0.9692,
"convertedCurrencyToUSDMarketRate": 1,
"convertedCurrencyToEUROMarketRate": 0.9692,
"publicTitle": null,
"userAgent": "Chrome 133.0 - desktop",
"binCountry": "BR",
"variable1": null,
"variable2": null,
"variable3": null,
"receivedAmount": 10000,
"depositedAmount": 10000
}
SUCCESS Refund. Notification body example:
{
"transactionId": "9540d2c1-3f79-4e24-9d39-250f9385389f",
"relatedTransactionId": "65839fd4-946b-4097-b4f5-240d3c9c7acb",
"amount": 1288,
"currency": "USD",
"amountUSD": 1288,
"status": "SUCCESS",
"errors": [],
"transactionDate": "2025-04-10T08:36:03.291840+00:00",
"transactionType": "refund",
"externalTransactionId": "payment_cb01f9e7630c10af159d2622851ceb68",
"originTransactionId": null,
"brandName": "brand",
"customerID": "185309",
"accountID": "21e84c6c-5e5d-4686-b9d0-3426e99181b1",
"ip": "2a09:bac0:1000:645::84:59",
"fakeIp": null,
"source": "WEB",
"paymentType": "CREDIT_CARD",
"processorName": "Phantom",
"processorPaymentMethod": "Credit Card",
"midType": null,
"cardType": "MASTERCARD",
"cardBin": "424242",
"cardLast4Digits": "4242",
"cardExpMonth": "11",
"cardExpYear": "2032",
"bankName": "STOCK COMMERCIAL BANK",
"ccType": "debit",
"ccLevel": null,
"convertedAmount": 1000,
"convertedCurrency": "GBP",
"marketRate": 0.7766,
"markUpDown": 100,
"exchangeRate": 0.7766,
"sca": null,
"depositCurrencyToUSDMarketRate": 1,
"depositCurrencyToEUROMarketRate": 0.9069,
"convertedCurrencyToUSDMarketRate": 1.2877,
"convertedCurrencyToEUROMarketRate": 1.1678,
"publicTitle": null,
"userAgent": null,
"binCountry": null,
"variable1": null,
"variable2": null,
"variable3": null,
"receivedAmount": null,
"receivedCurrency": null,
"depositedAmount": null,
"depositedCurrency": null
}
Notification retry policy
If the Notification is not successfully sent (do not receive HTTP 200 back), the Cashier database records the status of the transaction notification as In Retry, and the Cashier attempts to resend the notification every 60, 120, 300, 3600, 14400, 43200 seconds. If the Notification fails to send the notification in each retry attempt, Cashier stops attempting to resend the notification.