Appearance
Wallet-to-Wallet Transfers
You can transfer funds from Wallet to Wallet, without using the SEPA network, offering much quicker transfers.
Transfers are instantaneous, are available 24/7 and can be scheduled (see Scheduled Payments). They send transfer.create
webhooks and are mapped to Transfers
objects.
Prerequisites – Funds can be transferred if:
- Both Wallets are active and belong to your Treezor environment
- The Authorized Balance of the debited Wallet is sufficient
- The amount is within the sender's KYC limits and greater or equal to €0,05
Creation
Information – SCA depends on the Wallet owner (beneficiaryWalletId
)
- Per session – The credited Wallet belongs to the user initiating the transfer.
- Per operation – The credited Wallet doesn't belong to the user initiating the transfer.
Parameters
Attribute | Type | Description |
---|---|---|
walletId | integer | The unique identifier of the Wallet to be debited. |
beneficiaryWalletId | integer | The unique identifier of the Wallet to be credited. |
amount | float | The amount of the Transfer. |
currency | string | The currency of the Transfer. Both Wallets must have the same currency. As of today, can only be EUR . |
transferTypeId | integer | The type of Transfer, which can be:
|
transferTag | string | Custom attribute to use as you see fit. Learn more in the Object tags article. |
label | string | Custom data. |
Best practice – Make good use of the transferTypeId
parameter
Using the transferTypeId=3
when billing your customers for your services is strongly recommended. Improper use of transferTypeId
prevents you from displaying fees on Account Statements.
API – Swagger documentation available
For a complete list of Transfer attributes, check the Transfers section of the Swagger.
Request example
bash
curl -X POST {baseUrl}/v1/transfers \
--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":{integer},
"beneficiaryWalletId":{integer},
"transferTypeId":1,
"amount":{amount},
"currency":"EUR"
}
1
2
3
4
5
6
7
2
3
4
5
6
7
Returns the Transfer object if successful:
json
{
"transfers": [
{
"transferId": 4269222,
"transferStatus": "VALIDATED",
"transferTag": "",
"walletId": 1927699,
"walletTypeId": 9,
"beneficiaryWalletId": 2301937,
"beneficiaryWalletTypeId": 9,
"transferDate": "0000-00-00",
"walletEventName": "Account A",
"walletAlias": "account-63346a643a7fa",
"beneficiaryWalletEventName": "Main account",
"beneficiaryWalletAlias": "main-account-64ad18c128f29",
"amount": "101.25",
"currency": "EUR",
"label": "",
"transferTypeId": 1,
"createdDate": "2024-02-07 14:17:51",
"modifiedDate": "2024-02-07 14:17:51",
"totalRows": null,
"foreignId": null,
"partnerFee": null,
"codeStatus": "150005",
"informationStatus": null,
"metadata": null
}
]
}
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
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
A transfer.create
webhooks is also sent.
Note – Treezor sends 1 webhook per transfer-related event
Treezor doesn't send a webhook per Wallet (e.g., one for the debited Wallet and another for the credited Wallet). Only one transfer.create
and transfer.update
webhook is sent per transfer-related event.
Endpoints
Endpoint | Scope |
---|---|
/v1/transfers Search Transfers | read_only |
/v1/transfer Create a Transfers | read_write |
/v1/transfers/{transferId} Retrieve a Transfer using its id | read_only |
/v1/transfers/{transferId} Delete a Transfer using its id | read_write |