API v1

Integração Minha ID
Crie solicitações por CPF e receba somente os campos que o titular autorizou. Nenhum dado pessoal é enviado em URLs.

1. Criar solicitação

O CPF é usado apenas no servidor para localizar o titular. A resposta não revela se o CPF está cadastrado.

curl -X POST https://seu-dominio.com/api/v1/data-requests \
  -H "Content-Type: application/json" \
  -H "X-API-Key: myid_live_..." \
  -d '{
    "cpf": "52998224725",
    "purpose": "Abertura de conta e validação cadastral",
    "legalBasis": "Execução de contrato",
    "requestedFields": [
      "firstName",
      "lastName",
      "cpf",
      "birthDate",
      "phoneCountryCode",
      "phoneAreaCode",
      "phoneNumber",
      "phoneIsWhatsApp",
      "address.city",
      "address.state"
    ]
  }'
{
  "request": {
    "id": "req_opaque_id",
    "status": "pending",
    "requesterName": "Empresa Exemplo",
    "requestedFields": ["firstName", "lastName", "cpf", "birthDate"],
    "expiresAt": "2026-07-24T15:30:00.000Z"
  }
}

2. Consultar situação

Consulte GET /api/v1/data-requests/{requestId}. Os estados possíveis são pending, approved, denied, expired e consumed.

3. Obter dados autorizados

Depois da aprovação, faça a troca uma única vez. Uma segunda tentativa será recusada.

curl -X POST \
  https://seu-dominio.com/api/v1/data-requests/REQUEST_ID/exchange \
  -H "X-API-Key: myid_live_..."
{
  "response": {
    "requestId": "req_opaque_id",
    "consentReceiptId": "receipt_id",
    "issuedAt": "2026-07-24T15:20:00.000Z",
    "data": {
      "firstName": "Ana",
      "lastName": "Silva",
      "phoneCountryCode": "+55",
      "phoneAreaCode": "11",
      "phoneNumber": "999999999",
      "phoneIsWhatsApp": true,
      "address.city": "São Paulo"
    }
  }
}