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.
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
409price_changedconcurrent_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 elfee_id del paso anterior, registra el pago por el saldo completo de la cuota:
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
amountno coincide, la respuesta es409amount_mismatchconexpected_amount, y no se registra nada. No hay pagos parciales. notify: falseno 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 mismaIdempotency-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.
