Appearance
SEPA Credit Transfers (SCT)
SEPA Credit Transfers (SCT) allow the initiator of the transfer (sender) to make Euro-denominated payments to SEPA countries accounts.
At Treezor, SCT can be used in two directions:
SCTR
are Received into a Wallet and mapped to Payin objectsSCTE
are Emitted from a Wallet and mapped to Payout objects
Received Credit Transfers (SCTR)
When an SCTR is received, a Payin object is created, along with a payin.create
webhook.
Treezor receives batches of SCTR from other banks every worked day between 6:30 and 19:00 Paris local time. They are handled and Wallets are credited as they are received.
Tip – You can also provide Virtual IBANs to receive SCTR
Virtual IBANs have many benefits over your main IBAN (restriction in the direction they can be used, restriction in validity period, easier funds movements categorization, etc.).
The SCTR Payin object
json
{
"payins": [
{
"payinId": "12345",
"payinTag": null,
"walletId": "34567",
"userId": "852741", // Valued to 3 initially in Production. DO NOT USE.
"payinStatus": "VALIDATED", // Funds are available to the Wallet owner
"paymentMethodId": "20",
"messageToUser": "Transfer to my Wallet",
"subtotalItems": "100.00",
"subtotalServices": "0.00",
"subtotalTax": "0.00",
"amount": "100.00",
"currency": "EUR",
"createdDate": "2018-01-01 17:00:00",
"walletEventName": "Wallet Test",
"walletAlias": "test-wallet-abcd",
"userFirstname": "CMA",
"userLastname": "",
"codeStatus": "140005",
"informationStatus": "",
"refundAmount": null,
"ibanFullname": "ALEX OAK",
"DbtrIBAN": "FR763000401544999999999123",
"ibanBic": "BNPAFRPP",
"ibanTxEndToEndId": "XXXXXXXXX",
"ibanTxId": "180799999990123",
"forwardUrl": null,
"paymentAcceptedUrl": null,
"paymentRefusedUrl": null,
"paymentWaitingUrl": null,
"paymentExceptionUrl": null,
"paymentCanceledUrl": null,
"payinDate": null,
"mandateId": null,
"creditorName": "WILL OAK",
"creditorAddressLine": null,
"creditorCountry": null,
"creditorIban": "FR761679999999999999011456",
"creditorBIC": "TRZOFR21XXX",
"virtualIbanId": null,
"virtualIbanReference": null,
"ibanId": "995d69d1839999999999a6935979ea8110d3"
}
]
}
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
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
Caution – UserId
initial value in Production
In Production environment, all SCTR are initially received with userId
attribute valued to 3
. It is strictly forbidden to use this value, this is a technical user for Treezor use only.
Rejection of an SCTR
Immediate rejection
An SCTR can be immediately rejected for multiple reasons.
In this case, a sepa.return_sctr
webhook is sent with the reason code provided in the return_reason_code
attribute.
Delayed rejection
Treezor enforces AML/CFT checks before validating an SCTR.
When a suspicious SCTR is encountered, the SCTR funds are frozen and Treezor sends you:
- A
payinrefund.create
webhook withreasonTms
attribute set tonull
andpayinrefundStatus
attribute set toPENDING
(which freezes the funds). - A
payinrefund.update
webhook withreasonTms
attribute populated by an explanation.
Upon further inspection by Treezor, the following occurs depending on whether the anomaly is confirmed:
- No anomaly – A
payinrefund.cancel
webhook is sent (the wallet can be credited by the SCTR). - Anomaly confirmed – A
payinrefund.update
webhook is sent, with aVALIDATED
payinrefundStatus
(which refunds the SCTR).
Information – AML/CFT inspection by Treezor can last up to 48h
Therefore, an SCTR can be delayed by up to 48 hours.
Emitted Credit Transfers (SCTE)
Treezor allows you to send funds from wallets to external accounts using SCTE.
Requirements
- The sender's Wallet must be valid and not frozen
- The sender's User must be valid
- You have the IBAN of the recipient
- You have created an active Beneficiary using this IBAN
Although SCTE can be created an any time, they will only take place on a SEPA Open Banking Day.
Parameters
Attribute | Type | Description |
---|---|---|
walletId | integer | The unique identifier of the debited Wallet. |
beneficiaryId | integer | The unique identifier of the Beneficiary of the Transfer. You must have created the Beneficiary object beforehand. |
amount | number | The amount of the credit transfer. |
currency | string | The currency of the credit transfer. Must be EUR . |
supportFileLink | string | Mandatory if the payout exceeds €10,000 (B2C) or €50,000 (B2B) for supporting documents. See processing for more information. |
Request
bash
curl -X POST {baseUrl}/v1/payouts \
--header 'Authorization: Bearer {accessToken}' \
--header 'Content-Type: application/json' \
-d '{payload}'
1
2
3
4
2
3
4
Here is an example of {payload}
:
json
{
"walletId":{walletId},
"beneficiaryId":{beneficiaryId},
"amount":1000,
"currency":"EUR"
}
1
2
3
4
5
6
2
3
4
5
6
Returns the Payout object, with its payoutStatus
set to PENDING
at first. You will then receive sequentially the following webhooks.
Webhook | When | Specific attributes |
---|---|---|
payout.update | When the SCTE is sent to the SEPA network. | PENDING status and 160014 codeStatus |
payout.update | When the SCTE sender's wallet is debited. | VALIDATED status |
json
{
"payouts":[
{
"payoutId":"2XX40",
"payoutTag":"25XXXXXXXXXXXXXXXX86f5cb",
"payoutStatus":"VALIDATED",
"payoutTypeId":1,
"payoutType":"Credit Transfer",
"walletId":"85090",
"label":"Remboursement",
"payoutDate":"2017-10-04",
"amount":"1000.00",
"currency":"EUR",
"partnerFee":"0",
"createdDate":"2017-10-04 09:37:34",
"modifiedDate":"2017-10-04 09:55:57",
"walletEventName":"XXXXXXXAB",
"walletAlias":"XXXXXXXXXX",
"userLastname":"",
"userFirstname":"",
"userId":"636338",
"bankaccountIBAN":"XXXXXXXXXXXXXXXXXXXXXXXX",
"codeStatus":"160004",
"informationStatus":"",
"supportingFileLink":""
}
]
}
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
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
Please note that to retrieve the beneficiary IBAN, you can fetch the Beneficiary object using the beneficiaryId
.
Processing
Emitted SEPA Credit Transfers (SCTE) are executed the next worked day when requested before the cutoff point (10AM).
When the SCTE exceeds €10,000 (B2C) or €50,000 (B2B), you must provide support documents in the supportFileLink
parameter:
- An invoice, bill, contract, or similar document.
- A RIB of the creditor, edited by the creditor's bank.
Support documents may be required for additional controls if Treezor deems the transaction of interest.
Treezor is entitled to refuse an SCTE when the aforementioned requirements are not met, or upon suspicion of fraudulent activity.
Rejection of an SCTE
A beneficiary's bank can reject an SCTE for multiple reasons.
In this situation a payoutrefund.create
webhook is sent, with the reasonCode
for the rejection provided.
Recalling an SCTE
To recall an SCTE, please check out the dedicated article.