Skip to main content
POST
Create a one-time bridging deposit address for a selected origin→destination pair.

Authorizations

X-Client-Secret
string
header
required

Contact Mesh to get client Secret

X-Client-Id
string
header
required

Contact Mesh to get client Id

Body

application/json

Request body for POST /api/v1/bridging/address.

Used for both pay-in (deposit) and platform-led pay-in (withdrawal-style) bridging: the address returned is always on origin; funds must be sent there before Mesh can deliver to destination.

This endpoint is idempotent per transactionId scoped to userId and B2B client/environment: retries with the same origin, destination (network, asset, and address), and route return the same deposit address. Reusing the same transactionId with any different origin or destination (network, asset, or address) returns an error and does not create a second transfer preview.

userId
string
required

Your platform's unique identifier for the end user initiating this transfer. Combined with transactionId to enforce idempotency.

Required string length: 1 - 384
transactionId
string
required

Your platform's unique identifier for this transfer attempt. Use a stable, collision-free ID (e.g. an order ID or UUID). Re-submitting the same value will return the previously created address rather than generating a new one.

Required string length: 1 - 128
origin
object
required

The pay-in leg: network and asset whose single-use deposit address is returned. In deposit flows this is usually the end-user’s wallet chain and token; in withdrawal-style flows it is the omnibus source chosen from POST /api/v1/bridging/routes/withdrawal. Must match a configured route from deposit or withdrawal route discovery.

destination
object
required

The payout leg: network, asset, and address where bridged funds are delivered (e.g. user’s receive address in a deposit flow, or their withdrawal address in a platform-led flow). Must match a route from deposit or withdrawal route discovery together with origin.

Response

Bridging deposit address created or retrieved (idempotent hit).

status
enum<string>
Available options:
ok,
serverFailure,
permissionDenied,
badRequest,
notFound,
conflict,
tooManyRequest,
locked,
unavailableForLegalReasons,
serviceUnavailable
message
string | null

A message generated by the API

displayMessage
string | null

User-friendly display message that can be presented to the end user

errorHash
string | null
read-only

An error grouping hash from string components and caller information. Used by bugsnag on FE for correct error grouping

teamCode
string | null
read-only

Opaque team code for error routing. Resolved from exception origin or caller file path via CODEOWNERS. Format: 2-character code (e.g., "7K", "M2"). Use for alerting/routing, not display.

errorType
string | null

Strictly-typed error type that is explaining the reason of an unsuccessful status of the operation. All possible error types are available in the documentation.

errorData
unknown
content
object | null

Response body for POST /api/v1/bridging/address.

Contains the deposit address on the origin chain, constraints, tracking IDs, and warnings so you can either guide an end user to broadcast the pay-in or have your platform/custody system broadcast the pay-in to the origin-chain deposit address in a withdrawal-style flow, then track delivery to the destination address to completion.