vellTRDocs
API ReferencePayoutsCreate Bulk Payout Draft

Create Bulk Payout Draft

POST/v1/payout-draftsOptional

Upload a batch of intended payouts for review. Each row is validated structurally. Approve the draft to fan each valid row out to a real payout. ≤1000 rows; one store per draft. dest = IBAN (fast/eft) or card token (card); it is never echoed back.

Authentication

Signature Pattern

HMAC-SHA256(secretKey, "{timestamp}\nPOST\n/v1/payout-drafts\n{sha256(body)}")
HeaderValueDescription
X-Api-Keypk_live_a1b2c3d4e5f6g7h8Merchant public API key
X-Signature{hmac_sha256_hex}Hex HMAC-SHA256 request signature
X-Timestamp2026-04-13T10:00:00ZISO 8601 UTC request time (±5 min)

Request Parameters

NameTypeRequiredDescription
storeIdstringRequiredStore all rows draw from
rowsarrayRequired[{rail, dest, holderName, amountMinor, currency}]

Request Example

JSONRequest Body
{
  "storeId": "sto_5a6b7c8d",
  "rows": [
    {
      "rail": "fast",
      "dest": "TR330006100519786457841326",
      "holderName": "Acme Ltd",
      "amountMinor": 100000,
      "currency": "TRY"
    },
    {
      "rail": "eft",
      "dest": "TR120006200119000006672315",
      "holderName": "Beta AŞ",
      "amountMinor": 50000,
      "currency": "TRY"
    }
  ]
}

Response Parameters

FieldTypeExample
draftIdstring"drf_8192a3b4c5d6"
statusstring"draft"
rowCountinteger2
validCountinteger2
invalidCountinteger0
createdAtstring"2026-04-13T10:00:00Z"

Response Example

JSONResponse
{
  "draftId": "drf_8192a3b4c5d6",
  "status": "draft",
  "rowCount": 2,
  "validCount": 2,
  "invalidCount": 0,
  "createdAt": "2026-04-13T10:00:00Z"
}

Status Codes

200Success
201Created
400Bad Request
401Unauthorized
404Not Found
429Rate Limited
Try itMock
POSThttps://api.pay.sandbox.kvell.group