Docs/Reference
View Markdown

API reference

This page indexes every customer-facing server endpoint that authenticates with your organization accesskey. Dashboard-session and Relay-operator endpoints are intentionally excluded.

Base URL: https://bridge.relayfinance.io

Payments#

MethodPathSuccessPurpose
POST/payment/create-crypto-Payment-Intent201Create a one-off crypto collection intent and temporary deposit wallet.
POST/payment/create-fiat-payment-intent201Create an NGN virtual-account collection intent.
GET/payment/get-payment-intent/{txId}200Retrieve a tenant-scoped crypto or fiat intent.
GET/payment/get-active-payment-intents-currency200List assets currently active for payment intents.
GET/payment/fiat-rate?currency=ngn200Get the current buffered NGN-per-USD rate.

Detailed inputs and responses:

Customer deposit wallets#

MethodPathSuccessPurpose
POST/customer-wallets201Get or create a reusable wallet/token enrollment and renew its watch.
GET/customer-wallets/{id}200Retrieve a wallet and its enrolled assets.
GET/customer-wallets/{id}/deposits200List confirmed or review-required incoming deposits.
GET/customer-wallets/{id}/transfers200List merchant payouts and fee sweeps.

History query fields are limit (default 20, maximum 100) and offset (default 0). See customer wallets.

External wallet monitoring#

MethodPathSuccessPurpose
GET/wallet/organization/external-wallet200Find a registered external wallet by address and network.
POST/wallet/organization200Register an existing address and optional event subscriptions.
PUT/wallet/organization/{walletId}/events200Replace the wallet's complete event subscription set.

See external wallets for the nested event subscription fields.

Authentication#

All endpoints on this page require:

http
accesskey: YOUR_ORGANIZATION_API_KEY

The key selects the organization. Do not send an organization ID in an attempt to change tenant scope. See authentication.

Success envelope#

json
{
  "success": true,
  "data": {},
  "meta": {
    "requestId": "d01048f7-3874-4df5-8642-6ab07a66ea77"
  }
}

data can be an object, array, primitive value, or null, depending on the endpoint.

Paginated responses move the service's item list into data and add:

json
{
  "meta": {
    "requestId": "d01048f7-3874-4df5-8642-6ab07a66ea77",
    "pagination": {
      "total": 47,
      "limit": 20,
      "offset": 20,
      "hasMore": true
    }
  }
}

Error envelope#

json
{
  "success": false,
  "error": {
    "code": "INVALID_REQUEST",
    "message": "Asset is unavailable"
  },
  "meta": {
    "requestId": "c23db470-9ac0-492b-8be9-26cfe667b577"
  }
}

Validation errors can also include error.details, an array of { field, code } objects. See errors and retries.

Compatibility rules#

  • Treat undocumented response fields as non-contractual and ignore them safely.
  • Do not depend on object key order.
  • Preserve decimal strings as strings or arbitrary-precision decimals.
  • Accept new enum values without crashing; log and reconcile unknown states.
  • Use schemaVersion for webhook payload evolution.
  • Use the active-assets endpoint for availability rather than assuming every enum is enabled.

Dashboard-only controls#

Human administration uses the Relay dashboard's bearer-token session and permissions. This includes:

  • settlement destination management;
  • webhook endpoint creation, editing, secret rotation, delivery inspection, and replay;
  • team membership and role controls;
  • payment lists, analytics, and receipt download; and
  • organization finance views.

These controls are not authenticated with accesskey and are not part of the embedded-customer server API above.

Relay Finance APIServer-to-server financial infrastructure.