Joan edukira

Payments

Payments of bookings, whether planned, partially paid or paid

The payment object

Attributes

iduuid

Unique identifier

booking_iduuid
bookings.id

Identifier of the related booking

invoice_iduuid
invoices.id

Identifier of the related invoice

provider_idtext | null

Identifier of the payment at the payment provider

created_atread-onlytimestamp with time zone

Creation timestamp

updated_atread-onlytimestamp with time zone

Last modification timestamp

amountinteger

Total amount of the payment, in cents

completed_attimestamp with time zone | null

Timestamp at which the payment was completed

currencyCurrency

Currency of the payment

due_attimestamp with time zone

Timestamp at which the payment is due

ftsread-onlytsvector
notification_sent_attimestamp with time zone | null

Timestamp at which the guest was notified of the payment being due

offlineboolean

Whether the payment is made outside Bookingmood, e.g. by bank transfer

paidinteger

Amount of the payment that was paid, in cents

referencetext

Reference of the payment

statusread-onlyPaymentStatus

Status of the payment: due, paid or cancelled

Related resources

Embed related resources in the response with the select parameter, for example select=*,bookings(*). Resources related through more than one column need the column as a hint, like table!column(*).

bookings(*)object | null
bookings

The booking referenced by booking_id.

invoices(*)object | null
invoices

The invoice referenced by invoice_id.

The payment object
JSON
{
  "id": "00000000-0000-0000-0000-000000000000",
  "booking_id": "00000000-0000-0000-0000-000000000000",
  "invoice_id": "00000000-0000-0000-0000-000000000000",
  "provider_id": "",
  "created_at": "2026-10-30T23:27:25.472Z",
  "updated_at": "2026-10-30T23:27:25.472Z",
  "amount": 0,
  "completed_at": "2026-10-30T23:27:25.472Z",
  "currency": "ARS",
  "due_at": "2026-10-30T23:27:25.472Z",
  "notification_sent_at": "2026-10-30T23:27:25.472Z",
  "offline": false,
  "paid": 0,
  "reference": "ABC123",
  "status": "cancelled"
}
Including related resources
curl -X GET "https://api.bookingmood.com/v1/payments?limit=10&select=*,bookings(*),invoices(*)" \
  -H "Authorization: Bearer YOUR_API_KEY"

List payments

Filters

idFilter<uuid>

Unique identifier

booking_idFilter<uuid>
bookings.id

Identifier of the related booking

invoice_idFilter<uuid>
invoices.id

Identifier of the related invoice

provider_idFilter<text | null>

Identifier of the payment at the payment provider

created_atFilter<timestamp with time zone>

Creation timestamp

updated_atFilter<timestamp with time zone>

Last modification timestamp

amountFilter<integer>

Total amount of the payment, in cents

completed_atFilter<timestamp with time zone | null>

Timestamp at which the payment was completed

currencyFilter<Currency>

Currency of the payment

due_atFilter<timestamp with time zone>

Timestamp at which the payment is due

ftsFilter<tsvector>
notification_sent_atFilter<timestamp with time zone | null>

Timestamp at which the guest was notified of the payment being due

offlineFilter<boolean>

Whether the payment is made outside Bookingmood, e.g. by bank transfer

paidFilter<integer>

Amount of the payment that was paid, in cents

referenceFilter<text>

Reference of the payment

statusFilter<PaymentStatus>

Status of the payment: due, paid or cancelled

Responses

200

A list of payments with the selected columns

206

Partial Content

400

The request is malformed, for example an unknown column or an invalid filter.

401

The API key is missing or invalid.

Error responses have a JSON body with a code, message, details and hint. See the introduction for more on errors.
GET /payments
curl -X GET "https://api.bookingmood.com/v1/payments?select=*&limit=10" \
  -H "Authorization: Bearer YOUR_API_KEY"
