Skip to main content

What is a Connection?

A connection is a permanent standing order that links a Bitcoin address to a bank account. Once created, conversions happen automatically — any amount, any time, no further API calls needed. Think of it as a bridge: one side is crypto, the other side is fiat. Funds sent to either side are automatically converted and delivered to the other.

Buy Connection (EUR → BTC)

1

You provide a Bitcoin address

Your app passes the user’s BTC address when creating the connection.
2

Bringin returns a deposit IBAN

Once the connection is active, you receive a unique IBAN.
3

User sends EUR from their bank

Any amount, any time — regular bank transfer to the deposit IBAN.
4

Bringin converts and delivers BTC

EUR is received, converted at market rate, and sent to the linked Bitcoin address.
Your app stores and displays the deposit IBAN. The user sends EUR whenever they want to buy Bitcoin — it’s as simple as a bank transfer.

Sell Connection (BTC → EUR)

1

You provide an IBAN + bank details

Your app passes the user’s bank account details when creating the connection.
2

Bringin returns a BTC deposit address

Once the connection is active, you receive a unique Bitcoin deposit address.
3

User sends BTC to the deposit address

Any amount, any time — standard Bitcoin transaction.
4

Bringin converts and delivers EUR

BTC is received, converted at market rate, and sent to the linked bank account via SEPA.
Use deterministic addresses. Connections are permanent — use a fixed derivation path (e.g., m/84'/0'/0'/0/0) for the Bitcoin address. Avoid getNewReceiveAddress() which generates a different address each time.

How to Create a Connection

Bundle everything into POST /application/connect. Bringin handles onboarding, connection creation, and SMS confirmation. You receive webhooks when it’s done.
POST /api/v0/application/connect
Request
{
  "email": "user@example.com",
  "callback": "https://yourapp.com/bringin-webhooks",
  "ref": "your-internal-user-id",
  "direction": "FIAT_TO_CRYPTO",
  "btcAddress": "bc1qxy2kgdygjrsqtzq2n0yrf2493p83kkfjhx0wlh",
  "currency": "BTC",
  "network": "BTC"
}
Bringin handles the rest. You’ll receive:
  1. /verification-status webhook with the per-user api-key
  2. /connection-status webhook with the deposit IBAN (or BTC address)
See Onboarding API and Webhooks for details. If you already have the user’s per-user api-key and want granular control:
  1. POST /bringin-link — Create the connection
  2. GET /bringin-link/{id} — Poll for status and get the challengeId
  3. POST /bringin-link/confirm — Confirm with SMS OTP
  4. GET /bringin-link — List all connections
See Connections API Reference for full endpoint docs.