Skip to main content
Vendes un pack de clases en tu web, o en recepción con tu sistema de caja, y quieres que el cliente lo tenga en Craqui sin que nadie lo cargue a mano. Son dos pedidos: asignar el pack y registrar el pago. La API nunca cobra: registra lo que ya cobraste. Antes de empezar, el estudio tiene que tener habilitadas las escrituras de plata (si no, la respuesta es money_writes_not_enabled) y una clave con los permisos Packs de créditos y Pagos, que la propietaria marca en el grupo «Plata» al crear la clave.

1. Asigna el pack

Manda el cliente, el pack y lo que cobraste. El monto va siempre en centésimos y con la moneda del estudio: 360000 con UYU es $ 3.600,00.
La respuesta es 201 con el pack asignado y su fee_id: la cuota del pack, que queda para cobrar. Guárdala.
  • Si el precio del pack en Craqui no es el que cobraste, la respuesta es 409 price_changed con current_price, y no se asigna nada. Resuélvelo con el estudio antes de reintentar.
  • Un pack sin precio no lleva fee: manda "no_fee_reason": "no_charge". Siempre uno de los dos.

2. Registra el pago

Con el fee_id del paso anterior, registra el pago por el saldo completo de la cuota:
La respuesta es 201 con el pago. Al cliente le llega el recibo y, si el estudio emite la factura electrónica sola con cada pago, sale la factura.
  • Un pago es siempre por el saldo completo: si amount no coincide, la respuesta es 409 amount_mismatch con expected_amount, y no se registra nada. No hay pagos parciales.
  • notify: false no le manda el recibo al cliente (necesita el permiso de silenciar avisos). La factura electrónica sale igual: es un documento fiscal, no un aviso.

Si un pedido se corta

Repite el mismo pedido con la misma Idempotency-Key. Craqui responde lo que ya hizo, con Idempotent-Replayed: true, también después de las 24 horas: nunca se asigna el pack dos veces ni se registra el pago dos veces. Si cambias el pedido, usa una clave nueva; si no, la respuesta es idempotency_key_reused. Si después de un corte recibes un 409 de estado (por ejemplo fee_already_paid con otra clave), lee el objeto con un GET antes de decidir: puede que tu primer intento ya lo haya hecho.

Mira antes de escribir

Cualquiera de los dos pedidos acepta ?dry_run=true: responde la vista previa (créditos, cuota, saldo, si sale el recibo y la factura) sin escribir nada y sin usar la Idempotency-Key.