Suscripciones
Crear una suscripción mensual con facturación fiscal automática
const url = 'https://api.timbro.do/v1/subscriptions';const options = { method: 'POST', headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'}, body: '{"subscriptionReference":"example","customer":{"customerReference":"example","name":"example","email":"hello@example.com"},"currency":"DOP","items":[{"id":"example","description":"example","product":{"id":"example","sku":"example","name":"example","description":"example","imageUrl":"https://example.com"},"quantity":"example","unit":"barrel","unitPrice":"example","kind":"good","tax":{"kind":"itbis_18","included":true},"legalTip":{"applied":true},"group":"example"}],"interval":{"unit":"month"},"invoicing":{"type":"E31","buyer":{"kind":"anonymous"},"recipientEmail":"hello@example.com","isTypeLocked":true,"isBuyerLocked":true,"governmentEligibility":{"entityKind":"central_government","authorityReference":"example"},"mode":"automatic"}}'};
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/subscriptions \ --header 'Authorization: Bearer <token>' \ --header 'Content-Type: application/json' \ --data '{ "subscriptionReference": "example", "customer": { "customerReference": "example", "name": "example", "email": "hello@example.com" }, "currency": "DOP", "items": [ { "id": "example", "description": "example", "product": { "id": "example", "sku": "example", "name": "example", "description": "example", "imageUrl": "https://example.com" }, "quantity": "example", "unit": "barrel", "unitPrice": "example", "kind": "good", "tax": { "kind": "itbis_18", "included": true }, "legalTip": { "applied": true }, "group": "example" } ], "interval": { "unit": "month" }, "invoicing": { "type": "E31", "buyer": { "kind": "anonymous" }, "recipientEmail": "hello@example.com", "isTypeLocked": true, "isBuyerLocked": true, "governmentEligibility": { "entityKind": "central_government", "authorityReference": "example" }, "mode": "automatic" } }'Autenticación
Sección titulada «Autenticación»Cuerpo de la solicitudobligatorio
Sección titulada «Cuerpo de la solicitudobligatorio»object
object
object
Metadatos de presentación. Se excluyen del contenido fiscal canónico.
object
object
object
object
object
object
object
Correo del comprador al que se entrega la factura una vez emitida.
object
object
object
object
Respuestas
Sección titulada «Respuestas»Respuesta predeterminada
Campos y códigos de la respuesta
object
Identidad de la suscripción
object
Monto monetario decimal exacto.
object
Ejemplo
DOPMonto decimal exacto y no negativo, con un máximo de dos cifras decimales.
object
object
object
Identidad del pago
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.
object
Por qué el aviso de pago pendiente necesita atención. notice_handoff_failed es un rechazo definitivo del proveedor; notice_handoff_unknown es una entrega al proveedor de resultado incierto, que se reintenta hasta que termina su ventana de deduplicación; notice_delivery_failed es un rebote o una queja después de la entrega; notice_unavailable significa que todavía no se pudo preparar el aviso.
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.
Cabeceras
Sección titulada «Cabeceras»Identifica esta solicitud. Indícalo cuando contactes a soporte.
Respuesta predeterminada
Campos y códigos de la respuesta
object
Identidad de la suscripción
object
Monto monetario decimal exacto.
object
Ejemplo
DOPMonto decimal exacto y no negativo, con un máximo de dos cifras decimales.
object
object
object
Identidad del pago
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.
object
Por qué el aviso de pago pendiente necesita atención. notice_handoff_failed es un rechazo definitivo del proveedor; notice_handoff_unknown es una entrega al proveedor de resultado incierto, que se reintenta hasta que termina su ventana de deduplicación; notice_delivery_failed es un rebote o una queja después de la entrega; notice_unavailable significa que todavía no se pudo preparar el aviso.
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.
Cabeceras
Sección titulada «Cabeceras»Identifica esta solicitud. Indícalo cuando contactes a soporte.
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": "subscription_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": "recurring_account_required", "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.
El cuerpo de la solicitud es más grande de lo que acepta este endpoint.
Ejemplo
{ "type": "about:blank", "title": "El cuerpo de la solicitud es más grande de lo que acepta este endpoint.", "status": 413, "code": "request_body_too_large", "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.
El cuerpo de la solicitud tiene un tipo de contenido que este endpoint no acepta.
Ejemplo
{ "type": "about:blank", "title": "El cuerpo de la solicitud tiene un tipo de contenido que este endpoint no acepta.", "status": 415, "code": "unsupported_media_type", "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 tiene un formato válido, pero no se puede ejecutar.
Ejemplo
{ "type": "about:blank", "title": "La solicitud tiene un formato válido, pero no se puede ejecutar.", "status": 422, "code": "merchant_account_not_ready", "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 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": "business_fiscal_binding_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.