VeriBaiDocs
Acceder

Ejemplos (VeriFactu)

Un cuerpo de petición completo por cada tipo de factura VeriFactu. Cada uno se ha enviado a Sandbox y ha devuelto 200.

Cada ejemplo es un cuerpo completo para POST /v1/verifactu/crear, salvo la subsanación y la anulación, que usan su propio endpoint. Copia el ejemplo que corresponda a la operación y sustituye emisor, destinatario, serie, número y fecha por los tuyos.

Todos los cuerpos de esta página se han enviado a Sandbox con la fecha updated de la cabecera y han devuelto 200. Los NIF y los importes son ficticios.

Las reglas de cada campo están en la referencia de VeriFactu. La versión TicketBAI de estos mismos casos está en Ejemplos (TicketBAI).

Factura completa (F1)

Una factura con destinatario identificado y una línea al 21 %. totales repite la cuota y el total tal como figuran en la factura.

POST/v1/verifactu/crear

curl -X POST https://sandbox.veribai.com/v1/verifactu/crear \
  -H "x-api-key: TU_CLAVE" \
  -H "Content-Type: application/json" \
  -d '{
    "version": "1.0",
    "cabecera": {
      "serie": "A",
      "numero": "12345",
      "fechaExpedicion": "15-09-2026",
      "tipoFactura": "F1",
      "descripcion": "Servicios de consultoría"
    },
    "emisor": {
      "nif": "B00000000",
      "nombre": "Empresa Emisora SL"
    },
    "destinatario": {
      "nif": "B11111119",
      "nombre": "Cliente Ejemplo SL"
    },
    "detalleDesglose": [
      {
        "impuesto": "01",
        "claveRegimen": "01",
        "calificacionOperacion": "S1",
        "baseImponible": "1000.00",
        "tipoImpositivo": "21.00",
        "cuotaRepercutida": "210.00"
      }
    ],
    "totales": {
      "cuotaTotal": "210.00",
      "importeTotal": "1210.00"
    }
  }'

Factura simplificada (F2)

Sin destinatario. La suma de bases y cuotas del desglose no puede superar los 3.000 €; ver el tope de las simplificadas.

POST/v1/verifactu/crear

curl -X POST https://sandbox.veribai.com/v1/verifactu/crear \
  -H "x-api-key: TU_CLAVE" \
  -H "Content-Type: application/json" \
  -d '{
    "version": "1.0",
    "cabecera": {
      "serie": "T",
      "numero": "8001",
      "fechaExpedicion": "15-09-2026",
      "tipoFactura": "F2",
      "descripcion": "Venta en tienda"
    },
    "emisor": {
      "nif": "B00000000",
      "nombre": "Empresa Emisora SL"
    },
    "detalleDesglose": [
      {
        "impuesto": "01",
        "claveRegimen": "01",
        "calificacionOperacion": "S1",
        "baseImponible": "24.79",
        "tipoImpositivo": "21.00",
        "cuotaRepercutida": "5.21"
      }
    ],
    "totales": {
      "cuotaTotal": "5.21",
      "importeTotal": "30.00"
    }
  }'

Factura con varios tipos de IVA

Una línea de detalleDesglose por cada tipo impositivo. totales.cuotaTotal es la suma de las cuotas.

POST/v1/verifactu/crear

curl -X POST https://sandbox.veribai.com/v1/verifactu/crear \
  -H "x-api-key: TU_CLAVE" \
  -H "Content-Type: application/json" \
  -d '{
    "version": "1.0",
    "cabecera": {
      "serie": "A",
      "numero": "12346",
      "fechaExpedicion": "15-09-2026",
      "tipoFactura": "F1",
      "descripcion": "Suministro de productos alimentarios y material"
    },
    "emisor": {
      "nif": "B00000000",
      "nombre": "Empresa Emisora SL"
    },
    "destinatario": {
      "nif": "B11111119",
      "nombre": "Cliente Ejemplo SL"
    },
    "detalleDesglose": [
      {
        "impuesto": "01",
        "claveRegimen": "01",
        "calificacionOperacion": "S1",
        "baseImponible": "500.00",
        "tipoImpositivo": "21.00",
        "cuotaRepercutida": "105.00"
      },
      {
        "impuesto": "01",
        "claveRegimen": "01",
        "calificacionOperacion": "S1",
        "baseImponible": "300.00",
        "tipoImpositivo": "10.00",
        "cuotaRepercutida": "30.00"
      },
      {
        "impuesto": "01",
        "claveRegimen": "01",
        "calificacionOperacion": "S1",
        "baseImponible": "200.00",
        "tipoImpositivo": "4.00",
        "cuotaRepercutida": "8.00"
      }
    ],
    "totales": {
      "cuotaTotal": "143.00",
      "importeTotal": "1143.00"
    }
  }'

