Appearance
Introduction
Wallets are accounts used to store funds. They are necessary for any type of transaction in the Treezor environment.
In most cases, Wallets are attached to your end users (Wallets (n) → User (1)), allowing for the setup of their means of payment (cards, transfers, etc.). You can check their Balance, and they come with a dedicated IBAN.
Treezor offers various types of wallets to adapt to multiple use cases and technical architectures while remaining compliant in a highly regulated context.
Here are the wallet types you might encounter:
Electronic Money Wallet (type 9
)
Electronic Money Wallets are accounts specifically designed to hold funds in the form of e-money and are compatible with a specific set of features.
They are mostly used for prepaid services and online transactions, as the account balance represents prepaid monetary value. Such accounts are governed by the E-money regulation (EU’s E-Money Directive), so you require an EM approval of your project to create this type of Wallets.
Electronic wallets can store either:
- Nominative e-money – The owner is KYC-validated.
- Anonymous e-money – The owner is not KYC-validated.
Depending on the type of e-money, different limits and restrictions may apply.
Electronic Money Limits
E-money is governed by national and international rules that Electronic Money institutions must comply with.
Following these rules, Treezor applies different types of restrictions and limits for anonymous and nominative e-money. The limits and restrictions are currently enforced in Belgium, France, Germany, and Spain. In addition, anonymous electronic money isn't allowed in Italy.
Features
Below the compatibility of Electronic Wallets with Treezor features.
Feature | Anonymous | Nominative |
---|---|---|
Check cashing (payin) | ||
Emitted SEPA Credit Transfer (payout) | ||
Received SEPA Direct Debit (payout) | ||
Received SEPA Credit Transfer (payin) | ||
Instantaneous Received SEPA Credit Transfer (payin) | ||
Emitted SEPA Direct Debit (payin) | ||
Card Acquiring (payin) | ||
Card payment | ||
Wallet-to-Wallet transfers with type=10 | ||
Wallet-to-Wallet transfers with type=9 | ||
Wallet-to-Wallet transfers with type=9 with parent-children relationship between users | ||
Wallet-to-Wallet transfers with type=9 of the same user |
Limits & restrictions
Below are the e-money limits and restrictions. Limits are on a rolling 30-day period.
Feature | Anonymous | Nominative |
---|---|---|
Balance | Max. €150/user | Max. €10.000/user (with physical card) |
Crediting Wallets | Max. €150/user | Max. €10.000/user (with physical card) |
Debiting Wallets | Max. €150/user | Max. €10.000/user (with physical card) |
Cash withdrawals | Max. €1.000/user | |
Cash top-ups | Max. €1.000/user | |
Cash refunds | Max. €1.000/user | |
Card Transaction MCC | Prohibited MCCs: 4829, 6050, 6051, 6536, 6537, 6538, 6540, 7800, 7801, 7995, 9406 | No restriction |
Card transactions | Max. €50/transaction (online) Max. €150/transaction (POS) | Max. €3.000/transaction |
Receiving funds from an anonymous e-money account | Max. €1.000/user | |
Country | Anonymous e-money cannot be used outside of the country where the e-money was issued. | No restriction |
Information – The €150 limit does not apply when the wallet is:
- Used for special payment vouchers (i.e., restricted to certain categories of goods or services) and
- Associated to a parent Legal entity that is KYC validated.
Payment Account Wallet (type 10
)
Payment Account Wallets are accounts that facilitate payment transactions. They support a wider range of operations, including check cashing, emitted SEPA Credit Transfers, and received SEPA Direct Debit.
Payment accounts are governed by payment services regulations, such as the EU's Payment Services Directive 2 (PSD2). Therefore, you require the ACPR approval of your project to create this type of Wallets.
Only KYC-validated users can use Payment Account Wallets.
Master Wallet (type 15
)
Master Wallets are only created by Treezor, mostly to process payment titles with specific and regulated usage (e.g., employee benefits, lunch vouchers). This is what is called in French “Titres Spéciaux de Paiement (TSPs)“.
They are only available to certain projects, as per agreement with Treezor.
Card Transaction Wallet (type 14
& 18
) Internal
Treezor automatically creates additional Wallets to process card transactions properly. They can be of type:
14
for the Mastercard scheme18
for the Visa scheme
These wallets are exclusively for Treezor’s internal usage, and you shouldn't have to interact with them at any point. You may however encounter such Wallets:
- When using the
/v1/wallets
endpoint. - In the
walletCardtransactionId
attribute in the Card object.
How To Credit Wallets (Top-up)
To credit a Wallet, multiple options are available to you.
Feature | Description |
---|---|
Card Topup | Card Topups allow you to display a Card acquisition form in your application, in a similar way to a payment form on a web shop. The user can use their existing Card to credit the wallet instantly. |
SEPA Credit Transfer | SEPA Credit Transfers (SCTR) are a type of inter-bank transfers, initiated by the debtor who needs to know the IBAN of the Wallet to credit. It usually takes a few days to appear on the Wallet. Instantaneous SEPA Credit Transfers (SCTR Inst) are a quicker variant of the aforementioned SCTR. It usually takes a few seconds to appear on the Wallet. |
SEPA Direct Debit | SEPA Direct Debit (SDDE) are a type of inter-bank debit, initiated by the creditor who needs to know the IBAN of the account to debit and have a Mandate signed by the debtor. |
Checks cashing | Traditional check cashing remains a reliable way of receiving money on a Wallet. Treezor offers the ability to first register a check via the API, then mail in that check for cashing on a Wallet. See the Checks section of the documentation for more information. |
Wallet-to-Wallet transfers | Within Treezor, you can use inter-wallet Transfers that take effect immediately. |
Key attributes
Below are some of the most important Wallet attributes.
Attribute | Type | Description |
---|---|---|
walletTypeId | integer | The type of wallet. The Wallet type is editable up to the first operation. Once the first transaction occurred, the walletTypeId can no longer be updated |
eventName | string | The name of the Wallet. |
solde | number | The current Balance of the Wallet. Prefer the Balance endpoints for more accurate values. |
authorizedBalance | number | The balance of the Wallet, including currently pending operations. Prefer the Balance endpoints for more accurate values. |
userId | integer | The unique identifier of the User owning the Wallet. |
walletTag | string | Custom attribute that you can use as you see fit. Learn more in the Object tags article. |
tariffId | integer | The fees applied to the Wallet, as defined by your contract with Treezor. |
walletStatus | string | The status of the Wallet, which can be one of the following: PENDING , VALIDATED , or CANCELED . |
bic | string | The Bank Unique Identifier of the bank hosting the Wallet. All Wallets at Treezor have the same BIC unless you are a Payment Institution or more broadly a Regulated Institution. |
iban | string | The automatically assigned IBAN of the Wallet. |
currency | string | The currency of the Wallet, in the ISO 4217 3-letter code format. As of today, Treezor only supports EUR . |
API – Swagger documentation available
For a complete list of Wallet attributes, check the Wallets section of the Swagger.
Wallet Status
codeStatus | walletStatus | Description | |
---|---|---|---|
120001 | PENDING | Some checks are in progress. | |
120002 | PENDING | KYC process in progress. | |
120003 | CANCELED | Wallet closed by an operator. | |
120004 | CANCELED | Wallet closed by the end user. | |
120005 | VALIDATED | Wallet is ready for use. |
Wallet object
json
{
"walletId": 0,
"walletTypeId": 0,
"walletStatus": "PENDING",
"codeStatus": 0,
"informationStatus": "string",
"walletTag": "string",
"userId": 0,
"userLastname": "string",
"userFirstname": "string",
"jointUserId": 0, // Legacy attribute, do not use
"tariffId": 0,
"eventName": "string",
"eventAlias": "string", // Legacy attribute, do not use
"eventDate": "string", // Legacy attribute, do not use
"eventMessage": "string",
"eventPayinStartDate": "string",// Legacy attribute, do not use
"eventPayinEndDate": "string", // Legacy attribute, do not use
"contractSigned": 0,
"bic": "string",
"iban": "string",
"urlImage": "string",
"currency": "string",
"createdDate": "string",
"modifiedDate": "string",
"payinCount": 0,
"payoutCount": 0,
"transferCount": 0,
"solde": 0,
"authorizedBalance": 0,
"totalRows": 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
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
Best practice – Use the endpoints dedicated to Balances
You may experience some latency with the Wallet solde
and authorizedBalance
fields. Use the /v1/balances/{walletId}
endpoint for a more performant usage. See the Balances article.
Endpoints
Endpoint | Scope |
---|---|
/v1/wallets Create a Wallet | read_write |
/v1/wallets Search for Wallets | read_only |
/v1/wallets/{walletId} Retrieve a Wallet based on its id | read_only |
/v1/wallets/{walletId} Update a Wallet | read_write |
/v1/wallets/{walletId} Set the Wallet status to CANCELED | read_write |
/v1/balances/{walletId} Retrieve the Balance of Wallets based on the walletId or userId | read_only |
/core-connect/balance/{walletId}/balance Retrieve the Balance History of a Wallet | read_only |