curl --request PUT \
--url https://skala-sandbox.ripio.com/api/v1/customers/{customerId}/ \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"email": "[email protected]"
}
'import requests
url = "https://skala-sandbox.ripio.com/api/v1/customers/{customerId}/"
payload = { "email": "[email protected]" }
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.put(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'PUT',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({email: '[email protected]'})
};
fetch('https://skala-sandbox.ripio.com/api/v1/customers/{customerId}/', 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/customers/{customerId}/",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "PUT",
CURLOPT_POSTFIELDS => json_encode([
'email' => '[email protected]'
]),
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/customers/{customerId}/"
payload := strings.NewReader("{\n \"email\": \"[email protected]\"\n}")
req, _ := http.NewRequest("PUT", 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.put("https://skala-sandbox.ripio.com/api/v1/customers/{customerId}/")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"email\": \"[email protected]\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://skala-sandbox.ripio.com/api/v1/customers/{customerId}/")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Put.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"email\": \"[email protected]\"\n}"
response = http.request(request)
puts response.read_body{
"customerId": "7142b065-79c4-4f48-9e33-11b23bc689e2",
"email": "[email protected]",
"phoneNumber": "+5491112345678",
"isActive": true,
"createdAt": "2024-04-10T18:17:07.702533Z"
}{
"code": 20081,
"type": "CustomerEmailFrozenException",
"detail": {
"message": "Customer '3fa85f64-5717-4562-b3fc-2c963f66afa6' email cannot be changed because a KYC process already registered it."
},
"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
}Update Customer
Updates an existing customer’s information. Currently, only the email address can be updated. Once the customer’s KYC has been approved, this endpoint can no longer change the email — see the email field description and the 400 response below.
curl --request PUT \
--url https://skala-sandbox.ripio.com/api/v1/customers/{customerId}/ \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"email": "[email protected]"
}
'import requests
url = "https://skala-sandbox.ripio.com/api/v1/customers/{customerId}/"
payload = { "email": "[email protected]" }
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.put(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'PUT',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({email: '[email protected]'})
};
fetch('https://skala-sandbox.ripio.com/api/v1/customers/{customerId}/', 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/customers/{customerId}/",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "PUT",
CURLOPT_POSTFIELDS => json_encode([
'email' => '[email protected]'
]),
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/customers/{customerId}/"
payload := strings.NewReader("{\n \"email\": \"[email protected]\"\n}")
req, _ := http.NewRequest("PUT", 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.put("https://skala-sandbox.ripio.com/api/v1/customers/{customerId}/")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"email\": \"[email protected]\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://skala-sandbox.ripio.com/api/v1/customers/{customerId}/")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Put.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"email\": \"[email protected]\"\n}"
response = http.request(request)
puts response.read_body{
"customerId": "7142b065-79c4-4f48-9e33-11b23bc689e2",
"email": "[email protected]",
"phoneNumber": "+5491112345678",
"isActive": true,
"createdAt": "2024-04-10T18:17:07.702533Z"
}{
"code": 20081,
"type": "CustomerEmailFrozenException",
"detail": {
"message": "Customer '3fa85f64-5717-4562-b3fc-2c963f66afa6' email cannot be changed because a KYC process already registered it."
},
"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
}email field is only accepted while the customer’s KYC has not been approved yet: no email set, no KYC submitted, one currently IN_REVIEW, or a previous attempt that FAILED — any of these still allow changing it. Once the KYC is approved, the email is frozen: this endpoint answers 400 with error code 20081 (CustomerEmailFrozenException) and leaves the email untouched. Contact Ripio support to change it in that case.Authorizations
Access token obtained via /oauth2/token/. Use as Authorization: Bearer <access_token>.
Path Parameters
Unique identifier for the customer.
Body
Customer update payload.
Payload for updating an existing customer.
The new email for the customer. Accepted while the customer's KYC has not been approved yet. Once the KYC is approved, this field is rejected with 400 and error code 20081 (CustomerEmailFrozenException); contact Ripio support to change it in that case. On the unified KYC flow, while the customer is waiting on the OTP, this change is also forwarded to the identity provider, which resends the same still-valid code to the new address; if the provider rejects it, the update answers 400 with error code 20098 (KycServiceChangeEmailException) and the email is left untouched.
Response
Customer updated successfully.
Response payload for a customer.
A unique customer's ID. Either the one you supplied on creation or the one Ripio generated for you.
"7142b065-79c4-4f48-9e33-11b23bc689e2"
The email of the individual or juridical person.
The phone number of the individual or juridical person. null if not provided.
"+5491112345678"
Whether the customer account is active. Returns false after the customer has been deactivated; in that case, operations on the customer's resources (KYC, fiat accounts, transactions, sessions) return 404.
true
The date and time of customer's creation.
"2024-04-10T18:17:07.702533Z"
Was this page helpful?