El recibo electrónico oficial de SIFEN aun está pendiente por parte de la DNIT. No obstante FacturaSend proporciona su propia versión del recibo digital, el cual soluciona la mayoría de las necesidades internas de una Empresa.
El recibo digital de FacturaSend, también ya implementa muchas de las validaciones que implementa SIFEN con otros tipos de documentos electrónicos y cumple con la estructura de XML y Firma Digital, lo cual implica que si SIFEN lo implementa más adelante, probablemente habrá muy pocas modificaciones a ser realizadas para adaptar la versión actual de FacturaSend a la versión del SIFEN
El recibo queda completamente aprobado una vez enviado a FacturaSend, ya que éste no pasa a SIFEN.
El CDC de un recibo digital de FacturaSend inicia con 55XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX.
Cuando va a crear un recibo, puede especificar uno a varios documentos asociados, o puede no especificar ninguno.
Si el Recibo posee documentos asociados, debe especificar el monto de cada documento asociado, y no es necesario informar el data.total, pues este será recalculado con la sumatoria de los montos de cada documento asociado involucrado.
Si el Recibo no tiene documentos asociados, es obligatorio informar el data.total.
Endpoint (URL) #
POST https://api.facturasend.com.py/<tenantId>/recibo/create
Header (Encabezado) #
Requiere el envío del los siguientes atributos en el encabezado
Campo | Valor |
---|---|
Authorization | Bearer api_key_reemplazar_api_key |
Content-Type | application/json; charset=utf-8 |
Parámetros (BODY) #
Los parámetros para crear el Recibo Digital se envían en el cuerpo de la petición (BODY) en formato JSON.
Los parámetros del Recibo Digital son los mismos que los que se utilizan para crear el documento electrónico. La estructura completa puede ser visualizada en la siguiente documentación Estructura JSON de un DE
Algunos ejemplos JSON para creación de recibos lo encontrará en Ejemplo JSON de recibo digital
Parámetros (Query Param) #
También se pueden especificar algunos parámetros de consulta (Query Param) junto con la URL:
Parámetro | Requerido | Descripción |
---|---|---|
xml | No | Especifique true para obtener en el resultado el/los XML/s generado/s en la operación. Su valor por defecto es false. |
Ejemplo de llamadas #
curl \ -X \ POST "https://api.facturasend.com.py/<tenantId>/recibo/create" \ -H "Authorization: Bearer api_key_<reemplazar_api_key>" -H 'Content-Type: application/json; charset=utf-8' \ --data-raw '{ "fecha": "2023-10-26T15:59:43", "establecimiento": 1, "punto": 1017, "numero": 3, "concepto" : "Pago de Cuota XYZ - Manzana MANDUVIRA(100.000GS), Lote 10. - Pago de Interes XYZ - Manzana MANDUVIRA, Lote 10.(50.000GS)", "total": 150000, "cliente": { "codigo": "00001", "contribuyente": false, "documentoNumero": "0", "documentoTipo": 5, "email": "", "pais": "PRY", "razonSocial": "CONSUMIDOR FINAL", "tipoOperacion": 2, "celular": "595973527155" }, "condicion": { "entregas": [ { "cambio": 0, "moneda": "PYG", "monto": 45000, "tipo": 1 } ], "tipo": 1 }, "usuario": { "cargo": "Vendedor", "documentoNumero": "0", "documentoTipo": 9, "nombre": "admin" }, "documentoAsociado": [{ "formato": 1, "cdc": "55800695631001001000000112023102610001111110", "monto": 185000, "montoRetencionIva" : 10000, "montoRetencionRenta" : 5000 }, { "formato": 2, "tipoDocumentoImpreso": 1, "timbrado": "12345678", "establecimiento": "002", "punto": "002", "numero": "0000003", "serie": null, "fecha": "2024-09-01", "monto": 186000 }] }'
import axios from 'axios'; const data = { "fecha": "2023-10-26T15:59:43", "establecimiento": 1, "punto": 1017, "numero": 3, "concepto" : "Pago de Cuota XYZ - Manzana MANDUVIRA(100.000GS), Lote 10. - Pago de Interes XYZ - Manzana MANDUVIRA, Lote 10.(50.000GS)", "total": 150000, "cliente": { "codigo": "00001", "contribuyente": false, "documentoNumero": "0", "documentoTipo": 5, "email": "", "pais": "PRY", "razonSocial": "CONSUMIDOR FINAL", "tipoOperacion": 2, "celular": "595973527155" }, "condicion": { "entregas": [ { "cambio": 0, "moneda": "PYG", "monto": 45000, "tipo": 1 } ], "tipo": 1 }, "usuario": { "cargo": "Vendedor", "documentoNumero": "0", "documentoTipo": 9, "nombre": "admin" }, "documentoAsociado": [{ "formato": 1, "cdc": "55800695631001001000000112023102610001111110", "monto": 185000, "montoRetencionIva" : 10000, "montoRetencionRenta" : 5000 }, { "formato": 2, "tipoDocumentoImpreso": 1, "timbrado": "12345678", "establecimiento": "002", "punto": "002", "numero": "0000003", "serie": null, "fecha": "2024-09-01", "monto": 186000 }] }; const headers = { `Authorization` : `Bearer api_key_<reemplazar_api_key>` }; axios.post(`https://api.facturasend.com.py/<tenantId>/recibo/create`, data, {headers} ) .then( respuesta => { console.log(respuesta); });
Respuesta de la Petición #
La respuesta de la petición será la siguiente:
{ "success" : true, "reciboList" : [{ "cdc": "55800695631001001000001612021112410311184194", "numero": "001-001-0000001", "xml": "", "estado": "Aprobado", "respuesta_codigo": "0260", "respuesta_mensaje": "Aprobado" }] }
La respuesta de éste Servicio:
Atributos | Tipo | Description |
---|---|---|
success | boolean | true si no hubo errores en la transacción |
error | string | El mensaje de Error, en el caso de que el success = false. |
reciboList | array | El array con la respuesta de cada recibo procesado. Los atributos de éste array se describen en Respuesta reciboList |
A continuación se detalla el contenido del objeto reciboList.
Atributos | Tipo | Description |
---|---|---|
cdc | string | Id único de 44 dígitos, que inicia con 55 generado para el Recibo Digital |
numero | string | Número de Recibo Digital generado en formato 001-001-0000001 |
estado | string | Estado del Recibo Digital. Por lo general se obtiene el estado 2-Aprobado |
xml (opcional) | string | El archivo XML generado del recibo digital. Este elemento solamente se retorna cuando se le pasa el valor true en el atributo xml como queryParam al crear el Recibo, ej: https://api.facturasend.com.py/<tenantId>/lote/create?xml=true |
Recomendaciones #
- No aplica
Validaciones #
- No aplica