Recall Cases (available soon)

Learn about Recall Cases – when they are triggered, how to respond, and the complete workflow for handling recall requests.

A Recall Case is raised by Banking Circle when a request is received from another bank to return a payment that has been settled.

A Recall Case requires a response from you. You must choose whether to accept or reject the recall request. The case will remain "OPEN" until you submit a decision or the deadline has passed.

⚠️

Action Required: All Recall Cases require a response from you. Failure to respond may result in the request being re‑notified or closed as non‑responsive.

Incoming Recall Requests

An incoming recall request is created when an external bank requests a settled payment to be returned. These requests include details about the original payment, the reason for the recall, and the deadline for responding.

You must assess each recall request and respond by either accepting or rejecting it. If you accept the request, the return or reversal of the payment is handled automatically. However, it can take several business days to instruct the return payment. If you reject it, you must provide a predefined rejection reason.

Responding to an Incoming Recall Case

Step 1: Retrieve Recall Details

Use the GET Recall Case endpoint to get the full case details, including:

  • Recall request and reasoning
  • Recall status and deadline for response
  • Any previously submitted recall action (if applicable)
  • Transaction information

Step 2: Submit Your Response

Respond to a Recall Request via the Submit Recall Response endpoint. You can respond in two ways:

  1. Reject the recall: Provide a rejection reason. Only predefined rejection reasons are supported.
  2. Accept the recall: No reason code is required. Acceptance does not immediately return funds; the payment return or reversal is processed manually within several business days.

Recall Request Reasons

Recall request reasons indicate why the external bank has asked for the settled payment to be returned.

Reason CodeDescription
AC03Invalid creditor account number.
AM09Wrong amount.
DUPLDuplicate sending.
DT01Invalid date range.
FRADFraudulent originated credit transfer.
CUSTRequested by customer.
TECHTechnical problems resulting in erroneous credit transfer.
UNKFRemitters bank/client request.
MS01Reason has not been specified due to sensitivities.

Recall Statuses

Recall statuses reflect the progression of the recall request and your submitted response.

Case StatusRecall StatusDescription
OPENOPENInitial recall request received.
OPENOPEN_RESPONSE_REQUIREDA chaser has been issued; response required.
IN_PROGRESSACCEPTEDPositive response registered; awaiting confirmation.
CLOSEDACCEPTEDRecall accepted and completion confirmed.

Recall Rejection Reasons

A Recall Case must only be rejected using a predefined list of reasons.

Reason CodeDescription
FUNDS_NO_LONGER_AVAILABLEFunds are no longer available.
CLOSED_ACCOUNTAccount is closed.
UNABLE_TO_OBTAIN_RESPONSENo response could be obtained from the customer.
FUNDS_HAVE_ALREADY_BEEN_RETURNEDFunds have already been returned.
REQUEST_REJECTED_BY_RECEIVERThe request was rejected by the receiver.

Workflow

The diagram below illustrates the lifecycle of a Recall Case.

sequenceDiagram
    participant EXT as External Bank
    participant BC as Banking Circle
    participant Client as Client

    EXT->>BC: Incoming Recall Request
    BC->>BC: Create Recall Case

    alt Client uses webhook data
        BC-->>Client: Send webhook case-event (Case Opened)
        Client->>Client: Extract Case ID from webhook
    else Client polls for cases
        Client->>BC: GET Cases (/api/v1/cases)
        BC-->>Client: Return case list (including new Case ID)
    end
    
    Client->>BC: GET Recall Case<br/>(/api/v1/cases/recalls/{case-id})
    
    Client->>BC: Submit Recall Response<br/>POST /api/v1/cases/recalls/{case-id}/submissions
    BC->>BC: Recall Status Update<br/> 'ACCEPTED' or 'REJECTED'

    BC->>EXT: Send recall action (Accept/Reject)
    BC->>BC: Case Status Update<br/> 'CLOSED'

    alt Client uses webhook data
        BC-->>Client: Send webhook case-event (Case Closed)
    end