curl --request POST \
--url https://api.sand.etherfuse.com/ramp/bank-account \
--header 'Content-Type: application/json' \
--data '
{
"account": {
"birthCountryIsoCode": "MX",
"birthDate": "19900515",
"clabe": "646180157000000004",
"curp": "GALA900515MDFRPN08",
"firstName": "Ana",
"maternalLastName": "López",
"paternalLastName": "García",
"rfc": "GALA900515AB1",
"transactionId": "c3d4e5f6-a7b8-9012-cdef-123456789012"
},
"presignedUrl": "https://api.sand.etherfuse.com/ramp/onboarding/bank-accounts?...&signature=..."
}
'const options = {
method: 'POST',
headers: {'Content-Type': 'application/json'},
body: JSON.stringify({
account: {
birthCountryIsoCode: 'MX',
birthDate: '19900515',
clabe: '646180157000000004',
curp: 'GALA900515MDFRPN08',
firstName: 'Ana',
maternalLastName: 'López',
paternalLastName: 'García',
rfc: 'GALA900515AB1',
transactionId: 'c3d4e5f6-a7b8-9012-cdef-123456789012'
},
presignedUrl: 'https://api.sand.etherfuse.com/ramp/onboarding/bank-accounts?...&signature=...'
})
};
fetch('https://api.sand.etherfuse.com/ramp/bank-account', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));import requests
url = "https://api.sand.etherfuse.com/ramp/bank-account"
payload = {
"account": {
"birthCountryIsoCode": "MX",
"birthDate": "19900515",
"clabe": "646180157000000004",
"curp": "GALA900515MDFRPN08",
"firstName": "Ana",
"maternalLastName": "López",
"paternalLastName": "García",
"rfc": "GALA900515AB1",
"transactionId": "c3d4e5f6-a7b8-9012-cdef-123456789012"
},
"presignedUrl": "https://api.sand.etherfuse.com/ramp/onboarding/bank-accounts?...&signature=..."
}
headers = {"Content-Type": "application/json"}
response = requests.post(url, json=payload, headers=headers)
print(response.text){
"accountId": "b2c3d4e5-f6a7-8901-bcde-f12345678901",
"label": "Ana's SPEI account",
"organizationId": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
"status": "active"
}"Organization must be approved before adding a bank account"Create bank account (presigned)
Registers a customer’s Mexican bank account (CLABE) for on/off-ramp transactions. The
account field accepts two variants — Personal or Business — auto-detected from the
fields present.
Sandbox: submit XEXX010101000 (personal) or XEX010101000 (business) as the rfc
to skip SPEI provider registration and have the account marked compliant: true
immediately. Any other RFC in sandbox is sent to the SPEI provider’s sandbox as a real
registration and will not auto-approve. Both values are rejected in production.
Precondition: the owning organization must be approved before a bank account can be
added. Adding a bank to an unapproved organization returns 409 Conflict.
Note: this endpoint is for customers onboarding through the Etherfuse UI using a
presigned URL. For programmatic creation via API key, use
POST /ramp/customer/{customer_id}/bank-account instead.
curl --request POST \
--url https://api.sand.etherfuse.com/ramp/bank-account \
--header 'Content-Type: application/json' \
--data '
{
"account": {
"birthCountryIsoCode": "MX",
"birthDate": "19900515",
"clabe": "646180157000000004",
"curp": "GALA900515MDFRPN08",
"firstName": "Ana",
"maternalLastName": "López",
"paternalLastName": "García",
"rfc": "GALA900515AB1",
"transactionId": "c3d4e5f6-a7b8-9012-cdef-123456789012"
},
"presignedUrl": "https://api.sand.etherfuse.com/ramp/onboarding/bank-accounts?...&signature=..."
}
'const options = {
method: 'POST',
headers: {'Content-Type': 'application/json'},
body: JSON.stringify({
account: {
birthCountryIsoCode: 'MX',
birthDate: '19900515',
clabe: '646180157000000004',
curp: 'GALA900515MDFRPN08',
firstName: 'Ana',
maternalLastName: 'López',
paternalLastName: 'García',
rfc: 'GALA900515AB1',
transactionId: 'c3d4e5f6-a7b8-9012-cdef-123456789012'
},
presignedUrl: 'https://api.sand.etherfuse.com/ramp/onboarding/bank-accounts?...&signature=...'
})
};
fetch('https://api.sand.etherfuse.com/ramp/bank-account', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));import requests
url = "https://api.sand.etherfuse.com/ramp/bank-account"
payload = {
"account": {
"birthCountryIsoCode": "MX",
"birthDate": "19900515",
"clabe": "646180157000000004",
"curp": "GALA900515MDFRPN08",
"firstName": "Ana",
"maternalLastName": "López",
"paternalLastName": "García",
"rfc": "GALA900515AB1",
"transactionId": "c3d4e5f6-a7b8-9012-cdef-123456789012"
},
"presignedUrl": "https://api.sand.etherfuse.com/ramp/onboarding/bank-accounts?...&signature=..."
}
headers = {"Content-Type": "application/json"}
response = requests.post(url, json=payload, headers=headers)
print(response.text){
"accountId": "b2c3d4e5-f6a7-8901-bcde-f12345678901",
"label": "Ana's SPEI account",
"organizationId": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
"status": "active"
}"Organization must be approved before adding a bank account"