Ves al contingut

Receptari ​

Exemples dels fluxos habituals. Substitueix bk_live_xxx per la teva clau i … pels UUID del tenant. Tots els imports són strings. Si fas servir OAuth2, substitueix bk_live_xxx pel teu access token bo_at_… als mateixos exemples. Consulta Autenticació i scopes.

Comprovar la clau ​

bash
curl https://api.test.bilteo.com/api/v1/ping \
  -H "Authorization: Bearer bk_live_xxx"
# → { "pong": true }

Descobrir catàlegs ​

bash
curl "https://api.test.bilteo.com/api/v1/taxes?tax_use=sale&is_active=true" \
  -H "Authorization: Bearer bk_live_xxx"
curl https://api.test.bilteo.com/api/v1/series -H "Authorization: Bearer bk_live_xxx"
curl https://api.test.bilteo.com/api/v1/economic-activities -H "Authorization: Bearer bk_live_xxx"

Si omets sèrie, activitat o moneda, Bilteo aplica els valors per defecte.

Crear i emetre una F1 ​

bash
curl -X POST https://api.test.bilteo.com/api/v1/invoices \
  -H "Authorization: Bearer bk_live_xxx" -H "Content-Type: application/json" \
  -d '{
    "type": "F1", "partner_id": "…", "operation_date": "2026-01-15",
    "lines": [
      { "description": "Consultoria de gener", "quantity": "10",
        "unit_price": "75.00", "main_tax_id": "…iva21…" }
    ]
  }'

curl -X POST https://api.test.bilteo.com/api/v1/invoices/INV…/actions/issue \
  -H "Authorization: Bearer bk_live_xxx"

La primera petició crea un esborrany; la segona el numera, congela i inicia la remissió a l'AEAT.

F2 simplificada ​

bash
curl -X POST https://api.test.bilteo.com/api/v1/invoices \
  -H "Authorization: Bearer bk_live_xxx" -H "Content-Type: application/json" \
  -d '{ "type": "F2",
        "lines": [{ "description": "Venda de mostrador", "quantity": "1",
                    "unit_price": "30.00", "main_tax_id": "…iva21…" }] }'

Descompte i diversos tipus d'IVA ​

json
"lines": [
  { "description": "Servei (21%)", "quantity": "1", "unit_price": "1000.00",
    "discount": "10", "main_tax_id": "…iva21…" },
  { "description": "Llibre (4%)", "quantity": "2", "unit_price": "20.00",
    "main_tax_id": "…iva4…" }
]

Retenció i recàrrec ​

retention_tax_id resta una retenció del total a pagar; surcharge_tax_id afegeix el recàrrec d'equivalència a la línia.

json
{ "description": "Servei professional", "quantity": "1", "unit_price": "1000.00",
  "main_tax_id": "…iva21…", "retention_tax_id": "…irpf15…" }
json
{ "description": "Mercaderia", "quantity": "1", "unit_price": "100.00",
  "main_tax_id": "…iva21…", "surcharge_tax_id": "…re52…" }

Exempta, no subjecta i inversió del subjecte passiu ​

A l'API pública, la classificació la porta l'impost de main_tax_id:

Operaciótype de l'impost
Exemptaexento amb exempt_reason
No subjectano_sujeto / no_sujeto_loc
Inversió del subjecte passiusujeto_isp
json
{ "description": "Formació exempta", "quantity": "1", "unit_price": "500.00",
  "main_tax_id": "…exento-art20…" }

Consulta Impostos per al model complet.

Operacions internacionals ​

Combina el país del client amb l'impost correcte:

OperacióClientImpost
Entrega intracomunitària de bénsUE amb VAT-IESexento, art. 25
Serveis B2B intracomunitarisUEno_sujeto_loc
ExportacióFora de la UEexento, art. 21
bash
curl -X PUT "https://api.test.bilteo.com/api/v1/partners/by-external-id/EU-FR-01" \
  -H "Authorization: Bearer bk_live_xxx" -H "Content-Type: application/json" \
  -d '{ "type": "com", "name": "Atelier Vionnet SARL",
        "id_num": "FR47812904563", "country": "FR" }'

Tancar el cicle Veri*Factu ​

Subscriu-te als webhooks verifactu.accepted i verifactu.rejected. Si necessites consultar:

bash
curl "https://api.test.bilteo.com/api/v1/verifactu-records?invoice_id=INV…" \
  -H "Authorization: Bearer bk_live_xxx"
# pending → in-process → accepted | accepted_error | rejected | unknown_response

Rectificar ​

bash
curl -X POST https://api.test.bilteo.com/api/v1/invoices/INV…/actions/rectify \
  -H "Authorization: Bearer bk_live_xxx" -H "Content-Type: application/json" \
  -d '{ "rectificative_type": "S", "rectification_cause": "law_error" }'

Crea una R1 en esborrany. Consulta el mapatge de causes.

Convertir una F2 en F3 ​

bash
curl -X POST https://api.test.bilteo.com/api/v1/invoices/INV_F2…/actions/replace \
  -H "Authorization: Bearer bk_live_xxx" -H "Content-Type: application/json" \
  -d '{ "partner_id": "…" }'

Amb ?issue=true també l'emet a la mateixa crida.

Subsanar un rebuig ​

Només per corregir un error de remissió. El resultat depèn de l'historial:

bash
curl -X POST https://api.test.bilteo.com/api/v1/invoices/INV…/actions/request-fix \
  -H "Authorization: Bearer bk_live_xxx"
# Mai acceptada (últim registre rejected): needs_fix → corregeix → issue
# Alguna vegada acceptada: continua issued i s'encua la subsanació amb les
#   dades actuals del client (edita-les ABANS amb PATCH /partners/{id})

Consulta el flux complet.

Anul·lar ​

Només per a una factura emesa per error que no hauria d'haver existit:

bash
curl -X POST https://api.test.bilteo.com/api/v1/invoices/INV…/actions/cancel \
  -H "Authorization: Bearer bk_live_xxx"

Sincronitzar clients i productes ​

bash
curl -X PUT "https://api.test.bilteo.com/api/v1/partners/by-external-id/CLI-42" \
  -H "Authorization: Bearer bk_live_xxx" -H "Content-Type: application/json" \
  -d '{ "type": "com", "name": "Comercial Aldealta SL", "id_num": "B85447761", "country": "ES" }'

curl -X PUT "https://api.test.bilteo.com/api/v1/products/by-external-id/SKU-9" \
  -H "Authorization: Bearer bk_live_xxx" -H "Content-Type: application/json" \
  -d '{ "name": "Subscripció anual", "unit_price": "240.00", "main_tax_id": "…iva21…" }'

El PUT retorna 201 en crear i 200 en actualitzar. Consulta Sincronització per external_id.

Descarregar documents ​

bash
curl "https://api.test.bilteo.com/api/v1/invoices/INV…/actions/print" \
  -H "Authorization: Bearer bk_live_xxx" -H "Accept: application/pdf" -o factura.pdf

curl "https://api.test.bilteo.com/api/v1/invoices/INV…/actions/facturae" \
  -H "Authorization: Bearer bk_live_xxx" -o factura.xml

Bilteo · Documentació