Send an invoice
The outbound invoicing module allows your system to transmit invoices to French customers (B2B and B2G) while simultaneously fulfilling state tax reporting requirements. The communication workflow is split into two distinct operational parts: an initial asynchronous submission followed by continuous status monitoring.
Part 1: Submission and Detail Retrieval
To send an invoice, you must forward the structured file content to A-Cube. The platform validates the payload synchronously and responds immediately with a unique identifier (invoice_id). This ID is a critical piece of data; it must be stored in your database to fetch the current invoice layout, details, and historic processing state at any time via a dedicated tracking endpoint.
- Submit an Outbound Invoice:
POST /invoices - Fetch Invoice Details:
GET /invoices/{uuid}
Sample Submission Response (201 Created)
{
"uuid": "4f7a9112-9c3b-48fa-8672-111222333aaa",
}
Part 2: Real-Time Lifecycle Tracking via Webhooks
Once A-Cube accepts the document, it moves asynchronously through the French 5-corner distribution network. You do not need to poll our endpoints to follow its progress; A-Cube pushes real-time event updates straight to your registered callback URLs via Webhooks under the invoice.outbound event type.
These events track two major phases of the document's journey:
-
A-Cube & PPF Submission States: Immediate technical updates confirming whether the invoice successfully cleared initial syntax validations or was blocked due to an anomaly (e.g., getting a
213 Rejectedtechnical status from the platform or a251 Errorfrom the central government). -
Recipient & Regulatory Actions: Subsequent downstream business actions dispatched by the buyer or the public portal as the invoice is processed (such as
210 Refusedif the customer disputes it, or212 Payment receivedonce payment milestones clear).
Sample Lifecycle Webhook Payload
{
"eventId": "019ea765-da8a-70af-a037-b068ad1ff1ce",
"eventType": "invoice.status",
"status": "205",
"invoiceUuid": "019ea760-dad8-70b9-9b23-f60ff4004509"
"direction": "OUTBOUND"
}
Integration Best Practice: Configure your webhook handlers to catch these states automatically. This ensures your application's user interface can instantly display when an invoice is accepted by the state, currently in dispute, or successfully settled without requiring manual refreshes.