Factuarea API

Clients internacionals

Identificar un destinatari no espanyol amb el catàleg d'identificació alternativa de l'AEAT, i el mapa d'escenari a qualificació per a lliuraments intracomunitaris, inversió del subjecte passiu, exportacions i vendes per finestreta única.

Facturar fora d'Espanya planteja dues preguntes que el cas interior no planteja mai: com identifiques un destinatari que no té NIF espanyol, i què rep l'AEAT per una operació que és exempta, amb inversió del subjecte passiu o localitzada a l'estranger. Són independents, i aquesta pàgina les respon en aquest ordre.

Quan aplica

Sempre que el destinatari no sigui un contribuent espanyol, o l'operació estigui localitzada fora del territori peninsular d'aplicació de l'IVA. La identificació és una propietat del client; la qualificació és una propietat de l'operació, i el mateix client pot aparèixer en operacions de tipus diferents.

Identificar el client

Un client no espanyol s'identifica amb alternative_id, un objecte de {type, value, country_code} que és mútuament excloent amb el tax_id espanyol (BR-CLI-017). El tipus pertany al catàleg d'identificació de l'AEAT, llista L7, i cada cas té el seu propi codi numèric, que viatja a la cadena VeriFactu:

typeCodi AEATSignificat
nif_iva02Número d'operador intracomunitari (NIF-IVA).
passport03Passaport.
country_id04Document oficial d'identificació del país de residència.
residence_certificate05Certificat de residència fiscal.
other_document06Altre document probatori.
not_registered07No inscrit al cens de l'AEAT (No censado).

La matriu de tipus i país és una invariant dura, no un suggeriment: nif_iva només és legal per a països de la UE, perquè és el número d'operador intracomunitari; els altres tipus valen per a qualsevol país que no sigui Espanya; i country_code: "ES" es rebutja sempre, perquè Espanya fa servir tax_id. Una combinació il·legal respon 422:

curl -X POST https://api.factuarea.com/v1/clients \
  -H "Authorization: Bearer fact_live_3pXnR2VbY7TcA9eFmN5z8KqW" \
  -H "Content-Type: application/json" \
  -d '{
        "name": "Müller GmbH",
        "alternative_id": { "type": "nif_iva", "value": "DE811569869", "country_code": "DE" }
      }'

Els valors heretats tax_id_foreign i national_id encara s'accepten perquè les integracions existents no es trenquin. La normalització té en compte el país: national_id esdevé country_id incondicionalment, mentre que tax_id_foreign esdevé nif_iva per a un país de la UE i other_document altrament — perquè un tax_id_foreign de fora de la UE no pot ser un número intracomunitari, i la matriu el rebutjaria.

Si no envies alternative_id en absolut —un client estranger amb només un país i un identificador fiscal—, la cadena VeriFactu cau al tipus d'identificació 02, el cas intracomunitari més habitual. Enviar el camp explícitament és estrictament millor.

vat_id és text lliure, i no es verifica

El camp del número d'IVA intracomunitari accepta qualsevol cadena de fins a 20 caràcters. No es valida contra el registre VIES, no se'n comprova el format per país, i no es contrasta amb tax_id (BR-CLI-003). Un prefix de país equivocat s'accepta. Un client que hauria d'estar sota el règim intracomunitari però que no té vat_id ni es bloqueja ni es marca.

vat_id i tax_id són camps separats que conviuen: una empresa espanyola pot portar un NIF nacional i el mateix número amb el prefix de país com a número d'IVA intracomunitari.

Verificar un destinatari espanyol abans de facturar

Per als destinataris que que tenen NIF espanyol, POST /v1/clients/census-verification (scope clients:read) comprova el parell de nom i NIF contra el cens de l'AEAT abans que facturis, anticipant el rebuig VeriFactu més freqüent — el del destinatari que el cens no identifica (BR-CLI-015).

És deliberadament informativa: no bloqueja mai desar un client ni emetre una factura, no persisteix res, i és fail-open — una AEAT inaccessible respon 200 amb un estat de no disponible, mai un 5xx. Està limitada per freqüència, perquè pot arribar a la xarxa de l'AEAT. Vegeu Verificació censal per al flux complet.

El mapa d'escenaris

Aquest és el mapa de l'escenari de negoci al que rep l'AEAT (BR-VFC-029):

