Initiate withdrawal
const url = 'https://api.wink.travel/api/managing-entity/d5b8a3c2-9e6f-4a1b-8d34-7c2e1f0a5b69/payment/withdrawal?destinationIdentifier=3c6b1a5d-8e2f-4a0b-9c7d-6e4f0a8b2c51&destinationKind=BANK_ACCOUNT';const options = { method: 'POST', headers: {'Wink-Version': '2.0', Authorization: 'Bearer <token>'}};
try { const response = await fetch(url, options); const data = await response.json(); console.log(data);} catch (error) { console.error(error);}curl --request POST \ --url 'https://api.wink.travel/api/managing-entity/d5b8a3c2-9e6f-4a1b-8d34-7c2e1f0a5b69/payment/withdrawal?destinationIdentifier=3c6b1a5d-8e2f-4a0b-9c7d-6e4f0a8b2c51&destinationKind=BANK_ACCOUNT' \ --header 'Authorization: Bearer <token>' \ --header 'Wink-Version: 2.0'Initiates a full-balance withdrawal to the chosen payout destination on the given managing entity. The user must specify which destination (BankAccount or RevolutPayoutAccount) to send funds to. Processed via Revolut Business; the beneficiary will receive funds within 1-3 business days for bank rails or instantly for Revolut-to-Revolut. Initial status is PENDING; the withdrawal transitions to PROCESSING once Revolut confirms, and COMPLETED when the payout arrives.
Authorizations
Section titled “Authorizations”Parameters
Section titled “Parameters”Path Parameters
Section titled “Path Parameters”Managing entity identifier (UUID)
Example
d5b8a3c2-9e6f-4a1b-8d34-7c2e1f0a5b69Query Parameters
Section titled “Query Parameters”Identifier of the chosen BankAccount or RevolutPayoutAccount on the managing entity
Example
3c6b1a5d-8e2f-4a0b-9c7d-6e4f0a8b2c51Which collection on the managing entity to look up the destination in
Example
BANK_ACCOUNTHeader Parameters
Section titled “Header Parameters”Responses
Section titled “Responses”Withdrawal initiated successfully
Lightweight projection of a TripPay beneficiary withdrawal (payout) to a bank account via Revolut.
object
Unique identifier for this record.
Datetime this record was first created
Datetime this record was last updated
Optimistic-locking version. Echo this value back as an If-Match request header on a conditional update; the server responds 409 if the record changed in the meantime. Null when this projection has no backing versioned document, in which case no conditional update is possible.
TripPay account identifier of the beneficiary requesting withdrawal
BankAccount identifier within the account
Full available balance before fees are deducted
Revolut flat transfer fee ($5 USD converted to withdrawal currency)
FX exchange fee rate (0.006 or 0.010). Null if withdrawal currency is USD.
Calculated FX exchange fee amount. Null if withdrawal currency is USD.
Net amount sent to Revolut (grossAmount − transferFee − fxFee)
ISO 4217 currency code of the withdrawal
Current status of the withdrawal lifecycle
Revolut transaction ID returned by the Revolut Business API
Human-readable reference shown on bank statements
When the withdrawal was requested
When the withdrawal was completed (null until COMPLETED state)
Example
{ "id": "b7e4c1a2-3f5d-4e8a-9c21-6f0b5d8e3a47", "createdDate": "2026-01-14T09:30:00", "lastUpdate": "2026-02-03T16:45:12", "version": 3, "accountIdentifier": "d5b8a3c2-9e6f-4a1b-8d34-7c2e1f0a5b69", "bankAccountIdentifier": "3c6b1a5d-8e2f-4a0b-9c7d-6e4f0a8b2c51", "grossAmount": 5250.5, "transferFeeAmount": 5, "fxFeeRate": 0.006, "fxFeeAmount": 31.5, "amount": 5214, "currencyCode": "USD", "status": "COMPLETED", "revolutPaymentId": "1234567890abcdef", "referenceCode": "PAYP2026021401", "requestedAt": "2026-02-14T10:30:00", "completedAt": "2026-02-15T14:45:30"}Bad Request — missing or invalid request parameter or body
object
object
Example
Unauthorized — authentication is required or the session has expired
object
object
Example
Forbidden — authenticated but lacking the required permission or scope
object
object
Example
Not Found — the requested resource does not exist
object
object
Example
Method Not Allowed — the HTTP verb is not supported on this endpoint
object
object
Example
Conflict — the resource was modified by someone else since you read it; re-read it and retry with the new version
object
object
Example
Unsupported Media Type — use application/json
object
object
Example
Internal Server Error — an unexpected failure occurred on the server
object
object
Example
Service Unavailable — a downstream dependency is unreachable
