PATCH/api/v2/baas/onboardings/proposals/{proposalId}

Atualizar

Produto BaaS (parceiro). Requer Bearer JWT e assinatura HMAC obrigatoria. Scope: baas.onboarding-proposals.write. PATCH obrigatorio apos o POST. Todos os campos do schema de atualizacao sao obrigatorios para criar o titular, confirmar OTP e liberar PF/PJ. Sem PATCH completo, PF/PJ retornam 404 Customer not found. Guia: documentacao tecnica.

Parâmetros

AcceptObrigatório
header
Tipo:string
X-SignatureObrigatório
header

Assinatura HMAC-SHA256 da requisição (hex).

Tipo:string
X-TimestampObrigatório
header

Timestamp Unix (segundos, UTC) usado na assinatura.

Tipo:string
X-NonceObrigatório
header

Nonce único por requisição (anti-replay).

Tipo:string
proposalIdObrigatório
path
Tipo:string

Autenticação e headers

Requer Bearer token e assinatura HMAC obrigatórios. Scope: baas.onboarding-proposals.write.

HeaderObrigatórioDescrição
AuthorizationSimBearer {{access_token}}
AcceptSimapplication/json
X-SignatureSimAssinatura HMAC
X-TimestampSimTimestamp da assinatura
X-NonceSimNonce único por requisição

Corpo (PATCH)

Todos os campos abaixo são obrigatórios para criar o titular, validar OTP e liberar PF/PJ. Faça GET antes, faça merge local e reenvie o pacote completo.

CampoObrigatórioDescrição
full_nameSimNome completo, máx. 255
social_nameSimNome social, máx. 255
emailSimE-mail válido
phoneSim8 a 11 dígitos, sem +55
birth_dateSimY-m-d
passwordSimSenha de acesso (não retorna no GET)
password_confirmationSimIdêntica a password
accepted_terms_atSimY-m-d H:i:s
device.os_version_nameSimSO do dispositivo
email_verification_codeSimOTP do e-mail (do GET imediato)
phone_verification_codeSimOTP do celular (do GET imediato)
documentNãoSó para troca de CPF/CNPJ
notifications_enabledNãoDefault false

Sem este pacote completo, PF/PJ retornam 404 Customer not found. Documentos KYC não entram aqui.

Erros comuns

CódigoCorpoCausa
422{campo}Campo obrigatório ausente ou password_confirmation divergente
403User already registeredDocumento já cadastrado no parceiro
404Customer not foundPF/PJ chamados antes do PATCH completo

Notas

curl --request PATCH \
  --url 'https://api-h.nuvende.com.br/api/v2/baas/onboardings/proposals/352' \
  --header 'Content-Type: application/json' \
  --header 'Accept: application/json' \
  --header 'Authorization: Bearer {{access_token}}' \
  --header 'X-Timestamp: {{timestamp}}' \
  --header 'X-Nonce: {{nonce}}' \
  --header 'X-Signature: {{signature}}' \
  --data '{"birth_date":"1990-05-20","phone":"11987654321","full_name":"Maria Pagadora Exemplo","social_name":"Maria Exemplo","email":"[email protected]","accepted_terms_at":"2025-01-15 10:30:00","password":"SenhaExemplo123","password_confirmation":"SenhaExemplo123","notifications_enabled":false,"email_verification_code":"123456","phone_verification_code":"654321","device":{"os_version_name":"Android 14","os_name":"Android","os_version":"14.0.0","ip_address":"203.0.113.10","ip_address_local":"192.168.1.5","engine_name":"Exemplo Smartphone","engine_version":"exemplo-device-id-001","platform_model":"SM-S911B","platform_vendor":"Samsung","firebase_token":"exemplo-firebase-token","latitude":-23.5505,"longitude":-46.6333}}'
const axios = require("axios");