Factura exenta de IVA

La línea lleva operacionExenta con la causa en lugar de calificacionOperacion, y no lleva tipo ni cuota. E1 es la exención del artículo 20 de la LIVA (sanidad, educación, seguros, alquiler de vivienda).

POST/v1/verifactu/crear

curl -X POST https://sandbox.veribai.com/v1/verifactu/crear \
  -H "x-api-key: TU_CLAVE" \
  -H "Content-Type: application/json" \
  -d '{
    "version": "1.0",
    "cabecera": {
      "serie": "A",
      "numero": "12347",
      "fechaExpedicion": "15-09-2026",
      "tipoFactura": "F1",
      "descripcion": "Curso de formación profesional"
    },
    "emisor": {
      "nif": "B00000000",
      "nombre": "Empresa Emisora SL"
    },
    "destinatario": {
      "nif": "B11111119",
      "nombre": "Cliente Ejemplo SL"
    },
    "detalleDesglose": [
      {
        "impuesto": "01",
        "claveRegimen": "01",
        "operacionExenta": "E1",
        "baseImponible": "800.00"
      }
    ],
    "totales": {
      "cuotaTotal": "0.00",
      "importeTotal": "800.00"
    }
  }'

Operación no sujeta

calificacionOperacion: "N1" declara una operación no sujeta por el artículo 7, 14 u otros de la LIVA. Sin tipo ni cuota.

POST/v1/verifactu/crear

curl -X POST https://sandbox.veribai.com/v1/verifactu/crear \
  -H "x-api-key: TU_CLAVE" \
  -H "Content-Type: application/json" \
  -d '{
    "version": "1.0",
    "cabecera": {
      "serie": "A",
      "numero": "12348",
      "fechaExpedicion": "15-09-2026",
      "tipoFactura": "F1",
      "descripcion": "Indemnización por resolución de contrato"
    },
    "emisor": {
      "nif": "B00000000",
      "nombre": "Empresa Emisora SL"
    },
    "destinatario": {
      "nif": "B11111119",
      "nombre": "Cliente Ejemplo SL"
    },
    "detalleDesglose": [
      {
        "impuesto": "01",
        "claveRegimen": "01",
        "calificacionOperacion": "N1",
        "baseImponible": "2500.00"
      }
    ],
    "totales": {
      "cuotaTotal": "0.00",
      "importeTotal": "2500.00"
    }
  }'

Inversión del sujeto pasivo

calificacionOperacion: "S2": la operación está sujeta y el IVA lo ingresa el destinatario. La línea no lleva tipo ni cuota.

POST/v1/verifactu/crear

curl -X POST https://sandbox.veribai.com/v1/verifactu/crear \
  -H "x-api-key: TU_CLAVE" \
  -H "Content-Type: application/json" \
  -d '{
    "version": "1.0",
    "cabecera": {
      "serie": "A",
      "numero": "12349",
      "fechaExpedicion": "15-09-2026",
      "tipoFactura": "F1",
      "descripcion": "Ejecución de obra. Inversión del sujeto pasivo, art. 84.Uno.2.f LIVA"
    },
    "emisor": {
      "nif": "B00000000",
      "nombre": "Empresa Emisora SL"
    },
    "destinatario": {
      "nif": "B11111119",
      "nombre": "Cliente Ejemplo SL"
    },
    "detalleDesglose": [
      {
        "impuesto": "01",
        "claveRegimen": "01",
        "calificacionOperacion": "S2",
        "baseImponible": "15000.00"
      }
    ],
    "totales": {
      "cuotaTotal": "0.00",
      "importeTotal": "15000.00"
    }
  }'

Entrega intracomunitaria de bienes (B2B)

Entrega exenta a un empresario de otro Estado miembro: operacionExenta: "E5" y destinatario identificado con idOtro de tipo 02 (NIF-IVA). Ver destinatario extranjero.

POST/v1/verifactu/crear

curl -X POST https://sandbox.veribai.com/v1/verifactu/crear \
  -H "x-api-key: TU_CLAVE" \
  -H "Content-Type: application/json" \
  -d '{
    "version": "1.0",
    "cabecera": {
      "serie": "A",
      "numero": "12350",
      "fechaExpedicion": "15-09-2026",
      "tipoFactura": "F1",
      "descripcion": "Entrega intracomunitaria de maquinaria"
    },
    "emisor": {
      "nif": "B00000000",
      "nombre": "Empresa Emisora SL"
    },
    "destinatario": {
      "nombre": "Kunde GmbH",
      "idOtro": {
        "codigoPais": "DE",
        "idType": "02",
        "id": "DE123456789"
      }
    },
    "detalleDesglose": [
      {
        "impuesto": "01",
        "claveRegimen": "01",
        "operacionExenta": "E5",
        "baseImponible": "12000.00"
      }
    ],
    "totales": {
      "cuotaTotal": "0.00",
      "importeTotal": "12000.00"
    }
  }'

