Ir al contenido
Documentación

Pagos

Crear la factura canónica para un pago capturado

POST
/v1/payments/{paymentId}/invoice
curl --request POST \
--url https://api.timbro.do/v1/payments/example/invoice \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--header 'idempotency-key: example' \
--data '{ "additionalInformation": { "referenceNumber": "example", "shipment": { "containerNumber": "example", "deliveryNoteNumber": "example", "driver": "example", "grossWeight": "example", "grossWeightUnit": "example", "netWeight": "example", "netWeightUnit": "example", "packageCount": "example", "packageUnit": "example", "packageVolume": "example", "route": "example", "shipmentDate": "example", "shipmentNumber": "example", "transportDocumentNumber": "example", "transportZone": "example", "vehicleFiche": "example", "vehiclePlate": "example", "volumeUnit": "example" } }, "buyer": { "address": "example", "deliveryPhone": "example", "email": "example", "legalName": "example", "taxId": "example" }, "currency": "DOP", "exchangeRate": { "rate": "example" }, "expectedTotals": { "fiscal": { "net": "example", "tax": "example", "total": "example" }, "net": "example", "nonBillable": "example", "tax": "example", "total": "example" }, "incomeType": "01", "invoiceReference": "example", "items": [ { "additionalDescription": "example", "adjustments": { "discounts": [ { "amount": "example", "kind": "fixed_amount" } ], "surcharges": [ { "amount": "example", "kind": "fixed_amount" } ] }, "description": "example", "id": "example", "itemCodes": [ { "code": "example", "typeCode": "example" } ], "kind": "good", "legalTip": true, "quantity": "example", "tax": { "included": true, "kind": "itbis_18" }, "unit": "barrel", "unitPrice": "example" } ], "numbering": { "eNcf": "example", "sequenceExpiresOn": "example" }, "paymentTerms": { "allocations": [ { "amount": "example", "method": "cash" } ], "paymentAccount": { "accountNumber": "example", "bankName": "example" }, "type": "immediate" }, "pdfLayout": "a4", "referenceInformation": { "attribution": { "fiscalOperationId": "example", "kind": "internal_operation" }, "fiscalNumber": "example", "issuedOn": "2026-04-15", "modificationCode": "4" }, "source": { "id": "example", "version": "example" }, "type": "E31" }'

Envía la factura registrada para un pago capturado y devuelve la factura canónica (Invoice).

paymentId
obligatorio
string
/^payment_[0-9a-hjkmnp-tv-z]{24,}$/

Pago para el que se está creando una factura.

idempotency-key
obligatorio
string
>= 1 characters <= 255 characters /^[\x20-\x7e]+$/

Clave de idempotencia única que generas y mantienes igual en los reintentos. Es obligatoria.

Media typeapplication/json
object
buyer
obligatorio
object
legalName
obligatorio
string
>= 1 characters <= 150 characters /^[^\p{White_Space}](?:[\s\S]*[^\p{White_Space}])?$/
taxId
obligatorio
string
/^[0-9]{9}([0-9]{2})?$/
address
null
deliveryPhone
null
email
null
currency
obligatorio
string
Valores permitidos: DOP BRL CAD CHF CHY XDR DKK EUR GBP JPY NOK SCP SEK USD VEF HTG MXN COP
invoiceReference
obligatorio

El único campo para enviar la referencia del sistema de origen, con un máximo de 128 caracteres.

string
>= 1 characters <= 128 characters /^[^\p{White_Space}](?:[\s\S]*[^\p{White_Space}])?$/
items
obligatorio
Array<object>
>= 1 items <= 1000 items
object
description
obligatorio
string
>= 1 characters <= 80 characters /^[^\p{White_Space}](?:[\s\S]*[^\p{White_Space}])?$/
kind
obligatorio

Indica si una línea Source describe un bien o un servicio.

string
Valores permitidos: good service
quantity
obligatorio
string
/^(?=[0-9.]*[1-9])[0-9]{1,16}(\.[0-9]{1,2})?$/
tax
obligatorio
discriminator: kind
object
included
obligatorio
boolean
kind
obligatorio
string
Valores permitidos: itbis_18
unit
obligatorio

Una unidad de medida del e-CF de la DGII: un nombre legible en minúsculas en la API de Source y de Invoice, y el código numérico oficial del catálogo en los documentos fiscales.

string
Valores permitidos: barrel bag jar bundle bottle box cigarette_pack centimetre cylinder set container day dozen bale gallon degree gram bulk hour crate kilogram kilowatt_hour pound litre lot metre square_metre cubic_metre million_btu minute package pair foot piece roll envelope second tank ton tube yard square_yard unit element thousand sack tin display drum ration quintal gross_register_tonnage square_foot passenger inch boat_berth_stay tray hectare millilitre milligram ounce troy_ounce
unitPrice
obligatorio
string
/^[0-9]{1,16}(\.[0-9]{1,4})?$/
additionalDescription
null
adjustments
null
id
null
itemCodes
null
legalTip
boolean | null
paymentTerms
obligatorio
discriminator: type
object
type
obligatorio
string
Valores permitidos: immediate
allocations
null
paymentAccount
object
accountNumber
null
bankName
null
type
obligatorio
string
Valores permitidos: E31
Campos opcionales
additionalInformation
null
exchangeRate
null
expectedTotals
null
incomeType
null
numbering
null
pdfLayout
null
referenceInformation
null
source
null