EscenariRègim d'operació de capçaleraQuè arriba a l'AEAT
Lliurament intracomunitari de bénsintracomunitariaE5 — subjecta i exempta, art. 25 LIVA
Serveis amb inversió del subjecte passiuispS2 — subjecta i no exempta, quota repercutida 0 (l'autorepercuteix el destinatari)
Exportació fora de la UEimportacion_exportacionE2 — subjecta i exempta, art. 21 LIVA
Vendes a distància per finestreta única(general)regime_key: 17 — Capítol XI del Títol IX, OSS i IOSS

La inversió del subjecte passiu no és una exempció. És una qualificació derivada del règim de capçalera — S2, subjecta i no exempta, amb la quota repercutida forçada a zero perquè és el destinatari qui liquida l'impost. No és una causa d'exempció de línia, i en particular no és E4: aquest codi és l'exempció dels arts. 23 i 24 LIVA, per a dipòsits duaners i règims suspensius, que és una cosa completament diferent. Una factura que declara la inversió del subjecte passiu com a operació exempta declara malament tant la qualificació com la quota.

Les quatre qualificacions assolibles des del règim de capçalera són S1 (general), S2 (inversió del subjecte passiu), E5 (intracomunitària) i E2 (importació o exportació). Els altres codis d'exempció —E1, E3, E4, E6— existeixen al catàleg de l'AEAT però només s'assoleixen com a causa d'exempció de línia.

Què envia l'API

Aquí ve la part que decideix com construeixes el payload, i és una restricció real i no una preferència d'estil.

El règim d'operació de capçalera és de només lectura a la v1. Ni POST /v1/invoices ni PUT /v1/invoices/{id} no accepten operation_regime; l'objecte factura el retorna, i tota factura creada per l'API pública neix sota el règim general. La causa d'exempció a nivell de document és de només lectura pel mateix motiu.

El preferred_operation_regime del client —acceptat a POST /v1/clients amb els valors general, intracomunitaria, importacion_exportacion i isp— es desa i es retorna, però no fixa el règim de les factures que crees. És una preferència declarativa per al teu propi ús.

El que que pots expressar per línia és la causa d'exempció. Així:

EscenariCom ho expresses a la v1
Lliurament intracomunitari de bénstax_rate: 0 + exemption_reason: "E5" per línia.
Exportació fora de la UEtax_rate: 0 + exemption_reason: "E2", normalment amb regime_key: "02".
Vendes a distància per finestreta únicaregime_key: "17" per línia, amb el tipus del país de destinació.
Inversió del subjecte passiuNo expressable. S2 deriva del règim de capçalera, i el catàleg de línia no conté codis S per disseny.

Aquesta última fila és la resposta honesta, i té conseqüències: una factura amb inversió del subjecte passiu creada per l'API pública quedarà qualificada com a S1 i amb quota repercutida, que no és el que vols dir. Fins que el règim de capçalera no sigui escrivible, emet aquestes factures des del tauler. Queda recollit a Abast i limitacions.

L'exemple publicat intracomunitario_bienes de l'operació de creació té exactament aquesta forma —tipus zero, més E5, més una clau de règim explícita— en lloc d'un règim de capçalera que no podria fixar:

{
  "client_id": "0197a2a8-4cf0-7a31-9a5e-3f2b8c1d6e42",
  "series_id": "019e5584-7a72-7038-a8f6-561ed180b699",
  "issued_on": "2026-06-01",
  "due_on": "2026-07-01",
  "notes": "Entrega intracomunitaria de bienes exenta (art. 25 LIVA)",
  "lines": [
    {
      "description": "Suministro de maquinaria a cliente UE (DE)",
      "quantity": 1,
      "unit_price": 5000,
      "tax_rate": 0,
      "exemption_reason": "E5",
      "regime_key": "01"
    }
  ]
}

Una factura simplificada no és mai una opció per a cap d'aquests escenaris: la comprovació d'admissibilitat bloqueja les operacions intracomunitàries, la inversió del subjecte passiu i qualsevol destinatari fora d'Espanya abans fins i tot de considerar l'import. Vegeu Factures simplificades o completes.

Què surt al PDF

El bloc de destinatari imprimeix la identificació alternativa exactament tal com s'ha aportat, congelada en el moment d'emetre com la resta del snapshot de destinatari (BR-INV-024).

La menció legal —art. 25 LIVA en un lliurament intracomunitari, art. 21 en una operació amb tercers països, art. 84.Uno.2 en la inversió del subjecte passiu— deriva del règim de capçalera, i per tant no apareix automàticament en una factura creada per la v1 (BR-TAX-024). Dues opcions: posa el text a notes, o fes servir l'exemption_reason_text de línia, que s'imprimeix sota la descripció de la línia i és només de presentació.

Què arriba a l'AEAT

Al registre VeriFactu, el tipus d'identificació del destinatari viatja com el codi AEAT de la taula L7 de dalt, i el desglossament porta la qualificació descrita a El mapa d'escenaris — codis d'operació exempta per a E5 i E2, i S2 amb quota zero en la inversió del subjecte passiu.

A la declaració anual d'operacions amb terceres persones (Modelo 347), les operacions intracomunitàries i les importacions o exportacions queden excloses (BR-TXR-022): es declaren per les seves pròpies vies —la declaració recapitulativa per a les operacions intracomunitàries, i la documentació duanera per a la resta— i declarar-les dues vegades produiria un desquadrament a la declaració creuada.

La inversió del subjecte passiu es comporta al revés: és una operació interior i sí que apareix en aquella declaració. La classificació fa servir el règim de capçalera de la factura, així que una factura mixta es classifica sencera.

Traçabilitat

Derivat de les regles de domini del backend de Factuarea:

  • BR-CLI-003vat_id com a text lliure, sense validació VIES, independent de tax_id.
  • BR-CLI-015 — verificació censal del destinatari: informativa, fail-open i sense estat.
  • BR-CLI-017 — el catàleg d'identificació alternativa L7 de l'AEAT, la matriu de tipus i país i els àlies heretats acceptats.
  • BR-INV-024 — el snapshot immutable del destinatari.
  • BR-INV-031 — el catàleg tancat de claus de règim usat per a les línies de finestreta única i d'exportació.
  • BR-INV-032 — les causes d'exempció de línia i el seu valor derivat de la capçalera.
  • BR-TAX-024 — la causa d'exempció a nivell de document i la seva menció legal automàtica.
  • BR-VFC-029 — el mapa de qualificacions: S1, S2, E5 i E2 derivats del règim de capçalera, i la inversió del subjecte passiu com a qualificació i no com a exempció.
  • BR-TXR-022 — exclusió de les operacions intracomunitàries i d'importació o exportació de la declaració anual d'operacions amb tercers, i la inclusió de la inversió del subjecte passiu interior.

En aquesta pàgina