Skip to content

Create Payout

Merchants call this endpoint to initiate a payout to a payee. Once accepted, the API returns a unified payout ID and its initial status.

Fund safety notice

  • Submit each merchantOrderId only once. Never reuse the same merchant order ID for another payout request.
  • If the order status is not final or is unclear, call Query Payout or wait for the payout callback. Do not submit the payout again.
  • If the order has failed, contact Velora to confirm its final result before initiating another payout with a new merchant order ID.

Duplicate submissions may cause duplicate payouts and financial loss. Implement idempotency controls for every payout order.

Request

  • Method: POST
  • Path: /api/v1/payout/createPayout
  • Content-Type: application/json
  • Authentication: See Authentication

Request fields

FieldTypeLength / constraintsRequiredExampleDescription
merchantOrderIdstring≤ 64 charactersYesPAYOUT_1786700000721_DDHTLUMerchant payout order ID, unique per merchant
countrystring2 characters, ISO-3166YesRUTwo-letter country code
amountobjectYesPayout amount; see amount object
payoutMethodobjectYesPayout method; see payoutMethod object
beneficiaryobjectYesBeneficiary information; see beneficiary object
notifyUrlstring≤ 256 characters, URLYeshttps://merchant.example/payout/callbackAsynchronous payout result notification URL
descriptionstring≤ 256 charactersYesPayout test orderBriefly state the purpose of the payout, the payout contract number (ContractNo, preferably including the date), and the user's full name exactly as shown on their passport. Failure to provide the required information may trigger system risk controls

amount object

FieldTypeLength / constraintsRequiredExampleDescription
valuestringGreater than 0; ≤ 12 charactersYes100.00Payout amount
currencystring3 characters, ISO-4217YesRUBThree-letter currency code

payoutMethod object

FieldTypeLength / constraintsRequiredExampleDescription
typestringEnum: bankYesbankPayout method type
bankobjectConditionalRequired bank payout details when type is bank

payoutMethod.bank object

FieldTypeLength / constraintsRequiredExampleDescription
payoutBrandstring≤ 20 charactersYessbpPayout brand
accountNumberstring≤ 128 charactersYes79261234567Beneficiary account number. When payoutBrand is sbp, use an 11-digit account number beginning with 7, for example 79261234567
bankCodestring≤ 32 charactersYesNORVIKBeneficiary bank code. Call Get Supported Payout Parameters to retrieve values supported by the payout brand

For an sbp/RU/RUB bank payout, bankCode must exactly match a code returned by the supported parameters endpoint. Otherwise, the request returns C0002.

beneficiary object

FieldTypeLength / constraintsRequiredExampleDescription
typestringEnum: individualYesindividualBeneficiary type
nameobjectYesBeneficiary name
phonestring≤ 50 charactersYes09171234567Beneficiary phone number
emailstring≤ 254 charactersNotest@example.comBeneficiary email address

beneficiary.name object

FieldTypeLength / constraintsRequiredExampleDescription
firstNamestring≤ 64 charactersYesTestGiven name
lastNamestring≤ 64 charactersYesUserFamily name

Request example

json
{
  "merchantOrderId": "PAYOUT_1786700000721_DDHTLU",
  "country": "RU",
  "amount": {
    "value": "100.00",
    "currency": "RUB"
  },
  "payoutMethod": {
    "type": "bank",
    "bank": {
      "payoutBrand": "sbp",
      "accountNumber": "79261234567",
      "bankCode": "NORVIK"
    }
  },
  "beneficiary": {
    "type": "individual",
    "name": {
      "firstName": "Test",
      "lastName": "User"
    },
    "phone": "09171234567",
    "email": "test@example.com"
  },
  "notifyUrl": "*******",
  "description": "Payout test order"
}

Response example

json
{
  "result": {
    "code": "S0000",
    "msg": "Payout request accepted"
  },
  "data": {
    "payoutId": "payout_20260814032225670788850",
    "channelOrderId": "89821020319231231",
    "merchantOrderId": "PAYOUT_1786677623288_5TI24J",
    "status": "Processing",
    "amount": {
      "value": "100.00",
      "currency": "RUB"
    },
    "createdAt": "2026-08-14T03:22:25+00:00",
    "updatedAt": "2026-08-14T03:22:26+00:00"
  }
}

Response fields

FieldTypeLength / constraintsAlways returnedDescription
resultobjectYesRequest acceptance result
dataobjectOn successPayout order created by the request

result object

FieldTypeLength / constraintsAlways returnedExampleDescription
codestring≤ 32 charactersYesS0000Response code
msgstring≤ 255 charactersYesPayout request acceptedResponse message

data object

FieldTypeLength / constraintsAlways returnedExampleDescription
payoutIdstring≤ 64 charactersYespayout_20260814032225670788850Velora payout ID
channelOrderIdstring≤ 64 charactersNo89821020319231231PSP channel order ID
merchantOrderIdstring≤ 64 charactersYesPAYOUT_1786677623288_5TI24JMerchant payout order ID
statusstringEnumYesProcessingPayout order status
amountobjectYesPayout amount
createdAtstringISO 8601Yes2026-08-14T03:22:25+00:00Payout creation time
updatedAtstringISO 8601Yes2026-08-14T03:22:26+00:00Payout update time

data.amount object

FieldTypeLength / constraintsAlways returnedExampleDescription
valuestringNumeric stringYes100.00Payout amount
currencystring3 characters, ISO-4217YesRUBThree-letter currency code