Sends EUR from the bank balance to an external IBAN. `amount` plus the fee is reserved on the bank balance at once; the reserve is spent when the payout settles and released if it fails. Retries are safe with the same `Idempotency-Key`: the same key returns the same payout, a different body under that key is `idempotency_conflict`. Do not change the key to retry a payout whose outcome you do not know — look it up with `GET …/payouts/{payoutId}` instead.
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
companyId |
path | string (uuid) |
yes | Your company that Payca enabled for Virtual IBAN. |
Idempotency-Key |
header | string |
yes | Your unique key for this operation, 1–128 characters. |
Request body
application/json
· VirtualIbanPayoutRequest
· required
| Field | Type | Required | Description |
|---|---|---|---|
amount |
VirtualIbanAmount |
yes | |
destination |
VirtualIbanDestination |
yes | |
expectedFee |
string |
yes | The `fee` from `POST …/quote` for this amount. |
virtualAccountId |
string (uuid) |
yes | The `id` of your virtual IBAN. |
Responses
| Status | Body | Description |
|---|---|---|
202 |
VirtualIbanPayout |
Payout accepted. Its `correlationId` is the payout ID. |
400 |
VirtualIbanError |
The request was refused; `code` says why (see the Virtual IBAN section). |
401 |
— | Missing or invalid `x-client-id` / `x-client-secret` (no body). |
403 |
VirtualIbanError |
The request was refused; `code` says why (see the Virtual IBAN section). |
404 |
VirtualIbanError |
The request was refused; `code` says why (see the Virtual IBAN section). |
409 |
VirtualIbanError |
The request was refused; `code` says why (see the Virtual IBAN section). |
503 |
VirtualIbanError |
The request was refused; `code` says why (see the Virtual IBAN section). |
Specification
This page is generated from the OpenAPI specification, which remains the authoritative machine-readable source.