curl --request POST \
--url https://skala-sandbox.ripio.com/api/v1/onramp/ \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"customerId": "b6cecc1f-c90d-424b-adaa-c82b780696c1",
"quoteId": "8142b065-79c4-4f48-9e33-11b17bc658d4",
"depositAddress": "0x4e88BBeFF059BDDF5BF90ee0816E86eDf4214b32",
"externalRef": "e6c4f1ec-899f-43b5-8479-c2529e3f9c70",
"extraData": {
"callback": "https://example.com/callback",
"bankCode": "1001"
}
}
'import requests
url = "https://skala-sandbox.ripio.com/api/v1/onramp/"
payload = {
"customerId": "b6cecc1f-c90d-424b-adaa-c82b780696c1",
"quoteId": "8142b065-79c4-4f48-9e33-11b17bc658d4",
"depositAddress": "0x4e88BBeFF059BDDF5BF90ee0816E86eDf4214b32",
"externalRef": "e6c4f1ec-899f-43b5-8479-c2529e3f9c70",
"extraData": {
"callback": "https://example.com/callback",
"bankCode": "1001"
}
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({
customerId: 'b6cecc1f-c90d-424b-adaa-c82b780696c1',
quoteId: '8142b065-79c4-4f48-9e33-11b17bc658d4',
depositAddress: '0x4e88BBeFF059BDDF5BF90ee0816E86eDf4214b32',
externalRef: 'e6c4f1ec-899f-43b5-8479-c2529e3f9c70',
extraData: {callback: 'https://example.com/callback', bankCode: '1001'}
})
};
fetch('https://skala-sandbox.ripio.com/api/v1/onramp/', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://skala-sandbox.ripio.com/api/v1/onramp/",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'customerId' => 'b6cecc1f-c90d-424b-adaa-c82b780696c1',
'quoteId' => '8142b065-79c4-4f48-9e33-11b17bc658d4',
'depositAddress' => '0x4e88BBeFF059BDDF5BF90ee0816E86eDf4214b32',
'externalRef' => 'e6c4f1ec-899f-43b5-8479-c2529e3f9c70',
'extraData' => [
'callback' => 'https://example.com/callback',
'bankCode' => '1001'
]
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://skala-sandbox.ripio.com/api/v1/onramp/"
payload := strings.NewReader("{\n \"customerId\": \"b6cecc1f-c90d-424b-adaa-c82b780696c1\",\n \"quoteId\": \"8142b065-79c4-4f48-9e33-11b17bc658d4\",\n \"depositAddress\": \"0x4e88BBeFF059BDDF5BF90ee0816E86eDf4214b32\",\n \"externalRef\": \"e6c4f1ec-899f-43b5-8479-c2529e3f9c70\",\n \"extraData\": {\n \"callback\": \"https://example.com/callback\",\n \"bankCode\": \"1001\"\n }\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Authorization", "Bearer <token>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://skala-sandbox.ripio.com/api/v1/onramp/")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"customerId\": \"b6cecc1f-c90d-424b-adaa-c82b780696c1\",\n \"quoteId\": \"8142b065-79c4-4f48-9e33-11b17bc658d4\",\n \"depositAddress\": \"0x4e88BBeFF059BDDF5BF90ee0816E86eDf4214b32\",\n \"externalRef\": \"e6c4f1ec-899f-43b5-8479-c2529e3f9c70\",\n \"extraData\": {\n \"callback\": \"https://example.com/callback\",\n \"bankCode\": \"1001\"\n }\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://skala-sandbox.ripio.com/api/v1/onramp/")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"customerId\": \"b6cecc1f-c90d-424b-adaa-c82b780696c1\",\n \"quoteId\": \"8142b065-79c4-4f48-9e33-11b17bc658d4\",\n \"depositAddress\": \"0x4e88BBeFF059BDDF5BF90ee0816E86eDf4214b32\",\n \"externalRef\": \"e6c4f1ec-899f-43b5-8479-c2529e3f9c70\",\n \"extraData\": {\n \"callback\": \"https://example.com/callback\",\n \"bankCode\": \"1001\"\n }\n}"
response = http.request(request)
puts response.read_body{
"transaction": {
"transactionId": "21d8a046-3221-4b43-a301-0f9adcdd9a45",
"createdAt": "2023-11-07T05:31:56Z",
"customerId": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"quoteId": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"fromCurrency": "ARS",
"toCurrency": "USDC",
"amount": "<string>",
"chain": "ETHEREUM_SEPOLIA",
"paymentMethodType": "bank_transfer",
"depositAddress": "<string>",
"source": "ON_RAMP",
"metadata": {},
"txnHash": null,
"sender": "Juan Pérez",
"status": "COMPLETED",
"refundable": false,
"refundDestinationRequired": false,
"latestRefund": {
"refundId": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"status": "PENDING",
"rejectionReason": "",
"initiatedBy": "PARTNER",
"requestedAt": "2023-11-07T05:31:56Z"
}
},
"fiatPaymentInstructions": {
"cvu": "0100000000000000000001",
"alias": "juan.perez.ramp",
"status": "enabled"
}
}Create On-Ramp Order
Initiates a fiat-to-crypto on-ramp transaction process based on a previously obtained quote. Returns transaction details and fiat payment instructions for the customer.
curl --request POST \
--url https://skala-sandbox.ripio.com/api/v1/onramp/ \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"customerId": "b6cecc1f-c90d-424b-adaa-c82b780696c1",
"quoteId": "8142b065-79c4-4f48-9e33-11b17bc658d4",
"depositAddress": "0x4e88BBeFF059BDDF5BF90ee0816E86eDf4214b32",
"externalRef": "e6c4f1ec-899f-43b5-8479-c2529e3f9c70",
"extraData": {
"callback": "https://example.com/callback",
"bankCode": "1001"
}
}
'import requests
url = "https://skala-sandbox.ripio.com/api/v1/onramp/"
payload = {
"customerId": "b6cecc1f-c90d-424b-adaa-c82b780696c1",
"quoteId": "8142b065-79c4-4f48-9e33-11b17bc658d4",
"depositAddress": "0x4e88BBeFF059BDDF5BF90ee0816E86eDf4214b32",
"externalRef": "e6c4f1ec-899f-43b5-8479-c2529e3f9c70",
"extraData": {
"callback": "https://example.com/callback",
"bankCode": "1001"
}
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({
customerId: 'b6cecc1f-c90d-424b-adaa-c82b780696c1',
quoteId: '8142b065-79c4-4f48-9e33-11b17bc658d4',
depositAddress: '0x4e88BBeFF059BDDF5BF90ee0816E86eDf4214b32',
externalRef: 'e6c4f1ec-899f-43b5-8479-c2529e3f9c70',
extraData: {callback: 'https://example.com/callback', bankCode: '1001'}
})
};
fetch('https://skala-sandbox.ripio.com/api/v1/onramp/', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://skala-sandbox.ripio.com/api/v1/onramp/",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'customerId' => 'b6cecc1f-c90d-424b-adaa-c82b780696c1',
'quoteId' => '8142b065-79c4-4f48-9e33-11b17bc658d4',
'depositAddress' => '0x4e88BBeFF059BDDF5BF90ee0816E86eDf4214b32',
'externalRef' => 'e6c4f1ec-899f-43b5-8479-c2529e3f9c70',
'extraData' => [
'callback' => 'https://example.com/callback',
'bankCode' => '1001'
]
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://skala-sandbox.ripio.com/api/v1/onramp/"
payload := strings.NewReader("{\n \"customerId\": \"b6cecc1f-c90d-424b-adaa-c82b780696c1\",\n \"quoteId\": \"8142b065-79c4-4f48-9e33-11b17bc658d4\",\n \"depositAddress\": \"0x4e88BBeFF059BDDF5BF90ee0816E86eDf4214b32\",\n \"externalRef\": \"e6c4f1ec-899f-43b5-8479-c2529e3f9c70\",\n \"extraData\": {\n \"callback\": \"https://example.com/callback\",\n \"bankCode\": \"1001\"\n }\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Authorization", "Bearer <token>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://skala-sandbox.ripio.com/api/v1/onramp/")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"customerId\": \"b6cecc1f-c90d-424b-adaa-c82b780696c1\",\n \"quoteId\": \"8142b065-79c4-4f48-9e33-11b17bc658d4\",\n \"depositAddress\": \"0x4e88BBeFF059BDDF5BF90ee0816E86eDf4214b32\",\n \"externalRef\": \"e6c4f1ec-899f-43b5-8479-c2529e3f9c70\",\n \"extraData\": {\n \"callback\": \"https://example.com/callback\",\n \"bankCode\": \"1001\"\n }\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://skala-sandbox.ripio.com/api/v1/onramp/")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"customerId\": \"b6cecc1f-c90d-424b-adaa-c82b780696c1\",\n \"quoteId\": \"8142b065-79c4-4f48-9e33-11b17bc658d4\",\n \"depositAddress\": \"0x4e88BBeFF059BDDF5BF90ee0816E86eDf4214b32\",\n \"externalRef\": \"e6c4f1ec-899f-43b5-8479-c2529e3f9c70\",\n \"extraData\": {\n \"callback\": \"https://example.com/callback\",\n \"bankCode\": \"1001\"\n }\n}"
response = http.request(request)
puts response.read_body{
"transaction": {
"transactionId": "21d8a046-3221-4b43-a301-0f9adcdd9a45",
"createdAt": "2023-11-07T05:31:56Z",
"customerId": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"quoteId": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"fromCurrency": "ARS",
"toCurrency": "USDC",
"amount": "<string>",
"chain": "ETHEREUM_SEPOLIA",
"paymentMethodType": "bank_transfer",
"depositAddress": "<string>",
"source": "ON_RAMP",
"metadata": {},
"txnHash": null,
"sender": "Juan Pérez",
"status": "COMPLETED",
"refundable": false,
"refundDestinationRequired": false,
"latestRefund": {
"refundId": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"status": "PENDING",
"rejectionReason": "",
"initiatedBy": "PARTNER",
"requestedAt": "2023-11-07T05:31:56Z"
}
},
"fiatPaymentInstructions": {
"cvu": "0100000000000000000001",
"alias": "juan.perez.ramp",
"status": "enabled"
}
}Authorizations
Access token obtained via /oauth2/token/. Use as Authorization: Bearer <access_token>.
Body
Details for creating an on-ramp order.
Unique identifier for the customer.
"b6cecc1f-c90d-424b-adaa-c82b780696c1"
Unique identifier for the quote obtained from the Quoting Endpoint.
"8142b065-79c4-4f48-9e33-11b17bc658d4"
The customer's deposit address on the chosen blockchain network.
"0x4e88BBeFF059BDDF5BF90ee0816E86eDf4214b32"
Unique identifier for the order that is being created, provided by the partner. Must be a valid UUID — arbitrary strings are rejected with a 400.
"e6c4f1ec-899f-43b5-8479-c2529e3f9c70"
Additional data for the on-ramp order. Required for Colombia payment methods (bank_transfer, r2p_bancolombia, r2p_nequi).
Show child attributes
Show child attributes
Response
On-Ramp order created successfully.
Details of an on-ramp transaction.
Show child attributes
Show child attributes
Instructions for the customer to complete the fiat deposit. Structure varies depending on payment method and currency: bank_transfer (Argentina) returns cvu and optionally alias (a human-readable identifier that can be used instead of the CVU for transfers — to enable alias customization, contact the Ripio team), bank_transfer (Mexico) returns clabe, bank_transfer (Colombia) returns paymentUrl, breb returns brebKey, r2p_bancolombia returns paymentUrl, r2p_nequi returns phoneNumber, pix (Brazil) returns brCode, paymentUrl and expiresAt. Methods backed by a persistent deposit account (cvu, clabe, brebKey) also include a status field (processing, enabled or disabled) indicating whether the deposit account is ready to operate; while processing, the deposit key/identifier may be null.
pix has no reusable deposit account: payment instructions are generated per order, so they carry no status and are only returned by Create On-Ramp Order (not by an On-Ramp Session). brCode is a payable BR Code EMV ("copia e cola"), paymentUrl is a hosted payment page, and expiresAt is when both stop being payable — after it, create a new order.
{
"cvu": "0100000000000000000001",
"alias": "juan.perez.ramp",
"status": "enabled"
}
{
"cvu": "0100000000000000000001",
"status": "enabled"
}
{
"clabe": "706180196550550550",
"status": "enabled"
}
{
"paymentUrl": "https://example.com/payment/abc123"
}
{ "brebKey": "@ABC123", "status": "enabled" }
{ "phoneNumber": "*****1234" }
{
"brCode": "00020101021226360014BR.GOV.BCB.PIX0114+55119876543215204000053039865802BR5913Store Name XYZ6009SAO PAULO62070503***6304ABCD",
"paymentUrl": "https://payments.sandbox.example.com/abc123",
"expiresAt": "2024-04-10T19:17:07.702533Z"
}
Was this page helpful?