[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.
