A recipient might not receive a French e-invoice even though ecosio has accepted it and legally submitted its regulatory data to the Direction générale des Finances publiques (DGFiP), the French tax authority, via the Portail Public de Facturation (PPF).
France defines separate data-exchange flows for regulatory reporting and invoice delivery:
- Flow 1 sends the invoice’s regulatory data to the DGFiP.
- Flow 2 delivers the invoice to the recipient through the relevant approved platforms.
In this scenario, ecosio completes Flow 1 but can't complete Flow 2.
Check whether the recipient received the invoice
The top-level API status might indicate successful processing because ecosio has completed Flow 1, even though Flow 2 delivery failed. Instead, you must include the relevant query parameter to retrieve additional status details for every submitted invoice.
To retrieve the additional status details, use the following requests:
- Messaging API:
GET /delivery/{messageId}?includeLog=true - Vertex Messaging API:
GET /messages/{messageId}?view=details
The field names differ between the Messaging API and Vertex Messaging API:
| Information | ecosio Messaging API | Vertex Messaging API |
|---|---|---|
| Top-level status field | state | status |
| Additional status details array | log | history |
| Status field | log[].state | history[].status |
| Message field | log[].message | history[].message |
The log and history arrays contain only the most recent status. They don’t provide a complete record of previous statuses.
If the message field contains FLOW:SUBMITTED_NOT_TRANSMITTED, ecosio has reported the invoice’s regulatory data to the French tax authority but hasn’t delivered the invoice to the recipient.
You must send the invoice directly to the recipient outside the API. ecosio recommends sending it by email.
Submitted but not transmitted messages
The message field in the additional status details indicates why ecosio couldn’t deliver the invoice to the recipient.
| Message in additional status details | Meaning |
|---|---|
FLOW:SUBMITTED_NOT_TRANSMITTED|Flow2 Peppol sending failed with non-temporary error | The recipient has an active address in the French Directory (Annuaire), but ecosio couldn’t deliver the invoice through Peppol. |
FLOW:SUBMITTED_NOT_TRANSMITTED|No active directory record for recipient, skipping sending Flow2! | The recipient exists in the French Directory (Annuaire), but no active routing record is available. |
Example responses
The following examples show where to find the additional status details in each API response.
{
"state": "SENT",
"log": [
{
"timestamp": "...",
"state": "...",
"message": "FLOW:SUBMITTED_NOT_TRANSMITTED|..."
}
]
}{
"messageInfo": {
"status": "..."
},
"history": [
{
"timestamp": "...",
"status": "...",
"message": "FLOW:SUBMITTED_NOT_TRANSMITTED|..."
}
]
}