View Categories

Crear un Recibo Digital

4 minutos de lectura

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

CampoValor
AuthorizationBearer api_key_reemplazar_api_key
Content-Typeapplication/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ámetroRequeridoDescripción
xmlNoEspecifique 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:

AtributosTipoDescription
successbooleantrue si no hubo errores en la transacción
errorstringEl mensaje de Error, en el caso de que el success = false.
reciboListarrayEl 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.

AtributosTipoDescription
cdcstringId único de 44 dígitos, que inicia con 55 generado para el Recibo Digital
numerostringNúmero de Recibo Digital generado en formato 001-001-0000001
estadostringEstado del Recibo Digital. Por lo general se obtiene el estado 2-Aprobado
xml
(opcional)
stringEl 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