Follow e-mandates
You can follow your e-mandates in two ways: Fintecture pushes a webhook when an e-mandate changes status, and you can read one e-mandate or list them all at any time.
Receive webhooks
Configure a webhook on your application and subscribe to the e-mandate events:
| Event | Sent when |
|---|---|
emandates.status.active | The customer has signed. The mandate can be used. |
emandates.status.cancelled | The e-mandate was cancelled. |
emandates.status.revoked | The e-mandate was revoked. |
E-mandate webhooks are signed like every other Fintecture webhook, and their body is always JSON:
POST /webhooks/fintecture HTTP/1.1
Content-Type: application/json
Date: Tue, 27 Oct 2026 15:24:03 GMT
Digest: SHA-256=wOtTXN9CJPVRbhEHhi9Z9rQvM33FkygXvvx8BwM76fS
X-Request-ID: 88c414df-6895-48db-8ef3-1fd1ce4272c6
Signature: keyId="<your app_id>",algorithm="rsa-sha256",headers="date digest x-request-id",signature="..."
{
"emandate_id": "9e2c7e69-732d-4adf-bede-f4ad15d9e8a3",
"status": "active",
"state": "order-1234",
"event": "emandates.status.active"
}| Attribute | Description |
|---|---|
emandate_id | Identifier of the e-mandate. |
status | New status of the e-mandate. |
state | The state you sent when creating the e-mandate. |
event | Name of the event. |
Verify the signature firstCheck the signature as described in Manage webhooks, then read the e-mandate to get its full details.
Read an e-mandate
Call GET /v1/e-mandates/{emandate_id}:
curl "https://api.sandbox.fintecture.com/v1/e-mandates/9e2c7e69-732d-4adf-bede-f4ad15d9e8a3" \
-H "Authorization: Bearer $ACCESS_TOKEN" \
-H "Accept: application/json"Once signed, the e-mandate carries the signature date, the account to debit and a link to the signed PDF:
{
"data": {
"type": "e-mandates",
"id": "9e2c7e69-732d-4adf-bede-f4ad15d9e8a3",
"attributes": {
"status": "active",
"flow_step": "completed",
"rum": "FTEa3f69fe87aa34b57b0b1274de55947f1",
"creditor_identifier": "FR38ZZZ882BC6",
"scheme": "core",
"currency": "EUR",
"created_at": "2026-10-27T15:20:11.000Z",
"signed_at": "2026-10-27T15:24:02.000Z",
"debtor": {
"name": "Jon Doe",
"email": "[email protected]",
"iban": "FR7630006000011234567890189",
"swift_bic": "AGRIFRPPXXX",
"address": { "number": "12", "street": "rue de la Paix", "zip": "75002", "city": "Paris", "country": "FR" }
}
},
"relationships": {
"documents": {
"data": { "id": "b1fd7fa1-24f2-46b7-9f83-3fd37f940c93", "type": "documents" },
"links": { "self": "https://..." }
}
}
}
}statustells you whether the mandate can be used. See E-Mandate object for every status.flow_steptells you where adrafte-mandate is: waiting for account verification, or waiting for the signature.relationships.documents.links.selfis the link to the signed mandate PDF.
List your e-mandates
Call GET /v1/e-mandates. Results are sorted from the most recent to the oldest.
curl -G "https://api.sandbox.fintecture.com/v1/e-mandates" \
--data-urlencode "filters[status]=active" \
--data-urlencode "filters[signed_at_from]=2026-10-01" \
--data-urlencode "page[number]=1" \
-H "Authorization: Bearer $ACCESS_TOKEN" \
-H "Accept: application/json"| Parameter | Description |
|---|---|
filters[status] | One status, for example active. Repeat the parameter to filter on several statuses. |
filters[rum] | Exact unique mandate reference. |
filters[search] | Exact unique mandate reference, or part of the customer's name (2 to 255 characters). |
filters[creditor_identifier] | Your creditor identifier, useful if you use several. |
filters[signed_at_from] | E-mandates signed on or after this date (YYYY-MM-DD). |
filters[signed_at_to] | E-mandates signed on or before this date (YYYY-MM-DD). Must not be before signed_at_from. |
with_beneficiary | true to include your beneficiary details in each e-mandate. |
page[number] | Page to return, starting at 1. |
page[size] | Number of e-mandates per page, 100 at most. Default: 100. |
The response contains the e-mandates in data, the pagination in meta (total_count, current_page, next_page, previous_page) and the self, next and prev page links in links. See Pagination.
Updated about 1 hour ago