curl --request GET \
--url https://api.pruff.com/api/clients/approvals/missing/{requestType}/{requestId} \
--header 'x-api-key: <api-key>'import requests
url = "https://api.pruff.com/api/clients/approvals/missing/{requestType}/{requestId}"
headers = {"x-api-key": "<api-key>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {'x-api-key': '<api-key>'}};
fetch('https://api.pruff.com/api/clients/approvals/missing/{requestType}/{requestId}', 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.pruff.com/api/clients/approvals/missing/{requestType}/{requestId}",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"x-api-key: <api-key>"
],
]);
$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://api.pruff.com/api/clients/approvals/missing/{requestType}/{requestId}"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("x-api-key", "<api-key>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://api.pruff.com/api/clients/approvals/missing/{requestType}/{requestId}")
.header("x-api-key", "<api-key>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.pruff.com/api/clients/approvals/missing/{requestType}/{requestId}")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["x-api-key"] = '<api-key>'
response = http.request(request)
puts response.read_body{
"comiteeName": "Comité de riesgo",
"roles": [
{
"roleId": 1,
"roleName": "Administrador",
"requiredApprovals": 1,
"approved": [
{
"id": 1,
"status": "APPROVED",
"reason": "Aprobado por API",
"type": "FactoringRequest",
"comiteeType": "RISK",
"createdAt": "2026-01-07T19:55:04.589Z",
"updatedAt": "2026-01-07T19:55:04.589Z",
"user": "ana.perez@example.com",
"roleId": 1,
"roleName": "Administrador"
}
],
"rejected": [],
"userCanApprove": false
}
],
"isFullyApproved": true,
"isRejected": false
}Obtener aprobaciones faltantes
Obtiene los roles que el comité exige para aprobar la solicitud, con la cantidad de firmas que necesita cada rol, las firmas ya registradas y si el usuario indicado en email todavía puede firmar con cada rol.
Si no envías comiteeType, se usa el comité de riesgo (RISK). La solicitud debe tener un comité asignado para el comité consultado. PaymentRequestPassive solo tiene comité de riesgo y ResellNominee solo tiene comité de operaciones. CreditLineRequest y FactoringResell se firman solo en el comité de riesgo; los demás tipos tienen ambos.
isFullyApproved es true cuando cada rol reunió las firmas que exige. isRejected es true apenas existe una firma de rechazo en cualquier rol.
Para FactoringRequest, requestId es el id de la solicitud de factoring (el mismo factoringRequestId que recibes al crearla).
curl --request GET \
--url https://api.pruff.com/api/clients/approvals/missing/{requestType}/{requestId} \
--header 'x-api-key: <api-key>'import requests
url = "https://api.pruff.com/api/clients/approvals/missing/{requestType}/{requestId}"
headers = {"x-api-key": "<api-key>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {'x-api-key': '<api-key>'}};
fetch('https://api.pruff.com/api/clients/approvals/missing/{requestType}/{requestId}', 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.pruff.com/api/clients/approvals/missing/{requestType}/{requestId}",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"x-api-key: <api-key>"
],
]);
$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://api.pruff.com/api/clients/approvals/missing/{requestType}/{requestId}"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("x-api-key", "<api-key>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://api.pruff.com/api/clients/approvals/missing/{requestType}/{requestId}")
.header("x-api-key", "<api-key>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.pruff.com/api/clients/approvals/missing/{requestType}/{requestId}")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["x-api-key"] = '<api-key>'
response = http.request(request)
puts response.read_body{
"comiteeName": "Comité de riesgo",
"roles": [
{
"roleId": 1,
"roleName": "Administrador",
"requiredApprovals": 1,
"approved": [
{
"id": 1,
"status": "APPROVED",
"reason": "Aprobado por API",
"type": "FactoringRequest",
"comiteeType": "RISK",
"createdAt": "2026-01-07T19:55:04.589Z",
"updatedAt": "2026-01-07T19:55:04.589Z",
"user": "ana.perez@example.com",
"roleId": 1,
"roleName": "Administrador"
}
],
"rejected": [],
"userCanApprove": false
}
],
"isFullyApproved": true,
"isRejected": false
}Parámetros de ruta
Tipo de solicitud sobre la que se consultan o registran las aprobaciones.
CreditLineRequest: solicitud de línea de crédito.FactoringRequest: solicitud de factoring.ConfirmingRequest: solicitud de confirming.FactoringResell: venta de documentos a fondos.CreditRequest: solicitud de crédito.FactoringExtension: prórroga de factoring.SGRWarrantyRequest: solicitud de garantía SGR.PaymentRequestPassive: devolución de pasivos.ResellNominee: nómina de venta a fondo.LeasingRequest: solicitud de leasing. Tipo de solicitud que se aprueba en un comité.
CreditLineRequest, FactoringRequest, ConfirmingRequest, FactoringResell, CreditRequest, FactoringExtension, SGRWarrantyRequest, PaymentRequestPassive, ResellNominee, LeasingRequest Parámetros de consulta
Respuesta
Estado de las aprobaciones por rol.