const data = {
  birth_date: "1990-05-20",
  phone: "11987654321",
  full_name: "Maria Pagadora Exemplo",
  social_name: "Maria Exemplo",
  email: "[email protected]",
  accepted_terms_at: "2025-01-15 10:30:00",
  password: "SenhaExemplo123",
  password_confirmation: "SenhaExemplo123",
  notifications_enabled: false,
  email_verification_code: "123456",
  phone_verification_code: "654321",
  device: {
    os_version_name: "Android 14",
    os_name: "Android",
    os_version: "14.0.0",
    ip_address: "203.0.113.10",
    ip_address_local: "192.168.1.5",
    engine_name: "Exemplo Smartphone",
    engine_version: "exemplo-device-id-001",
    platform_model: "SM-S911B",
    platform_vendor: "Samsung",
    firebase_token: "exemplo-firebase-token",
    latitude: -23.5505,
    longitude: -46.6333,
  },
};

axios({
  method: "patch",
  url: "https://api-h.nuvende.com.br/api/v2/baas/onboardings/proposals/352",
  headers: {
    "Content-Type": "application/json",
    Accept: "application/json",
    Authorization: "Bearer {{access_token}}",
    "X-Timestamp": "{{timestamp}}",
    "X-Nonce": "{{nonce}}",
    "X-Signature": "{{signature}}",
  },
  data,
})
  .then((response) => console.log(JSON.stringify(response.data)))
  .catch((error) => console.log(error.response?.data || error.message));
import json
import requests

url = "https://api-h.nuvende.com.br/api/v2/baas/onboardings/proposals/352"
payload = {
    "birth_date": "1990-05-20",
    "phone": "11987654321",
    "full_name": "Maria Pagadora Exemplo",
    "social_name": "Maria Exemplo",
    "email": "[email protected]",
    "accepted_terms_at": "2025-01-15 10:30:00",
    "password": "SenhaExemplo123",
    "password_confirmation": "SenhaExemplo123",
    "notifications_enabled": False,
    "email_verification_code": "123456",
    "phone_verification_code": "654321",
    "device": {
        "os_version_name": "Android 14",
        "os_name": "Android",
        "os_version": "14.0.0",
        "ip_address": "203.0.113.10",
        "ip_address_local": "192.168.1.5",
        "engine_name": "Exemplo Smartphone",
        "engine_version": "exemplo-device-id-001",
        "platform_model": "SM-S911B",
        "platform_vendor": "Samsung",
        "firebase_token": "exemplo-firebase-token",
        "latitude": -23.5505,
        "longitude": -46.6333,
    },
}
headers = {
    "Content-Type": "application/json",
    "Accept": "application/json",
    "Authorization": "Bearer {{access_token}}",
    "X-Timestamp": "{{timestamp}}",
    "X-Nonce": "{{nonce}}",
    "X-Signature": "{{signature}}",
}
response = requests.patch(url, headers=headers, data=json.dumps(payload))
print(response.text)
<?php
$curl = curl_init();
curl_setopt_array($curl, [
  CURLOPT_URL => 'https://api-h.nuvende.com.br/api/v2/baas/onboardings/proposals/352',
  CURLOPT_RETURNTRANSFER => true,
  CURLOPT_CUSTOMREQUEST => 'PATCH',
  CURLOPT_POSTFIELDS => '{"birth_date":"1990-05-20","phone":"11987654321","full_name":"Maria Pagadora Exemplo","social_name":"Maria Exemplo","email":"[email protected]","accepted_terms_at":"2025-01-15 10:30:00","password":"SenhaExemplo123","password_confirmation":"SenhaExemplo123","notifications_enabled":false,"email_verification_code":"123456","phone_verification_code":"654321","device":{"os_version_name":"Android 14","os_name":"Android","os_version":"14.0.0","ip_address":"203.0.113.10","ip_address_local":"192.168.1.5","engine_name":"Exemplo Smartphone","engine_version":"exemplo-device-id-001","platform_model":"SM-S911B","platform_vendor":"Samsung","firebase_token":"exemplo-firebase-token","latitude":-23.5505,"longitude":-46.6333}}',
  CURLOPT_HTTPHEADER => [
    'Content-Type: application/json',
    'Accept: application/json',
    'Authorization: Bearer {{access_token}}',
    'X-Timestamp: {{timestamp}}',
    'X-Nonce: {{nonce}}',
    'X-Signature: {{signature}}',
  ],
]);
$response = curl_exec($curl);
curl_close($curl);
echo $response;
{
  "id": 352,
  "document": "11144477735",
  "full_name": "Maria Pagadora Exemplo",
  "social_name": "Maria Exemplo",
  "email": "[email protected]",
  "phone": "11987654321",
  "birth_date": "1990-05-20",
  "email_verification_code": null,
  "phone_verification_code": null,
  "created_at": "2025-01-15 10:00:00",
  "updated_at": "2025-01-15 12:00:00",
  "journey": {
    "id": 5062,
    "person_type": "natural_person",
    "last_step": "proposal",
    "step": "natural_person",
    "created_at": "2025-01-15T10:00:00.000000Z",
    "updated_at": "2025-01-15T12:00:00.000000Z"
  },
  "natural_person_journey": null,
  "legal_person_journey": null,
  "onboardingNaturalPersons": [
    {
      "id": 268,
      "full_name": "Maria Pagadora Exemplo",
      "document": "11144477735",
      "status": "pending",
      "onboarding_proposal_id": 352,
      "journey": {
        "id": 5100,
        "step": "documents",
        "person_type": "natural_person",
        "created_at": "2025-01-15T12:00:00.000000Z"
      }
    }
  ],
  "onboardingLegalPersons": []
}

