Appearance
Account Statements
Account Statements synthesize all operations affecting the Balance of a Wallet for a given month, along with the Balance at the start and end of that month. It also displays 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 mandatory information about:
- The account holder – Name, legal status, address, capital, VAT no., Companies Register no. (RCS)
- The mediator – Name, legal status, address, capital, VAT no., Companies Register no. (RCS)
Note – Account statements and parent-children relations
Parent Users can access Accounts Statement of their Children Users.
Treezor provides Account Statements in 2 formats:
- As PDF – Customize the templates and Treezor generates the statements in PDF.
- As JSON – Retrieve the raw information in JSON and you generate the statements.
Reading – Your legal obligations explained
Learn more about the requirements regarding statement of account and statement of fees.
As PDF Incompatible with crypto feature
Templated statements are Account Statements generated by Treezor in PDF file format. They can be provided as-is to your Users.
You may customize the HTML template of those Statements and request an Account Statement for any given month but the current one.
Account Statements for the previous month are generated between the 1st and 3rd of the current month.
Request an Account Statement
To request an Account Statement you may use the following request.
Query parameters
Attribute | Type | Description |
---|---|---|
walletId | string | The unique identifier of the Wallet. |
month | integer | The month of the statement (2 digits leading with 0 ) |
year | integer | The year of the statement (4 digits, e.g., 2024 ) |
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
You can use the following request to generate the statement.
bash
curl -X GET {baseUrl}/core-connect/statements/{walletId}/computed?year={year}&month={month} \
--header 'Authorization: Bearer {accessToken}'
1
2
2
Returns an object containing a download URL (link
).
json
{
"link": "https://xxxxxx.s3.eu-west-3.amazonaws.com/tmp/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxxx.pdf",
"expireIn": 300
}
1
2
3
4
2
3
4
The provided download URL expires after 5 minutes.
Customize the template
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 Accounts Statments.
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>{{ operation.type }}</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
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
You can check the list of all available variables.
Notes
- The
operation.type
variable is always provided in French. - The
totalAmountFees
must be present - The
totalAmountCreditNote
is optional
Upload the template
Don't forget to encode your template in base64.
bash
curl -X PUT {baseUrl}/customization/templates/wallet.statement/template \
--header 'Authorization: Bearer {accessToken}' \
--header 'Content-Type: application/json' \
-d '{
"template": "{base64encodedTemplate}"
}'
1
2
3
4
5
6
2
3
4
5
6
This should return an HTTP Status Code 201
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
To test your template you may use the following request, which will populate your template with dummy data.
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
Answer with 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 overriden nor regenerated.
As JSON
The process for generating a statement from raw data is as follows:
- Retrieve the data needed for the building a statement via an API Call to Treezor
- Optionally decrypt the data
- Generate a PDF on your own, using the collected data
Note – When the Encryption feature is active
- The operation
name
field returns an empty string. - Encrypted fields are returned among the header parameters with the following structure:
operations.metadata.<field>
.
Retrieve the raw data
Query parameters
Attribute | Type | Description |
---|---|---|
walletId | string | The unique identifier of the Wallet. |
month | integer | The month of the statement (2 digits leading with 0 ) |
year | integer | The year of the statement (4 digits, e.g., 2022 ) |
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
You can use the following request to retrieve the raw data, with the relevant query parameters.
bash
curl -X GET {baseUrl}/core-connect/statements/{walletId}/raw?month={month}&year={year} \
--header 'Authorization: Bearer {accessToken}'
1
2
2
Returns the object containing all the necessary data.
json
{
"firstBalance":{
"amount":5.76,
"date":"2024-01-01"
},
"lastBalance":{
"amount":-553.03,
"date":"2024-01-31"
},
"operations":[
{
"date":"2024-01-22",
"type":"cardTransaction",
"name":"Reece Little (978 46.81)",
"direction":"DEBIT",
"amount":46.81,
"metadata": {}, //new
},
// some operations hidden for brevity
{
"date":"2024-01-13",
"type":"check",
"name":"Check (258925650)",
"direction":"CREDIT",
"amount":97.34,
"metadata": {}, //new
},
{
"date":"2024-01-14",
"type":"cardTopup",
"name":"Card Top Up (via hipay) (1716679992)",
"direction":"CREDIT",
"amount":87.96,
"metadata": {}, //new
}
],
"totalOperation":-558.79,
"totalAmountFees":0,
"totalAmountCreditNote":0,
"user":{
"title":"M",
"firstname":"Alex",
"lastname":"Oak",
"address1":"15 Rosewood lane",
"address2":"",
"address3":"",
"postcode":"75017",
"city":"Paris",
"country":"FR"
},
"wallet":{
"iban":"FR7616798000010000166897545",
"bic":"TRZOFR21XXX"
}
}
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
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
If you get a 404
HTTP Status Code, the Statement data is not yet ready or the Wallet doesn't exist.
Build a template
You need to:
- Build a template using your favorite template engine
- Decipher the data (if the Encryption feature is activated)
- Inject the data into the template
- Generate a PDF
- Send the generated PDF to your end user.
Variables
Below is a list of available variables for Account Statement templates.
Variable | Related to | Additional information (if any) |
---|---|---|
wallet.iban | Wallet | |
wallet.bic | 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 | |
operations[*].type | Operations | Always provided in French. |
operations[*].name | Operations | |
operations[*].direction | Operations | |
operations[*].amount | Operations | |
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/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 |