POST/api/v2/pix/pagamentos/confirmar

Confirmar

Efetiva pagamento iniciado. Required reais: id, valor, chave_idempotencia, recebedor. Não exigir endToEndId nem pagador no body. Status: "9" confirmado, "0" processando, "-1" erro. Scope: pix.write.

Parâmetros

AcceptObrigatório
header

Tipo de conteúdo aceito na resposta

Tipo:string
Content-TypeObrigatório
header

Tipo de conteúdo da requisição

Tipo:string

Autenticação e scopes

Requer Bearer token com scope pix.write.

Headers

HeaderObrigatórioDescrição
AuthorizationSimBearer {{access_token}}
AcceptSimapplication/json
Content-TypeSimapplication/json

Body — contrato recomendado (v2)

CampoObrigatórioTipoDescrição
idSimStringUUID da iniciação (404 se não existir)
valorSimNumberValor a efetivar (omitir tende a 500)
chave_idempotenciaSimStringÚnica por intenção; omitir tende a 500 (não 422)
recebedorSimObjectEspelhar pessoa + conta da iniciação (omitir tende a 500)
endToEndIdNãoStringIgnorado no body — vem do pagamento ou é gerado na confirmação
pagadorNãoObjectMontado da conta autenticada; envie pessoa.nome só se o titular não tiver nome
descricaoNãoStringMensagem
prioridade_pagamento / tp_prioridade_pagamentoNãoIntegerDefaults 0
idConciliacaoRecebedorNãoStringConciliação opcional

Payload mínimo (após iniciação)

{
  "id": "{{pagamento_id}}",
  "valor": 10.50,
  "chave_idempotencia": "confirm-chave-001",
  "recebedor": {
    "pessoa": { "nome": "Recebedor DICT", "tipo": 0, "cpfCnpj": "98765432100" },
    "conta": { "ispb": "87654321", "agencia": "0001", "conta": "7654321", "tipo": 0 }
  }
}

Não envie endToEndId nem pagador (salvo fallback de nome). O mesmo formato vale para iniciação por chave, QR ou manual — espelhe o recebedor da resposta de iniciação.

Retorno 200

statusSignificado
"9"Confirmado (débito efetivado) — comum em Pix interno (mesmo ISPB)
"0"Processando / aceito no JDPI — Pix externo pode evoluir depois para "9"
"-1"Erro

Códigos de resposta

CódigoSignificadoDescrição
200OKConfirmação aceita
403ForbiddenScope pix.write ausente
404Not Foundid inexistente
500Internal Server ErrorCampos críticos omitidos (valor, recebedor, chave_idempotencia)

Notas

  • Técnica: Confirmar · Visão geral.
  • Gere chave_idempotencia nova por intenção distinta; reutilize só em retentativa.
curl --location 'https://api-h.nuvende.com.br/api/v2/pix/pagamentos/confirmar' \
--header 'Accept: application/json' \
--header 'Authorization: Bearer {{access_token}}' \
--header 'Content-Type: application/json' \
--data '{
  "id": "{{pagamento_id}}",
  "valor": 10.50,
  "chave_idempotencia": "confirm-chave-001",
  "recebedor": {
    "pessoa": { "nome": "Recebedor DICT", "tipo": 0, "cpfCnpj": "98765432100" },
    "conta": { "ispb": "87654321", "agencia": "0001", "conta": "7654321", "tipo": 0 }
  }
}'
const axios = require("axios");

const data = {
  id: "{{pagamento_id}}",
  valor: 10.5,
  chave_idempotencia: "confirm-chave-001",
  recebedor: {
    pessoa: { nome: "Recebedor DICT", tipo: 0, cpfCnpj: "98765432100" },
    conta: { ispb: "87654321", agencia: "0001", conta: "7654321", tipo: 0 },
  },
};

axios
  .post("https://api-h.nuvende.com.br/api/v2/pix/pagamentos/confirmar", data, {
    headers: {
      Accept: "application/json",
      Authorization: "Bearer {{access_token}}",
      "Content-Type": "application/json",
    },
  })
  .then((response) => console.log(JSON.stringify(response.data)))
  .catch((error) => console.log(error.response?.data || error.message));
import requests

url = "https://api-h.nuvende.com.br/api/v2/pix/pagamentos/confirmar"
headers = {
    "Accept": "application/json",
    "Authorization": "Bearer {{access_token}}",
    "Content-Type": "application/json",
}
payload = {
    "id": "{{pagamento_id}}",
    "valor": 10.50,
    "chave_idempotencia": "confirm-chave-001",
    "recebedor": {
        "pessoa": {"nome": "Recebedor DICT", "tipo": 0, "cpfCnpj": "98765432100"},
        "conta": {"ispb": "87654321", "agencia": "0001", "conta": "7654321", "tipo": 0},
    },
}
response = requests.post(url, headers=headers, json=payload)
print(response.text)
<?php
$payload = [
  'id' => '{{pagamento_id}}',
  'valor' => 10.50,
  'chave_idempotencia' => 'confirm-chave-001',
  'recebedor' => [
    'pessoa' => ['nome' => 'Recebedor DICT', 'tipo' => 0, 'cpfCnpj' => '98765432100'],
    'conta' => ['ispb' => '87654321', 'agencia' => '0001', 'conta' => '7654321', 'tipo' => 0],
  ],
];
$curl = curl_init();
curl_setopt_array($curl, [
  CURLOPT_URL => 'https://api-h.nuvende.com.br/api/v2/pix/pagamentos/confirmar',
  CURLOPT_RETURNTRANSFER => true,
  CURLOPT_POST => true,
  CURLOPT_HTTPHEADER => [
    'Accept: application/json',
    'Authorization: Bearer {{access_token}}',
    'Content-Type: application/json',
  ],
  CURLOPT_POSTFIELDS => json_encode($payload),
]);
$response = curl_exec($curl);
curl_close($curl);
echo $response;