Example response
JSON
[
  {
    "id": "00000000-0000-0000-0000-000000000000",
    "booking_id": "00000000-0000-0000-0000-000000000000",
    "invoice_id": "00000000-0000-0000-0000-000000000000",
    "provider_id": "",
    "created_at": "2026-10-30T23:27:25.472Z",
    "updated_at": "2026-10-30T23:27:25.472Z",
    "amount": 0,
    "completed_at": "2026-10-30T23:27:25.472Z",
    "currency": "ARS",
    "due_at": "2026-10-30T23:27:25.472Z",
    "notification_sent_at": "2026-10-30T23:27:25.472Z",
    "offline": false,
    "paid": 0,
    "reference": "ABC123",
    "status": "cancelled"
  }
]

Create payments

Body

Partial<Payment> | Array<Partial<Payment>>

Read-only attributes are set by the database and can't be written.

Responses

201

The newly created payments with the selected columns

400

The request is malformed, for example an unknown column, an invalid filter or an invalid body.

401

The API key is missing or invalid.

403

The API key has no permission for this change, for example when writing rows of another organization.

409

The change conflicts with existing data, for example a duplicate key or a reference to a row that does not exist.

Error responses have a JSON body with a code, message, details and hint. See the introduction for more on errors.
POST /payments
curl -X POST "https://api.bookingmood.com/v1/payments" \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "amount": 0,
    "booking_id": "00000000-0000-0000-0000-000000000000",
    "currency": "ARS",
    "due_at": "2026-10-30T23:27:25.472Z",
    "invoice_id": "00000000-0000-0000-0000-000000000000",
    "offline": false,
    "paid": 0,
    "reference": "ABC123"
  }'
Example response
JSON
[
  {
    "id": "00000000-0000-0000-0000-000000000000",
    "booking_id": "00000000-0000-0000-0000-000000000000",
    "invoice_id": "00000000-0000-0000-0000-000000000000",
    "provider_id": "",
    "created_at": "2026-10-30T23:27:25.472Z",
    "updated_at": "2026-10-30T23:27:25.472Z",
    "amount": 0,
    "completed_at": "2026-10-30T23:27:25.472Z",
    "currency": "ARS",
    "due_at": "2026-10-30T23:27:25.472Z",
    "notification_sent_at": "2026-10-30T23:27:25.472Z",
    "offline": false,
    "paid": 0,
    "reference": "ABC123",
    "status": "cancelled"
  }
]

Delete payments

Filters

Without filters, this request deletes all payments you have access to. Always filter on at least one column, e.g. id=eq.{id}.

idFilter<uuid>

Unique identifier

booking_idFilter<uuid>
bookings.id

Identifier of the related booking

invoice_idFilter<uuid>
invoices.id

Identifier of the related invoice

provider_idFilter<text | null>

Identifier of the payment at the payment provider

created_atFilter<timestamp with time zone>

Creation timestamp

updated_atFilter<timestamp with time zone>

Last modification timestamp

amountFilter<integer>

Total amount of the payment, in cents

completed_atFilter<timestamp with time zone | null>

Timestamp at which the payment was completed

currencyFilter<Currency>

Currency of the payment

due_atFilter<timestamp with time zone>

Timestamp at which the payment is due

ftsFilter<tsvector>
notification_sent_atFilter<timestamp with time zone | null>

Timestamp at which the guest was notified of the payment being due

offlineFilter<boolean>

Whether the payment is made outside Bookingmood, e.g. by bank transfer

paidFilter<integer>

Amount of the payment that was paid, in cents

referenceFilter<text>

Reference of the payment

statusFilter<PaymentStatus>

Status of the payment: due, paid or cancelled

Responses

200

The deleted payments with the selected columns. Returns 204 without a body when sending the header Prefer: return=minimal.

400

The request is malformed, for example an unknown column or an invalid filter.

401

The API key is missing or invalid.

403

The API key has no permission for this change, for example when writing rows of another organization.