Prestación de servicios intracomunitaria (B2B)

Servicio a un empresario de otro Estado miembro. La operación se localiza en destino y no está sujeta al IVA español: calificacionOperacion: "N2".

POST/v1/verifactu/crear

curl -X POST https://sandbox.veribai.com/v1/verifactu/crear \
  -H "x-api-key: TU_CLAVE" \
  -H "Content-Type: application/json" \
  -d '{
    "version": "1.0",
    "cabecera": {
      "serie": "A",
      "numero": "12351",
      "fechaExpedicion": "15-09-2026",
      "tipoFactura": "F1",
      "descripcion": "Desarrollo de software a medida"
    },
    "emisor": {
      "nif": "B00000000",
      "nombre": "Empresa Emisora SL"
    },
    "destinatario": {
      "nombre": "Client SARL",
      "idOtro": {
        "codigoPais": "FR",
        "idType": "02",
        "id": "FR12345678901"
      }
    },
    "detalleDesglose": [
      {
        "impuesto": "01",
        "claveRegimen": "01",
        "calificacionOperacion": "N2",
        "baseImponible": "6000.00"
      }
    ],
    "totales": {
      "cuotaTotal": "0.00",
      "importeTotal": "6000.00"
    }
  }'

Venta a consumidor de otro Estado miembro (B2C)

Por debajo del umbral de 10.000 € anuales de ventas a distancia, la venta tributa en España con IVA español. El destinatario particular se identifica con idOtro de tipo 03 (pasaporte) o 04 (documento oficial de su país).

POST/v1/verifactu/crear

curl -X POST https://sandbox.veribai.com/v1/verifactu/crear \
  -H "x-api-key: TU_CLAVE" \
  -H "Content-Type: application/json" \
  -d '{
    "version": "1.0",
    "cabecera": {
      "serie": "W",
      "numero": "5001",
      "fechaExpedicion": "15-09-2026",
      "tipoFactura": "F1",
      "descripcion": "Venta en tienda online"
    },
    "emisor": {
      "nif": "B00000000",
      "nombre": "Empresa Emisora SL"
    },
    "destinatario": {
      "nombre": "Anna Rossi",
      "idOtro": {
        "codigoPais": "IT",
        "idType": "04",
        "id": "CA12345AB"
      }
    },
    "detalleDesglose": [
      {
        "impuesto": "01",
        "claveRegimen": "01",
        "calificacionOperacion": "S1",
        "baseImponible": "82.64",
        "tipoImpositivo": "21.00",
        "cuotaRepercutida": "17.36"
      }
    ],
    "totales": {
      "cuotaTotal": "17.36",
      "importeTotal": "100.00"
    }
  }'

Venta a distancia en régimen OSS

Por encima del umbral, la venta tributa en el país del consumidor y se declara en la ventanilla única (OSS). La línea lleva claveRegimen: "17" y calificacionOperacion: "N2": la operación no está sujeta al IVA español. El IVA del país del consumidor no forma parte del registro: importeTotal es la base imponible y se cuadra contra el desglose.

POST/v1/verifactu/crear

curl -X POST https://sandbox.veribai.com/v1/verifactu/crear \
  -H "x-api-key: TU_CLAVE" \
  -H "Content-Type: application/json" \
  -d '{
    "version": "1.0",
    "cabecera": {
      "serie": "W",
      "numero": "5002",
      "fechaExpedicion": "15-09-2026",
      "tipoFactura": "F1",
      "descripcion": "Venta a distancia intracomunitaria, régimen OSS"
    },
    "emisor": {
      "nif": "B00000000",
      "nombre": "Empresa Emisora SL"
    },
    "destinatario": {
      "nombre": "Anna Rossi",
      "idOtro": {
        "codigoPais": "IT",
        "idType": "04",
        "id": "CA12345AB"
      }
    },
    "detalleDesglose": [
      {
        "impuesto": "01",
        "claveRegimen": "17",
        "calificacionOperacion": "N2",
        "baseImponible": "100.00"
      }
    ],
    "totales": {
      "cuotaTotal": "0.00",
      "importeTotal": "100.00"
    }
  }'

Exportación de bienes

