POST /v1/payments sin duplicarlo en un
reintento, y leer y conciliar los pagos que ya existen en Mozart.
Registrar un pago por la API requiere una clave con el scope
write (ver
Autenticación). Sin ese scope, POST /v1/payments
responde 403 forbidden.Registrar un pago
Campos del body
Idempotencia por externalId
externalId es tu clave de idempotencia: identificá cada pago de tu lado con
un valor propio (el id de tu transacción, por ejemplo) y mandalo siempre que
registres ese pago.
1
Primer request
Un
externalId nuevo para esa cartera crea el pago y responde 201.2
Reintento con el mismo externalId
Si volvés a mandar el mismo
externalId en la misma cartera —por un
timeout, un reintento automático de tu lado, lo que sea— la API no crea
un segundo pago: responde 200 con el pago que ya existía.Errores típicos
Ver Paginación, errores y límites para el
formato completo del sobre de error.
Ejemplos por lenguaje
Otras formas en que se registra un pago
POST /v1/payments no es la única fuente: un pago también se registra
manualmente desde el panel de Mozart, por un link de cobro
(pay.mozarth.com), o lo trae el importador de carteras cuando una deuda
llega al archivo ya parcialmente pagada. Los tres caminos se leen igual por
GET /v1/payments.
Leer pagos
paymentMethod es uno de transfer, cash, collection_network,
deposit, card, check u other.
Promesas de pago
GET /v1/promises lista los compromisos de pago futuro. Cuando una promesa
se cumple, queda vinculada al pago que la cumplió:
status de una promesa es uno de pending, partial, fulfilled, broken
o cancelled.
Conciliación con tus propios registros
La forma confiable de conciliar una promesa con el pago que la cumplió es el vínculo directo por id:promise.paymentId apunta al id del pago
correspondiente (y, a la inversa, payment.promiseId apunta a la promesa que
ese pago cumplió).
Si además necesitás cruzar un pago contra tu propio sistema, usá reference
para lo que ya venías registrando manualmente, o externalId para lo que
registrás vos mismo por POST /v1/payments — es la clave que vos elegiste.
promise.paymentReference es el mismo tipo de dato visto desde la promesa.
reference es texto libre y opcional: puede venir vacío, así que no lo uses
como única clave de conciliación si tu proceso lo necesita sin excepciones.