Pagos
Cancelar un pago
const url = 'https://api.timbro.do/v1/payments/example/cancel';const options = { method: 'POST', headers: {'idempotency-key': 'example', Authorization: 'Bearer <token>'}};
try { const response = await fetch(url, options); const data = await response.json(); console.log(data);} catch (error) { console.error(error);}curl --request POST \ --url https://api.timbro.do/v1/payments/example/cancel \ --header 'Authorization: Bearer <token>' \ --header 'idempotency-key: example'Detiene un pago antes de la captura; el cliente ya no puede pagarlo en Checkout.
En un pago dividido, las autorizaciones se liberan y el pago pasa a cancelado solo después de que el adquirente confirme cada liberación.
Un reintento 202 con la misma clave puede devolver la respuesta original de liberación mientras esta siga pendiente; consulta el pago para conocer su estado actual.
Si el pago no está dividido y el resultado del adquirente ya se está enviando o es ambiguo, queda pendiente hasta que la conciliación lo resuelva con la correlación existente.
La cancelación no reembolsa dinero capturado.
Idempotency-Key es obligatoria.
Autenticación
Sección titulada «Autenticación»Parámetros
Sección titulada «Parámetros»Parámetros de ruta
Sección titulada «Parámetros de ruta»Pago que quieres cancelar.
Parámetros de cabecera
Sección titulada «Parámetros de cabecera»Clave de idempotencia de esta cancelación y sus reintentos. Es obligatoria.
Respuestas
Sección titulada «Respuestas»Una solicitud de pago del comercio.
Campos y códigos de la respuesta
Una solicitud de pago del comercio.
object
Identificador del pago. Opaco; no lo analices más allá del prefijo.
Solo succeeded, canceled y expired son terminales. Un intento rechazado devuelve el pago a requires_customer_action con lastDecline, así que el cliente puede intentarlo de nuevo hasta que el pago venza. partially_authorized significa que algunas partes tienen fondos retenidos, authorized que los fondos de todas las partes están retenidos y esperan que el organizador los capture, capturing que la captura está en curso y releasing que se están liberando los fondos retenidos. verifying es un estado real no terminal; no es un error ni un rechazo.
Referencia inmutable de la venta en el sistema de origen, que envía la integración del comercio.
object
Referencia del comercio para buscar la venta. No cambia después de crear el pago, no tiene que ser única y no identifica los reintentos de la solicitud.
Presentación de Checkout, de solo lectura, armada a partir de la configuración del comercio.
object
Idioma de la interfaz. La notación del importe y la moneda son independientes del idioma.
object
object
object
object
object
Marcas de tarjeta certificadas para la instantánea de la afiliación de este pago.
Programas 3-D Secure seleccionados para este pago, que no cambian después de crearlo. Una lista vacía significa que el pago con tarjeta no usa 3DS.
Identificador secreto e impredecible que da acceso al recibo completo cuando el pago termina. Tenerlo revela la identidad del comprador y el detalle; mantenlo privado.
El intento rechazado más reciente. Un rechazo termina el intento, no el pago; el cliente puede intentarlo de nuevo hasta que el pago venza. Se borra al enviar el siguiente intento, cancelar el pago o crear, reemplazar o renovar su división; se conserva al vencer.
object
Código de rechazo normalizado. Los códigos originales del adquirente no son públicos.
Explicación segura para el cliente. La redacción puede cambiar.
Momento en que Timbro registró el rechazo del adquirente para este intento.
Pago aprobado cuya evidencia de liquidación necesita que el equipo de Timbro la resuelva. No retira la aprobación.
object
Clasificación normalizada de un problema de liquidación encontrado después de la aprobación.
Instrucciones de factura guardadas y selección del destinatario. El ciclo de vida de la factura y las credenciales de acceso se informan por separado.
object
Cuerpo de un problema RFC 9457 devuelto por la API /v1.
object
Solo aparece si la solicitud rechazada produjo una operación fiscal.
Solo aparece cuando las reglas oficiales de emisión rechazan la emisión.
Solo aparece cuando el rechazo señala un valor incluido en la solicitud.
Un problema público estable del documento, guardado para una admisión rechazada.
object
object
object
object
object
object
object
object
Aumenta cada vez que cambian el tipo de comprobante, el comprador o la elegibilidad gubernamental.
Progreso de conciliación mientras el estado es verifying.
object
object
object
object
object
object
object
Metadatos de presentación. Se excluyen del contenido fiscal canónico.
object
object
object
object
object
Identidad inmutable de la solicitud de pago dentro del comercio y del modo, Prueba o En vivo.
Monto monetario decimal exacto.
object
Ejemplo
DOPMonto decimal exacto y no negativo, con un máximo de dos cifras decimales.
Monto monetario decimal exacto.
object
Ejemplo
DOPMonto decimal exacto y no negativo, con un máximo de dos cifras decimales.
Monto monetario decimal exacto.
object
Ejemplo
DOPMonto decimal exacto y no negativo, con un máximo de dos cifras decimales.
object
Estado agregado de la división. captured es dinero liquidado; authorized, dinero retenido; releasing y released describen la liberación de la autorización.
Monto monetario decimal exacto.
object
Ejemplo
DOPMonto decimal exacto y no negativo, con un máximo de dos cifras decimales.
Monto monetario decimal exacto.
object
Ejemplo
DOPMonto decimal exacto y no negativo, con un máximo de dos cifras decimales.
Monto monetario decimal exacto.
object
Ejemplo
DOPMonto decimal exacto y no negativo, con un máximo de dos cifras decimales.
Monto monetario decimal exacto.
object
Ejemplo
DOPMonto decimal exacto y no negativo, con un máximo de dos cifras decimales.
object
Monto monetario decimal exacto.
object
Ejemplo
DOPMonto decimal exacto y no negativo, con un máximo de dos cifras decimales.
Monto monetario decimal exacto.
object
Ejemplo
DOPMonto decimal exacto y no negativo, con un máximo de dos cifras decimales.
Estado de autorización y captura de una parte. authorized significa que los fondos están retenidos; succeeded, que esos fondos se capturaron.
El intento rechazado más reciente. Un rechazo termina el intento, no el pago; el cliente puede intentarlo de nuevo hasta que el pago venza. Se borra al enviar el siguiente intento, cancelar el pago o crear, reemplazar o renovar su división; se conserva al vencer.
object
Código de rechazo normalizado. Los códigos originales del adquirente no son públicos.
Explicación segura para el cliente. La redacción puede cambiar.
Momento en que Timbro registró el rechazo del adquirente para este intento.
object
object
object
object
object
Monto monetario decimal exacto.
object
Ejemplo
DOPMonto decimal exacto y no negativo, con un máximo de dos cifras decimales.
object
Monto monetario decimal exacto.
object
Ejemplo
DOPMonto decimal exacto y no negativo, con un máximo de dos cifras decimales.
Monto monetario decimal exacto.
object
Ejemplo
DOPMonto decimal exacto y no negativo, con un máximo de dos cifras decimales.
Campos opcionales
Suscripción a la que pertenece este período
object
Destino web del comercio que se ofrece al salir de Checkout. Consulta el estado del pago en la API.
Etiqueta de contexto escrita por el comercio, como Mesa 12.
Descripción breve del producto o servicio que se compra.
Composición monetaria calculada por el servidor. La invariante es payableTotalMinorUnits = fiscalDeclaredTotalMinorUnits + nonBillableMinorUnits; las propinas legales y voluntarias nunca se cuentan dos veces.
object
object
object
Total fiscal declarado: bases imponibles, impuestos, líneas exentas y propina legal. Las líneas no facturables se excluyen.
Total comercial por cobrar: fiscalDeclaredTotalMinorUnits más nonBillableMinorUnits. Es el importe cobrado antes de una propina voluntaria.
object
Envía al cliente a Checkout.
object
Ábrelo en un contexto de navegación de nivel superior.
Claves del comercio que acompañan este pago: como máximo 20 claves de 1 a 40 caracteres, cada una con un string de hasta 500 caracteres. Timbro las guarda de forma opaca, nunca toma decisiones con ellas, nunca las envía a un adquirente ni las repite en el cuerpo de un webhook o en una proyección para el cliente. Viven lo mismo que su pago y se eliminan con él. Nunca incluyas datos personales ni datos de tarjeta.
object
object
object
Identificador estable de una asignación de pago capturada.
Monto monetario decimal exacto.
object
Ejemplo
DOPMonto decimal exacto y no negativo, con un máximo de dos cifras decimales.
object
object
object
object
Cabeceras
Sección titulada «Cabeceras»Identifica esta solicitud. Indícalo cuando contactes a soporte.
true cuando esta respuesta repite el resultado guardado de una solicitud anterior con la misma clave de idempotencia (Idempotency-Key).
Una solicitud de pago del comercio.
Campos y códigos de la respuesta
Una solicitud de pago del comercio.
object
Identificador del pago. Opaco; no lo analices más allá del prefijo.
Solo succeeded, canceled y expired son terminales. Un intento rechazado devuelve el pago a requires_customer_action con lastDecline, así que el cliente puede intentarlo de nuevo hasta que el pago venza. partially_authorized significa que algunas partes tienen fondos retenidos, authorized que los fondos de todas las partes están retenidos y esperan que el organizador los capture, capturing que la captura está en curso y releasing que se están liberando los fondos retenidos. verifying es un estado real no terminal; no es un error ni un rechazo.
Referencia inmutable de la venta en el sistema de origen, que envía la integración del comercio.
object
Referencia del comercio para buscar la venta. No cambia después de crear el pago, no tiene que ser única y no identifica los reintentos de la solicitud.
Presentación de Checkout, de solo lectura, armada a partir de la configuración del comercio.
object
Idioma de la interfaz. La notación del importe y la moneda son independientes del idioma.
object
object
object
object
object
Marcas de tarjeta certificadas para la instantánea de la afiliación de este pago.
Programas 3-D Secure seleccionados para este pago, que no cambian después de crearlo. Una lista vacía significa que el pago con tarjeta no usa 3DS.
Identificador secreto e impredecible que da acceso al recibo completo cuando el pago termina. Tenerlo revela la identidad del comprador y el detalle; mantenlo privado.
El intento rechazado más reciente. Un rechazo termina el intento, no el pago; el cliente puede intentarlo de nuevo hasta que el pago venza. Se borra al enviar el siguiente intento, cancelar el pago o crear, reemplazar o renovar su división; se conserva al vencer.
object
Código de rechazo normalizado. Los códigos originales del adquirente no son públicos.
Explicación segura para el cliente. La redacción puede cambiar.
Momento en que Timbro registró el rechazo del adquirente para este intento.
Pago aprobado cuya evidencia de liquidación necesita que el equipo de Timbro la resuelva. No retira la aprobación.
object
Clasificación normalizada de un problema de liquidación encontrado después de la aprobación.
Instrucciones de factura guardadas y selección del destinatario. El ciclo de vida de la factura y las credenciales de acceso se informan por separado.
object
Cuerpo de un problema RFC 9457 devuelto por la API /v1.
object
Solo aparece si la solicitud rechazada produjo una operación fiscal.
Solo aparece cuando las reglas oficiales de emisión rechazan la emisión.
Solo aparece cuando el rechazo señala un valor incluido en la solicitud.
Un problema público estable del documento, guardado para una admisión rechazada.
object
object
object
object
object
object
object
object
Aumenta cada vez que cambian el tipo de comprobante, el comprador o la elegibilidad gubernamental.
Progreso de conciliación mientras el estado es verifying.
object
object
object
object
object
object
object
Metadatos de presentación. Se excluyen del contenido fiscal canónico.
object
object
object
object
object
Identidad inmutable de la solicitud de pago dentro del comercio y del modo, Prueba o En vivo.
Monto monetario decimal exacto.
object
Ejemplo
DOPMonto decimal exacto y no negativo, con un máximo de dos cifras decimales.
Monto monetario decimal exacto.
object
Ejemplo
DOPMonto decimal exacto y no negativo, con un máximo de dos cifras decimales.
Monto monetario decimal exacto.
object
Ejemplo
DOPMonto decimal exacto y no negativo, con un máximo de dos cifras decimales.
object
Estado agregado de la división. captured es dinero liquidado; authorized, dinero retenido; releasing y released describen la liberación de la autorización.
Monto monetario decimal exacto.
object
Ejemplo
DOPMonto decimal exacto y no negativo, con un máximo de dos cifras decimales.
Monto monetario decimal exacto.
object
Ejemplo
DOPMonto decimal exacto y no negativo, con un máximo de dos cifras decimales.
Monto monetario decimal exacto.
object
Ejemplo
DOPMonto decimal exacto y no negativo, con un máximo de dos cifras decimales.
Monto monetario decimal exacto.
object
Ejemplo
DOPMonto decimal exacto y no negativo, con un máximo de dos cifras decimales.
object
Monto monetario decimal exacto.
object
Ejemplo
DOPMonto decimal exacto y no negativo, con un máximo de dos cifras decimales.
Monto monetario decimal exacto.
object
Ejemplo
DOPMonto decimal exacto y no negativo, con un máximo de dos cifras decimales.
Estado de autorización y captura de una parte. authorized significa que los fondos están retenidos; succeeded, que esos fondos se capturaron.
El intento rechazado más reciente. Un rechazo termina el intento, no el pago; el cliente puede intentarlo de nuevo hasta que el pago venza. Se borra al enviar el siguiente intento, cancelar el pago o crear, reemplazar o renovar su división; se conserva al vencer.
object
Código de rechazo normalizado. Los códigos originales del adquirente no son públicos.
Explicación segura para el cliente. La redacción puede cambiar.
Momento en que Timbro registró el rechazo del adquirente para este intento.
object
object
object
object
object
Monto monetario decimal exacto.
object
Ejemplo
DOPMonto decimal exacto y no negativo, con un máximo de dos cifras decimales.
object
Monto monetario decimal exacto.
object
Ejemplo
DOPMonto decimal exacto y no negativo, con un máximo de dos cifras decimales.
Monto monetario decimal exacto.
object
Ejemplo
DOPMonto decimal exacto y no negativo, con un máximo de dos cifras decimales.
Campos opcionales
Suscripción a la que pertenece este período
object
Destino web del comercio que se ofrece al salir de Checkout. Consulta el estado del pago en la API.
Etiqueta de contexto escrita por el comercio, como Mesa 12.
Descripción breve del producto o servicio que se compra.
Composición monetaria calculada por el servidor. La invariante es payableTotalMinorUnits = fiscalDeclaredTotalMinorUnits + nonBillableMinorUnits; las propinas legales y voluntarias nunca se cuentan dos veces.
object
object
object
Total fiscal declarado: bases imponibles, impuestos, líneas exentas y propina legal. Las líneas no facturables se excluyen.
Total comercial por cobrar: fiscalDeclaredTotalMinorUnits más nonBillableMinorUnits. Es el importe cobrado antes de una propina voluntaria.
object
Envía al cliente a Checkout.
object
Ábrelo en un contexto de navegación de nivel superior.
Claves del comercio que acompañan este pago: como máximo 20 claves de 1 a 40 caracteres, cada una con un string de hasta 500 caracteres. Timbro las guarda de forma opaca, nunca toma decisiones con ellas, nunca las envía a un adquirente ni las repite en el cuerpo de un webhook o en una proyección para el cliente. Viven lo mismo que su pago y se eliminan con él. Nunca incluyas datos personales ni datos de tarjeta.
object
object
object
Identificador estable de una asignación de pago capturada.
Monto monetario decimal exacto.
object
Ejemplo
DOPMonto decimal exacto y no negativo, con un máximo de dos cifras decimales.
object
object
object
object
Cabeceras
Sección titulada «Cabeceras»Identifica esta solicitud. Indícalo cuando contactes a soporte.
true cuando esta respuesta repite el resultado guardado de una solicitud anterior con la misma clave de idempotencia (Idempotency-Key).
No se pudo entender la solicitud.
Ejemplo
{ "type": "about:blank", "title": "No se pudo entender la solicitud.", "status": 400, "code": "parameter_missing", "requestId": "request_000000000000000000000001"}Campos y códigos de la respuesta
Detalles de problema RFC 9457. Cada fallo de esta API es uno de estos objetos y cada operación limita code al subconjunto que puede emitir.
object
Código estable legible por máquinas. Toma decisiones con este código, nunca con title.
Campos opcionales
Solo aparece si la solicitud rechazada produjo una operación fiscal.
Solo aparece cuando las reglas oficiales de emisión rechazan la emisión.
Solo aparece cuando el rechazo señala un valor incluido en la solicitud.
Un problema público estable del documento, guardado para una admisión rechazada.
object
Cabeceras
Sección titulada «Cabeceras»Identifica esta solicitud. Indícalo cuando contactes a soporte.
La credencial falta, tiene un formato incorrecto o ya no es válida.
Ejemplo
{ "type": "about:blank", "title": "La credencial falta, tiene un formato incorrecto o ya no es válida.", "status": 401, "code": "api_key_missing", "requestId": "request_000000000000000000000001"}Campos y códigos de la respuesta
Detalles de problema RFC 9457. Cada fallo de esta API es uno de estos objetos y cada operación limita code al subconjunto que puede emitir.
object
Código estable legible por máquinas. Toma decisiones con este código, nunca con title.
Campos opcionales
Solo aparece si la solicitud rechazada produjo una operación fiscal.
Solo aparece cuando las reglas oficiales de emisión rechazan la emisión.
Solo aparece cuando el rechazo señala un valor incluido en la solicitud.
Un problema público estable del documento, guardado para una admisión rechazada.
object
Cabeceras
Sección titulada «Cabeceras»Identifica esta solicitud. Indícalo cuando contactes a soporte.
La credencial es válida, pero no tiene permiso para realizar esta operación.
Ejemplo
{ "type": "about:blank", "title": "La credencial es válida, pero no tiene permiso para realizar esta operación.", "status": 403, "code": "operation_not_permitted", "requestId": "request_000000000000000000000001"}Campos y códigos de la respuesta
Detalles de problema RFC 9457. Cada fallo de esta API es uno de estos objetos y cada operación limita code al subconjunto que puede emitir.
object
Código estable legible por máquinas. Toma decisiones con este código, nunca con title.
Campos opcionales
Solo aparece si la solicitud rechazada produjo una operación fiscal.
Solo aparece cuando las reglas oficiales de emisión rechazan la emisión.
Solo aparece cuando el rechazo señala un valor incluido en la solicitud.
Un problema público estable del documento, guardado para una admisión rechazada.
object
Cabeceras
Sección titulada «Cabeceras»Identifica esta solicitud. Indícalo cuando contactes a soporte.
Ningún endpoint sirve este método y ruta, o no existe un recurso con este identificador dentro del alcance del solicitante.
Ejemplo
{ "type": "about:blank", "title": "Ningún endpoint sirve este método y ruta, o no existe un recurso con este identificador dentro del alcance del solicitante.", "status": 404, "code": "payment_not_found", "requestId": "request_000000000000000000000001"}Campos y códigos de la respuesta
Detalles de problema RFC 9457. Cada fallo de esta API es uno de estos objetos y cada operación limita code al subconjunto que puede emitir.
object
Código estable legible por máquinas. Toma decisiones con este código, nunca con title.
Campos opcionales
Solo aparece si la solicitud rechazada produjo una operación fiscal.
Solo aparece cuando las reglas oficiales de emisión rechazan la emisión.
Solo aparece cuando el rechazo señala un valor incluido en la solicitud.
Un problema público estable del documento, guardado para una admisión rechazada.
object
Cabeceras
Sección titulada «Cabeceras»Identifica esta solicitud. Indícalo cuando contactes a soporte.
La solicitud entra en conflicto con el estado actual del recurso o con una solicitud anterior que usó la misma clave de idempotencia (Idempotency-Key).
Ejemplo
{ "type": "about:blank", "title": "La solicitud entra en conflicto con el estado actual del recurso o con una solicitud anterior que usó la misma clave de idempotencia (`Idempotency-Key`).", "status": 409, "code": "idempotency_key_reused", "requestId": "request_000000000000000000000001"}Campos y códigos de la respuesta
Detalles de problema RFC 9457. Cada fallo de esta API es uno de estos objetos y cada operación limita code al subconjunto que puede emitir.
object
Código estable legible por máquinas. Toma decisiones con este código, nunca con title.
Campos opcionales
Solo aparece si la solicitud rechazada produjo una operación fiscal.
Solo aparece cuando las reglas oficiales de emisión rechazan la emisión.
Solo aparece cuando el rechazo señala un valor incluido en la solicitud.
Un problema público estable del documento, guardado para una admisión rechazada.
object
Cabeceras
Sección titulada «Cabeceras»Identifica esta solicitud. Indícalo cuando contactes a soporte.
Segundos que debes esperar antes de repetir esta solicitud o volver a consultar el recurso.
La solicitud no pudo completarse. Recupera el resultado con la referencia guardada o repite la solicitud con la misma clave de idempotencia.
Ejemplo
{ "type": "about:blank", "title": "La solicitud no pudo completarse. Recupera el resultado con la referencia guardada o repite la solicitud con la misma clave de idempotencia.", "status": 500, "code": "internal_error", "requestId": "request_000000000000000000000001"}Campos y códigos de la respuesta
Detalles de problema RFC 9457. Cada fallo de esta API es uno de estos objetos y cada operación limita code al subconjunto que puede emitir.
object
Código estable legible por máquinas. Toma decisiones con este código, nunca con title.
Campos opcionales
Solo aparece si la solicitud rechazada produjo una operación fiscal.
Solo aparece cuando las reglas oficiales de emisión rechazan la emisión.
Solo aparece cuando el rechazo señala un valor incluido en la solicitud.
Un problema público estable del documento, guardado para una admisión rechazada.
object
Cabeceras
Sección titulada «Cabeceras»Identifica esta solicitud. Indícalo cuando contactes a soporte.
Un servicio requerido no está disponible temporalmente. Inténtalo de nuevo con la misma referencia o la misma clave de idempotencia.
Ejemplo
{ "type": "about:blank", "title": "Un servicio requerido no está disponible temporalmente. Inténtalo de nuevo con la misma referencia o la misma clave de idempotencia.", "status": 503, "code": "integration_authorization_unavailable", "requestId": "request_000000000000000000000001"}Campos y códigos de la respuesta
Detalles de problema RFC 9457. Cada fallo de esta API es uno de estos objetos y cada operación limita code al subconjunto que puede emitir.
object
Código estable legible por máquinas. Toma decisiones con este código, nunca con title.
Campos opcionales
Solo aparece si la solicitud rechazada produjo una operación fiscal.
Solo aparece cuando las reglas oficiales de emisión rechazan la emisión.
Solo aparece cuando el rechazo señala un valor incluido en la solicitud.
Un problema público estable del documento, guardado para una admisión rechazada.
object
Cabeceras
Sección titulada «Cabeceras»Identifica esta solicitud. Indícalo cuando contactes a soporte.
Segundos que debes esperar antes de repetir esta solicitud o volver a consultar el recurso.