# SEPA Recalls & RROs

In some situations (technical errors, fraud, human errors, etc.) the originator of a SEPA Credit Transfer (SCT) can ask to reverse the transfer.

These reversals have different names depending on the who sent the funds:

Treezor allows you to:

  • Receive recalls when you unduly received funds.
  • Emit recalls when you unduly sent funds.

# Types of Recalls (reasonCode)

When receiving or emitting a Recall, it can be of any of the following types.

reasonCode For Description
DUPL Recalls Duplicate payment
TECH Recalls Technical problem
FRAD Recalls Fraudulent origin (these are not subject to a webhook as they are fully analyzed by Treezor)
CUST RROs Customer's reason
AM09 RROs Wrong amount
AC03 RROs Invalid creditor account number

# Types of Recall Rejection (negativeResponseReasonCode)

When rejecting a Recall, the reason may be any of the following.

negativeResponseReasonCode Description
NOOR The associated transaction (SCTR/SCTR Inst) was not received
ARDT The associated transaction has already been returned
AC04 The associated account is closed
NOAS The beneficiary didn't answer (neither accepted nor declined)
CUST The beneficiary rejected the recall
AM04 The beneficiary has insufficient funds
LEGL Legal decision (regulatory rules)
Info icon

Information – Beneficiary obligation to return the funds

Article 1376 of the French Civil Code states that in case of an error, the beneficiary is obligated to return the funds (i.e., accept the recall request). If the beneficiary rejects the Recall, they engage their own legal responsiblity.

# Receiving SCTR Recalls

SCTR Recalls are first analyzed by Treezor upon reception, to decide whether it is legitimate or not. Treezor may:

  • Reject the recall directly (e.g., the account is closed).
  • Handle the decision-making process for recalls of type FRAD, TECH, and DUPL.
  • Pass on the decision-making to you for recalls of type CUST, AM09, and AC03.

If an SCTR recall is pass on to you, then the following occurs:

  1. Treezor informs you of the Recall request using a recallR.need_response webhook.
  2. Treeror blocks immediately the funds on the involved Wallet using a payinrefund.create webhook.
  3. You decide if you want to accept or reject the recall (within 15 working days). To do so, use the dedicated request after receiving the recallR.need_response webhook.
Bulb icon

Tip – Rely on the statusId field

In the webhook recallR.need_response or in the SCTR Recall object, if the statusId field is set to 1 or 3, it means you haven't provided a response yet.

# Status (statusId)

statusId Status Notes
pending 1 PENDING Pending analysis by you (or by Treezor for recalls of type FRAD, TECH, and DUPL)
pending 2 PENDING_PAYIN_REFUND_CREATED For simulation purposes.
pending 3 PENDING_ANSWER_REQUESTED Treezor is awaiting an answer.
warning 7 IN_ERROR
canceled 6 CANCELED
no cross 5 REJECTED
yes checkmark 4 ACCEPTED
Warning icon

Caution – When receiving FRAD, TECH, and DUPL recalls

  • You can't respond to these recalls. Only Treezor is accountable (unless you are a ).
  • You must not inform the end users of the reception of FRAD recalls.

# Structure of an SCTR Recall

The structure of an SCTR Recall is as follows. While the recallR.need_response webhooks only contain a subset of the following attributes, you may retrieve the Recall object by using the /recallRs/{recallId} endpoint.

# Responding to an SCTR Recall

Your response must be sent to the dedicated /v1/recallRs/{recallId}/response endpoint.

# Accept a Recall

Here is a payload example to accept a recall.

Treezor sends a payinrefund.update with a VALIDATED status after receiving your acceptance of the SCTR Recall. This webhook indicates that the blocked funds will be debited.

# Reject a Recall

Here is a payload example to reject a recall.

Treezor sends a payinrefund.update with a status CANCELED and the Authorized Balance is freed up.

You may encounter the following errors while answering to a Recall:

  • 115000 – This recall request does not exist
  • 115001 – Unable to answer because status is not PENDING nor ANSWER REQUESTED
  • 74001 – Input validation failed. The Recall does not belong to you

# Processing flow

Here is a diagram for an SCTR Recall processing.

# Receiving SCTR Inst Recalls

When a Recall regarding an SCTR Inst is received, Treezor sends:

If the recall reason allows you to answer, you have 15 working days to accept or reject the recall. If you don't answer within 15 days, Treezor sends a negative answer on your behalf and you receive a payinrefund.cancel webhook with a REJECTED status.

# Status (statusLabel)

