Crear una factura de exportación
Este endpoint está diseñado para facilitar la generación y emisión de facturas de exportación electrónicas. Para utilizarlo, necesitas realizar un POST request a `/dte/fex``, incluyendo la información necesaria en el cuerpo de la solicitud.
Detalles Técnicos
- HTTP Method: POST
- URL:
https://api.facturallama.com/dte/fex
- Headers:
- X-API-Key: Tu API key.
- X-API-Version: La versión de la API que estás utilizando.
- Content-Type: application/json
Request Body
A continuación se presenta una descripción detallada de las propiedades que puedes incluir en el cuerpo de tu solicitud, así como las validaciones y formatos que debes tener en cuenta.
Propiedades Principales
Propiedad | Tipo | Validación | Descripción |
---|---|---|---|
id | UUID | Obligatorio. | Identificador del DTE (este valor se convertira en el código de generación para el Ministerio de Hacienda). |
recipient | Object | Obligatorio. Ver detalles. | Información del destinatario. |
itemType | Enum | Obligatorio.. | Tipo de Ítem. Valores: BIENES , SERVICIOS , BIENES_Y_SERVICIOS |
items | Array | Obligatorio. Ver detalles. | Lista de ítems. |
generatedAt | Date | Opcional. | Fecha de generación del DTE. |
paymentType | Enum | Default: CONTADO | Tipo de pago. Valores: CONTADO , CREDITO , OTRO |
branchOffice | Object | Opcional. Ver detalles. | Datos de la sucursal y punto de venta. |
thirdPartySale | Object | Opcional. Ver detalles. | Información de venta a terceros. |
attachments | Array | Opcional. Máximo de 20 objetos. Ver detalles. | Lista de adjuntos. |
itemsNoGrav | Array | Opcional. Ver detalles. | Lista de ítems no gravados. |
discount | Number | Opcional. Debe ser un número decimal positivo. | Descuento global. |
taxArea | String | Opcional. Debe coincidir con códigos de CAT-027. | Código de Recinto Fiscal. Si no se coloca el DTE es aprobado pero, con observaciones del Ministerio de Hacienda. |
taxRegimen | String | Opcional. Debe coincidir con códigos de CAT-028. | Código de régimen. Si no se coloca el DTE es aprobado pero, con observaciones del Ministerio de Hacienda. |
incoterms | Enum | Opcional. | Incoterms. Valores: EXW , FCA , CPT , CIP , DAP , DPU , DDP , FAS , FOB , CFR , CIF , DAT , DAF , DES , DEQ ,DDU |
comments | String | Opcional. | Observaciones. |
insurance | Number | Opcional. Debe ser un número decimal positivo. | Seguro. |
freight | Number | Opcional. Debe ser un número decimal positivo. | Flete. |
appendices | Array | Opcional. Ver detalles. | Lista de apendices. |
Propiedades Anidadas
branchOffice
Propiedad | Tipo | Validación | Descripción |
---|---|---|---|
mhCode | String | Obligatorio. Debe ser un string de exactamente 4 caracteres. | Identificador de la sucursal. |
posNumber | Number | Obligatorio. Debe ser un número positivo. El valor no puede ser mayor a 999. | Identificador del punto de venta. |
recipient
Propiedad | Tipo | Validación | Descripción |
---|---|---|---|
name | String | Obligatorio. Máximo: 250 caracteres. | Nombre del destinatario. |
country | String | Obligatorio. Debe coincidir con alguno de los códigos asignados del estandar ISO 3166-1 alpha-2. Ej: SV | Código de país. |
address | String | Obligatorio. Máximo: 300 caracteres. | Dirección del destinatario. |
contributorType | Enum | Obligatorio. | Tipo de Contribuyente. Valores: NATURAL , JURIDICA |
economicActivity | String | Obligatorio. Debe coincidir con códigos de CAT-019. | Código de actividad económica. |
identificationDocument | Object | Obligatorio. Ver detalles. | Documento de identificación del destinatario. |
email | String | Obligatorio. Máximo: 100 caracteres. Debe ser un correo electrónico válido. | Correo electrónico del destinatario. |
commercialName | String | Opcional. Máximo: 150 caracteres. | Nombre Comercial del destinatario. |
contributorSize | Enum | Opcional. | Tamaño de Contribuyente. Valores: GRANDE , MEDIANO , OTROS |
phone | String | Opcional. Debe ser un string entre 8 y 25 números. | Número de teléfono del destinatario. |
recipient.identificationDocument
Propiedad | Tipo | Validación | Descripción |
---|---|---|---|
type | Enum | Obligatorio | Tipo de documento. Valores: NIT , DUI , PASAPORTE , CARNET_RESIDENTE , OTRO |
number | String | Obligatorio | Número del documento de identificación. DUI: #########; NIT: ##############. Máximo: 20 caracteres. |
thirdPartySale
Propiedad | Tipo | Validación | Descripción |
---|---|---|---|
name | String | Obligatorio. Máximo: 150 caracteres. | Nombre de la tercera parte. |
identificationDocument | Object | Obligatorio. Ver detalles. | Documento de identificación de la tercera parte. |
thirdPartySale.identificationDocument
Propiedad | Tipo | Validación | Descripción |
---|---|---|---|
type | Enum | Obligatorio. | Tipo de documento. Valores: NIT , DUI , PASAPORTE , CARNET_RESIDENTE , OTRO . |
number | String | Obligatorio. | Número del documento de identificación. DUI: #########; NIT: ############## |
attachments
Propiedad | Tipo | Validación | Descripción |
---|---|---|---|
code | Enum | Obligatorio. | Código del adjunto. Valores: EMISOR , RECEPTOR , TRANSPORTE |
details | String | Opcional. Obligatorio cuando code es EMISOR o RECEPTOR. Máximo: 300 caracteres. | Detalles o descripción del adjunto. |
driver | Object | Opcional. Ver detalles. | Información sobre el conductor en caso de que el adjunto se refiera a un servicio de transporte. |
attachments[n].driver
Propiedad | Tipo | Validación | Descripción |
---|---|---|---|
name | String | Obligatorio. Máximo: 200 caracteres. | Nombre del conductor. |
documentIdentificationNumber | String | Obligatorio. | Número del documento de identificación. |
transportIdentificationNumber | String | Obligatorio. | Número de placas del vehiculo. |
transport | Enum | Obligatorio. | Tipo de Transporte. Valores: TERRESTRE , MARITIMO , AEREO , TERRESTRE_MARITIMO , TERRESTRE_AEREO , MARITIMO_AEREO , TERRESTRE_MARITIMO_AEREO |
items
Propiedad | Tipo | Validación | Descripción |
---|---|---|---|
description | String | Obligatorio. Máximo: 1000 caracteres. | Descripción del ítem. |
quantity | Number | Obligatorio. Debe ser un número entero positivo. | Cantidad del ítem. |
unitMeasure | Enum | Opcional. Default: OTRA | Unidad de medida del ítem. Contiene diversas opciones, como METRO , YARDA , PIE , KILOGRAMO , etc. |
unitPrice | Number | Obligatorio. Debe ser un número decimal positivo. | Precio unitario del ítem. |
internalCode | String | Opcional, Máximo: 25 caracteres. | Código interno del ítem. |
discountAmount | Number | Opcional. Debe ser un número decimal positivo. | Monto de descuento aplicado al ítem. |
itemsNoGrav
Propiedad | Tipo | Validación | Descripción |
---|---|---|---|
description | String | Obligatorio. Máximo: 1000 caracteres. | Descripción del ítem. |
amount | Number | Obligatorio. Debe ser un número decimal positivo. | Monto del ítem que no está gravado. |
internalCode | String | Opcional. Máximo: 25 caracteres. | Código interno del ítem. |
appendices
Propiedad | Tipo | Validación | Descripción |
---|---|---|---|
name | String | Obligatorio.. Máximo: 25 caracteres. | CAMPO del apéndice. |
description | String | Obligatorio. Máximo: 50 caracteres. | ETIQUETA del apéndice |
value | String | Obligatorio. Máximo: 150 caracteres. | VALOR del apéndice. |
Response Body
Una vez procesada tu solicitud, el servidor responderá con un conjunto de datos que confirmarán la creación de la factura electrónica o, en caso de error, proporcionarán detalles sobre lo que salió mal.
Propiedad | Tipo | Descripción |
---|---|---|
id | UUID | Identificador único del DTE. |
companyId | UUID | Identificador único de la empresa. |
controlNumber | String | Este número es utilizado para identificar el DTE ante el Ministerio de Hacienda (MH). |
environment | Enum | Ambiente. Valores: TEST , LIVE . |
type | Enum | Tipo de documento fiscal. FEX . |
version | Integer | Versión del DTE. |
status | Enum | Estado del DTE. Valores: CREATED , PROCESSING , APPROVED , REJECTED , INVALIDATED . |
mhResponse | Object | Respuesta del API del Ministerio de Hacienda. |
generatedAt | Timestamp | Fecha y hora de creación del DTE asignado manualmente. |
createdAt | Timestamp | Fecha y hora de creación del DTE. |
Ejemplo
Copia y pega el código en una terminal o en tu editor de código favorito. Reemplaza <Tu API Key>
con la API key que generaste en el paso anterior.
- cURL
curl --location 'https://api.facturallama.com/dte/fex' \
--header 'X-API-Version: 1' \
--header 'Content-Type: application/json' \
--header 'X-API-Key: TU <API_KEY>' \
--data '{
"id": "TU <UUID>",
"itemType": "BIENES",
"items": [
{
"description": "Camisa",
"unitPrice": 10.00,
"quantity": 1
}
],
"recipient": {
"name": "Hugo Gonzalez",
"country": "SV",
"address": "Rpto. San Fernando",
"contributorType": "NATURAL",
"economicActivity": "10005",
"identificationDocument": {
"type": "OTRO",
"number": "12345"
},
"email": "hugo@facturallama.com"
}
}'