Skip to main content
The Record a Payment endpoint lets you attach a payment entry to an existing appointment. You can record the full amount in a single call or make multiple calls against the same appointment to track partial payments — for example, when a patient splits their balance across two visits or payment methods.

Endpoint

Authentication

Include your API key as a Bearer token in the Authorization header of every request.

Request Body Parameters

string
required
UUID of the appointment you are recording this payment against. The appointment must exist in your clinic.
integer
required
Payment amount in centavos (BRL). For example, pass 15000 to record R$ 150,00. Must be a positive integer greater than zero.
string
required
Payment method used. Accepted values: cash, credit_card, debit_card, pix, health_plan.
string
UUID of the destination bank account where this payment should be credited. Optional — omit if your clinic does not track per-account allocation.
string
Free-text notes to attach to this payment record. Useful for recording reference numbers, authorization codes, or any other context.
Always pass amount as an integer in centavos — never as a float or a formatted string. Passing 150.00 or "150,00" will return a 400 error. The correct value for R$ 150,00 is 15000.

Response Fields

A successful request returns HTTP 201 Created with the newly created payment object.
string
Unique identifier for the payment (UUID).
string
Identifier of the clinic that owns this payment record.
string
UUID of the appointment this payment is linked to.
integer
Payment amount in centavos (BRL).
string
Payment method recorded. One of: cash, credit_card, debit_card, pix, health_plan.
string
UUID of the destination bank account, or null if not provided.
string
Initial status of the payment. Newly created payments start as pending. Transitions to paid or cancelled happen either via update calls or downstream webhooks.
string
Notes attached to the payment record, or null if none were provided.
string
ISO 8601 UTC timestamp of when the payment was created.
string
ISO 8601 UTC timestamp of the most recent update. Equal to created_at on a newly created record.
You can call POST /payments multiple times for the same appointment_id to record partial payments. Each call creates an independent payment entry, so you can accurately reflect a patient paying part of their balance in cash and the remainder via PIX, for example. Use GET /payments?appointment_id={id} to retrieve the full payment history for a given appointment.

Error Responses

Example Request

Example Response