statusLabel Description
pending PENDING Received recall, it is being analyzed by you (or by Treezor for recalls of type FRAD, TECH, and DUPL) Intermediate
pending PENDING_REJECTED_WAITING_ACK Rejected recall, waiting for interbanking system confirmation Intermediate
pending PENDING_ACCEPTED_WAITING_ACK Accepted recall, waiting for interbanking system confirmation Intermediate
no cross REJECTED Rejected recall Final
yes checkmark ACCEPTED Accepted recall Final
Warning icon

Caution – When receiving FRAD, TECH, and DUPL recalls

  • You can't respond to these recalls. Only Treezor is accountable (unless you are a ).
  • You must not inform the end users of the reception of FRAD recalls.

# Responding to an SCTR Inst Recall

Your response must be sent to the dedicated /v1/recall-sct-inst/{sctinstId}/{recallId}/response endpoint within 15 working days, to which Treezor answers with an HTTP Status Code 201.

# Accept a Recall

Here is an example of payload to accept a recall.

Treezor sends a payinrefund.update webhook with an ACCEPTED status and the Wallet is debited a few seconds later.

# Reject a Recall

Here is an example of payload to reject a recall.

The negativeResponseAdditionalInformation attribute is limited to 202 alphanumeric characters and is:

  • Mandatory when the recall reasonCode was FRAD or DUPL or TECH and negativeResponseReasonCode is LEGL
  • Optional when
    • The recall reasonCode was FRAD and negativeResponseReasonCode is not LEGL or
    • The recall reasonCode was AC03
  • Not expected (must be left empty) in any other situations.

Treezor sends a payinrefund.cancel with a status REJECTED and the Authorized Balance is freed up.

# Processing flow

Here is a diagram for an SCTR Inst Recall processing.

# Emitting SCTE Recalls

When requesting a recall, you are not guaranteed to receive the funds back. The decision regarding the recall request is up to the corresponding bank and depends on various factors, including funds availability and compliance with delays.

  • You have up to 10 open banking days for TECH or DUPL recalls and 13 months for RRO and FRAD recalls.
  • The corresponding bank has up to 15 open banking days from the reception of your recall request to respond.

# Process to recall an SCTE

# Processing flow

Here is a diagram for an SCTE Recall processing.

# Emitting SCTE Inst Recalls

When requesting a recall, you are not guaranteed to receive the funds back. The decision regarding the recall request is up to the corresponding bank and depends on various factors, including funds availability and compliance with delays.

Requests for SCTE Inst recalls can be done:

Delays to abide by are the same as for SCTE Recalls:

  • You have up to 10 open banking days for TECH or DUPL recalls and 13 months for RRO and FRAD recalls.
  • The corresponding bank has up to 15 open banking days from the reception of your recall request to respond.
Bulb icon

Tip – Regulated Institutions can emit recalls for all types of reasons

They don't need to create a ticket for TECH, FRAD, and DUPL reasons.

# Create a Recall

Recalls for SCTE Inst payouts are created with the payoutRefunds request.

# Parameters

Below some of the key attributes for SCTE.

Attribute Type Description
payoutId string The unique identifier of the payout (SCTE Inst) for which the recall is to be made.
reasonCode string The reasons of the Recall.
requestAmount float The amount of the recall request. Defaults to the initial payout amount.
requestCurrency float The currency of the recall request. Defaults to the initial payout currency.

# Request example

Here is an example of {payload}:

Returns a payoutRefund object.

Treezor also sends a payoutRefund.create webhook with a payoutStatus attribute set to PENDING.

You can retrive a SCTE Inst Recall by suing the GET /v1/payoutRefunds/{payoutRefundId} endpoint.

# Processing flow

Here is a diagram for an SCTE Inst Recall processing.

# Endpoints

Endpoint Description Scope
/v1/recallR Search for SCT Recalls read_only
/v1/recallRs/{recallRId} Retrieve an SCT Recall or RRO by its id read_only
/v1/recallRs/{recallRId}/response/ Provide your decision following an SCT Recall request read_write
/v1/recall-sct-inst/{sctInstId}/{recallId} Retrieve an SCT Inst Recall
/v1/recall-sct-inst/{sctinstId}/{recallId}/response Provide your decision following an SCT Inst Recall
/v1/payinrefunds/{recallId} Retrieve a payinrefund following a Recall
/v1/payoutRefund Create a Recall (SCTE Inst only) read_write
/v1/payoutRefund/{payoutRefundId} Create a Recall (SCTE Inst only) read_only
/simulation/sct-inst/payin Emulate an SCTR, to test the Recall procedure sandbox-only
/simulation/sct-inst/recall Emulate a reception of a SCTR inst recall, to test the Recall procedure sandbox-only
/simulation/recall-r Emulate a Recallr, to test the Recall procedure sandbox-only
Updated on: 6/27/2024, 12:25:56 PM