Quickstart

This guide walks through authenticating to the Birch Hill API, creating a recipient, initiating a cross-border payment, and receiving the settlement confirmation webhook. Total time: under 15 minutes.

Authentication

All requests to the Birch Hill API require a bearer token in the Authorization header. You manage API keys in the portal under Settings > API Keys.

There are two key types:

  • Live keys (bhl_live_...): initiate real payments and access live compliance records.
  • Test keys (bhl_test_...): sandbox environment, no real funds move, settlement webhooks fire automatically.

Corridors

A corridor is a source currency and destination currency pair. Each corridor is settled on a specific rail. You can list enabled corridors on your account:

Creating a payment

Before you can create a payment, you need a recipient object. Recipients store the destination bank details and are reused across payments.

Settlement webhooks

Configure a webhook endpoint in the portal under Settings > Webhooks. Birch Hill sends a POST request signed with HMAC-SHA256 on each status change.

Retrieving the compliance trail

The compliance trail is available immediately after settlement. You can retrieve it via the API or download it as a PDF from the portal.

ERP integration

Birch Hill is designed to integrate with treasury management systems and ERPs. The most common pattern is:

  1. Your TMS triggers a payment instruction via the Birch Hill API when an AP record is approved.
  2. Birch Hill initiates settlement and returns a settlement_id immediately.
  3. The settlement confirmation webhook fires when funds are received.
  4. Your TMS marks the payable as settled and stores the compliance trail URL against the ledger entry.

For SAP S/4HANA, the outbound IDoc mapping and the settlement confirmation inbound handler are documented in the SAP integration guide. For Oracle Cloud Financials, use the Payment Process Request API with the Birch Hill response mapped to the Bank Account Confirmation object.

Reconciliation webhooks

Birch Hill fires a payment.reconciliation_ready event after each settlement with a structured reconciliation payload containing the ledger-ready fields your ERP expects: payment reference, settled amount in destination currency, applied FX rate, settlement timestamp, and compliance trail identifier.

Python SDK

Install the Python SDK via pip:

Node.js SDK