Emitir
Timbra un complemento de pago para un pago existente.
Descripción general
Este endpoint timbra un complemento de pago para un pago que ya existe, por ejemplo después de reactivar un pago o de cancelar su complemento. Al registrar un pago, el complemento se emite automáticamente cuando corresponde; este endpoint sirve para emitirlo después.
El complemento se relaciona con el CFDI PPD emitido de la orden de cobro del pago y usa los datos del pago: la clave SAT de su forma de pago, su fecha y su moneda. La moneda no se puede enviar; siempre es la del pago. El saldo anterior del complemento es el total de la orden de cobro menos los demás pagos activos de esa orden que ya tienen un complemento emitido del mismo tipo (real o de prueba), convertido a la moneda del CFDI.
Condiciones para emitirlo:
- El pago no está cancelado y su orden de cobro tampoco.
- La orden de cobro tiene un CFDI PPD emitido; en modo de prueba, un CFDI de prueba PPD emitido.
- El pago no tiene ya un complemento
emittedopendingdel mismo tipo. Un pago puede tener un solo complemento emitido.
Modo de prueba. Con "test": true, el complemento se timbra de prueba, sin validez fiscal, y no modifica el pago.
Acepta el header Idempotency-Key. Requiere el permiso Crear en Pagos.
Endpoint
https://app.credonix.mx/api/v1/payments/{paymentId}/complementsPath param: paymentId — el ID del pago.
Emite un complemento de prueba
Un pago en MXN a una orden de cobro en MXN no requiere tipo de cambio. En este ejemplo el complemento de prueba anterior del pago ya estaba cancelado, así que se emite uno nuevo.
{ "test": true }Orden de cobro sin CFDI PPD
Si la orden de cobro del pago no tiene un CFDI PPD emitido, la API responde 409 con PPD_CFDI_REQUIRED. El mismo código se usa en modo de prueba cuando falta el CFDI de prueba PPD.
Tipo de cambio
- El tipo de cambio es requerido cuando la moneda del pago no es
MXNo es distinta de la moneda de la orden de cobro. Si falta, la API responde400conVALIDATION_ERRORen el campoexchange_ratey el mensaje"El tipo de cambio es requerido por el SAT.". - También se valida contra la moneda del CFDI relacionado: si la moneda del pago no es
MXNo es distinta de la del CFDI y el tipo de cambio falta o es menor o igual a 0, la API responde400conEXCHANGE_RATE_REQUIRED. - Si omites
exchange_rate, se usa el tipo de cambio guardado en el pago. Envíanullpara no usar ninguno. - En modo real, si se usa un tipo de cambio, el
exchange_ratedel pago se actualiza con ese valor. En modo de prueba el pago no cambia.
Reglas de los campos
| Campo | Tipo | Requerido | Notas |
|---|---|---|---|
exchange_rate | string | number | null | Según la moneda | Tipo de cambio USD→MXN. Si se omite, se usa el del pago; null indica que no hay tipo de cambio. |
test | boolean | No | Por defecto false. Timbra el complemento en modo de prueba. |
Cualquier otro campo responde 400 con VALIDATION_ERROR (unrecognized_keys).
Forma de las respuestas
201 — el complemento de pago emitido, con la forma de Listar complementos de pago.
Errores
| Status | Código | Causa |
|---|---|---|
400 | VALIDATION_ERROR | Campo inválido o desconocido, o tipo de cambio requerido. |
400 | EXCHANGE_RATE_REQUIRED | El tipo de cambio es requerido para la moneda del CFDI relacionado y falta o es menor o igual a 0. |
400 | INVOICE_TOTAL_INVALID | La orden de cobro no tiene un monto total válido. |
400 | LEGAL_ENTITY_NOT_CONFIGURED | La razón social no tiene la configuración necesaria para timbrar el complemento de prueba. |
400 | CFDI_STAMP_FAILED | El PAC rechazó el complemento de pago. message trae el motivo. |
401 | MISSING_API_KEY | INVALID_API_KEY | API_KEY_REVOKED | API key ausente, inválida o revocada. |
403 | INSUFFICIENT_PERMISSIONS | La API key no tiene el permiso Crear en Pagos. |
404 | NOT_FOUND | El pago no existe en tu organización. |
409 | PAYMENT_CANCELED | El pago está cancelado. |
409 | PAYMENT_ALREADY_HAS_COMPLEMENT | El pago ya tiene un complemento emitted o pending del mismo tipo. |
409 | INVOICE_CANCELED | La orden de cobro está cancelada. |
409 | PPD_CFDI_REQUIRED | La orden de cobro no tiene un CFDI PPD emitido (o un CFDI de prueba PPD, en modo de prueba). |