Create a Payout with Payment Out Details

To initiate a payment out, utilize the Create Payment endpoint with type of OUTand the addition of payOutDetails.

When using payOutDetails, the address is validated, ensuring the payment would not be created with an invalid address.

Here are the parameters you'll need to provide in the create payment request:

ParameterTypeRequiredDescription
merchantIdstringYesYour Merchant ID, which indicates the wallet from which the funds will be drawn. This can be found on the Merchant Details page within your account.
amountlongYesThe total amount to be sent in the payment out.
expiryMinutesintegerNoThe time frame allowed for the end-user to claim their payout. Defaults to 1440 minutes if unspecified.
currencystringYesThe currency code to be displayed to the end-user.
returnUrlstringNoA URL to redirect the user back to the merchant's site during the payment flow.
referencestringYesA reference for both you and your customer regarding the payment. This can be any identifier you choose.
typestringYesSpecifies the transaction type. Use OUT for creating a Pay OUT.
payoutDetails.addressstringNoThe field for the crypto address that funds will be sent to.
payoutDetails.currencystringNoThe field for specifying the payout currency.
payoutDetails.codestringNoSet to crypto to indicate a cryptocurrency payout.
payoutDetails.protocolstringNoRequired for multi-protocol currencies such as USDT, specifying protocols like ERC20 or TRC20.
payoutDetails.tagstringNoNecessary for XRP transactions to ensure proper allocation of funds. Use 0 if the XRP wallet does not have a tag.

Example Request

Below is an example of how you might structure your request:

{
  "merchantId": "00a4af9d-ad4b-42d5-bec4-b7a8c90161fe",
  "amount": "100",
  "expiryMinutes": "60",
  "currency": "USD",
  "returnUrl": "https://yourwebsitename.com",
  "reference": "6a4013c2-5fa9-4e2f-bef7-88c5570b6501",
  "type": "IN",
  "payOutDetails": {
      "code": "crypto",
      "currency": "USDT",
      "protocol": "ERC20",
      "address": "0x84A4a239805d06c685219801B82BEA7c76702214",
      "tag": ""
  }
}'

Example Response

Upon successful submission, the following response will be received:

{
  "uuid": "fef4e99d-b41d-4efe-89fd-4fdf41f3f33f",
  "merchantDisplayName": "Metallica Inc",
  "merchantId": "00a4af9d-ad4b-42d5-bec4-b7a8c90161fe",
  "dateCreated": 1704807605678,
  "expiryDate": 1704808805678,
  "quoteExpiryDate": 1704808806000,
  "acceptanceExpiryDate": 1704807636000,
  "quoteStatus": "ACCEPTED",
  "reference": "a003cec4-abf5-42aa-baf0-43a1cc815536",
  "type": "OUT",
    "subType": "merchantPayOut",
    "status": "PROCESSING",
    "displayCurrency": {
        "currency": "USD",
        "amount": 50,
        "actual": 0
    },
    "walletCurrency": {
        "currency": "ETH",
        "amount": 0.0176227,
        "actual": 0.0176227
    },
    "paidCurrency": {
        "currency": "USDT",
        "amount": 50,
        "actual": 0
    },
    "feeCurrency": {
        "currency": "ETH",
        "amount": 0.00017623,
        "actual": 0
    },
    "displayRate": {
        "base": "ETH",
        "counter": "USD",
        "rate": 2837.24968364666
    },
    "exchangeRate": {
        "base": "ETH",
        "counter": "ETH",
        "rate": 1
    },
    "address": {
        "address": "0x84A4a239805d06c685219801B82BEA7c76702214",
        "tag": "",
        "protocol": "ETH",
        "uri": "ethereum:0x84A4a239805d06c685219801B82BEA7c76702214?value=1.76227E+16",
        "alternatives": []
    },
    "returnUrl": "www.your-url-here.com",
    "redirectUrl": "https://pay.sandbox.bvnk.com/payout?uuid=46a86ebc-c40b-464f-b017-00191be0f20c",
    "transactions": [],
    "refund": null,
    "refunds": []
}

This response indicates that the payment has been automatically approved and is in a PROCESSING state.

The uuid provided can be used at any point to query the status of the payment. A series of webhook notifications will be dispatched to allow you to update your system accordingly.