If a notificationURL is not passed during payout creation, the payout will default to using the merchant account level Payout IPN if populated. This can be set by the following flow: Settings > General > Payout Settings > Payout IPN.
IPN Format
Headers
Header | Value |
---|---|
Accept | application/json |
Content-Type | application/json |
Body
Name | Type |
---|---|
event
Webhook event object
|
object
|
code
See the list of available Webhook notification codes for more information
|
number
|
name
See the list of available Webhook notification codes for more information
|
string
|
data
Payout data object.
|
object
|
id
Payout id.
|
string
|
recipientId
BitPay recipient id, assigned by BitPay for a given recipient email during the onboarding process (see Recipients resource).
|
string
|
shopperId
This is the unique id assigned by BitPay if the shopper used his personal BitPay account to authenticate and pay an invoice. For customers signing up for a brand new BitPay personal account, this id will only be created as part of the payout onboarding. The same field would also be available on paid invoices if the customer signed in with his BitPay personal account before completing the payment. This can allow merchants to monitor the activity of a customer (deposits & payouts). |
string
|
amount
The amount of the payout in the indicated
currency . The minimum amount per instruction is $5 USD equivalent. |
string
|
currency
Currency code set for the request
amount (ISO 4217 3-character currency code). |
string
|
ledgerCurrency
Ledger currency code set for the payout (ISO 4217 3-character currency code), it indicates on which ledger the payout will be recorded. If not provided in the request, this parameter will be set by default to the active ledger currency on your account, e.g. your settlement currency. Supported ledger currency codes for payouts are EUR, USD, GBP, CAD, NZD, AUD, ZAR, JPY, BTC, BCH, GUSD, USDC, PAX, XRP, BUSD, DOGE, ETH, WBTC, DAI. |
string
|
exchangeRates
Exchange rates keyed by source and target currencies.
|
array
|
email
Email address of an active recipient. Note: In the future, BitPay may allow Recipients to update the email address tied to their personal account. BitPay encourages the use of |
string
|
reference
Present only if specified by the merchant in the request. Merchants can pass their own unique identifier in this field for reconciliation purpose. Maximum string length is 100 characters.
|
string
|
label
For merchant use, pass through - can be the customer name or unique merchant reference assigned by the merchant to to the recipient.
|
string
|
notificationURL
URL to which BitPay sends webhook notifications. If a notificationURL is not passed during payout creation, the payout will default to using the merchant account level Payout IPN if populated. This can be set by the following flow: Settings > General > Payout Settings > Payout IPN. HTTPS is mandatory.
|
string
|
notificationEmail
Merchant email address for notification of payout status change.
|
string
|
effectiveDate
Effective date and time (UTC) for the request. ISO-8601 format
yyyy-mm-ddThh:mm:ssZ . |
string
|
requestDate
Date and time (UTC) when BitPay received the request. ISO-8601 format
yyyy-mm-ddThh:mm:ssZ . |
string
|
status
Payout status, the possible values are:
|
string
|
transactions
Contains the cryptocurrency transaction details for the executed payout.
|
array
|
txid
Cryptocurrency transaction hash for the executed payout.
|
string
|
amount
Amount of cryptocurrency sent to the requested address.
|
number
|
date
Date and time (UTC) when the cryptocurrency transaction is broadcasted. ISO-8601 format
yyyy-mm-ddThh:mm:ssZ . |
string
|
{
"event": {
"code": 5001,
"name": "payout_funded"
},
"data": {
"id": "JMwv8wQCXANoU2ZZQ9a9GH",
"recipientId": "LDxRZCGq174SF8AnQpdBPB",
"shopperId": "7qohDf2zZnQK5Qanj8oyC2",
"amount": 10,
"currency": "USD",
"ledgerCurrency": "GBP",
"exchangeRates": {
"BTC": {
"USD": 39390.47,
"GBP": 27883.962246420004
}
},
"email": "[email protected]",
"reference": "payout_20210527",
"label": "John Doe",
"notificationEmail": "[email protected]",
"effectiveDate": "2021-05-27T09:00:00.000Z",
"requestDate": "2021-05-27T10:47:37.834Z",
"status": "funded",
"transactions": []
}
}
{
"event": {
"code": 5003,
"name": "payout_completed"
},
"data": {
"id": "JMwv8wQCXANoU2ZZQ9a9GH",
"recipientId": "LDxRZCGq174SF8AnQpdBPB",
"shopperId": "7qohDf2zZnQK5Qanj8oyC2",
"amount": 10,
"currency": "USD",
"ledgerCurrency": "GBP",
"exchangeRates": {
"BTC": {
"USD": 39390.47,
"GBP": 27883.962246420004
}
},
"email": "[email protected]",
"reference": "payout_20210527",
"label": "John Doe",
"notificationEmail": "[email protected]",
"effectiveDate": "2021-05-27T09:00:00.000Z",
"requestDate": "2021-05-27T10:47:37.834Z",
"status": "complete",
"transactions": [
{
"txid": "db53d7e2bf3385a31257ce09396202d9c2823370a5ca186db315c45e24594057",
"amount": 0.000254,
"date": "2021-05-27T11:04:23.155Z"
}
]
}
}
Webhook Notification Codes
Codes for payout events with webhook notifications
BitPay code | Name | Purpose |
---|---|---|
5001 | "payout_funded" |
To notify a merchant that a payout has been set to the status funded |
5002 | "payout_processing" |
To notify a merchant that a payout has been set to the status processing |
5003 | "payout_completed" |
To notify a merchant that a payout has been set to the status complete |
5004 | "payout_cancelled" |
To notify a merchant that a payout has been set to the status cancelled |
5005 | "payout_manuallyNotified" |
Whenever a merchant request for the last notification to be resent (see section Request a webhook to be resent) |