Skip to content

Initiate withdrawal

POST
/api/managing-entity/{managingEntityIdentifier}/payment/withdrawal
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.

managingEntityIdentifier
required
string format: uuid
""

Managing entity identifier (UUID)

Example
d5b8a3c2-9e6f-4a1b-8d34-7c2e1f0a5b69
destinationIdentifier
required
string format: uuid
""

Identifier of the chosen BankAccount or RevolutPayoutAccount on the managing entity

Example
3c6b1a5d-8e2f-4a0b-9c7d-6e4f0a8b2c51
destinationKind
required
string
""

Which collection on the managing entity to look up the destination in

Example
BANK_ACCOUNT
Wink-Version
string
default: 2.0.0
Allowed values: 2.0

Withdrawal initiated successfully

Media typeapplication/json

Lightweight projection of a TripPay beneficiary withdrawal (payout) to a bank account via Revolut.

object
id

Unique identifier for this record.

string format: uuid
""
createdDate

Datetime this record was first created

string | null format: date-time
""
lastUpdate

Datetime this record was last updated

string | null format: date-time
""
version

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.

integer | null format: int64
""
accountIdentifier

TripPay account identifier of the beneficiary requesting withdrawal

string format: uuid
""
bankAccountIdentifier

BankAccount identifier within the account

string format: uuid
""
grossAmount

Full available balance before fees are deducted

number
""
transferFeeAmount

Revolut flat transfer fee ($5 USD converted to withdrawal currency)

number
""
fxFeeRate

FX exchange fee rate (0.006 or 0.010). Null if withdrawal currency is USD.

number
""
fxFeeAmount

Calculated FX exchange fee amount. Null if withdrawal currency is USD.

number
""
amount

Net amount sent to Revolut (grossAmount − transferFee − fxFee)

number
""
currencyCode

ISO 4217 currency code of the withdrawal

string
"" /^[A-Z]{3}$/
status

Current status of the withdrawal lifecycle

string
""
Allowed values: PENDING PROCESSING COMPLETED FAILED
revolutPaymentId

Revolut transaction ID returned by the Revolut Business API

string
""
referenceCode

Human-readable reference shown on bank statements

string
""
requestedAt

When the withdrawal was requested

string format: date-time
""
completedAt

When the withdrawal was completed (null until COMPLETED state)

string format: date-time
""
key
additional properties
""
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

Media typeapplication/problem+json
object
type
string format: uri
title
string
status
integer format: int32
detail
string
instance
string format: uri
properties
object
key
additional properties
key
additional properties
""
Example

Unauthorized — authentication is required or the session has expired

Media typeapplication/problem+json
object
type
string format: uri
title
string
status
integer format: int32
detail
string
instance
string format: uri
properties
object
key
additional properties
key
additional properties
""
Example

Forbidden — authenticated but lacking the required permission or scope

Media typeapplication/problem+json
object
type
string format: uri
title
string
status
integer format: int32
detail
string
instance
string format: uri
properties
object
key
additional properties
key
additional properties
""
Example

Not Found — the requested resource does not exist

Media typeapplication/problem+json
object
type
string format: uri
title
string
status
integer format: int32
detail
string
instance
string format: uri
properties
object
key
additional properties
key
additional properties
""
Example

Method Not Allowed — the HTTP verb is not supported on this endpoint

Media typeapplication/problem+json
object
type
string format: uri
title
string
status
integer format: int32
detail
string
instance
string format: uri
properties
object
key
additional properties
key
additional properties
""
Example

Conflict — the resource was modified by someone else since you read it; re-read it and retry with the new version

Media typeapplication/problem+json
object
type
string format: uri
title
string
status
integer format: int32
detail
string
instance
string format: uri
properties
object
key
additional properties
key
additional properties
""
Example

Unsupported Media Type — use application/json

Media typeapplication/problem+json
object
type
string format: uri
title
string
status
integer format: int32
detail
string
instance
string format: uri
properties
object
key
additional properties
key
additional properties
""
Example

Internal Server Error — an unexpected failure occurred on the server

Media typeapplication/problem+json
object
type
string format: uri
title
string
status
integer format: int32
detail
string
instance
string format: uri
properties
object
key
additional properties
key
additional properties
""
Example

Service Unavailable — a downstream dependency is unreachable

Media typeapplication/problem+json
object
type
string format: uri
title
string
status
integer format: int32
detail
string
instance
string format: uri
properties
object
key
additional properties
key
additional properties
""
Example