Create Bulk Payout Draft
POST
/v1/payout-draftsOptionalUpload 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)}")| Header | Value | Description |
|---|---|---|
X-Api-Key | pk_live_a1b2c3d4e5f6g7h8 | Merchant public API key |
X-Signature | {hmac_sha256_hex} | Hex HMAC-SHA256 request signature |
X-Timestamp | 2026-04-13T10:00:00Z | ISO 8601 UTC request time (±5 min) |
Request Parameters
| Name | Type | Required | Description |
|---|---|---|---|
storeId | string | Required | Store all rows draw from |
rows | array | Required | [{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
| Field | Type | Example |
|---|---|---|
draftId | string | "drf_8192a3b4c5d6" |
status | string | "draft" |
rowCount | integer | 2 |
validCount | integer | 2 |
invalidCount | integer | 0 |
createdAt | string | "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