Enviás los datos del documento como JSON. Dosel lo arma, lo firma, lo presenta ante Hacienda, reintenta cuando el ATV falla y te devuelve el documento aceptado con su XML firmado y su PDF.
curl -X POST https://dosel.lamboz.dev/v1/documents \
-H "Authorization: Bearer dos_sandbox_…" \
-d '{
"document": {
"document_type": "invoice",
"receiver": { "name": "...", "tax_id": { "scheme": "cedula_juridica", "value": "..." } },
"lines": [{
"classification_code": "8511000000000",
"description": "Plan Pro",
"unit_price": 25000
}]
}
}'
curl -X POST https://dosel.lamboz.dev/v1/documents \
-H "Authorization: Bearer dos_sandbox_…" \
-d '{
"document": {
"document_type": "simplified_invoice",
"lines": [{
"classification_code": "4419010000000",
"description": "Café 340 g",
"unit_price": 4200
}]
}
}'
curl -X POST https://dosel.lamboz.dev/v1/documents \
-H "Authorization: Bearer dos_sandbox_…" \
-d '{
"document": {
"document_type": "credit_note",
"references": [{
"tipo_doc": "01",
"numero": "50613082501031012345670010000000011234567890",
"codigo": "01",
"razon": "Anula documento"
}],
"lines": [{ "classification_code": "8511000000000",
"description": "Plan Pro", "unit_price": 25000 }]
}
}'
La llave de sandbox se crea al registrarte, sin certificado ni tarjeta.
Sumá un Idempotency-Key propio para reintentar sin duplicar.
Devuelve la clave fiscal, el estado y el XML firmado. Webhook en cada cambio.
document_type.{
"error": {
"code": "validation_failed",
"message": "Lines classification code no existe",
"details": { "lines.classification_code": [...] }
}
}
Los errores de validación se devuelven antes de firmar, así que no consumen consecutivo.
Dosel acepta el documento, lo firma, asigna la clave fiscal y encola la presentación. Cuando el ATV está caído la cola reintenta con backoff exponencial hasta que Hacienda responda.
Creá la cuenta, recibí tu llave dos_sandbox_… y
enviá tu primer documento contra el ambiente de pruebas de Hacienda.
Sin tarjeta. Al crear la llave aceptás los términos de servicio.