Restablecer la contraseña de un miembro con un link de recuperación del admin
curl --request POST \
--url https://api.qbank.cl/platform/v1/auth/password/reset-link \
--header 'Content-Type: application/json' \
--data '
{
"org": "cbpay",
"token": "2mJ5lYx1f7wQ9vH3kP0sN6aB4cD8eG1iR5tU7yI9oPq",
"new_password": "mi-nueva-clave-fuerte"
}
'import requests
url = "https://api.qbank.cl/platform/v1/auth/password/reset-link"
payload = {
"org": "cbpay",
"token": "2mJ5lYx1f7wQ9vH3kP0sN6aB4cD8eG1iR5tU7yI9oPq",
"new_password": "mi-nueva-clave-fuerte"
}
headers = {"Content-Type": "application/json"}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {'Content-Type': 'application/json'},
body: JSON.stringify({
org: 'cbpay',
token: '2mJ5lYx1f7wQ9vH3kP0sN6aB4cD8eG1iR5tU7yI9oPq',
new_password: 'mi-nueva-clave-fuerte'
})
};
fetch('https://api.qbank.cl/platform/v1/auth/password/reset-link', 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://api.qbank.cl/platform/v1/auth/password/reset-link",
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([
'org' => 'cbpay',
'token' => '2mJ5lYx1f7wQ9vH3kP0sN6aB4cD8eG1iR5tU7yI9oPq',
'new_password' => 'mi-nueva-clave-fuerte'
]),
CURLOPT_HTTPHEADER => [
"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://api.qbank.cl/platform/v1/auth/password/reset-link"
payload := strings.NewReader("{\n \"org\": \"cbpay\",\n \"token\": \"2mJ5lYx1f7wQ9vH3kP0sN6aB4cD8eG1iR5tU7yI9oPq\",\n \"new_password\": \"mi-nueva-clave-fuerte\"\n}")
req, _ := http.NewRequest("POST", url, payload)
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://api.qbank.cl/platform/v1/auth/password/reset-link")
.header("Content-Type", "application/json")
.body("{\n \"org\": \"cbpay\",\n \"token\": \"2mJ5lYx1f7wQ9vH3kP0sN6aB4cD8eG1iR5tU7yI9oPq\",\n \"new_password\": \"mi-nueva-clave-fuerte\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.qbank.cl/platform/v1/auth/password/reset-link")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Content-Type"] = 'application/json'
request.body = "{\n \"org\": \"cbpay\",\n \"token\": \"2mJ5lYx1f7wQ9vH3kP0sN6aB4cD8eG1iR5tU7yI9oPq\",\n \"new_password\": \"mi-nueva-clave-fuerte\"\n}"
response = http.request(request)
puts response.read_body{
"status": "password_reset",
"note": "all sessions were revoked; log in with the new password"
}
Restablecer la contraseña de un miembro con un link de recuperación del admin
Canjea el link de un solo uso enviado por un admin de la organización al email del miembro. El token tiene 32 bytes aleatorios codificados en base64url de 43 caracteres, se guarda solo como hash y expira en 60 minutos. Un canje exitoso verifica el email del miembro, limpia register_pending y revoca todas las sesiones. 401 invalid_token es deliberadamente idéntico para un link inválido, expirado o ya usado y para una organización, miembro o baneo no válido. Este endpoint es para links de recuperación de miembros; el reset de admins de plataforma es independiente.
POST
/
v1
/
auth
/
password
/
reset-link
Restablecer la contraseña de un miembro con un link de recuperación del admin
curl --request POST \
--url https://api.qbank.cl/platform/v1/auth/password/reset-link \
--header 'Content-Type: application/json' \
--data '
{
"org": "cbpay",
"token": "2mJ5lYx1f7wQ9vH3kP0sN6aB4cD8eG1iR5tU7yI9oPq",
"new_password": "mi-nueva-clave-fuerte"
}
'import requests
url = "https://api.qbank.cl/platform/v1/auth/password/reset-link"
payload = {
"org": "cbpay",
"token": "2mJ5lYx1f7wQ9vH3kP0sN6aB4cD8eG1iR5tU7yI9oPq",
"new_password": "mi-nueva-clave-fuerte"
}
headers = {"Content-Type": "application/json"}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {'Content-Type': 'application/json'},
body: JSON.stringify({
org: 'cbpay',
token: '2mJ5lYx1f7wQ9vH3kP0sN6aB4cD8eG1iR5tU7yI9oPq',
new_password: 'mi-nueva-clave-fuerte'
})
};
fetch('https://api.qbank.cl/platform/v1/auth/password/reset-link', 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://api.qbank.cl/platform/v1/auth/password/reset-link",
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([
'org' => 'cbpay',
'token' => '2mJ5lYx1f7wQ9vH3kP0sN6aB4cD8eG1iR5tU7yI9oPq',
'new_password' => 'mi-nueva-clave-fuerte'
]),
CURLOPT_HTTPHEADER => [
"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://api.qbank.cl/platform/v1/auth/password/reset-link"
payload := strings.NewReader("{\n \"org\": \"cbpay\",\n \"token\": \"2mJ5lYx1f7wQ9vH3kP0sN6aB4cD8eG1iR5tU7yI9oPq\",\n \"new_password\": \"mi-nueva-clave-fuerte\"\n}")
req, _ := http.NewRequest("POST", url, payload)
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://api.qbank.cl/platform/v1/auth/password/reset-link")
.header("Content-Type", "application/json")
.body("{\n \"org\": \"cbpay\",\n \"token\": \"2mJ5lYx1f7wQ9vH3kP0sN6aB4cD8eG1iR5tU7yI9oPq\",\n \"new_password\": \"mi-nueva-clave-fuerte\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.qbank.cl/platform/v1/auth/password/reset-link")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Content-Type"] = 'application/json'
request.body = "{\n \"org\": \"cbpay\",\n \"token\": \"2mJ5lYx1f7wQ9vH3kP0sN6aB4cD8eG1iR5tU7yI9oPq\",\n \"new_password\": \"mi-nueva-clave-fuerte\"\n}"
response = http.request(request)
puts response.read_body{
"status": "password_reset",
"note": "all sessions were revoked; log in with the new password"
}
Cuerpo
application/json
Respuesta
Contraseña restablecida; email verificado, registro pendiente limpiado y todas las sesiones revocadas.