Documentación de la API
Referencia completa de la API REST de TukiFact para integrar facturación electrónica en tu sistema.
Autenticación
Todas las solicitudes a la API requieren autenticación mediante una API Key. Incluí tu clave en el header Authorization de cada request.
Header de autenticación
Authorization: Bearer TF_live_xxxxxxxxxxxxxxxxxxxx
URLs Base
Límites por Plan
Los headers X-RateLimit-Limit, X-RateLimit-Remaining y X-RateLimit-Reset se incluyen en cada respuesta.
| Plan | Requests/hora | Documentos/mes |
|---|---|---|
| Free | 100 req/hora | 1,000 documentos |
| Emprendedor | 500 req/hora | 10,000 documentos |
| Negocio | 2,000 req/hora | 50,000 documentos |
| Profesional | 5,000 req/hora | 200,000 documentos |
| Empresa | 20,000 req/hora | Ilimitado |
Formato de Respuesta
Todas las respuestas son en JSON. Las listas incluyen paginación estándar.
Respuesta exitosa
{
"data": { ... },
"meta": {
"requestId": "req_xxxx"
}
}Lista paginada
{
"data": [ ... ],
"pagination": {
"page": 1,
"pageSize": 20,
"total": 150,
"totalPages": 8
}
}Códigos de Error
| Código | Nombre | Descripción |
|---|---|---|
| 400 | Bad Request | Datos inválidos en el cuerpo de la solicitud |
| 401 | Unauthorized | API Key ausente, inválida o expirada |
| 403 | Forbidden | Sin permisos para este recurso o acción |
| 404 | Not Found | El recurso solicitado no existe |
| 409 | Conflict | El documento ya fue emitido o hay un conflicto de estado |
| 422 | Unprocessable Entity | Error de validación SUNAT en el XML generado |
| 429 | Too Many Requests | Límite de requests por hora excedido |
| 500 | Internal Server Error | Error interno — contactar soporte |
| 503 | Service Unavailable | SUNAT no disponible temporalmente, reintentar |
Endpoints
Documentos
POST
/v1/documentsGET
/v1/documentsGET
/v1/documents/:idGET
/v1/documents/:id/pdfGET
/v1/documents/:id/xmlGET
/v1/documents/:id/statusPOST
/v1/documents/:id/voidClientes
GET
/v1/customersPOST
/v1/customersGET
/v1/customers/:idPUT
/v1/customers/:idDELETE
/v1/customers/:idSeries
GET
/v1/seriesPOST
/v1/seriesGET
/v1/series/:id/next-numberWebhooks
GET
/v1/webhooksPOST
/v1/webhooksPUT
/v1/webhooks/:idDELETE
/v1/webhooks/:idPOST
/v1/webhooks/:id/testNotificaciones
GET
/v1/notificationsPOST
/v1/notifications/:id/read