Emitir DTE por API: POST /api/{rut}/emitir
El endpoint principal de la API. Envía un JSON con el emisor, receptor e ítems y YAMT genera el XML, lo firma con tu certificado, agrega el timbre PDF417 y lo envía al SII. Esta página documenta el endpoint, los tipos de documento soportados, la estructura del request y la respuesta.
Emitir un DTE #
Un único endpoint emite cualquier tipo de documento; el campo type decide cuál. También puedes usar POST /api/emitir pasando issuer_rut en el body.
Requiere rol owner o editor. En producción, antes de emitir se valida que el emisor tenga certificado digital vigente y folios CAF disponibles para ese tipo.
Tipos de documento #
Valores válidos para type:
| type | Documento | Notas |
|---|---|---|
| 33 | Factura electrónica | Afecta a IVA |
| 34 | Factura exenta | Sin IVA |
| 39 | Boleta electrónica | Receptor opcional |
| 41 | Boleta exenta | Receptor opcional, sin IVA |
| 46 | Factura de compra | Retención |
| 52 | Guía de despacho | Admite shipping |
| 56 | Nota de débito | Requiere refs |
| 61 | Nota de crédito | Requiere refs (usada para anular) |
Cuerpo del request #
Todos los campos van en JSON. Los montos son enteros en pesos (CLP); YAMT calcula neto, IVA, exento y total por ti.
Campos raíz
| Campo | Tipo | Descripción | |
|---|---|---|---|
type | int | req | Código del DTE (ver tabla de tipos). |
receiver | object | req* | Datos del receptor. Opcional en boletas 39/41. |
items | array | req | Líneas del documento (mín. 1). |
refs | array | cond | Referencias. Obligatorio para notas 56 y 61. |
shipping | object | opt | Datos de transporte para guías (52). |
date | string | opt | Fecha de emisión YYYY-MM-DD. Default: hoy. |
payment_method | int | opt | Forma de pago (1 contado, 2 crédito…). |
signer_rut | string | opt | RUT del firmante si el emisor tiene más de un certificado. |
issuer_rut | string | opt | RUT emisor (solo si usas /api/emitir sin RUT en la URL). |
receiver — receptor
| Campo | Tipo | Descripción | |
|---|---|---|---|
rut | string | req* | RUT del receptor, formato 12345678-9. |
name | string | req* | Razón social. |
activity | string | opt | Giro. |
address | string | opt | Dirección. |
city | string | opt | Comuna. |
state | string | opt | Ciudad. |
email | string | opt | Correo para envío del DTE. |
req* — rut y name son obligatorios salvo en boletas (39/41), donde el receptor puede omitirse.
items[] — líneas
| Campo | Tipo | Descripción | |
|---|---|---|---|
name | string | req | Nombre / glosa del ítem. |
price | int | req | Precio unitario en CLP (> 0). |
qty | number | opt | Cantidad. Default 1. |
discount | int | opt | Descuento en CLP sobre la línea. |
exempt | bool | opt | Marca la línea como exenta de IVA. |
refs[] — referencias (obligatorio en NC/ND)
| Campo | Tipo | Descripción | |
|---|---|---|---|
type | int | req | Tipo del documento referenciado. |
folio | int | req | Folio del documento referenciado. |
date | string | opt | Fecha del documento referenciado. |
reason | string | opt | Motivo / glosa de la referencia. |
shipping — transporte (guías 52)
| Campo | Tipo | Descripción |
|---|---|---|
dispatch_type | int | Tipo de despacho SII. |
address | string | Dirección de destino. |
city | string | Comuna de destino. |
state | string | Ciudad de destino. |
Respuesta #
Respuesta 200 al emitir en producción. En sandbox, sii es null.
{
"ok": true,
"env": "live",
"document": {
"id": 4821,
"type": 33,
"type_name": "Factura electrónica",
"folio": 137,
"date": "2026-07-25",
"issuer": { "rut": "76123456-7", "name": "Mi Empresa SpA" },
"receiver": { "rut": "12345678-9", "name": "Comercial Ejemplo Ltda", "email": "pagos@ejemplo.cl" },
"amounts": { "net": 246000, "tax": 46740, "tax_rate": 19, "exempt": 0, "total": 292740 },
"items": [ { "name": "Asesoría mensual", "qty": 1, "price": 150000, "subtotal": 150000, "exempt": false } ],
"refs": null,
"shipping": null
},
"sii": { "status": "enviado", "track_id": "9182736450", "response": "..." },
"pdf_url": "https://app.yamt.com/api/76123456-7/pdf/33/137?tk=abc123",
"xml_url": "https://app.yamt.com/api/76123456-7/xml/33/137?tk=abc123"
}
| Campo | Descripción |
|---|---|
env | sandbox o live. |
document.id | Identificador único del DTE en YAMT. |
document.folio | Folio asignado del CAF. |
document.amounts | Montos calculados: net, tax, tax_rate, exempt, total. |
sii.status | Estado del envío: enviado, error_envio. null en sandbox. |
sii.track_id | Track ID del SII para seguimiento. |
pdf_url / xml_url | URLs de descarga con token público tk (no requieren API key). |
Si el DTE se guardó pero falló el envío al SII, la respuesta incluye warning y sii.track_id vacío. Reintenta el envío con POST /api/emision_reenviar.