Create a payment on a booking
Creates a payment for a booking.
This endpoint requires a payment_method_type; other required body
params depend on the selected payment method type. For
payment_method_type: "terminal_reader", terminal_reader_id,
and amount are required. The terminal reader must have been
previously set up and connected to the booking's company. amount must
match the booking balance; currency is inferred from the booking.
Partial payments are not supported for this flow.
Validation failures return a 422 response with one of these error.code
values: amount_mismatch, terminal_reader_required,
amount_below_stripe_minimum, unsupported_payment_method_type,
terminal_reader_offline, booking_not_payable,
payment_strategy_missing, guest_allocation_incomplete, or
idempotency_key_required.
Payment confirmation is asynchronous. Use the returned Easol payment
ID to poll GET /payments/{id} until the payment state becomes
charged, failed, or cancelled. Charged payments may include card details for
display.
Path Parameters
Booking prefixed ID (e.g. bk_mR2nL5pW)
Header Parameters
Client-generated key for idempotent writes; the server deduplicates retries within a 24-hour window.
Request Body
application/json
TypeScript Definitions
Use the request body type in TypeScript.
Payment flow to initiate. Currently only terminal_reader is supported.
"terminal_reader"Prefixed terminal reader ID to send the payment to (e.g. trdr_xxx). Required when payment_method_type is terminal_reader. The reader must have been previously set up and connected to the booking's company.
Amount to collect in the minor currency unit. Must match the booking balance amount.
Response Body
application/json
application/json
application/json
application/json
application/json
application/json
curl -X POST "https://example.com/bookings/string/payments" \ -H "Easol-API-Version: 2026-11-01" \ -H "Idempotency-Key: a1b2c3d4-e5f6-7890-abcd-ef1234567890" \ -H "Content-Type: application/json" \ -d '{ "payment_method_type": "terminal_reader", "terminal_reader_id": "string", "amount": 0 }'{
"object": "string",
"id": "string",
"state": "pending",
"amount": {
"amount": 0,
"currency": "string"
},
"payment_method_type": "terminal_reader",
"initiated_at": "2019-08-24T14:15:22Z",
"charged_at": "2019-08-24T14:15:22Z",
"card_brand": "string",
"card_last_four": "string",
"card_region": "domestic",
"booking": "string",
"terminal_reader": "string"
}{
"error": {
"code": "string",
"message": "string"
}
}{
"error": {
"code": "string",
"message": "string"
}
}{
"error": {
"code": "string",
"message": "string"
}
}{
"error": {
"code": "string",
"message": "string"
}
}{
"error": {
"code": "string",
"message": "string"
}
}