Skip to main content
POST
/
bureau
/
api
/
v1
/
bureau
/
person
/
async
Consulta Bureau Async por pacote
curl --request POST \
  --url https://api.valid.com/bureau/api/v1/bureau/person/async \
  --header 'Content-Type: application/json' \
  --header 'x-api-key: <api-key>' \
  --data '
{
  "key": "<string>",
  "datasetPackageId": "<string>",
  "webhookUrl": "<string>",
  "webhookBasicAuth": "<string>",
  "refreshData": true
}
'
import requests

url = "https://api.valid.com/bureau/api/v1/bureau/person/async"

payload = {
    "key": "<string>",
    "datasetPackageId": "<string>",
    "webhookUrl": "<string>",
    "webhookBasicAuth": "<string>",
    "refreshData": True
}
headers = {
    "x-api-key": "<api-key>",
    "Content-Type": "application/json"
}

response = requests.post(url, json=payload, headers=headers)

print(response.text)
const options = {
  method: 'POST',
  headers: {'x-api-key': '<api-key>', 'Content-Type': 'application/json'},
  body: JSON.stringify({
    key: '<string>',
    datasetPackageId: '<string>',
    webhookUrl: '<string>',
    webhookBasicAuth: '<string>',
    refreshData: true
  })
};

fetch('https://api.valid.com/bureau/api/v1/bureau/person/async', 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.valid.com/bureau/api/v1/bureau/person/async",
  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([
    'key' => '<string>',
    'datasetPackageId' => '<string>',
    'webhookUrl' => '<string>',
    'webhookBasicAuth' => '<string>',
    'refreshData' => true
  ]),
  CURLOPT_HTTPHEADER => [
    "Content-Type: application/json",
    "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"
	"strings"
	"net/http"
	"io"
)

func main() {

	url := "https://api.valid.com/bureau/api/v1/bureau/person/async"

	payload := strings.NewReader("{\n  \"key\": \"<string>\",\n  \"datasetPackageId\": \"<string>\",\n  \"webhookUrl\": \"<string>\",\n  \"webhookBasicAuth\": \"<string>\",\n  \"refreshData\": true\n}")

	req, _ := http.NewRequest("POST", url, payload)

	req.Header.Add("x-api-key", "<api-key>")
	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.valid.com/bureau/api/v1/bureau/person/async")
  .header("x-api-key", "<api-key>")
  .header("Content-Type", "application/json")
  .body("{\n  \"key\": \"<string>\",\n  \"datasetPackageId\": \"<string>\",\n  \"webhookUrl\": \"<string>\",\n  \"webhookBasicAuth\": \"<string>\",\n  \"refreshData\": true\n}")
  .asString();
require 'uri'
require 'net/http'

url = URI("https://api.valid.com/bureau/api/v1/bureau/person/async")

http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true

request = Net::HTTP::Post.new(url)
request["x-api-key"] = '<api-key>'
request["Content-Type"] = 'application/json'
request.body = "{\n  \"key\": \"<string>\",\n  \"datasetPackageId\": \"<string>\",\n  \"webhookUrl\": \"<string>\",\n  \"webhookBasicAuth\": \"<string>\",\n  \"refreshData\": true\n}"

response = http.request(request)
puts response.read_body
{
  "requestId": "<string>",
  "createdAt": "<string>",
  "status": "<string>",
  "datasetPackage": {},
  "key": "<string>",
  "datasets": [
    {}
  ],
  "failedDatasets": [
    {}
  ],
  "code": "<string>",
  "message": "<string>"
}
Use a mesma URI de consulta assincrona (POST /bureau/api/v1/bureau/person/async) quando quiser reutilizar um pacote de datasets criado previamente, informando o ID do pacote no campo datasetPackageId, com resultado entregue via webhook.

Async por datasets

Escolha quais datasets consultar

Request Body

key
string
required
CPF ou CNPJ da pessoaExemplo: 12345678901
datasetPackageId
string
required
ID do pacote de datasetsFormato: UUIDExemplo: 05be75cc-8f8a-414a-891f-434aa9b4e7a5
webhookUrl
string
required
URL de callback para receber o resultadoFormato: URIExemplo: https://seusistema.com/webhook
webhookBasicAuth
string
Autenticacao basica para o webhook (username:password)Exemplo: usuario:senha
refreshData
boolean
Forca a busca de dados atualizadosExemplo: true
Consulte Pacote de Datasets para criar e gerenciar pacotes.

Response

Retorna confirmacao de recebimento/processamento da consulta. O resultado final e entregue no webhook informado.
requestId
string
ID da requisicaoFormato: UUID
createdAt
string
Data de criacao da requisicaoExemplo: 2026-03-12T10:30:00Z
status
string
Status inicial da requisicaoValor: PROCESSING
datasetPackage
object
Metadados do pacote utilizado (id, name), quando informado no request.

Exemplo de sucesso (200 OK)

{
  "requestId": "05be75cc-8f8a-414a-891f-434aa9b4e7a5",
  "createdAt": "2026-03-12T10:30:00Z",
  "status": "PROCESSING",
  "datasetPackage": {
    "id": "05be75cc-8f8a-414a-891f-434aa9b4e7a5",
    "name": "Pacote antifraude PF"
  }
}

Webhook Content

O payload enviado para o webhook contem o resultado da consulta solicitada, no mesmo formato da resposta sincrona (PersonResultResponseDto).
requestId
string
ID da requisicao
createdAt
string
Data de criacao da requisicao
key
string
CPF ou CNPJ consultado
status
string
Status final da consultaValores possiveis: FINISHED, FAILED
datasets
object[]
Datasets processados com sucesso
failedDatasets
object[]
Datasets que falharam no processamento. Cada item contem dataset e reason.
datasetPackage
object
Metadados do pacote utilizado (id, name).

Exemplo de payload do webhook

{
  "requestId": "05be75cc-8f8a-414a-891f-434aa9b4e7a5",
  "createdAt": "2026-03-12T10:30:00.000Z",
  "key": "12345678900",
  "status": "FINISHED",
  "datasetPackage": {
    "id": "05be75cc-8f8a-414a-891f-434aa9b4e7a5",
    "name": "Pacote antifraude PF"
  },
  "datasets": [
    {
      "dataset": "basic",
      "data": {
        "document": "12345678900",
        "name": "Joao da Silva",
        "motherName": "Maria da Silva",
        "birthDate": "1990-05-21",
        "status": "REGULAR"
      }
    },
    {
      "dataset": "addresses",
      "data": {
        "addresses": [
          {
            "street": "Rua das Flores",
            "number": "123",
            "complement": "Apto 45",
            "district": "Centro",
            "city": "Sao Paulo",
            "state": "SP",
            "zipCode": "01001-000",
            "country": "BR"
          }
        ]
      }
    }
  ],
  "failedDatasets": []
}

Exemplo com falha parcial no webhook

{
  "requestId": "05be75cc-8f8a-414a-891f-434aa9b4e7a5",
  "createdAt": "2026-03-12T10:30:00.000Z",
  "key": "12345678900",
  "status": "FAILED",
  "datasetPackage": {
    "id": "05be75cc-8f8a-414a-891f-434aa9b4e7a5",
    "name": "Pacote antifraude PF"
  },
  "datasets": [
    {
      "dataset": "basic",
      "data": {
        "document": "12345678900",
        "name": "Joao da Silva",
        "status": "REGULAR"
      }
    }
  ],
  "failedDatasets": [
    {
      "dataset": "pgfn_certificate_person",
      "reason": "[ondemand_pgfn_person] DATASET IS TOO SLOW. PLEASE TRY AGAIN IN A FEW MINUTES"
    }
  ]
}

Respostas de Erro

code
string
Codigo do erro que categoriza o tipo de erroExemplo: VALIDATION_ERROR
message
string
Mensagem de erroExemplo: The request is invalid