[API FE DOM] Actualización de gestión de secuencias
Agregamos un campo esencial en la respuesta de creación y consulta de documentos, denominado sequenceConsumed
. Este campo determina si es posible reutilizar un número de secuencia (documentNumber
) en futuros documentos, conforme a las directrices de la DGII.
Esto está diseñado para mejorar la eficiencia en la gestión de documentos, permitiendo una clara identificación de las secuencias disponibles para reutilización y destacando los casos en que ciertas restricciones previenen este proceso, como:
- Certificado y/o firma inválida.
- Estructura del comprobante (XML) no es válida.
- Firmante del comprobante fiscal electrónico no corresponde a un delegado autorizado para hacer transacciones para el RNC Emisor.
- El e-NCF no está autorizado para el RNC Emisor del comprobante fiscal electrónico.
- El e-NCF autorizado se encuentra vencido a la fecha de envío del comprobante fiscal electrónico.
- El RNC Emisor del comprobante no corresponde a un emisor electrónico.
- El RNC Emisor no existe.
- El RNC Emisor no se encuentra activo.
Ejemplo práctico con una factura E32
Nosotros tenemos el siguiente request en JSON que va a ser enviado al API de Alanube.
Noten que sender.rnc
es 111111111
. Ese rnc
NO es el correcto; entonces la DGII va a determinar que nosotros enviamos ese dato erróneo y nos dará otra oportunidad para volver a enviar la misma secuencia en otro request pero esta vez corrigiendo el dato.
{
"idDoc":{
"encf": "E320000016202",
"sequenceDueDate":"2025-12-31",
"taxAmountIndicator":0,
"incomeType":1,
"paymentType":1
},
"sender":{
"rnc":132109120,
"companyName":"Juan",
"tradename":"Juan",
"address":"Casa de juan",
"mail":"[email protected]",
"stampDate":"2023-09-29"
},
"buyer": {
"rnc": 132109122,
"companyName": "Alanube Soluciones S.R.L."
},
"totals":{
"totalTaxedAmount":1000,
"i1AmountTaxed":1000,
"itbisS1":18,
"itbisTotal":180,
"itbis1Total":180,
"totalAmount":1180
},
"itemDetails":[
{
"lineNumber":1,
"billingIndicator":1,
"itemName":"choripan",
"goodServiceIndicator":1,
"itemDescription":"Pizza",
"quantityItem":10,
"unitMeasure":43,
"unitPriceItem":100,
"itemAmount":1000
}
]
}
Después de haber enviado el request anterior obtendremos la siguiente respuesta. Noten la razón del rechazo y la nueva propiedad sequenceConsumed
.
{
"id": "01HPMWW3CEF6DMMXXB0MX29B1M",
"status": "REGISTERED",
"legalStatus": "REJECTED",
"documentNumber": "E320000016202",
"signatureDate": "14-02-2024 18:47:50",
"securityCode": "i5KfFx",
"sequenceConsumed": false,
"documentStampUrl": "...",
"xml": "...",
"resumeXml": "...",
"pdf": "...",
"governmentResponse": {
"value": [
{
"codigo": "04",
"valor": "El RNC del certificado no está delegado para realizar transaciones para el RNC: 132109120"
}
],
"code": 2
}
}
Si sequenceConsumed
está con un valor false
significa que podemos volver a enviar el request pero ajustando al rnc
correcto. Así que enviaremos el mismo request pero con ajustando el rnc
{
"idDoc":{...},
"sender":{
"rnc":132109122, // CORRECT!
...
},
"buyer": {...},
"totals":{...},
"itemDetails":[...]
}
Luego de haberlo enviado obtendremos:
{
"id": "01HPMX3QYJPQXNFFHGEF18EP7X",
"status": "REGISTERED",
"legalStatus": "ACCEPTED",
"documentNumber": "E320000016202",
"signatureDate": "14-02-2024 18:52:00",
"securityCode": "vYhG0a",
"sequenceConsumed": true,
"documentStampUrl": "...",
"xml": "...",
"resumeXml": "...",
"pdf": "...",
"governmentResponse": {
"value": null,
"code": 1
}
}
Noten que esta vez sequenceConsumed
es true
y no obtuvimos ningún error o advertencia por parte de la DGII.
Por lo tanto esa secuencia E320000016202
ya fue consumida y NO puede ser reutilizada en futuros documentos.