---
updatedAt: 2026-08-06T16:59:56.000Z
agentTools:
  siteIndex: https://developers.pismo.io/llms.txt
  projectIndex: https://developers.pismo.io/pismo-docs/llms.txt
---

# Release BACS inbound transaction [beta]

Move a suspended transaction amount from additional funds to available balance and mark the transaction as settled.

**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:**

  * A 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 funds (unavailable balance) so the beneficiary cannot use the funds until a final decision is made.

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

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 `SETTLED`.


# OpenAPI definition

```json
{
  "openapi": "3.1.0",
  "info": {
    "title": "Payment rails - BACS payments",
    "description": "BACS payments system API",
    "contact": {
      "name": "API Support",
      "url": "https://developers.pismo.io/support/"
    },
    "license": {
      "name": "Copyright Pismo"
    },
    "version": "1.0"
  },
  "servers": [
    {
      "url": "https://sandbox.pismolabs.io/bacs",
      "description": "Sandbox API server for testing."
    }
  ],
  "tags": [
    {
      "name": "BACS direct credit"
    }
  ],
  "components": {
    "parameters": {
      "authHeader": {
        "name": "Authorization",
        "in": "header",
        "schema": {
          "type": "string"
        },
        "description": "Account token - access token encoded with a Pismo account ID. Tokens can expire quickly, which can result in a <b>401 Unauthorized</b> message\n",
        "required": true
      },
      "idPath": {
        "name": "id",
        "in": "path",
        "description": "BACS transaction ID.",
        "required": true,
        "schema": {
          "type": "string",
          "maxLength": 31
        }
      },
      "reqTrackingIdHeader": {
        "name": "x-cid",
        "in": "header",
        "schema": {
          "type": "string"
        },
        "description": "Request tracking ID. If not provided, a random UUID is generated.\n",
        "required": false
      }
    },
    "schemas": {
      "amount": {
        "type": "number",
        "description": "Transaction amount.",
        "example": 600
      },
      "bacs_release.BacsReleaseResponse": {
        "type": "object",
        "properties": {
          "id": {
            "$ref": "#/components/schemas/id"
          },
          "status": {
            "$ref": "#/components/schemas/bacs_release.status"
          },
          "amount": {
            "$ref": "#/components/schemas/amount"
          }
        }
      },
      "bacs_release.status": {
        "type": "string",
        "description": "- `SETTLED`—Transaction completed, processed, and settled.\n",
        "enum": [
          "SETTLED"
        ],
        "example": "SETTLED"
      },
      "customer.DetailMessage": {
        "type": "object",
        "properties": {
          "external": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/customer.ExternalMessage"
            }
          },
          "parameters": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/customer.ParameterMessage"
            }
          },
          "payload": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/customer.PayloadMessage"
            }
          }
        }
      },
      "customer.Error": {
        "type": "object",
        "properties": {
          "code": {
            "type": "string",
            "description": "Error's code.",
            "example": "EPT0001"
          },
          "details": {
            "$ref": "#/components/schemas/customer.DetailMessage"
          },
          "message": {
            "type": "string",
            "description": "Error's message.",
            "example": "User not found"
          }
        }
      },
      "customer.ExternalMessage": {
        "type": "object",
        "required": [
          "code",
          "message"
        ],
        "properties": {
          "code": {
            "type": "string",
            "description": "Code",
            "example": "PBE315"
          },
          "message": {
            "type": "string",
            "description": "Message",
            "example": "Generic error"
          }
        }
      },
      "customer.ParameterMessage": {
        "type": "object",
        "required": [
          "field",
          "message"
        ],
        "properties": {
          "field": {
            "type": "string",
            "description": "Field",
            "example": "Query parameter"
          },
          "message": {
            "type": "string",
            "description": "Message",
            "example": "Generic error"
          }
        }
      },
      "customer.PayloadMessage": {
        "type": "object",
        "required": [
          "field",
          "message"
        ],
        "properties": {
          "field": {
            "type": "string",
            "description": "Field",
            "example": "Entity.field"
          },
          "message": {
            "type": "string",
            "description": "Message",
            "example": "Generic error"
          }
        }
      },
      "id": {
        "maxLength": 32,
        "type": "string",
        "description": "Client-generated transaction ID. This is the idempotency key UUID passed in the [Send direct credit outbound payment](https://developers.pismo.io/pismo-docs/reference/post-create-bacs) endpoint.\n",
        "example": "1374f841568e4ff4b363b023c170ecdr"
      }
    }
  },
  "paths": {
    "/v1/payments/bacs/directcredit/release/{id}": {
      "post": {
        "summary": "Release BACS inbound transaction [beta]",
        "description": "Move a suspended transaction amount from additional funds to available balance and mark the transaction as settled.\n\n**Suspense transaction flow**\n\nYou 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.\n\n**Supported scenarios:**\n\n  * A incoming (cash-in) BACS transaction is received.\n\n  * Client' s anti-fraud provider returns \"hold\" instead of approve or reject.\n\n  * Pismo places the transaction amount into additional funds (unavailable balance) so the beneficiary cannot use the funds until a final decision is made.\n\n  * The client later calls Pismo's release or [cancel](https://developers.pismo.io/pismo-docs/reference/post-cancel-bacs) endpoints to finalize the transaction.\n\nThis 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 `SETTLED`.\n",
        "operationId": "post-release-bacs",
        "tags": [
          "BACS direct credit"
        ],
        "parameters": [
          {
            "$ref": "#/components/parameters/authHeader"
          },
          {
            "$ref": "#/components/parameters/reqTrackingIdHeader"
          },
          {
            "$ref": "#/components/parameters/idPath"
          }
        ],
        "responses": {
          "200": {
            "description": "Response Body",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/bacs_release.BacsReleaseResponse"
                }
              }
            }
          },
          "400": {
            "description": "Bad Request",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/customer.Error"
                },
                "examples": {
                  "EBACS0004": {
                    "summary": "Validation Error",
                    "value": {
                      "code": "EBACS0004",
                      "message": "Validation error"
                    }
                  },
                  "EBACS0016": {
                    "summary": "Unmarshal Error",
                    "value": {
                      "code": "EBACS0016",
                      "message": "Unmarshal error"
                    }
                  },
                  "EBACS0019": {
                    "summary": "Accounts API Invalid Request Error",
                    "value": {
                      "code": "EBACS0019",
                      "message": "Accounts - API returned 4xx error"
                    }
                  },
                  "EBACS0025": {
                    "summary": "P2P API Invalid Request Error",
                    "value": {
                      "code": "EBACS0025",
                      "message": "P2p - API returned 4xx error"
                    }
                  },
                  "EBACS0029": {
                    "summary": "Ledger API Invalid Request Error",
                    "value": {
                      "code": "EBACS0029",
                      "message": "Ledger - API returned 4xx error"
                    }
                  },
                  "EBACS0037": {
                    "summary": "Invalid Creditor Sort Code Account Number",
                    "value": {
                      "code": "EBACS0037",
                      "message": "Invalid creditor sort code/account number"
                    }
                  },
                  "EBACS0038": {
                    "summary": "Invalid Creditor IBAN",
                    "value": {
                      "code": "EBACS0038",
                      "message": "Invalid creditor IBAN"
                    }
                  },
                  "EBACS0039": {
                    "summary": "Invalid Creditor BBAN",
                    "value": {
                      "code": "EBACS0039",
                      "message": "Invalid creditor BBAN"
                    }
                  },
                  "EBACS0046": {
                    "summary": "IntlBankAccounts API Invalid Request Error",
                    "value": {
                      "code": "EBACS0046",
                      "message": "IntlBankAccounts - API returned 4xx error"
                    }
                  },
                  "EBACS0047": {
                    "summary": "PSP Gateway API Bad Request",
                    "value": {
                      "code": "EBACS0047",
                      "message": "Invalid BACS Request. Check error details for more information."
                    }
                  }
                }
              }
            }
          },
          "403": {
            "description": "Forbidden",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/customer.Error"
                },
                "examples": {
                  "EBACS0002": {
                    "summary": "Missing Tenant Header",
                    "value": {
                      "code": "EBACS0002",
                      "message": "Missing required header: 'x-tenant'"
                    }
                  },
                  "EBACS0021": {
                    "summary": "Account Blocked Or Cancelled",
                    "value": {
                      "code": "EBACS0021",
                      "message": "Account blocked or cancelled"
                    }
                  },
                  "EBACS0033": {
                    "summary": "Invalid Account Id",
                    "value": {
                      "code": "EBACS0033",
                      "message": "Invalid account id header: 'x-account-id'"
                    }
                  },
                  "EBACS0034": {
                    "summary": "Invalid Idempotency Key",
                    "value": {
                      "code": "EBACS0034",
                      "message": "Missing required header: 'x-idempotency-key'"
                    }
                  },
                  "EBACS0035": {
                    "summary": "Account Has No Active Addresses",
                    "value": {
                      "code": "EBACS0035",
                      "message": "Account has no active addresses"
                    }
                  },
                  "EBACS0040": {
                    "summary": "BACS Not Enabled",
                    "value": {
                      "code": "EBACS0040",
                      "message": "BACS is not enabled for the creditor sort code"
                    }
                  },
                  "EBACS0041": {
                    "summary": "Modulus Check Error",
                    "value": {
                      "code": "EBACS0041",
                      "message": "Failed to execute account number modulus check"
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "Not Found",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/customer.Error"
                },
                "examples": {
                  "EBACS0010": {
                    "summary": "Sort Code Not Found",
                    "value": {
                      "code": "EBACS0010",
                      "message": "Sort Code not found"
                    }
                  },
                  "EBACS0018": {
                    "summary": "Accounts API Not Found Error",
                    "value": {
                      "code": "EBACS0018",
                      "message": "Accounts - Not found"
                    }
                  },
                  "EBACS0028": {
                    "summary": "Ledger API Not Found Error",
                    "value": {
                      "code": "EBACS0028",
                      "message": "Ledger - Not found"
                    }
                  },
                  "EBACS0031": {
                    "summary": "IntlBankAccounts API Not Found Error",
                    "value": {
                      "code": "EBACS0031",
                      "message": "IntlBankAccounts - Not found"
                    }
                  }
                }
              }
            }
          },
          "409": {
            "description": "Conflict",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/customer.Error"
                },
                "examples": {
                  "EBACS0022": {
                    "summary": "Transaction Already Exists",
                    "value": {
                      "code": "EBACS0022",
                      "message": "A transaction with the specified idempotency key and id already exists"
                    }
                  },
                  "EBACS0036": {
                    "summary": "Mismatching Currency Error",
                    "value": {
                      "code": "EBACS0036",
                      "message": "The provided currency does not match with the account's configured currency"
                    }
                  },
                  "EBACS0097": {
                    "summary": "Release Not Allowed - Invalid Status",
                    "value": {
                      "code": "EBACS0097",
                      "message": "Release not allowed: transaction is already finalised"
                    }
                  }
                }
              }
            }
          },
          "429": {
            "description": "Too Many Requests",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/customer.Error"
                },
                "examples": {
                  "EBACS0015": {
                    "summary": "PSP Gateway API Rate Limit",
                    "value": {
                      "code": "EBACS0015",
                      "message": "PSPGateway API Rate Limit exceeded"
                    }
                  }
                }
              }
            }
          },
          "500": {
            "description": "Internal Server Error",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/customer.Error"
                },
                "examples": {
                  "EBACS0006": {
                    "summary": "HTTP Error",
                    "value": {
                      "code": "EBACS0006",
                      "message": "HTTP request error"
                    }
                  },
                  "EBACS0009": {
                    "summary": "IntlBankAccounts API Timeout",
                    "value": {
                      "code": "EBACS0009",
                      "message": "IntlBankAccounts API timeout error"
                    }
                  },
                  "EBACS0011": {
                    "summary": "IntlBankAccounts API Internal Error",
                    "value": {
                      "code": "EBACS0011",
                      "message": "IntlBankAccounts API Internal Server error"
                    }
                  },
                  "EBACS0012": {
                    "summary": "PSP Gateway API Timeout",
                    "value": {
                      "code": "EBACS0012",
                      "message": "PSPGateway API timeout error"
                    }
                  },
                  "EBACS0017": {
                    "summary": "Accounts API Timeout",
                    "value": {
                      "code": "EBACS0017",
                      "message": "Accounts API timeout error"
                    }
                  },
                  "EBACS0020": {
                    "summary": "Accounts API Server Error",
                    "value": {
                      "code": "EBACS0020",
                      "message": "Accounts - API returned 5xx error"
                    }
                  },
                  "EBACS0023": {
                    "summary": "Transaction Database Error",
                    "value": {
                      "code": "EBACS0023",
                      "message": "Transaction database error"
                    }
                  },
                  "EBACS0024": {
                    "summary": "P2P API Timeout",
                    "value": {
                      "code": "EBACS0024",
                      "message": "P2p - API timeout error"
                    }
                  },
                  "EBACS0026": {
                    "summary": "P2P API Server Error",
                    "value": {
                      "code": "EBACS0026",
                      "message": "P2p - API returned 5xx error"
                    }
                  },
                  "EBACS0027": {
                    "summary": "Ledger API Timeout",
                    "value": {
                      "code": "EBACS0027",
                      "message": "Ledger API timeout error"
                    }
                  },
                  "EBACS0030": {
                    "summary": "Ledger API Server Error",
                    "value": {
                      "code": "EBACS0030",
                      "message": "Ledger - API returned 5xx error"
                    }
                  },
                  "EBACS0032": {
                    "summary": "IntlBankAccounts API Server Error",
                    "value": {
                      "code": "EBACS0032",
                      "message": "IntlBankAccounts - API returned 5xx error"
                    }
                  }
                }
              }
            }
          },
          "502": {
            "description": "Bad Gateway",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/customer.Error"
                },
                "examples": {
                  "EBACS0014": {
                    "summary": "PSP Gateway API Bad Gateway",
                    "value": {
                      "code": "EBACS0014",
                      "message": "PSPGateway API Bad Gateway"
                    }
                  }
                }
              }
            }
          }
        }
      }
    }
  }
}
```