Respuesta predeterminada

Media typeapplication/json
Campos y códigos de la respuesta
discriminator: status
object
acceptedAt
obligatorio
string | null format: date-time
additionalInformation
obligatorio
null
buyer
obligatorio
null
buyerDeliveryReadiness
obligatorio
discriminator: status
object
status
obligatorio
string
Valores permitidos: notApplicable
corrections
obligatorio
Array<object>
object
affectedDocument
obligatorio
object
attribution
obligatorio
discriminator: kind
object
invoiceId
obligatorio
string format: uuid
kind
obligatorio
string
Valores permitidos: internalOperation
environment
obligatorio

Ambiente de ejecución de la DGII elegido antes de admitir el ciclo de vida.

string
Valores permitidos: sandbox certification production
fiscalNumber
obligatorio
string
issuedOn
obligatorio
string
issuerTaxId
obligatorio
string
createdAt
obligatorio
string format: date-time
modificationCode
obligatorio
string
reason
obligatorio
string
relationshipKind
obligatorio

Tipo semántico estable de una relación fiscal entre documentos.

string
Valores permitidos: modification
createdAt
obligatorio
string format: date-time
currency
obligatorio
string
Valores permitidos: DOP BRL CAD CHF CHY XDR DKK EUR GBP JPY NOK SCP SEK USD VEF HTG MXN COP
diagnostics
obligatorio
Array<object>
<= 20 items
object
code
obligatorio
string
message
obligatorio
string
path
obligatorio
string
environment
obligatorio

Ambiente de ejecución de la DGII elegido antes de admitir el ciclo de vida.

string
Valores permitidos: sandbox certification production
exchangeRate
obligatorio
null
files
obligatorio
object
pdf
obligatorio
discriminator: status
object
status
obligatorio
string
Valores permitidos: notApplicable
xml
obligatorio
discriminator: status
object
status
obligatorio
string
Valores permitidos: notApplicable
foreignPayment
obligatorio
null
governmentEligibility
obligatorio
null
id
obligatorio
string format: uuid
invoiceReference
obligatorio
string
issuerTaxId
obligatorio
string
/^[0-9]{9}([0-9]{2})?$/
items
obligatorio
Array<object> | null
object
additionalDescription
obligatorio
null
additionalTaxCodes
obligatorio
Array<string>
adjustments
obligatorio
null
description
obligatorio
string
id
obligatorio
string
itemCodes
obligatorio
Array<object>
object
code
obligatorio
string
>= 1 characters <= 35 characters /^(?=.*[^\p{White_Space}])(?!.*[\u0000-\u0008\u000B\u000C\u000E-\u001F\uD800-\uDFFF\uFFFE\uFFFF])[\s\S]+$/
typeCode
obligatorio
string
>= 1 characters <= 14 characters /^(?=.*[^\p{White_Space}])(?!.*[\u0000-\u0008\u000B\u000C\u000E-\u001F\uD800-\uDFFF\uFFFE\uFFFF])[\s\S]+$/
kind
obligatorio

Indica si una línea Source describe un bien o un servicio.

string
Valores permitidos: good service
legalTip
obligatorio
boolean
quantity
obligatorio
string
/^(?=[0-9.]*[1-9])[0-9]{1,16}(\.[0-9]{1,2})?$/
tax
obligatorio
discriminator: kind
object
included
obligatorio
boolean
kind
obligatorio
string
Valores permitidos: itbis_18
unit
obligatorio

Una unidad de medida del e-CF de la DGII: un nombre legible en minúsculas en la API de Source y de Invoice, y el código numérico oficial del catálogo en los documentos fiscales.

string
Valores permitidos: barrel bag jar bundle bottle box cigarette_pack centimetre cylinder set container day dozen bale gallon degree gram bulk hour crate kilogram kilowatt_hour pound litre lot metre square_metre cubic_metre million_btu minute package pair foot piece roll envelope second tank ton tube yard square_yard unit element thousand sack tin display drum ration quintal gross_register_tonnage square_foot passenger inch boat_berth_stay tray hectare millilitre milligram ounce troy_ounce
unitPrice
obligatorio
string
/^[0-9]{1,16}(\.[0-9]{1,4})?$/
withholding
obligatorio
null
latestEvent
obligatorio
null
originalInvoiceId
obligatorio
string | null format: uuid
paymentTerms
obligatorio
null
referenceInformation
obligatorio
null
replacesInvoiceId
obligatorio

La factura anterior que se conserva cuando esta reemplaza una operación Source rechazada o cerrada.

string | null format: uuid
source
obligatorio
object
contentSha256
obligatorio
string
/^[0-9a-f]{64}$/
id
obligatorio
string
version
obligatorio
string
status
obligatorio
string
Valores permitidos: rejected
supplier
obligatorio
null
totals
obligatorio
null
type
obligatorio
string
Valores permitidos: E31 E32 E33 E34 E41 E43 E44 E45 E46 E47
updatedAt
obligatorio
string format: date-time
request-id
obligatorio
string

Identifica esta solicitud. Indícalo cuando contactes a soporte.

Idempotent-Replayed
string
Valor permitido: true

true cuando esta respuesta repite el resultado guardado de una solicitud anterior con la misma clave de idempotencia (Idempotency-Key).