Saltar al contenido
MultiFactu · Blume POC
English
Esc
navigateopen⌘Jpreview

Submit invoice in deferred mode (canonical command endpoint)

POST/no-verifactu/invoices/submissions
Request body
requiredapplication/json
billing_agreement_registration_numberstring
NumRegistroAcuerdoFacturacion. If provided, must exist in AEAT.
max length 15 · matches ALPHANUMERIC_RE
corrected_invoicesCorrectedInvoiceDto[]
List of invoices being corrected. Optional but recommended for R1–R5.
Show properties
Array of CorrectedInvoiceDto
issue_datestringrequired
Issue date of the invoice being corrected or replaced (DD-MM-YYYY).
matches ISSUE_DATE_RE
numberstringrequired
Invoice number of the invoice being corrected or replaced.
seriesstring
Series of the invoice being corrected or replaced. Can be empty if the original invoice had no series.
corrective_amountobject
Required when corrective_type = S. Contains totals of the invoice being replaced.
Show properties
corrected_feestringrequired
VAT amount (cuota repercutida) of the original invoice being fully replaced (only when corrective_type = S).
matches CORRECTIVE_AMOUNT_RE
corrected_surcharge_feestring
Equivalence surcharge amount of the original invoice being replaced. Only used when equivalence surcharge regime applies.
matches CORRECTIVE_AMOUNT_RE
rectified_basestringrequired
Taxable base of the original invoice being fully replaced (only when corrective_type = S - substitution).
matches CORRECTIVE_AMOUNT_RE
corrective_typestring
Required ONLY for corrective invoices (R1, R2, R3, R4, R5): • S = By substitution (total replacement) • I = By differences (partial correction)
Allowed:SI
descriptionstringrequired
Description of the operation
min length 1 · max length 500
faqobject
Contexto adicional para aplicar FAQs operativas
Show properties
cash_criterionstring
Criterio de caja (S/N)
matches SI_NO_RE
issuer_territorystring
Territorio del emisor (TAI, CANARIAS, CEUTA, MELILLA)
Allowed:TAICANARIASCEUTAMELILLAEUEXTRA_EU
lottery_amountstring
Importe de lotería incluido como suplido
matches CORRECTIVE_AMOUNT_RE
originstring
Origen del registro: NORMAL, IMPORT, DRAFT, PROFORMA, TEST, VENDING
Allowed:NORMALIMPORTDRAFTPROFORMATESTVENDING
recipient_is_businessboolean
Destinatario empresario/profesional
recipient_territorystring
Territorio del destinatario (TAI, CANARIAS, CEUTA, MELILLA, EU, EXTRA_EU)
Allowed:TAICANARIASCEUTAMELILLAEUEXTRA_EU
recipient_vies_validboolean
Destinatario con VIES válido (si aplica)
suplidos_totalstring
Total suplidos (no forman parte del total factura)
matches CORRECTIVE_AMOUNT_RE
ticketbai_l13string
Equivalencia TicketBAI L13 (OT, RL, VT, IE)
Allowed:OTRLVTIE
total_to_paystring
Total a pagar (importe total + suplidos)
matches CORRECTIVE_AMOUNT_RE
id_otroobject
Alternative identifier for non-Spanish or special cases (VAT number, passport, etc.). Required for EU/international recipients or when NIF not applicable.
Show properties
country_codestring
Country code in ISO 3166-1 alpha-2 format (e.g., FR, DE, IT). Required unless id_type = 02 (NIF-IVA). Not allowed when id_type = 07 and country ≠ ES.
idstringrequired
Identifier value. Maximum 20 characters.
min length 1 · max length 20
id_typestringrequired
Type of identification: • 02 = NIF-IVA (EU VAT number) • 03 = Passport • 04 = Official identification document issued in country of residence • 05 = Residence certificate • 06 = Other supporting document • 07 = Not registered in census (only allowed for Spain)
Allowed:020304050607
incidencestring
Set to "S" only if an incident occurred during invoice processing
matches FLAG_S_RE
invoice_typestringrequired
Invoice type: • F1 = Normal invoice • F2 = Simplified invoice (no recipient ID) • R1–R5 = Corrective invoices • F3 = Replacement of simplified invoices
Allowed:F1F2R1R2R3R4R5F3
issue_datestringrequired
Invoice issue date. MUST be the current date (DD-MM-YYYY). If the operation occurred on a past date, use operation_date instead.
matches ISSUE_DATE_RE
linesInvoiceLineDto[]required
Invoice lines. Maximum 12 items (AEAT restriction). Group items with same VAT rate to avoid exceeding limit.
min items 1 · max items 12
Show properties
Array of InvoiceLineDto
_operationRatingRulesValidatorOperationRatingRulesConstraint
Show properties
object
_taxRateRequiredValidatorTaxRateRequiredConstraint
Show properties
object
equivalent_surcharge_feestring
Equivalence surcharge amount
matches CORRECTIVE_AMOUNT_RE
equivalent_surcharge_typestring
Equivalence surcharge rate (e.g., 5.2, 1.4)
matches PERCENT_RE
exempt_operationstring
Exemption cause (E1 to E6). If used, tax_rate and fee_charged must be empty
Allowed:E1E2E3E4E5E6E7E8
fee_chargedstring
Charged tax amount. Only allowed if operation_rating = S1 (reverse charge)
matches CORRECTIVE_AMOUNT_RE
operation_ratingstring
Operation rating: S1 (taxable), S2 (reverse charge), N1/N2 (not subject)
Allowed:S1S2N1N2
system_keystring
VAT/IGIC regime key. Default 01 (general regime)
Allowed:010203040506070809101114151718192021
taxstring
Tax type. 01 = VAT (default), 02 = IPSI, 03 = IGIC, 05 = Others
default: "01"
Allowed:01020305
tax_ratestring
VAT rate applied. Allowed values for VAT (01): 0, 2, 4, 5, 7.5, 10, 21
matches PERCENT_RE
taxable_basestringrequired
Taxable base or non-taxable amount of the line. Can be positive or negative.
matches CORRECTIVE_AMOUNT_RE
taxable_base_at_coststring
Taxable base at cost. Only for regime 06, IPSI or tax = 05
matches CORRECTIVE_AMOUNT_RE
namestring
Recipient name and surname or company name. Required except for simplified invoices (F2, R5).
max length 120
NIFstring
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.
numberstringrequired
Invoice number. Required. The concatenation of series + number cannot exceed 60 characters.
operation_datestring
Date of the operation/transaction. Can be a past date. Required if different from issue_date and was included in original record.
matches ISSUE_DATE_RE
replaced_invoicesCorrectedInvoiceDto[]
Only for F3 invoices: list of simplified invoices being replaced.
Show properties
Array of CorrectedInvoiceDto
issue_datestringrequired
Issue date of the invoice being corrected or replaced (DD-MM-YYYY).
matches ISSUE_DATE_RE
numberstringrequired
Invoice number of the invoice being corrected or replaced.
seriesstring
Series of the invoice being corrected or replaced. Can be empty if the original invoice had no series.
seriesstringrequired
Invoice series. Can be empty string (""). Must not begin with a space. The concatenation of series + number cannot exceed 60 characters.
matches NO_LEADING_SPACE_OR_EMPTY_RE
sif_agreement_idstring
IdAcuerdoSistemaInformatico. If provided, must exist in AEAT.
max length 16 · matches ALPHANUMERIC_RE
specialobject
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)
Show properties
couponstring
Set to "S" only for corrective invoices R1 or R5
id_other_thirdIdOtroDto
Show properties
country_codestring
Country code in ISO 3166-1 alpha-2 format (e.g., FR, DE, IT). Required unless id_type = 02 (NIF-IVA). Not allowed when id_type = 07 and country ≠ ES.
idstringrequired
Identifier value. Maximum 20 characters.
min length 1 · max length 20
id_typestringrequired
Type of identification: • 02 = NIF-IVA (EU VAT number) • 03 = Passport • 04 = Official identification document issued in country of residence • 05 = Residence certificate • 06 = Other supporting document • 07 = Not registered in census (only allowed for Spain)
Allowed:020304050607
invoice_without_recipient_id_art_61dstring
Set to "S" for simplified invoices without recipient ID (F2, R5)
issued_by_third_party_or_recipientstring
T = issued by third party, D = issued by recipient
Allowed:TD
simplified_invoice_art_7273string
Set to "S" for invoices under Art. 7.2-7.3 (F1, F3, R1–R4)
third_party_namestring
Required if issued_by_third_party_or_recipient = T
max length 120
third_party_nifstring
Third party NIF. Takes precedence over id_other_third
total_amountstringrequired
Total invoice amount. Validated against sum of lines with ±10€ tolerance (except for special regimes 03, 05, 06, 08, 09)
matches CORRECTIVE_AMOUNT_RE
validate_recipientboolean
Whether to validate recipient in AEAT census and VIES (for EU VAT). Set to false only if you are 100% sure they are registered.
default: true
Responses
201Invoice successfully submitted
correlationIdstringrequired
Correlation ID for tracking this request across distributed systems
dataobjectrequired
Invoice data returned after successful submission
Show properties
csvstring
CSV devuelto por AEAT para el registro
estadostringrequired
Validation status returned by VeriFactu AEAT
Allowed:CorrectaAceptadaConErroresIncorrecto
huellastringrequired
VeriFactu hash (huella) of the invoice - SHA-256 fingerprint used for chain integrity
min length 64 · max length 64
idPeticionstring
IdPeticion devuelto por AEAT
nifPresentadorstring
NIFPresentador devuelto por AEAT
pdfUrlstring<uri>
Signed URL to download the generated invoice PDF from S3
qrstringrequired
Base64-encoded QR code image (data URI format) for invoice verification
timestampPresentacionstring
TimestampPresentacion devuelto por AEAT
urlstring<uri>required
Full VeriFactu verification URL that can be used to validate the invoice online
uuidstring<uuid>required
Unique identifier (UUID) of the submitted invoice
successbooleanrequired
Indicates whether the submission was successful
warningobject
Present only when VeriFactu accepts the invoice with correctable errors (EstadoRegistro = 'AceptadaConErrores'). These are admissible errors per AEAT validation rules that don't prevent invoice registration.
Show properties
additionalErrorInfoobject
Additional detailed error information
Show properties
causastringrequired
Root cause of the error
messagestringrequired
Brief error message describing the issue
solucionstringrequired
Detailed solution or recommended action to resolve the error
subsanablebooleanrequired
Indicates whether the error is correctable/recoverable through subsanation (correction) process
codigostringrequired
Error code from VeriFactu (correctable error code 2000-2999)
mensajestringrequired
Human-readable error description from VeriFactu AEAT
severitystringrequired
Severity level of the warning
Allowed:warning
typestringrequired
Warning type identifier
400Bad request
correlationIdstringrequired
messagestringrequired
pathstringrequired
statusCodenumberrequired
successbooleanrequired
timestampstringrequired
422Unprocessable error
correlationIdstringrequired
errorDetailsobject
Present only when the error comes from VeriFactu submission
Show properties
verifactuErrorVerifactuErrorrequired
Show properties
causastring
Root cause of the error
codigoErrorRegistrostring
descripcionErrorRegistrostring
errorTypestringrequired
Allowed:ADMISSIBLEINADMISSIBLE
messagestring
Brief error message describing the issue
registroDuplicadoobject
Información del registro ya existente cuando AEAT rechaza por duplicidad
Show properties
codigoErrorRegistrostring
Código de error del registro duplicado almacenado en AEAT, si aplica
descripcionErrorRegistrostring
Descripción del error del registro duplicado almacenado en AEAT, si aplica
estadoRegistroDuplicadostring
Estado del registro duplicado almacenado en AEAT (Correcta, AceptadaConErrores, Anulada)
idPeticionRegistroDuplicadostring
IdPeticion asociado a la factura registrada previamente en AEAT (solo se informa si el rechazo es por duplicidad)
solucionstring
Detailed solution or recommended action to resolve the error
subsanableboolean
Indicates whether the error is correctable/recoverable through subsanation (correction) process
messagestringrequired
pathstringrequired
statusCodenumberrequired
successbooleanrequired
timestampstringrequired
500Internal server error
correlationIdstringrequired
messagestringrequired
pathstringrequired
statusCodenumberrequired
successbooleanrequired
timestampstringrequired
Request
curl -X POST "https://api.multifactu.com/no-verifactu/invoices/submissions" \
  -H "Content-Type: application/json" \
  -d '{
  "billing_agreement_registration_number": "ABC123456789012",
  "corrected_invoices": [
    {
      "issue_date": "15-11-2024",
      "number": "2024/00888",
      "series": "A"
    }
  ],
  "corrective_amount": {
    "corrected_fee": "210.00",
    "corrected_surcharge_fee": "52.00",
    "rectified_base": "1000.00"
  },
  "corrective_type": "S",
  "description": "Servicios de consultoría - Diciembre 2025",
  "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"
  },
  "id_otro": {
    "country_code": "FR",
    "id": "FR123456789",
    "id_type": "02"
  },
  "incidence": "S",
  "invoice_type": "F1",
  "issue_date": "07-12-2025",
  "lines": [
    {
      "_operationRatingRulesValidator": {},
      "_taxRateRequiredValidator": {},
      "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": "1000.00",
      "taxable_base_at_cost": "string"
    }
  ],
  "name": "ACME Solutions S.L.",
  "NIF": "B12345678",
  "number": "2025/00123",
  "operation_date": "01-12-2025",
  "replaced_invoices": [
    {
      "issue_date": "15-11-2024",
      "number": "2024/00888",
      "series": "A"
    }
  ],
  "series": "",
  "sif_agreement_id": "ABC1234567890123",
  "special": {
    "coupon": "S",
    "id_other_third": {
      "country_code": "FR",
      "id": "FR123456789",
      "id_type": "02"
    },
    "invoice_without_recipient_id_art_61d": "S",
    "issued_by_third_party_or_recipient": "T",
    "simplified_invoice_art_7273": "S",
    "third_party_name": "string",
    "third_party_nif": "string"
  },
  "total_amount": "1210.00",
  "validate_recipient": true
}'
Response
{
  "correlationId": "550e8400-e29b-41d4-a716-446655440000",
  "data": {
    "csv": "CSV1234567890",
    "estado": "Correcta",
    "huella": "3B8D82984B4E67934DD0C9FA4497F9ED9EF454B15A1A02EBB89B1CADE99B69F9",
    "idPeticion": "1234567890ABCDEF",
    "nifPresentador": "B12345678",
    "pdfUrl": "https://bucket.s3.amazonaws.com/...&X-Amz-Signature=...",
    "qr": "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAaQAAAGkCAYAAAB+TFE1...",
    "timestampPresentacion": "2025-01-01T12:34:56",
    "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"
  },
  "success": true,
  "warning": {
    "codigo": "2000",
    "mensaje": "El cálculo de la huella suministrada es incorrecto. The invoice hash calculation doesn't match AEAT specifications.",
    "severity": "warning",
    "type": "verifactu_accepted_with_errors"
  }
}