Entrega a un país fuera de la Unión Europea: claveRegimen: "02" (exportación) y operacionExenta: "E2" (artículo 21 de la LIVA). El destinatario se identifica con idOtro.

POST/v1/verifactu/crear

curl -X POST https://sandbox.veribai.com/v1/verifactu/crear \
  -H "x-api-key: TU_CLAVE" \
  -H "Content-Type: application/json" \
  -d '{
    "version": "1.0",
    "cabecera": {
      "serie": "A",
      "numero": "12352",
      "fechaExpedicion": "15-09-2026",
      "tipoFactura": "F1",
      "descripcion": "Exportación de componentes electrónicos"
    },
    "emisor": {
      "nif": "B00000000",
      "nombre": "Empresa Emisora SL"
    },
    "destinatario": {
      "nombre": "Buyer Inc",
      "idOtro": {
        "codigoPais": "US",
        "idType": "06",
        "id": "US987654321"
      }
    },
    "detalleDesglose": [
      {
        "impuesto": "01",
        "claveRegimen": "02",
        "operacionExenta": "E2",
        "baseImponible": "45000.00"
      }
    ],
    "totales": {
      "cuotaTotal": "0.00",
      "importeTotal": "45000.00"
    }
  }'

Prestación de servicios a un país tercero

Servicio a un empresario establecido fuera de la Unión Europea. Se localiza fuera del territorio de aplicación del impuesto: calificacionOperacion: "N2".

POST/v1/verifactu/crear

curl -X POST https://sandbox.veribai.com/v1/verifactu/crear \
  -H "x-api-key: TU_CLAVE" \
  -H "Content-Type: application/json" \
  -d '{
    "version": "1.0",
    "cabecera": {
      "serie": "A",
      "numero": "12353",
      "fechaExpedicion": "15-09-2026",
      "tipoFactura": "F1",
      "descripcion": "Servicios de asesoría técnica"
    },
    "emisor": {
      "nif": "B00000000",
      "nombre": "Empresa Emisora SL"
    },
    "destinatario": {
      "nombre": "Consulting Ltd",
      "idOtro": {
        "codigoPais": "GB",
        "idType": "06",
        "id": "GB123456789"
      }
    },
    "detalleDesglose": [
      {
        "impuesto": "01",
        "claveRegimen": "01",
        "calificacionOperacion": "N2",
        "baseImponible": "3200.00"
      }
    ],
    "totales": {
      "cuotaTotal": "0.00",
      "importeTotal": "3200.00"
    }
  }'

Factura con recargo de equivalencia

Venta a un comerciante minorista en recargo de equivalencia. La línea S1 añade tipoRecargoEquivalencia y cuotaRecargoEquivalencia. totales.cuotaTotal suma IVA y recargo, e importeTotal los incluye.

POST/v1/verifactu/crear

curl -X POST https://sandbox.veribai.com/v1/verifactu/crear \
  -H "x-api-key: TU_CLAVE" \
  -H "Content-Type: application/json" \
  -d '{
    "version": "1.0",
    "cabecera": {
      "serie": "A",
      "numero": "12354",
      "fechaExpedicion": "15-09-2026",
      "tipoFactura": "F1",
      "descripcion": "Suministro de mercancía a comercio minorista"
    },
    "emisor": {
      "nif": "B00000000",
      "nombre": "Empresa Emisora SL"
    },
    "destinatario": {
      "nif": "12345678Z",
      "nombre": "Comercio Minorista"
    },
    "detalleDesglose": [
      {
        "impuesto": "01",
        "claveRegimen": "01",
        "calificacionOperacion": "S1",
        "baseImponible": "1000.00",
        "tipoImpositivo": "21.00",
        "cuotaRepercutida": "210.00",
        "tipoRecargoEquivalencia": "5.20",
        "cuotaRecargoEquivalencia": "52.00"
      }
    ],
    "totales": {
      "cuotaTotal": "262.00",
      "importeTotal": "1262.00"
    }
  }'

Factura con IGIC (Canarias)

Emisor establecido en Canarias. impuesto: "03" selecciona el IGIC, con sus propios tipos. claveRegimen es obligatoria también con IGIC.

POST/v1/verifactu/crear