Error responses have a JSON body with a code, message, details and hint. See the introduction for more on errors.
DELETE /payments
curl -X DELETE "https://api.bookingmood.com/v1/payments?id=eq.00000000-0000-0000-0000-000000000000" \
  -H "Authorization: Bearer YOUR_API_KEY"
Example response
JSON
[
  {
    "id": "00000000-0000-0000-0000-000000000000",
    "booking_id": "00000000-0000-0000-0000-000000000000",
    "invoice_id": "00000000-0000-0000-0000-000000000000",
    "provider_id": "",
    "created_at": "2026-10-30T23:27:25.472Z",
    "updated_at": "2026-10-30T23:27:25.472Z",
    "amount": 0,
    "completed_at": "2026-10-30T23:27:25.472Z",
    "currency": "ARS",
    "due_at": "2026-10-30T23:27:25.472Z",
    "notification_sent_at": "2026-10-30T23:27:25.472Z",
    "offline": false,
    "paid": 0,
    "reference": "ABC123",
    "status": "cancelled"
  }
]

Update payments

Filters

Without filters, this request updates all payments you have access to. Always filter on at least one column, e.g. id=eq.{id}.

idFilter<uuid>

Unique identifier

booking_idFilter<uuid>
bookings.id

Identifier of the related booking

invoice_idFilter<uuid>
invoices.id

Identifier of the related invoice

provider_idFilter<text | null>

Identifier of the payment at the payment provider

created_atFilter<timestamp with time zone>

Creation timestamp

updated_atFilter<timestamp with time zone>

Last modification timestamp

amountFilter<integer>

Total amount of the payment, in cents

completed_atFilter<timestamp with time zone | null>

Timestamp at which the payment was completed

currencyFilter<Currency>

Currency of the payment

due_atFilter<timestamp with time zone>

Timestamp at which the payment is due

ftsFilter<tsvector>
notification_sent_atFilter<timestamp with time zone | null>

Timestamp at which the guest was notified of the payment being due

offlineFilter<boolean>

Whether the payment is made outside Bookingmood, e.g. by bank transfer

paidFilter<integer>

Amount of the payment that was paid, in cents

referenceFilter<text>

Reference of the payment

statusFilter<PaymentStatus>

Status of the payment: due, paid or cancelled

Body

Partial<Payment>

Read-only attributes are set by the database and can't be written.

Responses

200

The updated payments with the selected columns. Returns 204 without a body when sending the header Prefer: return=minimal.

400

The request is malformed, for example an unknown column, an invalid filter or an invalid body.

401

The API key is missing or invalid.

403

The API key has no permission for this change, for example when writing rows of another organization.

409

The change conflicts with existing data, for example a duplicate key or a reference to a row that does not exist.

Error responses have a JSON body with a code, message, details and hint. See the introduction for more on errors.
PATCH /payments
curl -X PATCH "https://api.bookingmood.com/v1/payments?id=eq.00000000-0000-0000-0000-000000000000" \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "amount": 0
  }'
Example response
JSON
[
  {
    "id": "00000000-0000-0000-0000-000000000000",
    "booking_id": "00000000-0000-0000-0000-000000000000",
    "invoice_id": "00000000-0000-0000-0000-000000000000",
    "provider_id": "",
    "created_at": "2026-10-30T23:27:25.472Z",
    "updated_at": "2026-10-30T23:27:25.472Z",
    "amount": 0,
    "completed_at": "2026-10-30T23:27:25.472Z",
    "currency": "ARS",
    "due_at": "2026-10-30T23:27:25.472Z",
    "notification_sent_at": "2026-10-30T23:27:25.472Z",
    "offline": false,
    "paid": 0,
    "reference": "ABC123",
    "status": "cancelled"
  }
]

Toma el control de tus reservas. Crea tu propio negocio.

Únete a más de 1200 empresas independientes de alquiler vacacional que utilizan Bookingmood para aumentar las reservas directas y fortalecer la relación con los huéspedes.

Comienza tu prueba gratuita de 14 días