---
title: "Cancel BACS inbound transaction [beta]"
method: POST
path: "/v1/payments/bacs/directcredit/cancel/{id}"
tags: ["BACS direct credit"]
---

# Cancel BACS inbound transaction \[beta\]

`POST /v1/payments/bacs/directcredit/cancel/{id}`

## Request

- Base URL: `https://sandbox.pismolabs.io/bacs`
- URL: `https://sandbox.pismolabs.io/bacs/v1/payments/bacs/directcredit/cancel/{id}`
- Auth: none declared. Required headers: `Authorization`

Cancel a suspended transaction, which was kept on hold based on client's anti-fraud (AF) provider analysis, and return the transaction.

**Suspense transaction flow**

You can use the suspense transaction flow to manage incoming BACS transactions that have been temporarily placed on hold due to suspected fraud pending a decision from the client's anti-fraud (AF) provider.

**Supported scenarios:**

  * An incoming (cash-in) BACS transaction is received.

  * Client' s anti-fraud provider returns "hold" instead of approve or reject.

  * Pismo places the transaction amount into additional fund (unavailable balance) so the beneficiary cannot use the funds until a final decision is made.

  * The client later calls Pismo's [release](ref:post-release-bacs) or cancel endpoints to finalize the transaction.

**Day 2 recall (pre-settlement cancellation)**

This endpoint also supports cancelling an inbound (cash-in) BACS Direct Credit that is still `PROCESSING` and awaiting the Day 3 posting cycle, so it is never credited to the beneficiary. The optional `returnFunds` flag (default `true`) controls whether the funds are returned to the originating institution:

  * `returnFunds` = `true` - Cancel the transaction and generate a return instruction (debiting the beneficiary if the amount was already credited).

  * `returnFunds` = `false` - Cancel the transaction only; no return instruction is created.

In all cases the transaction is removed from the Day 3 settlement queue and marked `CANCELLED`.

This endpoint generates a [BACS direct credit inbound payment processed](https://developers.pismo.io/events/docs/bacs-direct-credit-in-status-change-1) event with `status` = `CANCELLED`.

## Path parameters

- `id` string, required

## Headers

- `Authorization` string, required
- `x-cid` string

## Request body

- BacsCancelBacsCancelRequest: Optional cancellation options. When the body is omitted, `returnFunds` defaults to `true`.
  - `returnFunds` boolean: Should a return instruction be generated as part of the cancellation? Default is `true`. * `true`- Cancel the transaction and return the funds to the originating institution (debiting the beneficiary if the amount was already credited). * `false` - Cancel the transaction only. No return instruction is created.
  - `reason` string: Optional business reason for the cancellation (for example, `DAY2_RECALL`).

## Response `200`

Response Body

- BacsCancelBacsCancelResponse
  - `id` string: Client-generated transaction ID. This is the idempotency key UUID passed in the [Send direct credit outbound payment](ref:post-create-bacs) endpoint.
  - `status` 'CANCELLED': - `CANCELLED` - Something went wrong and the transaction was cancelled. Refer to `reason` for details,
  - `returnFunds` boolean: Cancellation's effective return funds value

## Other responses

- `400`: Bad Request
- `403`: Forbidden
- `404`: Not Found
- `409`: Conflict
- `429`: Too Many Requests
- `500`: Internal Server Error
- `502`: Bad Gateway

---

[API](https://skmtc.dev/pismo/apis/payment-rails-bacs-payments.md) - [All operations](https://skmtc.dev/pismo/apis/payment-rails-bacs-payments/llms.txt) - [OpenAPI document](https://skmtc.dev/pismo/apis/payment-rails-bacs-payments/revisions/d0f145ee1aba?raw)
