Saltar al contenido principal
POST
/
no-verifactu
/
invoices
/
corrections
Correct invoice in deferred mode (canonical command endpoint)
curl --request POST \
  --url https://api.multifactu.com/no-verifactu/invoices/corrections \
  --header 'Authorization: Bearer <token>' \
  --header 'Content-Type: application/json' \
  --data '
{
  "description": "Servicios de consultoría - Diciembre 2025",
  "invoice_type": "F1",
  "issue_date": "07-12-2025",
  "lines": [
    {
      "taxable_base": "1000.00",
      "equivalent_surcharge_fee": "<string>",
      "equivalent_surcharge_type": "<string>",
      "exempt_operation": "E1",
      "fee_charged": "210.00",
      "operation_rating": "S1",
      "system_key": "01",
      "tax": "01",
      "tax_rate": "21",
      "taxable_base_at_cost": "<string>"
    }
  ],
  "number": "2025/00123",
  "previous_rejection": "N",
  "series": "",
  "total_amount": "1210.00",
  "billing_agreement_registration_number": "ABC123456789012",
  "corrected_invoices": [
    {
      "issue_date": "15-11-2024",
      "number": "2024/00888",
      "series": "A"
    }
  ],
  "corrective_type": "S",
  "faq": {
    "cash_criterion": "S",
    "issuer_territory": "TAI",
    "lottery_amount": "10.00",
    "origin": "NORMAL",
    "recipient_is_business": true,
    "recipient_territory": "TAI",
    "recipient_vies_valid": true,
    "suplidos_total": "12.50",
    "ticketbai_l13": "OT",
    "total_to_pay": "102.50"
  },
  "incidence": "S",
  "name": "ACME Solutions S.L.",
  "NIF": "B12345678",
  "operation_date": "01-12-2025",
  "replaced_invoices": [
    {
      "issue_date": "15-11-2024",
      "number": "2024/00888",
      "series": "A"
    }
  ],
  "sif_agreement_id": "ABC1234567890123",
  "validate_recipient": true
}
'
{
  "correlationId": "550e8400-e29b-41d4-a716-446655440000",
  "data": {
    "estado": "Correcta",
    "huella": "3B8D82984B4E67934DD0C9FA4497F9ED9EF454B15A1A02EBB89B1CADE99B69F9",
    "qr": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAaQAAAGkCAYAAAB+TFE1...",
    "url": "https://prewww2.aeat.es/wlpl/TIKE-CONT/ValidarQR?nif=B12345678&numserie=INV001&fecha=01-01-2024&importe=1234.56",
    "uuid": "bcda84ec-a5a7-4af3-a8fa-3c754b32711a",
    "csv": "CSV1234567890",
    "idPeticion": "1234567890ABCDEF",
    "nifPresentador": "B12345678",
    "pdfUrl": "https://bucket.s3.amazonaws.com/...&X-Amz-Signature=...",
    "timestampPresentacion": "2025-01-01T12:34:56"
  },
  "success": true,
  "warning": {
    "codigo": "2005",
    "mensaje": "El campo ImporteTotal presenta valor incorrecto para los valores de campos BaseImponibleOimporteNoSujeto, CuotaRepercutida y CuotaRecargoEquivalencia suministrados.",
    "severity": "warning",
    "type": "verifactu_accepted_with_errors"
  }
}

Autorizaciones

Authorization
string
header
requerido

Bearer authentication header of the form Bearer <token>, where <token> is your auth token.

Cuerpo

application/json
description
string
requerido

Description of the operation

Required string length: 1 - 500
Ejemplo:

"Servicios de consultoría - Diciembre 2025"

invoice_type
enum<string>
requerido

Invoice type: • F1 = Normal invoice • F2 = Simplified invoice (no recipient ID) • R1–R5 = Corrective invoices • F3 = Replacement of simplified invoices

Opciones disponibles:
F1,
F2,
R1,
R2,
R3,
R4,
R5,
F3
issue_date
string
requerido

