curl --request POST \
--url https://skala-sandbox.ripio.com/api/v1/fiatAccounts/{fiatAccountId}/confirm/ \
--header 'Authorization: Bearer <token>'import requests
url = "https://skala-sandbox.ripio.com/api/v1/fiatAccounts/{fiatAccountId}/confirm/"
headers = {"Authorization": "Bearer <token>"}
response = requests.post(url, headers=headers)
print(response.text)const options = {method: 'POST', headers: {Authorization: 'Bearer <token>'}};
fetch('https://skala-sandbox.ripio.com/api/v1/fiatAccounts/{fiatAccountId}/confirm/', 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/fiatAccounts/{fiatAccountId}/confirm/",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://skala-sandbox.ripio.com/api/v1/fiatAccounts/{fiatAccountId}/confirm/"
req, _ := http.NewRequest("POST", url, nil)
req.Header.Add("Authorization", "Bearer <token>")
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/fiatAccounts/{fiatAccountId}/confirm/")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://skala-sandbox.ripio.com/api/v1/fiatAccounts/{fiatAccountId}/confirm/")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Bearer <token>'
response = http.request(request)
puts response.read_body{
"fiatAccountId": "a1b2c3d4-5678-9abc-def0-123456789abc",
"fiatAccountFields": {
"alias_or_cvu_destination": "0100000000000000000001"
},
"status": "PROCESSING",
"createdAt": "2026-02-01T12:00:00Z",
"customerId": "964c8c8c-573d-4f8f-bd2e-8645c3124e74",
"metadata": {}
}{
"code": 40000,
"type": "InvalidExternalFiatAccountStatusException",
"detail": {
"message": "Fiat account status is 'processing', expected 'unconfirmed'."
},
"status": 400
}{
"code": 40001,
"type": "NotAuthenticated",
"detail": {
"message": "Authentication credentials were not provided.",
"code": "not_authenticated"
},
"status": 401
}{
"code": 40004,
"type": "NotFound",
"detail": {
"message": "Not found.",
"code": "not_found"
},
"status": 404
}Confirm Fiat Account
Confirms an unconfirmed fiat account and starts the enabling process.
When to call this endpoint
Applies to every account that reaches unconfirmed: Argentina (bank_transfer), Brazil (pix), Mexico (bank_transfer) and Colombia (breb). The first two are unconfirmed as soon as they are created; the other two get there once their asynchronous validation returns, so wait for the status before calling this. See Create Fiat Account.
curl --request POST \
--url https://skala-sandbox.ripio.com/api/v1/fiatAccounts/{fiatAccountId}/confirm/ \
--header 'Authorization: Bearer <token>'import requests
url = "https://skala-sandbox.ripio.com/api/v1/fiatAccounts/{fiatAccountId}/confirm/"
headers = {"Authorization": "Bearer <token>"}
response = requests.post(url, headers=headers)
print(response.text)const options = {method: 'POST', headers: {Authorization: 'Bearer <token>'}};
fetch('https://skala-sandbox.ripio.com/api/v1/fiatAccounts/{fiatAccountId}/confirm/', 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/fiatAccounts/{fiatAccountId}/confirm/",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://skala-sandbox.ripio.com/api/v1/fiatAccounts/{fiatAccountId}/confirm/"
req, _ := http.NewRequest("POST", url, nil)
req.Header.Add("Authorization", "Bearer <token>")
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/fiatAccounts/{fiatAccountId}/confirm/")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://skala-sandbox.ripio.com/api/v1/fiatAccounts/{fiatAccountId}/confirm/")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Bearer <token>'
response = http.request(request)
puts response.read_body{
"fiatAccountId": "a1b2c3d4-5678-9abc-def0-123456789abc",
"fiatAccountFields": {
"alias_or_cvu_destination": "0100000000000000000001"
},
"status": "PROCESSING",
"createdAt": "2026-02-01T12:00:00Z",
"customerId": "964c8c8c-573d-4f8f-bd2e-8645c3124e74",
"metadata": {}
}{
"code": 40000,
"type": "InvalidExternalFiatAccountStatusException",
"detail": {
"message": "Fiat account status is 'processing', expected 'unconfirmed'."
},
"status": 400
}{
"code": 40001,
"type": "NotAuthenticated",
"detail": {
"message": "Authentication credentials were not provided.",
"code": "not_authenticated"
},
"status": 401
}{
"code": 40004,
"type": "NotFound",
"detail": {
"message": "Not found.",
"code": "not_found"
},
"status": 404
}Authorizations
Access token obtained via /oauth2/token/. Use as Authorization: Bearer <access_token>.
Path Parameters
The unique identifier of the fiat account to confirm.
Response
Fiat account confirmed successfully. Status is now PROCESSING.
The unique identifier of the fiat account.
A dictionary containing the details provided for the fiat account.
The date and time the fiat account was created (UTC format).
An enumerated value specifying the fiat account status. Only one account can be active (ENABLED) per payment method at a time: enabling a new account automatically moves the previously active account for the same customer and payment method to SUSPENDED. A SUSPENDED account can be reactivated by re-registering it or referencing it in a new off-ramp.
UNCONFIRMED, PROCESSING, ENABLED, DISABLED, SUSPENDED, REVALIDATION_REQUIRED, DEACTIVATED "PROCESSING"
Type of the fiat account.
The unique identifier of the customer owning this account.
Whatever the provider resolved about the account while validating it, when it resolves anything. Argentina (bank_transfer) returns the CVU/alias holder; Brazil (pix) returns the PIX key's holder — name, the masked tax_id and bank_name, plus the account's own coordinates — and it is present whether the account came back unconfirmed or disabled, so you can show the customer whose account the key belongs to either way. Providers that validate nothing return null.
Was this page helpful?