Facturación electrónica
Las diez operaciones POST del Edge Function lynx-einvoicing, de transmitir a las notas crédito.
Todas las operaciones viven bajo POST /functions/v1/lynx-einvoicing/<ruta>, reciben org_id y usan las cabeceras de autenticación. La clave de adapter-dian nunca sale del servidor: el navegador solo habla con esta función.
Facturas
| Ruta | Cuerpo | Hace |
|---|---|---|
/transmit |
org_id, invoice_ids[] (≤50), reissue? |
Transmite facturas a la DIAN. Devuelve results[]. |
/refresh |
org_id, invoice_id |
Reconsulta en la DIAN el estado de una factura transmitida. |
/representation |
org_id, invoice_id, regenerate? |
Deja al día la representación gráfica (PDF) y devuelve su ruta en el bucket. |
/deliver |
org_id, invoice_id, to? |
Entrega la factura; to cambia el correo destinatario. |
El PDF vive en un bucket privado
/representation devuelve path, filename, stamped, cached y
generated_at. Baja el archivo del bucket lynx-documentos con tu sesión — la
función lo mantiene al día, no envía los bytes.
Notas crédito
| Ruta | Cuerpo | Hace |
|---|---|---|
/credit-notes |
org_id, invoice_id, concept_code, reason, line_ids? |
Emite una nota crédito sobre una factura. |
/credit-notes/reissue |
org_id, credit_note_id |
Reemite una nota crédito que quedó en error. |
/credit-notes/representation |
org_id, credit_note_id, regenerate? |
Deja al día el PDF de la nota crédito. |
/credit-notes/refresh |
org_id, credit_note_id |
Reconsulta en la DIAN el estado de una nota crédito. |
POST /functions/v1/lynx-einvoicing/credit-notes
curl -X POST "$LYNX_SUPABASE_URL/functions/v1/lynx-einvoicing/credit-notes" \
-H "Authorization: Bearer $LYNX_TOKEN" \
-H "apikey: $LYNX_ANON_KEY" \
-H "Content-Type: application/json" \
-d '{ "org_id": "3f1c9a2e-…", "invoice_id": "7b2e…", "concept_code": "2", "reason": "Anulación", "line_ids": [] }'
# 200 OK
{ "credit_note_id": "a12f…", "status": "emitida", "message": "Nota crédito emitida" }Integraciones (solo admin)
| Ruta | Cuerpo | Hace |
|---|---|---|
/integrations/test |
org_id, company_id, service, environment, api_key? |
Prueba una credencial de proveedor. |
/integrations/save |
org_id, company_id, service, environment, api_key?, url?, settings? |
Guarda la credencial; una clave que no autentica responde 422. |
service es uno de adapter-dian, docsgen, deliver; environment es uat o prd. Ambas exigen el rol admin.
No se documenta a propósito
lynx-reconcile no es parte de esta API: es un trabajo programado que invoca
pg_cron con su propio secreto, no una persona.