Skip to main content
POST
Registrar un pago

Authorizations

Authorization
string
header
required

Clave del negocio. sk es una clave completa (todo lo que el rol de quien la creó puede dar) y rk una restringida a los permisos que se eligieron al crearla. Solo se usa desde un servidor: un pedido desde un navegador se rechaza con browser_not_allowed.

Scopes

payments:write

Registrar pagos.

Headers

Craqui-Version
string

Versión de la API para este pedido (YYYY-MM-DD). Si no la mandas, se usa la versión fijada en la clave cuando se creó.

Pattern: ^\d{4}-\d{2}-\d{2}$
Example:

"2026-12-01"

Idempotency-Key
string

Obligatorio en todo pedido que crea o cambia algo, salvo con dry_run=true. Un valor único por operación (por ejemplo un UUID). Si repites el pedido con la misma clave y el mismo cuerpo dentro de 24 horas, recibes la misma respuesta (con el header Idempotent-Replayed: true) sin que se repita el efecto, también la misma respuesta de error: para intentar de nuevo algo que se rechazó, usa una clave nueva. Con un dry_run=true la clave se ignora y no se guarda: el pedido real puede usar la misma. Pasadas las 24 horas, repetir una reserva con la misma clave y el mismo cuerpo sigue devolviendo la reserva que se hizo (como está ahora), y la misma clave con otro cuerpo responde idempotency_key_reused.

Required string length: 1 - 255

Query Parameters

dry_run
boolean

true para ver qué pasaría sin hacerlo: Craqui evalúa el pedido con las mismas reglas que el real y responde 200 con un objeto preview, sin escribir nada ni avisarle a nadie. Cuenta para el límite de escrituras. false (o sin el parámetro) hace el pedido real. Es el único parámetro de consulta de una escritura.

Body

application/json
fee_id
string
required

Id de una cuota.

Pattern: ^fee_[0-7][0-9a-hjkmnp-tv-z]{25}$
Example:

"fee_01jxycdc0zf2nxw7n2azer6wqp"

amount
object
required

El saldo completo de la cuota, en la moneda del estudio y de la cuota: un pago nunca es parcial ni se recorta (409 amount_mismatch con expected_amount si no coincide). Si el pago cae dentro de los días de gracia, el saldo no lleva el recargo.

payment_method
enum<string>
required

Cómo pagó el cliente. La API registra pagos que ya ocurrieron: nunca cobra.

Available options:
cash,
bank_transfer,
debit_card,
credit_card,
check,
other
paid_on
string<date> | null

El día del pago en el calendario del estudio, de hoy a 90 días atrás. Por defecto, hoy.

Pattern: ^\d{4}-\d{2}-\d{2}$
Example:

"2026-12-02"

notes
string | null

Una nota para el estudio (por ejemplo, la referencia de la transferencia).

Maximum string length: 500
notify
boolean
default:true

false para no enviarle al cliente los avisos de esta escritura (email, WhatsApp). Necesita el permiso notifications:suppress; sin él, la respuesta es 403 scope_required. Nunca silencia el aviso a otra persona: si una cancelación hace entrar a alguien de la lista de espera, esa persona se entera igual. Los recordatorios posteriores salen igual. Por defecto true. Tu estudio de prueba no le avisa a nadie, diga lo que diga este campo.

Response

Con dry_run=true, la vista previa (no se escribió nada).

Lo que haría la escritura de plata, sin hacerla: Craqui corre la misma operación que el pedido real y la deshace, así que una vista previa que se rechazaría responde el mismo error (por ejemplo price_changed o amount_mismatch, con el monto de hoy). No consume la Idempotency-Key ni cuenta para el límite de escrituras de plata.

object
string
required
Allowed value: "preview"
livemode
boolean
required

false si la vista previa es de tu estudio de prueba (claves crq_test_); true con claves crq_live_.

action
enum<string>
required

credit_grant.create, credit_grant.revoke, membership.create, membership.cancel, membership.freeze, membership.unfreeze o payment.create. La lista puede crecer.

Available options:
credit_grant.create,
credit_grant.revoke,
membership.create,
membership.cancel,
membership.freeze,
membership.unfreeze,
payment.create
result
object
required

El objeto como está hoy; null si la escritura lo crearía.

effects
object
required

Lo que pasaría con la plata, los créditos y los avisos. Cada acción trae sus campos.

warnings
enum<string>[]
required

no_change (la baja ya estaba programada: el pedido real no cambia nada). La lista puede crecer.

Available options:
no_change
summary
string
required

Lo mismo en una frase en español, para mostrarle a una persona. No nombra al cliente.