curl -X POST https://sandbox.veribai.com/v1/verifactu/crear \
  -H "x-api-key: TU_CLAVE" \
  -H "Content-Type: application/json" \
  -d '{
    "version": "1.0",
    "cabecera": {
      "serie": "A",
      "numero": "12355",
      "fechaExpedicion": "15-09-2026",
      "tipoFactura": "F1",
      "descripcion": "Servicios de mantenimiento"
    },
    "emisor": {
      "nif": "B00000000",
      "nombre": "Empresa Emisora SL"
    },
    "destinatario": {
      "nif": "B11111119",
      "nombre": "Cliente Ejemplo SL"
    },
    "detalleDesglose": [
      {
        "impuesto": "03",
        "claveRegimen": "01",
        "calificacionOperacion": "S1",
        "baseImponible": "1000.00",
        "tipoImpositivo": "7.00",
        "cuotaRepercutida": "70.00"
      }
    ],
    "totales": {
      "cuotaTotal": "70.00",
      "importeTotal": "1070.00"
    }
  }'

Factura con IPSI (Ceuta y Melilla)

impuesto: "02" selecciona el IPSI. claveRegimen es opcional; si se omite, se transmite 01.

POST/v1/verifactu/crear

curl -X POST https://sandbox.veribai.com/v1/verifactu/crear \
  -H "x-api-key: TU_CLAVE" \
  -H "Content-Type: application/json" \
  -d '{
    "version": "1.0",
    "cabecera": {
      "serie": "A",
      "numero": "12356",
      "fechaExpedicion": "15-09-2026",
      "tipoFactura": "F1",
      "descripcion": "Servicios de transporte local"
    },
    "emisor": {
      "nif": "B00000000",
      "nombre": "Empresa Emisora SL"
    },
    "destinatario": {
      "nif": "B11111119",
      "nombre": "Cliente Ejemplo SL"
    },
    "detalleDesglose": [
      {
        "impuesto": "02",
        "calificacionOperacion": "S1",
        "baseImponible": "1000.00",
        "tipoImpositivo": "4.00",
        "cuotaRepercutida": "40.00"
      }
    ],
    "totales": {
      "cuotaTotal": "40.00",
      "importeTotal": "1040.00"
    }
  }'

Factura de autónomo con retención de IRPF

El registro VeriFactu no tiene campo para la retención. importeTotal es la base más el IVA, antes de descontar el IRPF: aquí 665.50, no 583.00. Un total con la retención descontada deja de cuadrar con el desglose y devuelve 400.

POST/v1/verifactu/crear

curl -X POST https://sandbox.veribai.com/v1/verifactu/crear \
  -H "x-api-key: TU_CLAVE" \
  -H "Content-Type: application/json" \
  -d '{
    "version": "1.0",
    "cabecera": {
      "serie": "A",
      "numero": "12357",
      "fechaExpedicion": "15-09-2026",
      "tipoFactura": "F1",
      "descripcion": "Honorarios profesionales. Retención IRPF 15 %: 82,50 €"
    },
    "emisor": {
      "nif": "B00000000",
      "nombre": "Empresa Emisora SL"
    },
    "destinatario": {
      "nif": "B11111119",
      "nombre": "Cliente Ejemplo SL"
    },
    "detalleDesglose": [
      {
        "impuesto": "01",
        "claveRegimen": "01",
        "calificacionOperacion": "S1",
        "baseImponible": "550.00",
        "tipoImpositivo": "21.00",
        "cuotaRepercutida": "115.50"
      }
    ],
    "totales": {
      "cuotaTotal": "115.50",
      "importeTotal": "665.50"
    }
  }'

Régimen especial de bienes usados (REBU)

claveRegimen: "03". La base imponible es el margen de beneficio, no el precio de venta, e importeTotal es el precio que paga el cliente. Con esta clave, totales no se cuadra contra el desglose.

POST/v1/verifactu/crear

curl -X POST https://sandbox.veribai.com/v1/verifactu/crear \
  -H "x-api-key: TU_CLAVE" \
  -H "Content-Type: application/json" \
  -d '{
    "version": "1.0",
    "cabecera": {
      "serie": "A",
      "numero": "12358",
      "fechaExpedicion": "15-09-2026",
      "tipoFactura": "F1",
      "descripcion": "Venta de vehículo usado. Régimen especial de bienes usados"
    },
    "emisor": {
      "nif": "B00000000",
      "nombre": "Empresa Emisora SL"
    },
    "destinatario": {
      "nif": "12345678Z",
      "nombre": "María García López"
    },
    "detalleDesglose": [
      {
        "impuesto": "01",
        "claveRegimen": "03",
        "calificacionOperacion": "S1",
        "baseImponible": "1652.89",
        "tipoImpositivo": "21.00",
        "cuotaRepercutida": "347.11"
      }
    ],
    "totales": {
      "cuotaTotal": "347.11",
      "importeTotal": "9000.00"
    }
  }'

Factura emitida por un tercero