Alternativa em dois PATCH (cadastral e OTP separados). Faça GET entre as etapas para obter os códigos OTP.

curl --request PATCH \
  --url 'https://api-h.nuvende.com.br/api/v2/baas/onboardings/proposals/352' \
  --header 'Content-Type: application/json' \
  --header 'Accept: application/json' \
  --header 'Authorization: Bearer {{access_token}}' \
  --header 'X-Timestamp: {{timestamp}}' \
  --header 'X-Nonce: {{nonce}}' \
  --header 'X-Signature: {{signature}}' \
  --data '{"birth_date":"1990-05-20","phone":"11987654321","full_name":"Maria Pagadora Exemplo","social_name":"Maria Exemplo","email":"[email protected]","accepted_terms_at":"2025-01-15 10:30:00","password":"SenhaExemplo123","password_confirmation":"SenhaExemplo123","notifications_enabled":false,"device":{"os_version_name":"Android 14","os_name":"Android","os_version":"14.0.0","ip_address":"203.0.113.10","ip_address_local":"192.168.1.5","engine_name":"Exemplo Smartphone","engine_version":"exemplo-device-id-001","platform_model":"SM-S911B","platform_vendor":"Samsung","firebase_token":"exemplo-firebase-token","latitude":-23.5505,"longitude":-46.6333}}'
curl --request PATCH \
  --url 'https://api-h.nuvende.com.br/api/v2/baas/onboardings/proposals/352' \
  --header 'Content-Type: application/json' \
  --header 'Accept: application/json' \
  --header 'Authorization: Bearer {{access_token}}' \
  --header 'X-Timestamp: {{timestamp}}' \
  --header 'X-Nonce: {{nonce}}' \
  --header 'X-Signature: {{signature}}' \
  --data '{"email_verification_code":"123456","phone_verification_code":"654321"}'
{
  "id": 352,
  "document": "11144477735",
  "full_name": "Maria Pagadora Exemplo",
  "social_name": "Maria Exemplo",
  "email": "[email protected]",
  "phone": "11987654321",
  "birth_date": "1990-05-20",
  "email_verification_code": null,
  "phone_verification_code": null,
  "created_at": "2025-01-15 10:00:00",
  "updated_at": "2025-01-15 12:30:00",
  "journey": {
    "id": 5062,
    "person_type": "natural_person",
    "last_step": "proposal",
    "step": "natural_person",
    "created_at": "2025-01-15T10:00:00.000000Z",
    "updated_at": "2025-01-15T12:30:00.000000Z"
  },
  "onboardingNaturalPersons": [
    {
      "id": 268,
      "full_name": "Maria Pagadora Exemplo",
      "document": "11144477735",
      "status": "pending",
      "onboarding_proposal_id": 352
    }
  ],
  "onboardingLegalPersons": []
}