Skip to main content
POST
/
bureau
/
api
/
v1
/
bureau
/
person
/
async
Consulta Bureau Async por datasets
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>",
  "datasets": [
    "<string>"
  ],
  "webhookUrl": "<string>",
  "webhookBasicAuth": "<string>",
  "refreshData": true
}
'
import requests

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

payload = {
    "key": "<string>",
    "datasets": ["<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>',
    datasets: ['<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>',
    'datasets' => [
        '<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  \"datasets\": [\n    \"<string>\"\n  ],\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  \"datasets\": [\n    \"<string>\"\n  ],\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  \"datasets\": [\n    \"<string>\"\n  ],\n  \"webhookUrl\": \"<string>\",\n  \"webhookBasicAuth\": \"<string>\",\n  \"refreshData\": true\n}"

response = http.request(request)
puts response.read_body
{
  "requestId": "<string>",
  "createdAt": "<string>",
  "status": "<string>",
  "key": "<string>",
  "datasets": [
    {}
  ],
  "failedDatasets": [
    {}
  ],
  "code": "<string>",
  "message": "<string>"
}
Use POST /bureau/api/v1/bureau/person/async quando quiser escolher quais datasets consultar, informando a lista de codigos no campo datasets, com resultado entregue via webhook.

Async por pacote

Reutilize um pacote de datasets por ID

Request Body

key
string
required
CPF ou CNPJ da pessoaExemplo: 12345678901
datasets
string[]
required
Datasets a serem consultadosExemplo: ["basic", "addresses"]
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
Use os mesmos codigos de datasets documentados em Datasets PF e PJ.

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

Exemplo de sucesso (200 OK)

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

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.

Exemplo de payload do webhook

{
  "requestId": "05be75cc-8f8a-414a-891f-434aa9b4e7a5",
  "createdAt": "2026-03-12T10:30:00.000Z",
  "key": "12345678900",
  "status": "FINISHED",
  "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",
  "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