La factura la expide un tercero en nombre del emisor: especial.emitidaPor: "T" y sus datos en especial.tercero. Si se omite emitidaPor, se aplica el modelo de emisión de tu cuenta.

POST/v1/verifactu/crear

curl -X POST https://sandbox.veribai.com/v1/verifactu/crear \
  -H "x-api-key: TU_CLAVE" \
  -H "Content-Type: application/json" \
  -d '{
    "version": "1.0",
    "cabecera": {
      "serie": "A",
      "numero": "12359",
      "fechaExpedicion": "15-09-2026",
      "tipoFactura": "F1",
      "descripcion": "Servicios de consultoría"
    },
    "emisor": {
      "nif": "B00000000",
      "nombre": "Empresa Emisora SL"
    },
    "destinatario": {
      "nif": "B11111119",
      "nombre": "Cliente Ejemplo SL"
    },
    "especial": {
      "emitidaPor": "T",
      "tercero": {
        "nif": "B22222228",
        "nombre": "Gestoría Tercera SL"
      }
    },
    "detalleDesglose": [
      {
        "impuesto": "01",
        "claveRegimen": "01",
        "calificacionOperacion": "S1",
        "baseImponible": "1000.00",
        "tipoImpositivo": "21.00",
        "cuotaRepercutida": "210.00"
      }
    ],
    "totales": {
      "cuotaTotal": "210.00",
      "importeTotal": "1210.00"
    }
  }'

Factura emitida por el destinatario

Autofactura: la expide el destinatario en nombre del emisor, con un acuerdo previo entre ambos. especial.emitidaPor: "D". Exige destinatario.

POST/v1/verifactu/crear

curl -X POST https://sandbox.veribai.com/v1/verifactu/crear \
  -H "x-api-key: TU_CLAVE" \
  -H "Content-Type: application/json" \
  -d '{
    "version": "1.0",
    "cabecera": {
      "serie": "A",
      "numero": "12360",
      "fechaExpedicion": "15-09-2026",
      "tipoFactura": "F1",
      "descripcion": "Comisiones de intermediación"
    },
    "emisor": {
      "nif": "B00000000",
      "nombre": "Empresa Emisora SL"
    },
    "destinatario": {
      "nif": "B11111119",
      "nombre": "Cliente Ejemplo SL"
    },
    "especial": {
      "emitidaPor": "D"
    },
    "detalleDesglose": [
      {
        "impuesto": "01",
        "claveRegimen": "01",
        "calificacionOperacion": "S1",
        "baseImponible": "1000.00",
        "tipoImpositivo": "21.00",
        "cuotaRepercutida": "210.00"
      }
    ],
    "totales": {
      "cuotaTotal": "210.00",
      "importeTotal": "1210.00"
    }
  }'

Factura sin identificación del destinatario

Una F2 por encima de 3.000 € que el artículo 6.1.d del RD 1619/2012 permite expedir sin identificar al destinatario. especial.facturaSinIdentifDestinatarioArt61d: "S" la exime del tope de las simplificadas.

POST/v1/verifactu/crear

curl -X POST https://sandbox.veribai.com/v1/verifactu/crear \
  -H "x-api-key: TU_CLAVE" \
  -H "Content-Type: application/json" \
  -d '{
    "version": "1.0",
    "cabecera": {
      "serie": "T",
      "numero": "8002",
      "fechaExpedicion": "15-09-2026",
      "tipoFactura": "F2",
      "descripcion": "Venta sin identificación del destinatario, art. 6.1.d RD 1619/2012"
    },
    "emisor": {
      "nif": "B00000000",
      "nombre": "Empresa Emisora SL"
    },
    "especial": {
      "facturaSinIdentifDestinatarioArt61d": "S"
    },
    "detalleDesglose": [
      {
        "impuesto": "01",
        "claveRegimen": "01",
        "calificacionOperacion": "S1",
        "baseImponible": "4000.00",
        "tipoImpositivo": "21.00",
        "cuotaRepercutida": "840.00"
      }
    ],
    "totales": {
      "cuotaTotal": "840.00",
      "importeTotal": "4840.00"
    }
  }'

Rectificativa por sustitución

Una R1 con rectificativa.tipo: "S" sustituye por completo a la factura rectificada. El desglose y totales llevan los importes correctos definitivos, y rectificativa.importe los importes de la factura que se rectifica. Cuándo rectificar y cuándo subsanar: Rectificar y anular.

POST/v1/verifactu/crear

