Appearance
Account documents
Account documents are official records that can be generated with Treezor for your Wallets.
Treezor offers the flexibility to retrieve these documents either as ready-to-use PDFs (generated using configurable templates) or as raw JSON data, giving you full control over the document's final presentation and integration into your services.
Available account documents
Account details
Account Details corresponds to the bank details of the Wallet, with all the relevant information such as the IBAN and the owner's identity. This is known as RIB in French.
Account statements
Account Statements synthesize all operations affecting the Balance of a Wallet for a given month. It also provides the Balance at the start and end of that month, the sum of debits, and the sum of credits.
Feature activation – Accounts Statements are disabled by default
You can request access to this feature by contacting Treezor. Please keep in mind this service only applies starting February, 2022.
Banks are legally obligated to provide Accounts Statements for a duration of 5 years, although the requirements differ depending on the nature of the end user.
Account statements must provide the following mandatory information about the account holder and the mediator: name, legal status, address, capital, VAT no., and Company Registration no. (RCS).
Please note that in the context of parent-children relations, Parent Users can access Accounts Statement of their Children Users.
Reading – Your legal obligations explained
Learn more about the requirements regarding statement of account and statement of fees.
Account certificates
For reporting or declarative purposes, your Wallets or the ones of your end users might require some official documents.
The Treezor API now natively provides 3 documents for financial auditors and tax services:
Certificate | Description |
---|---|
Balance certificate | Attestation proving the current balance on your account. |
Closure certificate | Attestation proving the account was closed. |
Domiciliation certificate | Attestation proving the account registered address. |
Retrieve raw JSON data
The process for generating a document from raw data is as follows:
- Retrieve the required data using the dedicated endpoint.
- Optionally decrypt the data (for statements, if encrypted).
- Generate the document in your preferred format using the collected data.
Note – when the Encryption feature is active for Statements
- The operation
name
field returns an empty string. - Encrypted fields are returned among the header parameters with the following structure:
operations.metadata.<field>
.
Query parameters
Attribute | Type | Description |
---|---|---|
walletId | string | The unique identifier of the Wallet. |
month | integer | Statements only. The month of the statement (2 digits leading with 0 ) |
year | integer | Statements only. The year of the statement (4 digits, e.g., 2025 ) |
Caution – You can generate statements from Feb, 2022 only
Treezor can't generate statements before the service was made available. Therefore, the earliest statement you can generate is for 02/2022.
Request examples
bash
curl -X GET {baseUrl}/core-connect/account-details/{walletId}/raw \
--header 'Authorization: Bearer {accessToken}' \
--header 'Content-Type: application/json'
1
2
3
2
3
bash
curl -X GET {baseUrl}/core-connect/statements/{walletId}/raw?month={month}&year={year} \
--header 'Authorization: Bearer {accessToken}'
1
2
2
bash
curl -X GET {baseUrl}/core-connect/certificates/walletBalance/{walletId}/raw \
--header 'Authorization: Bearer {accessToken}' \
--header 'Content-Type: application/json'
1
2
3
2
3
bash
curl -X GET {baseUrl}/core-connect/certificates/walletClosure/{walletId}/raw' \
--header 'Authorization: Bearer {accessToken}' \
--header 'Content-Type: application/json'
1
2
3
2
3
bash
curl -X GET {baseUrl}/core-connect/certificates/walletDomiciliation/{walletId}/raw \
--header 'Authorization: Bearer {accessToken}' \
--header 'Content-Type: application/json'
1
2
3
2
3
Returns the JSON version of the document.
json
{
"bic": "TRZOFR21XXX",
"iban": "FR7616798000010000XXXXXXXXX",
"title": "",
"firstname": "Alex",
"lastname": "Willow",
"postcode": "75000",
"city": "Paris",
"address1": "15 Hazel road",
"address2": "",
"countryName": "Allemagne",
"treezorAddress": {
"name": "Treezor SAS",
"address1": "33, av de Wagram",
"address2": null,
"postcode": "75017",
"city": "Paris"
}
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
json
{
"firstBalance": {
"amount": "50.10",
"date": "2025-02-01"
},
"lastBalance": {
"amount": "-322.25",
"date": "2025-02-28"
},
"operations": [
{
"date": "2025-02-08",
"type": "Prlv SEPA",
"name": "Hertha Abbott Ipsa quod dolores modi quia et. RUM: 864a91c7-e7f7-3a3f-a688-2a6271bdd9af",
"direction": "DEBIT",
"amount": "56.90",
"metadata": {
"payoutId": "649715658",
"payoutTag": "Eos voluptatum impedit quasi rem adipisci.",
"label": "Ipsa quod dolores modi quia et.",
"beneficiaryId": "1181276320",
"beneficiaryName": "Hertha Abbott",
"endToEndId": null,
"reasonCode": null,
"reasonDescription": null,
"uniqueMandateReference": "864a91c7-e7f7-3a3f-a688-2a6271bdd9af"
}
},
{
"date": "2025-02-10",
"type": "Vir SEPA",
"name": "Miss Katherine Swift ",
"direction": "DEBIT",
"amount": "15.11",
"metadata": {
"payoutId": "331556016",
"payoutTag": "Facere nihil odit error et.",
"label": "",
"beneficiaryId": "415584822",
"beneficiaryName": "Miss Katherine Swift",
"endToEndId": null,
"reasonCode": null,
"reasonDescription": null,
"uniqueMandateReference": ""
}
},
{
"date": "2025-02-21",
"type": "Carte",
"name": "Austyn Nolan (EUR 36.91) Card ****9835",
"direction": "DEBIT",
"amount": "36.91",
"metadata": {
"maskedPan": "****9835",
"merchantName": "Austyn Nolan",
"localAmount": {
"amount": 3691,
"currency": "978"
},
"paymentId": "1173130796"
}
},
],
"totalDebit": 586.83,
"totalCredit": 214.48,
"user": {
"title": "",
"firstname": "",
"lastname": "",
"address1": "99 rue de test",
"address2": "",
"address3": null,
"postcode": "75001",
"city": "Paris",
"country": "FR",
"userTypeId": 2,
"state": "",
"legalName": "Compagnie",
"legalRegistrationNumber": "42877171100028"
},
"wallet": {
"iban": "FR7616798000010002753144040",
"bic": "TRZOFR21XXX",
"eventName": "Name of the Wallet",
"walletTag": ""
},
"totalAmountFees": 0,
"totalAmountCreditNote": 0
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
json
{
"user": {
"userTypeId": 1,
"title": "MX",
"firstname": "Alex",
"lastname": "Oak",
"birthday": "1989-09-03",
"placeOfBirth": "Paris",
"birthCountry": "France",
"legalName": "Tree Company",
"legalRegistrationNumber": "34567",
"legalRegistrationDate": "2021-09-23"
},
"wallet": {
"walletStatus": "VALIDATED",
"bic": "TRZOFR21XXX",
"iban": "FR7616798000010000101039007",
"createdDate": "2021-09-23 16:33:50"
},
"balance": {
"currentBalance": 638.98,
"calculationDate": "2021-09-23 16:33:50"
},
"certificateDate": "2025-06-02T13:07:58+00:00"
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
json
{
"user": {
"userTypeId": 1,
"title": "MX",
"firstname": "Alex",
"lastname": "Oak",
"birthday": "1989-09-03",
"placeOfBirth": "Paris",
"birthCountry": "France",
"legalName": "Tree Company",
"legalRegistrationNumber": "34567",
"legalRegistrationDate": "2021-09-23"
},
"wallet": {
"walletStatus": "CANCELED",
"bic": "TRZOFR21XXX",
"iban": "FR7630006000011234567890189",
"modifiedDate": "2025-09-23 15:31:53"
},
"modifiedDate": "2025-09-23T15:31:53.777Z",
"certificateDate": "2025-06-02T13:07:58+00:00"
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
json
{
"user": {
"userTypeId": 1,
"title": "MX",
"firstname": "Alex",
"lastname": "Oak",
"birthday": "1989-09-03",
"placeOfBirth": "Paris",
"birthCountry": "France",
"legalName": "Tree Company",
"legalRegistrationNumber": "34567",
"legalRegistrationDate": "2021-09-23"
},
"wallet": {
"walletStatus": "VALIDATED",
"bic": "TRZOFR21XXX",
"iban": "FR7616798000010000101039007",
"createdDate": "2021-09-23 16:33:50"
},
"certificateDate": "2025-06-02T13:07:58+00:00"
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
Retrieve PDFs
Query parameters
Attribute | Type | Description |
---|---|---|
walletId | string | The unique identifier of the Wallet. |
month | integer | Statements only. The month of the statement (2 digits leading with 0 ) |
year | integer | Statements only. The year of the statement (4 digits, e.g., 2025 ) |
Caution – You can generate statements from Feb, 2022 only
Treezor can't generate statements before the service was made available. Therefore, the earliest statement you can generate is for 02/2022.
Request example
bash
curl -X GET {baseUrl}/core-connect/account-details/{walletId}/computed \
--header 'Authorization: Bearer {accessToken}' \
--header 'Content-Type: application/json'
1
2
3
2
3
bash
curl -X GET {baseUrl}/core-connect/statements/{walletId}/computed?year={year}&month={month} \
--header 'Authorization: Bearer {accessToken}'
1
2
2
bash
curl -X GET {baseUrl}/core-connect/certificates/walletBalance/{walletId}/computed \
--header 'Authorization: Bearer {accessToken}' \
--header 'Content-Type: application/json'
1
2
3
2
3
bash
curl -X GET {baseUrl}/core-connect/certificates/walletClosure/{walletId}/computed \
--header 'Authorization: Bearer {accessToken}' \
--header 'Content-Type: application/json'
1
2
3
2
3
bash
curl -X GET {baseUrl}/core-connect/certificates/walletDomiciliation/{walletId}/computed \
--header 'Authorization: Bearer {accessToken}' \
--header 'Content-Type: application/json'
1
2
3
2
3
Returns an object containing a URL to download the PDF.
json
{
"link": "https://xxx.s3.eu-west-3.amazonaws.com/tmp/xxx.pdf",
"expireIn": 300
}
1
2
3
4
2
3
4
The PDF must be downloaded within 5 minutes, after which it expires.
Customize PDFs with Templates
Produce the template
The templating engine that should be used for the template is Twig with some limitations.
Providing a new template will not affect previously generated documents.
html
<html lang="en">
<head>
<meta charset="UTF-8">
<meta content="width=device-width, initial-scale=1.0" name="viewport">
<title>Statement</title>
<style>
body{background-size:100% 100%;margin:25px;padding:1%;font-family:-webkit-pictograph,Roboto,sans-serif}.statement-header,td,th{text-align:left}.statement-header-title{font-size:20px;white-space:nowrap}.header-baseline{color:#3e5064;text-align:center}.spacer{width:100%;border-bottom:1px solid #e5e5e5;margin:1em}.bank-account-informations{margin-bottom:4em}.infos>div>div>p{margin:0}.statement-first-balance-amount{text-align:right;display:inline}.statement-operations td{padding:14px;font-size:10px}.statement-operations th{text-align:left;font-size:12px}.statement-operations tr:nth-child(2n){background-color:#ddd}.statement-operations td th{border:1px solid #ddd;text-align:left;padding:14px}.statement-last-balance,.statement-operations-credit,.statement-operations-debit{text-align:right}table{border-spacing:0;font-family:arial,sans-serif;border-collapse:collapse;width:100%}table>thead>tr{background-color:#f7f9ff}table>thead>tr>th{text-align:left;padding:1em}.footer-total-movement td{text-align:right;padding:10px}.footer-new-balance,.total-amount-fees-and-credit-note{margin-top:7px;width:70%;margin-left:auto;background-color:#f7f9ff;padding:10px;text-align:right}.statement-footer{position:fixed;bottom:0;display:flex;flex-direction:column;width:100%;align-items:right}.statement-footer>p{font-size:8px;line-height:0}td{margin-bottom:10px}
</style>
<link
href="https://fonts.googleapis.com/css?family=Roboto:400,100,100italic,300,300italic,400italic,500,500italic,700,700italic,900italic,900"
rel="stylesheet" type="text/css">
</head>
<body>
<div class="statement-header">
<table>
<tbody>
<tr>
<th>
<img alt="agent-logo"
src="data:image/png;base64,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"
width="55%">
</th>
<th class="statement-header-title">
RELEVE D'OPERATIONS
</th>
</tr>
</tbody>
</table>
<p class="header-baseline">Compte - en euros</p>
<div class="spacer"></div>
<div class="statement-content">
<table>
<tbody>
<tr>
{% if user.userTypeId and user.legalName and user.legalRegistrationNumber and user.userTypeId !=
1 %}
<th>{{ user.legalName }} {{ user.legalRegistrationNumber }}</th>
{% else %}
<th>{{ user.firstname }} {{ user.lastname }}</th>
{% endif %}
</tr>
<tr>
<td>{{ user.address1 }}</td>
</tr>
<tr>
<td>{{ user.postcode }} {{ user.city }}
{% if user.state %} {{ user.state }} {% endif %}
{% if user.country %} {{ user.country }} {% endif %}
</td>
</tr>
</tbody>
</table>
</div>
<div class="bank-account-informations">
<div>
<div>
<h3>IBAN</h3>
<p>{{ wallet.iban }}</p>
</div>
</div>
</div>
<div>
<div>
<h3>Relevé d'opérations</h3>
</div>
</div>
<p>du {{ firstBalance.date|date("d/m/Y") }} au {{ lastBalance.date|date("d/m/Y") }}</p>
<div class="statement-first-balance-amount">
<p>Votre précédent solde au {{ firstBalance.date|date("d/m/Y") }}</p>
<h3>{{ firstBalance.amount }} €</h3>
</div>
<table class="statement-operations">
<thead>
<tr>
<th>Date</th>
<th>Type</th>
<th>Opération</th>
<th>Débit</th>
<th>Crédit</th>
</tr>
</thead>
<tbody>
{% for operation in operations %}
<tr>
<td>{{ operation.date|date("d/m/Y") }}</td>
<td>
{% if operation.type == 'Carte' %}
Card Transaction
{% elseif operation.type == 'Prlv SEPA' %}
Bank Direct Debit
{% elseif operation.type == 'Vir SEPA' %}
Bank Transfer
{% elseif operation.type == 'Top up carte' %}
Card Topup
{% elseif operation.type == 'Chèque' %}
Check
{% else %}
{{ operation.type }}
{% endif %}
</td>
<td>{{ operation.name }}</td>
<td class="statement-operations-debit">{% if operation.direction == 'DEBIT' %} {{ operation.amount }}
{% endif %}
</td>
<td class="statement-operations-credit">{% if operation.direction == 'CREDIT' %}
{{ operation.amount }} {% endif %}
</td>
</tr>
{% endfor %}
<tr>
<td></td>
<td></td>
<td>Total des mouvements</td>
<td class="statement-operations-debit">{{ totalDebit }}</td>
<td class="statement-operations-credit">{{ totalCredit }}</td>
</tr>
</tbody>
</table>
<div>
<table class="footer-new-balance">
<tbody>
<tr>
<td>Votre nouveau solde au {{ lastBalance.date|date("d/m/Y") }}</td>
<td class="statement-last-balance"><h3>{{ lastBalance.amount }} €</h3></td>
</tr>
</tbody>
</table>
</div>
<div>
<div>
<p><i>Total des frais de gestion sur la période : {{ totalAmountFees }} €</i></p>
<p><i>Total des remboursements des frais de gestion sur la période : {{ totalAmountCreditNote }} €</i></p>
</div>
</div>
</div>
<div class="statement-footer">
<p>_PARTENAIRE_ TYPE DE SOCIETE_ CAPITAL_ RCS_ SIREN_ SIEGE SOCIAL_ agissant en qualité [1 : d'agent de services de paiement OU 2 : distributeur de monnaie électronique]
</p>
<p> de Treezor SAS, établissement de monnaie électronique et agréée par l'ACPR sous le numéro 16798 - [email contact Partenaire] -
</p>
<p> Médiateur : AFEPAME, https://mediateur-consommation-afepame.fr/
</p>
</div>
</body>
</html>
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
You can check the list of available variables for account statements.
Notes for statements
- The
operation.type
variable is always provided in French. - The
totalAmountFees
must be present - The
totalAmountCreditNote
is optional
Upload the template
Use the following request to upload your base-64 encoded template.
bash
curl -X PUT {baseUrl}/customization/templates/{templateName}/template \
--header 'Authorization: Bearer {accessToken}' \
--header 'Content-Type: application/json' \
-d '{
"template": "{base64encodedTemplate}"
}'
1
2
3
4
5
6
2
3
4
5
6
Returns a 201
HTTP Status Code, without any content.
If something goes wrong, you can also get an error.
You may also customize the template using the Dashboard.
Test the template
You can easily test your document templates by generating the PDFs, except for the statements, which requires you to simulate operations.
Endpoint: /simulation/operations
bash
curl -X POST {baseUrl}/simulation/operations \
--header 'Authorization: Bearer {accessToken}' \
--header 'Content-Type: application/json' \
-d '{payload}'
1
2
3
4
2
3
4
Here is a {payload}
example:
json
{
"walletId": "{walletId}",
"date": "2023-10",
"operations": {
"payin": 5,
"payinrefund": 2,
"payout": 6,
"payoutrefund": 1,
"transfer": 3,
"cardtransaction": 7,
"transferfees":2,
"transfercreditnote":1
}
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
2
3
4
5
6
7
8
9
10
11
12
13
14
Returns a 201
HTTP Status Code.
You can then follow with a normal request of Account Statement to download it.
Tips
- Use the same value for
payin
andpayinrefund
to include payin refunds in your test. - Use a fairly high
payin
value, as types (cheque, sctr) are generated randomly. - An Account Statement generated for a given month can't be overridden nor regenerated.
Variables for account statements
Below is a list of available variables for Account Statement templates.
Variable | Related to | Additional information (if any) |
---|---|---|
wallet.iban | Wallet | |
wallet.bic | Wallet | |
wallet.eventName | Wallet | |
wallet.walletTag | Wallet | |
user.title | User | |
user.firstname | User | |
user.lastname | User | |
user.address1 | User | |
user.address2 | User | |
user.address3 | User | |
user.postcode | User | |
user.city | User | |
user.country | User | |
operations[*].date | ||
operations[*].type | Always provided in French, but can be customized. | |
operations[*].name | ||
operations[*].direction | ||
operations[*].amount | ||
firstBalance.currency | Balances | |
firstBalance.date | Balances | The date of the first Balance of the month. |
firstBalance.amount | Balances | The amount of the first Balance of the month. |
lastBalance.currency | Balances | |
lastBalance.date | Balances | The date of the last Balance of the month. |
lastBalance.amount | Balances | The amount of the last Balance of the month. |
totalDebit | Balances | The cumulated amount of debit Operations. |
totalCredit | Balances | The cumulated amount of credit Operations. |
totalOperation | Totals | The sum of all Operations Mandatory |
totalAmountFees | Totals | The sum of Transfers of type Fees Mandatory |
totalAmountCreditNote | Totals | The sum of Transfers of type Credit note Optional |
Endpoints
Endpoint | Scope |
---|---|
/core‑connect/account‑details/{walletId}/computed Request a PDF account details for a given Wallet | read_only |
/core‑connect/account‑details/{walletId}/raw Retrieve a JSON account details for a given Wallet | read_only |
/core-connect/statements/{walletId}/computed Request a PDF statement for a given Wallet | read_only |
/core-connect/statements/{walletId}/raw Retrieve statement information for a given Wallet | read_only |
/core-connect/certificates/walletBalance/{walletId}/computed Request a PDF Balance Certificate for a given Wallet | read_write |
/core-connect/certificates/walletBalance/{walletId}/raw Request a JSON Balance Certificate for a given Wallet | read_write |
/core-connect/certificates/walletClosure/{walletId}/computed Request a PDF Closure Certificate for a given Wallet | read_write |
/core-connect/certificates/walletClosure/{walletId}/raw Request a JSON Closure Certificate for a given Wallet | read_write |
/core-connect/certificates/walletDomiciliation/{walletId}/computed Request a PDF Domiciliation Certificate for a given Wallet | read_write |
/core-connect/certificates/walletDomiciliation/{walletId}/raw Request a JSON Domiciliation Certificate for a given Wallet | read_write |