View Categories

Crear un documento electrónico

5 minutos de lectura

Esta invocación, crea uno o varios documentos electrónicos (hasta un máximo de 50 del mismo tipo) y los envía a la SIFEN utilizando el proceso por lotes o asíncrono.

Se denomina proceso asíncrono, cuando no hay una respuesta inmediata de aprobación o rechazo desde la SIFEN sobre los documentos enviados. La aprobación o rechazo del documento enviado, debe consultarse mediante otro proceso.

En éste caso el documento queda en FacturaSend con el Estado 0-Generado.

Todos los documentos electrónicos enviados utilizando ésta petición pueden ser visualizados en la opción de Lotes, desde la consola de FacturaSend.

Endpoint (URL) #

POST https://api.facturasend.com.py/<tenantId>/lote/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 Documento Electrónico se envían en el cuerpo de la petición (BODY) en formato JSON.

Para detalles de la estructura completa de atributos JSON que puede ser enviado como parámetro consulte la documentación Estructura JSON de un DE

Parámetros (Query Param) #

También se pueden especificar algunos parámetros de consulta (Query Param) junto con la URL:

ParámetroRequeridoDescripción
draftNoEspecifique true para generar el documento electrónico en borrador. Un DE en borrador no se envia a la SET hasta que se cofnirma. Su valor por defecto es false.
xmlNoEspecifique true para obtener en el resultado el/los XML/s generado/s en la operación. Su valor por defecto es false.
qrNoEspecifique true para obtener en el resultado el/los QR/s generado/s en la operación. Su valor por defecto es false.
taxNoEspecifique true para obtener en el resultado el valor total de los impuestos Iva 5 e Iva 10 del XML. Su valor por defecto es false.

Por ejemplo, la petición puede ser realizada de ésta manera:

POST https://api.facturasend.com.py/<tenantId>/lote/create?draft=true&xml=true&qr=true&tax=true.

Vea las secciones correspondientes para Confirmar o Rechazar un borrador.

Tenga en cuenta que a diferencia del método síncrono, aquí se envía un array de objetos, por lo cual se debe empezar el JSON con corchetes [ ] aunque solo vaya a enviar 1 (un) documento. El límite de documentos es de hasta 50 del mismo, por ejemplo 50 facturas electrónicas.

Ejemplo de llamadas #

curl \  
  -X \
  POST "https://api.facturasend.com.py/<tenantId>/de/create" \
  -H "Authorization: Bearer api_key_<reemplazar_api_key>" \
  -H 'Content-Type: application/json; charset=utf-8' \
  --data-raw '{
    "tipoDocumento" : 1,
    "establecimiento" : 1,
    "punto" : "001",
    "numero" : 5, 
    "descripcion" : "Aparece en el documento",
    "observacion" : "Cualquier informacion de marketing, publicidad, promociones, sorteos, etc. para el receptor",
    "fecha" : "2021-10-19T10:11:00",
    "tipoEmision" : 1,
    "tipoTransaccion" : 1,
    "tipoImpuesto" : 1,
    "moneda" : "PYG",
    "cliente" : {
        "contribuyente" : true,
        "ruc" : "2005001-1",
        "razonSocial" : "Marcos Adrian Jara Rodriguez",
        "nombreFantasia" : "Marcos Adrian Jara Rodriguez",
        "tipoOperacion" : 1,
        "direccion" : "Avda Calle Segunda y Proyectada",
        "numeroCasa" : "1515",
        "departamento" : 11,
        "departamentoDescripcion" : "ALTO PARANA",
        "distrito" : 143,
        "distritoDescripcion" : "DOMINGO MARTINEZ DE IRALA",
        "ciudad" : 3344,
        "ciudadDescripcion" : "PASO ITA (INDIGENA)",
        "pais" : "PRY",
        "paisDescripcion" : "Paraguay",
        "tipoContribuyente" : 1,
        "documentoTipo" : 1,
        "documentoNumero" : "2324234",
        "telefono" : "061229382",
        "celular" : "0983123765",
        "email" : "cliente@empresa.com, cliente@personal.com",
        "codigo" : "1548"
    },
    "usuario" : {
        "documentoTipo" : 1,
        "documentoNumero" : "157264",
        "nombre" : "Marcos Jara",
        "cargo" : "Vendedor"
    },
    "factura" : {
        "presencia" : 1
    },
    "condicion" : {
        "tipo" : 1,
        "entregas" : [{ 
            "tipo" : 1,
            "monto" : "150000",
            "moneda" : "PYG",
            "monedaDescripcion" : "Guarani",
            "cambio" : 0.0
        }, { 
            "tipo" : 3,
            "monto" : "150000",
            "moneda" : "PYG",
            "monedaDescripcion" : "Guarani",
            "cambio" : 0.0,
            "infoTarjeta" : {
                "numero" : 1234,
                "tipo" : 1,
                "tipoDescripcion" : "Dinelco",
                "titular" : "Marcos Jara",
                "ruc" : "69695654-1",
                "razonSocial" : "Bancard",
                "medioPago" : 1,
                "codigoAutorizacion" : 232524234
            }
        }, { 
            "tipo" : 2,
            "monto" : "150000",
            "moneda" : "PYG",
            "monedaDescripcion" : "Guarani",
            "cambio" : 0.0,
            "infoCheque" : {
                "numeroCheque": "32323232",
                "banco" : "Sudameris"
            }
        }],
        "credito" : {
            "tipo" : 1,
            "plazo" : "30 días",
            "cuotas" : 2,
            "montoEntrega" : 1500000.00,
            "infoCuotas" : [{
                "moneda" : "PYG",
                "monto" : 800000.00,
                "vencimiento" : "2021-10-30"
            }, {
                "moneda" : "PYG",
                "monto" : 800000.00,
                "vencimiento" : "2021-11-30"
            }]
        }
    },
    "items" : [{
        "codigo" : "A-001",
        "descripcion": "Producto o Servicio", 
        "observacion": "Información adicional o complementaria sobre el producto", 
        "ncm": "123456",
        "unidadMedida": 77,
        "cantidad": 10.5,
        "precioUnitario": 10800,
        "cambio": 0.0,
        "ivaTipo" : 1,
        "ivaBase" : 100,
        "iva" : 5,
        "lote" : "A-001",
        "vencimiento" : "2022-10-30",
        "numeroSerie" : "",
        "numeroPedido" : "",
        "numeroSeguimiento" : ""
    }]
  }'

