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 Org.Front.Core.Contracts.Models.Bridging.Headless.CreateBridgedAddressRequest.Origin; funds must be sent there before Mesh can deliver to Org.Front.Core.Contracts.Models.Bridging.Headless.CreateBridgedAddressRequest.Destination.

This endpoint is idempotent per Org.Front.Core.Contracts.Models.Bridging.Headless.CreateBridgedAddressRequest.TransactionId scoped to Org.Front.Core.Contracts.Models.Bridging.Headless.CreateBridgedAddressRequest.UserId and B2B client/environment: retries with the same origin, destination (network, asset, and Org.Front.Core.Contracts.Models.Bridging.Headless.BridgingDestinationWithAddressSpec.Address), and route return the same deposit address. Reusing the same Org.Front.Core.Contracts.Models.Bridging.Headless.CreateBridgedAddressRequest.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 Org.Front.Core.Contracts.Models.Bridging.Headless.CreateBridgedAddressRequest.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 Org.Front.Core.Contracts.Models.Bridging.Headless.CreateBridgedAddressRequest.Origin.

Response

Bridging deposit address created or retrieved (idempotent hit).

status
enum<string>
Available options:
ok,
serverFailure,
permissionDenied,
badRequest,
notFound,
conflict,
tooManyRequest,
locked,
unavailableForLegalReasons
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.