En esta página

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.