import axios from 'axios';
const data = {
  "tipoDocumento" : 1,
  "establecimiento" : 1,
  "punto" : "001",
  "numero" : 5, 
  "descripcion" : "Aparece en el documento",
  "observacion" : "Cualquier informacion de marketing, publicidad, promociones, sorteos, etc. para el receptor",
  "fecha" : "2021-10-19T10:11:00",
  "tipoEmision" : 1,
  "tipoTransaccion" : 1,
  "tipoImpuesto" : 1,
  "moneda" : "PYG",
  "cliente" : {
      "contribuyente" : true,
      "ruc" : "2005001-1",
      "razonSocial" : "Marcos Adrian Jara Rodriguez",
      "nombreFantasia" : "Marcos Adrian Jara Rodriguez",
      "tipoOperacion" : 1,
      "direccion" : "Avda Calle Segunda y Proyectada",
      "numeroCasa" : "1515",
      "departamento" : 11,
      "departamentoDescripcion" : "ALTO PARANA",
      "distrito" : 143,
      "distritoDescripcion" : "DOMINGO MARTINEZ DE IRALA",
      "ciudad" : 3344,
      "ciudadDescripcion" : "PASO ITA (INDIGENA)",
      "pais" : "PRY",
      "paisDescripcion" : "Paraguay",
      "tipoContribuyente" : 1,
      "documentoTipo" : 1,
      "documentoNumero" : "2324234",
      "telefono" : "061229382",
      "celular" : "0983123765",
      "email" : "cliente@empresa.com, cliente@personal.com",
      "codigo" : "1548"
  },
  "usuario" : {
      "documentoTipo" : 1,
      "documentoNumero" : "157264",
      "nombre" : "Marcos Jara",
      "cargo" : "Vendedor"
  },
  "factura" : {
      "presencia" : 1
  },
  "condicion" : {
      "tipo" : 1,
      "entregas" : [{ 
          "tipo" : 1,
          "monto" : "150000",
          "moneda" : "PYG",
          "monedaDescripcion" : "Guarani",
          "cambio" : 0.0
      }, { 
          "tipo" : 3,
          "monto" : "150000",
          "moneda" : "PYG",
          "monedaDescripcion" : "Guarani",
          "cambio" : 0.0,
          "infoTarjeta" : {
              "numero" : 1234,
              "tipo" : 1,
              "tipoDescripcion" : "Dinelco",
              "titular" : "Marcos Jara",
              "ruc" : "69695654-1",
              "razonSocial" : "Bancard",
              "medioPago" : 1,
              "codigoAutorizacion" : 232524234
          }
      }, { 
          "tipo" : 2,
          "monto" : "150000",
          "moneda" : "PYG",
          "monedaDescripcion" : "Guarani",
          "cambio" : 0.0,
          "infoCheque" : {
              "numeroCheque": "32323232",
              "banco" : "Sudameris"
          }
      }],
      "credito" : {
          "tipo" : 1,
          "plazo" : "30 días",
          "cuotas" : 2,
          "montoEntrega" : 1500000.00,
          "infoCuotas" : [{
              "moneda" : "PYG",
              "monto" : 800000.00,
              "vencimiento" : "2021-10-30"
          }, {
              "moneda" : "PYG",
              "monto" : 800000.00,
              "vencimiento" : "2021-11-30"
          }]
      }
  },
  "items" : [{
      "codigo" : "A-001",
      "descripcion": "Producto o Servicio", 
      "observacion": "Información adicional o complementaria sobre el producto", 
      "ncm": "123456",
      "unidadMedida": 77,
      "cantidad": 10.5,
      "precioUnitario": 10800,
      "cambio": 0.0,
      "ivaTipo" : 1,
      "ivaBase" : 100,
      "iva" : 5,
      "lote" : "A-001",
      "vencimiento" : "2022-10-30",
      "numeroSerie" : "",
      "numeroPedido" : "",
      "numeroSeguimiento" : ""
  }]
};
const headers = {
  `Authorization` : `Bearer api_key_<hdiweuw-92jwwle...>`
};