curl -X POST https://sandbox.veribai.com/v1/verifactu/crear \
  -H "x-api-key: TU_CLAVE" \
  -H "Content-Type: application/json" \
  -d '{
    "version": "1.0",
    "cabecera": {
      "serie": "R",
      "numero": "301",
      "fechaExpedicion": "22-09-2026",
      "tipoFactura": "R1",
      "descripcion": "Rectificativa por sustitución de la factura A-12345"
    },
    "emisor": {
      "nif": "B00000000",
      "nombre": "Empresa Emisora SL"
    },
    "destinatario": {
      "nif": "B11111119",
      "nombre": "Cliente Ejemplo SL"
    },
    "rectificativa": {
      "tipo": "S",
      "facturasRectificadas": [
        {
          "serie": "A",
          "numero": "12345",
          "fechaExpedicion": "15-09-2026"
        }
      ],
      "importe": {
        "baseRectificada": "1000.00",
        "cuotaRectificada": "210.00"
      }
    },
    "detalleDesglose": [
      {
        "impuesto": "01",
        "claveRegimen": "01",
        "calificacionOperacion": "S1",
        "baseImponible": "900.00",
        "tipoImpositivo": "21.00",
        "cuotaRepercutida": "189.00"
      }
    ],
    "totales": {
      "cuotaTotal": "189.00",
      "importeTotal": "1089.00"
    }
  }'

Rectificativa por diferencias

Una R1 con rectificativa.tipo: "I" declara solo la diferencia respecto a la factura rectificada. Un descuento posterior o una devolución llevan importes negativos. No lleva rectificativa.importe.

POST/v1/verifactu/crear

curl -X POST https://sandbox.veribai.com/v1/verifactu/crear \
  -H "x-api-key: TU_CLAVE" \
  -H "Content-Type: application/json" \
  -d '{
    "version": "1.0",
    "cabecera": {
      "serie": "R",
      "numero": "302",
      "fechaExpedicion": "22-09-2026",
      "tipoFactura": "R1",
      "descripcion": "Abono parcial de la factura A-12345"
    },
    "emisor": {
      "nif": "B00000000",
      "nombre": "Empresa Emisora SL"
    },
    "destinatario": {
      "nif": "B11111119",
      "nombre": "Cliente Ejemplo SL"
    },
    "rectificativa": {
      "tipo": "I",
      "facturasRectificadas": [
        {
          "serie": "A",
          "numero": "12345",
          "fechaExpedicion": "15-09-2026"
        }
      ]
    },
    "detalleDesglose": [
      {
        "impuesto": "01",
        "claveRegimen": "01",
        "calificacionOperacion": "S1",
        "baseImponible": "-100.00",
        "tipoImpositivo": "21.00",
        "cuotaRepercutida": "-21.00"
      }
    ],
    "totales": {
      "cuotaTotal": "-21.00",
      "importeTotal": "-121.00"
    }
  }'

Rectificativa por crédito incobrable (R3)

R3 corresponde al artículo 80.4 de la LIVA. Solo se admite cuando han pasado al menos seis meses desde cada factura rectificada. Con menos, la API responde 400 R3_TIMING_ERROR.

POST/v1/verifactu/crear

curl -X POST https://sandbox.veribai.com/v1/verifactu/crear \
  -H "x-api-key: TU_CLAVE" \
  -H "Content-Type: application/json" \
  -d '{
    "version": "1.0",
    "cabecera": {
      "serie": "R",
      "numero": "303",
      "fechaExpedicion": "22-09-2026",
      "tipoFactura": "R3",
      "descripcion": "Rectificativa por crédito incobrable de la factura A-11890"
    },
    "emisor": {
      "nif": "B00000000",
      "nombre": "Empresa Emisora SL"
    },
    "destinatario": {
      "nif": "B11111119",
      "nombre": "Cliente Ejemplo SL"
    },
    "rectificativa": {
      "tipo": "I",
      "facturasRectificadas": [
        {
          "serie": "A",
          "numero": "11890",
          "fechaExpedicion": "10-03-2026"
        }
      ]
    },
    "detalleDesglose": [
      {
        "impuesto": "01",
        "claveRegimen": "01",
        "calificacionOperacion": "S1",
        "baseImponible": "-1000.00",
        "tipoImpositivo": "21.00",
        "cuotaRepercutida": "-210.00"
      }
    ],
    "totales": {
      "cuotaTotal": "-210.00",
      "importeTotal": "-1210.00"
    }
  }'

Rectificativa de una factura simplificada (R5)

Rectifica una F2. Como la simplificada, no lleva destinatario.

POST/v1/verifactu/crear

