Mark an invoice as sent
Record delivery of an invoice; the meaning depends on the API version.
- Before 2026-10-01 it issues a draft.
- From 2026-10-01 it only sets is_sent, on issued/overdue; else 422 invoice_cannot_be_marked_as_sent.
Signing certificate (NO VERI*FACTU). Only in that mode, a missing or invalid company certificate is rejected before the invoice is issued: 422 verifactu_not_eligible, error.subcode: signing_certificate_unavailable; nothing is consumed, so fix it and repeat the call.
Request
- Base URL: https://api.factuarea.com/v1
- URL: https://api.factuarea.com/v1/companies/{company}/invoices/{invoice}/mark-sent
- Auth: one of:
- HTTP bearer
- API key in header X-API-Key
Path parameters
Public identifier (UUID v7) of the company. Get it from GET /v1/me (data.scope[].id).
Public identifier (UUID v7) of the invoice.
Headers
Client-generated opaque key (up to 255 characters; UUID v7 recommended) that makes retries safe: the first response is cached and replayed for repeats without re-executing the mutation. Reusing a key with a different body returns 422 idempotency_key_reused; the values of secret fields (password, secret…) count as part of the body, so retrying with a corrected secret under the same key is a different request, never the replay of the earlier answer. See the Idempotency guide. Required on this operation: repeating it delivers an effect that cannot be taken back (an email sent, a file generated, a third-party call, a charge), so a request without this header is rejected with 422 idempotency_key_required before any business logic runs.
Pin the API version (YYYY-MM-DD, Stripe-style date versioning) for this request; omit to use the key's pinned version, or the latest if none. Unsupported version → 400 unsupported_api_version; malformed → 400 parameter_invalid_format. The effective version is echoed in the Factuarea-Version response header. See the Versioning guide.
Response
Example response
{
"data": {
"id": "01931b3e-7c4a-7f2e-9a8b-3c5d6e7f8a42",
"object": "invoice",
"number": "FAC-2026-00042",
"is_number_assigned": true,
"type": "F1",
"series": {
"id": "01931b3e-7c4a-7f2e-9a8b-3c5d6e7f8b02",
"code": "FAC-2026"
},
"client": {
"id": "01931b3e-7c4a-7f2e-9a8b-3c5d6e7f8a01",
"name": "Acme Soluciones SL"
},
"status": "paid",
"price_list_id": "01931b3e-7c4a-7f2e-9a8b-3c5d6e7f8b10",
"price_list_name": "Tarifa profesional 2026",
"issued_on": "2026-03-15",
"due_on": "2026-04-14",
"operation_on": null,
"subtotal": "1000.00",
"taxes_total": "210.00",
"total_vat": "210.00",
"total_retention": "0.00",
"total_surcharge": "0.00",
"total": "1210.00",
"total_disbursements": "0.00",
"total_to_pay": "1210.00",
"currency": "EUR",
"notes": "Servicios profesionales marzo 2026.",
"external_id": "ERP-2026-0042",
"lines": [
{
"object": "invoice_line",
"description": "Consultoría técnica (10 h)",
"additional_description": "Auditoría inicial e informe de mejoras",
"product": {
"id": "01931b3e-7c4a-7f2e-9a8b-3c5d6e7f8b03",
"name": "Consultoría técnica (hora)"
},
"quantity": 10,
"unit_price": "100.0000",
"tax_rate": 21,
"retention_rate": 0,
"surcharge_rate": 0,
"discount_percent": 0,
"subtotal": "1000.00",
"taxes": "210.00",
"total": "1210.00",
"variant": null,
"presentation": null,
"item_kind": "service",
"commercial_unit_code": "HUR",
"base_unit_code": "HUR",
"conversion_factor": "1.000000",
"base_quantity": "10.0000",
"counted_quantity": null,
"counted_unit": null,
"price_list_id": "01931b3e-7c4a-7f2e-9a8b-3c5d6e7f8b10",
"price_list_name": "Tarifa profesional 2026",
"price_source": "price_list",
"price_unit_code": "HUR",
"configuration": null,
"options": [],
"price_semantics": "per_commercial_unit",
"price_adjustment_total": "0.0000",
"option_adjustments_absorbed": false,
"indirect_tax_regime": "iva",
"aeat_tax_code": "S1",
"line_type": "NORMAL"
}
],
"metadata": {
"order_id": "PO-2026-0042"
},
"tags": [
"consultoria",
"cliente-vip"
],
"custom_fields": [
{
"field": "centro_coste",
"value": "CC-2026-001"
},
{
"field": "numero_pedido",
"value": "PO-2026-0042"
}
],
"operation_regime": "general",
"exemption_reason": null,
"legal_mentions": [],
"exclude_347": false,
"verifactu_status": "accepted",
"paid_amount": "1210.00",
"pending_amount": "0.00",
"payments": {
"detail": [
{
"id": "01931b3e-7c4a-7f2e-9a8b-3c5d6e7f8a90",
"object": "payment",
"invoice_id": "01931b3e-7c4a-7f2e-9a8b-3c5d6e7f8a42",
"amount": "1210.00",
"payment_date": "2026-03-20",
"payment_method": "bank_transfer",
"payment_method_text": "Transferencia bancaria",
"reference": "TRF-2026-0042",
"notes": null,
"is_reversed": false,
"reversed_at": null,
"reversal_reason": null,
"reversal_reason_text": null,
"reversal_note": null,
"created_at": "2026-03-20T10:30:00Z",
"updated_at": "2026-03-20T10:30:00Z"
}
],
"total": "1210.00",
"pending": "0.00"
},
"is_corrective": false,
"corrective": null,
"payment": {
"method": "bank_transfer",
"reference": "TRF-2026-0042",
"date": "2026-03-20"
},
"public_link": {
"object": "public_link",
"url": "https://app.factuarea.com/d/01931b3e-7c4a-7f2e-9a8b-3c5d6e7f8a42",
"id": "01931b3e-7c4a-7f2e-9a8b-3c5d6e7f8a42",
"enabled": true,
"expires_at": "2026-09-15T23:59:59Z",
"max_days": 120
},
"substituted_by": null,
"recurring": null,
"paid_recorded_at": "2026-03-20T10:30:00Z",
"paid_date": "2026-03-20",
"issued_at": "2026-03-15T11:45:00Z",
"sent_at": "2026-03-15T11:47:12Z",
"sent_via": "email",
"is_sent": true,
"voided_at": null,
"void_reason": null,
"scheduled_for": null,
"scheduled_action": null,
"channel": null,
"source_store_id": null,
"origin": "native",
"created_at": "2026-03-15T11:30:00Z",
"updated_at": "2026-03-20T10:30:00Z"
}
}Changes
No recorded changes to this operation across all 1 revision of this API.