Primeros pasos
Cómo funciona
La API permite crear documentos tributarios electrónicos (facturas, boletas, notas de crédito y otros), registrar clientes, contactos, sucursales y productos, y consultar lo que ya está en Matika. Todas las llamadas usan JSON sobre HTTPS y se autentican con un token OAuth 2.0.
Las rutas de esta página son relativas a . El campo de arriba cambia la URL base y actualiza todos los ejemplos.
CompanyId debe ser el RUT de esa misma empresa: si no coincide, la operación se rechaza.Seguridad
Autenticación
Con el client_id, el client_secret y el usuario que Matika le entregó se pide un token:
La respuesta trae access_token y su vigencia en expires_in (segundos). Se envía en cada llamada con el encabezado Authorization:
Si el token falta o venció, el servidor responde 401. Pida uno nuevo y repita la llamada.
Formato
Convenciones
- Cuerpos envueltos. Los POST reciben un objeto con una sola propiedad que lleva el nombre del parámetro (por ejemplo
{"DteSiiSDT": [ … ]}). Las respuestas también vienen envueltas ({"DtePostResult": [ … ]}). - El resultado va en el cuerpo, no en el código HTTP. Una operación procesada responde
200aunque haya fallado. ReviseErrorCode: "99" significa que se grabó; cualquier otro valor es un error yErrorMessagedice por qué. - Paginación. Los listados reciben
Pagenumber(desde 1) yPagesize. Una página vacía responde200con la lista vacía y un mensaje "No se encontraron registros" enMessages. - Fechas en formato
AAAA-MM-DD. Montos como número, con punto decimal. - Altas que también actualizan. Clientes, contactos, sucursales y productos se crean si el identificador no existe y se actualizan si ya existe.
Referencia
Códigos de error al emitir documentos
Valores de ErrorCode que devuelve POST /Insert, uno por documento enviado. Orden indica a qué documento del arreglo corresponde.
| Código | Qué pasó |
|---|---|
| 99 | Documento grabado. Folio trae el folio asignado. |
| 0 | Dato básico inválido: el tipo de documento, la empresa o el servicio no existen, o el documento venía vacío. |
| 1 | El vendedor (SellerId) no existe. |
| 2 | El cliente (LegEntId) no existe. Créelo antes con /InsertClient. |
| 3 | La sucursal (SubId o LegEntSubId) no existe. |
| 5 | Un producto del detalle (ProdId) no existe. |
| 6 | El documento no pasó las validaciones de Matika. El detalle viene en ErrorMessage. |
| 7 | Una línea de detalle no pasó las validaciones. |
| 8 · 9 · 10 | Error al grabar el documento, sus pagos o sus imágenes, respectivamente. |
| 12 | El folio informado ya fue enviado al SII y no se puede modificar. |
| 13 | El folio informado no existe. |
En las altas de clientes, contactos, sucursales y productos, "99" también significa éxito; ante cualquier otro código, lea ErrorMessage.
Buenas prácticas
Recomendaciones
- Envíe un documento por llamada.
/Insertacepta un arreglo, pero con un documento por llamada cada error queda asociado sin ambigüedad a lo que se envió. - No reintente a ciegas. Si una llamada a
/Insertse corta sin respuesta, el documento puede haberse creado igual. Antes de repetirla, búsquelo con/ListDteSii: un reintento conDteSiiFolio = 0crea un documento nuevo con otro folio. - Cree primero los maestros. El cliente, su sucursal y los productos deben existir antes de emitir el documento.
- Mensajes largos.
ErrorMessagellega truncado a 255 caracteres. Si no alcanza para entender el problema, escriba a soporte con elOrdeny la hora de la llamada.