curl -X POST https://sandbox.veribai.com/v1/verifactu/crear \
  -H "x-api-key: TU_CLAVE" \
  -H "Content-Type: application/json" \
  -d '{
    "version": "1.0",
    "cabecera": {
      "serie": "RT",
      "numero": "91",
      "fechaExpedicion": "22-09-2026",
      "tipoFactura": "R5",
      "descripcion": "Devolución del ticket T-7990"
    },
    "emisor": {
      "nif": "B00000000",
      "nombre": "Empresa Emisora SL"
    },
    "rectificativa": {
      "tipo": "I",
      "facturasRectificadas": [
        {
          "serie": "T",
          "numero": "7990",
          "fechaExpedicion": "12-09-2026"
        }
      ]
    },
    "detalleDesglose": [
      {
        "impuesto": "01",
        "claveRegimen": "01",
        "calificacionOperacion": "S1",
        "baseImponible": "-24.79",
        "tipoImpositivo": "21.00",
        "cuotaRepercutida": "-5.21"
      }
    ],
    "totales": {
      "cuotaTotal": "-5.21",
      "importeTotal": "-30.00"
    }
  }'

Factura en sustitución de simplificadas (F3)

El cliente pide una factura completa por compras que ya tienen ticket. La F3 identifica las simplificadas que sustituye en rectificativa.facturasSustituidas. No es una rectificativa: no lleva tipo ni facturasRectificadas.

POST/v1/verifactu/crear

curl -X POST https://sandbox.veribai.com/v1/verifactu/crear \
  -H "x-api-key: TU_CLAVE" \
  -H "Content-Type: application/json" \
  -d '{
    "version": "1.0",
    "cabecera": {
      "serie": "A",
      "numero": "12361",
      "fechaExpedicion": "22-09-2026",
      "tipoFactura": "F3",
      "descripcion": "Factura en sustitución de los tickets T-8003 y T-8004"
    },
    "emisor": {
      "nif": "B00000000",
      "nombre": "Empresa Emisora SL"
    },
    "destinatario": {
      "nif": "B11111119",
      "nombre": "Cliente Ejemplo SL"
    },
    "rectificativa": {
      "facturasSustituidas": [
        {
          "serie": "T",
          "numero": "8003",
          "fechaExpedicion": "15-09-2026"
        },
        {
          "serie": "T",
          "numero": "8004",
          "fechaExpedicion": "16-09-2026"
        }
      ]
    },
    "detalleDesglose": [
      {
        "impuesto": "01",
        "claveRegimen": "01",
        "calificacionOperacion": "S1",
        "baseImponible": "49.58",
        "tipoImpositivo": "21.00",
        "cuotaRepercutida": "10.42"
      }
    ],
    "totales": {
      "cuotaTotal": "10.42",
      "importeTotal": "60.00"
    }
  }'

Subsanación de un registro

Corrige datos mal informados de un registro ya remitido sin cambiar la operación. El cuerpo es el de crear con los datos corregidos y la misma identidad (serie, numero, fechaExpedicion). Aquí se corrige el nombre del destinatario de la factura A-12345.

PUT/v1/verifactu/subsanar

curl -X PUT https://sandbox.veribai.com/v1/verifactu/subsanar \
  -H "x-api-key: TU_CLAVE" \
  -H "Content-Type: application/json" \
  -d '{
    "version": "1.0",
    "cabecera": {
      "serie": "A",
      "numero": "12345",
      "fechaExpedicion": "15-09-2026",
      "tipoFactura": "F1",
      "descripcion": "Servicios de consultoría"
    },
    "emisor": {
      "nif": "B00000000",
      "nombre": "Empresa Emisora SL"
    },
    "destinatario": {
      "nif": "B11111119",
      "nombre": "Cliente Ejemplo Sociedad Limitada"
    },
    "detalleDesglose": [
      {
        "impuesto": "01",
        "claveRegimen": "01",
        "calificacionOperacion": "S1",
        "baseImponible": "1000.00",
        "tipoImpositivo": "21.00",
        "cuotaRepercutida": "210.00"
      }
    ],
    "totales": {
      "cuotaTotal": "210.00",
      "importeTotal": "1210.00"
    }
  }'

Anulación de una factura

Deja sin efecto un registro remitido. facturaAnulada identifica la factura original: serie, numero y fechaExpedicion deben coincidir exactamente con ella. Aquí se anula el ticket T-8001, la simplificada de esta página.

POST/v1/verifactu/anular

curl -X POST https://sandbox.veribai.com/v1/verifactu/anular \
  -H "x-api-key: TU_CLAVE" \
  -H "Content-Type: application/json" \
  -d '{
    "version": "1.0",
    "facturaAnulada": {
      "nifEmisor": "B00000000",
      "serie": "T",
      "numero": "8001",
      "fechaExpedicion": "15-09-2026"
    }
  }'