Invoice issue date. MUST be the current date (DD-MM-YYYY). If the operation occurred on a past date, use operation_date instead.

Ejemplo:

"07-12-2025"

lines
object[]
requerido

Invoice lines. Maximum 12 items (AEAT restriction). Group items with same VAT rate to avoid exceeding limit.

number
string
requerido

Invoice number. Required. The concatenation of series + number cannot exceed 60 characters.

Ejemplo:

"2025/00123"

previous_rejection
enum<string>
predeterminado:N
requerido

Indicates status of previous submission: N = normal correction (original accepted) S = previous corrective was rejected X = original invoice was rejected by AEAT

Opciones disponibles:
N,
S,
X
series
string
requerido

Invoice series. Can be empty string (""). Must not begin with a space. The concatenation of series + number cannot exceed 60 characters.

Ejemplo:

""

total_amount
string
requerido

Total invoice amount. Validated against sum of lines with ±10€ tolerance (except for special regimes 03, 05, 06, 08, 09)

Ejemplo:

"1210.00"

billing_agreement_registration_number
string

NumRegistroAcuerdoFacturacion. If provided, must exist in AEAT.

Maximum string length: 15
Ejemplo:

"ABC123456789012"

corrected_invoices
object[]

List of invoices being corrected. Optional but recommended for R1–R5.

corrective_amount
object

Required when corrective_type = S. Contains totals of the invoice being replaced.

corrective_type
enum<string>

Required ONLY for corrective invoices (R1, R2, R3, R4, R5): • S = By substitution (total replacement) • I = By differences (partial correction)

Opciones disponibles:
S,
I
faq
object

Contexto adicional para aplicar FAQs operativas

id_otro
object

Alternative identifier for non-Spanish or special cases (VAT number, passport, etc.). Required for EU/international recipients or when NIF not applicable.

incidence
string

Set to "S" only if an incident occurred during invoice processing

Ejemplo:

"S"

name
string

Recipient name and surname or company name. Required except for simplified invoices (F2, R5).

Maximum string length: 120
Ejemplo:

"ACME Solutions S.L."

NIF
string

Recipient Spanish NIF. Required except for F2 and R5 if id_otro is provided. If both NIF and id_otro are sent, id_otro takes precedence.

Ejemplo:

"B12345678"

operation_date
string

Date of the operation/transaction. Can be a past date. Required if different from issue_date and was included in original record.

Ejemplo:

"01-12-2025"

replaced_invoices
object[]

Only for F3 invoices: list of simplified invoices being replaced.

sif_agreement_id
string

IdAcuerdoSistemaInformatico. If provided, must exist in AEAT.

Maximum string length: 16
Ejemplo:

"ABC1234567890123"

special
object

Special flags: • coupon (R1/R5) • simplified_invoice_art_7273 (F1, F3, R1–R4) • invoice_without_recipient_id_art_61d (F2, R5) • issued_by_third_party_or_recipient (T/D)

validate_recipient
boolean
predeterminado:true

Whether to validate recipient in AEAT census and VIES (for EU VAT). Set to false only if you are 100% sure they are registered.

Respuesta

Invoice successfully corrected

correlationId
string
requerido

Correlation ID for tracking this correction request across distributed systems

Ejemplo:

"550e8400-e29b-41d4-a716-446655440000"

data
object
requerido

Corrected invoice data returned after successful submission

success
boolean
requerido

Indicates whether the correction submission was successful

Ejemplo:

true

warning
object

Present only when VeriFactu accepts the correction with remaining correctable errors (EstadoRegistro = 'AceptadaConErrores'). These are admissible errors that don't prevent invoice registration but should be fixed in a subsequent correction.

Ejemplo:
{
  "codigo": "2005",
  "mensaje": "El campo ImporteTotal presenta valor incorrecto para los valores de campos BaseImponibleOimporteNoSujeto, CuotaRepercutida y CuotaRecargoEquivalencia suministrados.",
  "severity": "warning",
  "type": "verifactu_accepted_with_errors"
}