Skip to content

Create manual ledger entry

POST
/api/administration/ledger/manual-entry
curl --request POST \
--url https://api.wink.travel/api/administration/ledger/manual-entry \
--header 'Content-Type: application/json' \
--header 'Wink-Version: 2.0' \
--data null

Records a completed Revolut payout that occurred outside TripPay’s automated withdrawal flow. Creates a Withdrawal document, double-entry ledger pair (tagged manual=true), and updates BookingContract.payouts via the standard WithdrawalCompletedEvent pipeline.

Wink-Version
string
default: 2.0.0
Allowed values: 2.0

Manual entry details

Media type application/json

Request to manually record a completed Revolut payout for admin backfill.

object
accountIdentifier
required

TripPay account identifier of the beneficiary

string
"" >= 1 characters
Example
acct-123
bankAccountIdentifier
required

BankAccount identifier that received the funds

string
"" >= 1 characters
Example
ba-456
revolutPaymentId
required

Revolut transaction ID for the transfer

string
"" >= 1 characters
Example
revolut-txn-789
referenceCode
required

Bank statement reference code for the transfer

string
"" >= 1 characters
Example
WD-ABCD1234
fundsType
required

Economic category of the funds

string
""
Allowed values: COMMISSION AFFILIATE_AGENCY_FEE SUPPLIER_AGENCY_FEE TRANSACTION_FEE FX_FEE PLATFORM_FEE SALE TRIP_PAY STRIPE_REFUND_FEE
Example
SALE
amount
required

Net payout amount sent to the beneficiary (must be positive)

number
"" >= 0.01
Example
1500
currencyCode
required

ISO 4217 currency code

string
"" >= 1 characters
Example
USD
grossAmount

Full available balance before fees (optional; enables fee ledger entries)

number | null
""
Example
1510.05
transferFeeAmount

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

number | null
""
Example
5
fxFeeAmount

Revolut FX exchange fee deducted (null if withdrawal currency is USD)

number | null
""
Example
9.03

Created

Media type application/json

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

object
id

Document UUID

string
""
createdDate

Datetime this record was first created

string format: date-time
""
lastUpdate

Datetime this record was last updated

string format: date-time
""
version

Version property that shows how many times this document has been persisted. Document will not persist if the version property is less than current version property in the system. Result in an optimistic locking exception.

integer format: int64
""
accountIdentifier
required

TripPay account identifier of the beneficiary requesting withdrawal

string
"" >= 1 characters
bankAccountIdentifier
required

BankAccount identifier within the account

string
"" >= 1 characters
grossAmount

Full available balance before fees are deducted

number | null
""
transferFeeAmount

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

number | null
""
fxFeeRate

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

number | null
""
fxFeeAmount

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

number | null
""
amount
required

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

number
""
currencyCode
required

ISO 4217 currency code of the withdrawal

string
"" >= 1 characters
status
required

Current status of the withdrawal lifecycle

string
""
Allowed values: PENDING PROCESSING COMPLETED FAILED
revolutPaymentId

Revolut transaction ID returned by the Revolut Business API

string | null
""
referenceCode
required

Human-readable reference shown on bank statements

string
"" >= 1 characters
requestedAt
required

When the withdrawal was requested

string format: date-time
""
completedAt

When the withdrawal was completed (null until COMPLETED state)

string | null format: date-time
""
Example
null

Bad Request

object
type
string format: uri
title
string
status
integer format: int32
detail
string
instance
string format: uri
properties
object
key
additional properties
Example generated
{
"type": "https://example.com",
"title": "example",
"status": 1,
"detail": "example",
"instance": "https://example.com",
"properties": {
"additionalProperty": "example"
}
}

Unauthorized

Media type */*
object
type
string format: uri
title
string
status
integer format: int32
detail
string
instance
string format: uri
properties
object
key
additional properties

Forbidden

Media type */*
object
type
string format: uri
title
string
status
integer format: int32
detail
string
instance
string format: uri
properties
object
key
additional properties

Internal Server Error

object
Example generated
{}