Skip to main content
POST
/
ramp
/
onboarding-url
Generate onboarding URL
curl --request POST \
  --url https://api.etherfuse.com/ramp/onboarding-url \
  --header 'Authorization: <api-key>' \
  --header 'Content-Type: application/json' \
  --data '
{
  "customerId": "123e4567-e89b-12d3-a456-426614174000",
  "bankAccountId": "123e4567-e89b-12d3-a456-426614174001",
  "publicKey": "9Qx7r...",
  "blockchain": "solana",
  "userInfo": {
    "email": "[email protected]",
    "displayName": "Ana García"
  }
}
'
{
  "presigned_url": "<string>"
}

Documentation Index

Fetch the complete documentation index at: https://docs.etherfuse.com/llms.txt

Use this file to discover all available pages before exploring further.

Authorizations

Authorization
string
header
required

API key for authentication. Pass the key directly (e.g., Authorization: your-api-key). Do not use a Bearer prefix.

Body

application/json
customerId
string<uuid>
required

Customer ID. This id is generated by you, the API consumer, and provided to etherfuse as a way to associate this customer with your organization.

bankAccountId
string<uuid>
required

Bank account ID. This id is generated by you, the API consumer, and provided to etherfuse as a way to associate this bank account with the customer.

publicKey
string
required

Public key for the customer wallet

blockchain
enum<string>
required

Blockchain type for the wallet

Available options:
solana,
stellar,
base,
polygon,
monad
userInfo
object

Optional info about the end user (the individual customer behind a personal organization).

Recommended. When provided, Etherfuse pre-creates the user record so that when the customer eventually signs in via the hosted onboarding UI their Firebase identity attaches to the right user. It also enables personalized status-change emails (KYC approved/rejected, bank account verified, etc.).

Will eventually be required for personal organizations. Reject early in your integration if you don't have this data — partners that don't migrate before the cutover will start receiving 400 errors.

Example:
{
"email": "[email protected]",
"displayName": "Ana García"
}

Response

URL generated successfully

presigned_url
string

The generated presigned URL. This URL needs to be visited by the customer, and will be used to verify the customer's identity and bank account.