axios.post(`https://api.facturasend.com.py/<tenantId>/de/create`, 
  data, 
  {headers})
.then( respuesta => {
  console.log(respuesta);
});

Respuesta de la Petición #

La respuesta de la petición será la siguiente:

{ 
  "success" : true,
  "result" : {
    "deList" : [{
      "cdc": "01800695631001002100694612021112410311184194",
      "numero": "001-001-0000001",
      "xml": "Si se pasa el queryParam xml",
      "qr": "Si se pasa el queryParam qr",
      "dIVA5": "Si se pasa el queryParam tax",
      "dIVA10": "Si se pasa el queryParam tax",
      "fechaEmision": "",
      "fechaFirma": ""
    }],
    "loteId" : 22
  },
}

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.
erroresarrayAquí se mostrarán una lista de errores, indicando el error, y el número de índice del archivo XML con Error.
deListarrayEl array con la respuesta de cada DE procesado.

Los atributos de éste array se describen en Respuesta deList
loteIdnumberEl número de lote generado para la solicitud.

A continuación se detalla el contenido del objeto deList.

AtributosTipoDescription
cdcstringId único de 44 dígitos generado para el Documento Electrónico
numerostringNúmero de Documento Electrónico generado en formato 001-001-0000001
estadostringEstado del Documento Electrónico. Por lo general se obtiene el estado 0-Generado
xml
(opcional)
stringEl archivo XML generado del documento electronico.
Este elemento solamente se retorna cuando se le pasa el valor true en el atributo xml como queryParam al crear el DE o el LOTE, ej:
https://api.facturasend.com.py/<tenantId>/de/create?xml=true
qr
(opcional)
stringEl valor del código QR generado del documento electronico.
Este elemento solamente se retorna cuando se le pasa el valor true en el atributo qr como queryParam al crear el DE o el LOTE, ej:
https://api.facturasend.com.py/<tenantId>/de/create?qr=true
dIVA5
dIVA10
(opcional)
numberEl valor del impuesto IVA 5 e IVA 10 del documento electronico.
Este elemento solamente se retorna cuando se le pasa el valor true en el atributo tax como queryParam al crear el DE o el LOTE, ej:
https://api.facturasend.com.py/<tenantId>/de/create?tax=true
fechaEmisionstringFecha del Servidor de emisión del documento.
fechaFirmastringFecha real del Servidor en el cual se firmó el documento.

Recomendaciones #

  • El implementador debe utilizar el método asíncrono desde su sistema, ya que es el único método permitido por SIFEN en producción.

Validaciones #

  • Todos los documentos que se envían utilizando éste método, deben ser del mismo tipo, por ejemplo todos ellos factura electrónica.
  • Puede enviar como mínimo 1 documento y como máximo 50 por llamada, si tienen más debe realizarlo en una siguiente llamada.