Erros

Toda resposta de erro tem o mesmo formato, com um código que não muda.

400
{
  "erro": {
    "codigo": "requisicao_invalida",
    "mensagem": "Corpo da requisição inválido.",
    "detalhes": [{ "campo": "valorCentavos", "mensagem": "Invalid input: expected int" }]
  }
}

Trate o codigo no seu código e mostre a mensagem só para depuração: o texto pode mudar.

Códigos

CódigoHTTPQuando
requisicao_invalida400Corpo inválido. O campo detalhes lista cada campo com problema.
json_invalido400O corpo não é um JSON válido.
idempotency_key_obrigatoria400Falta o header Idempotency-Key.
nao_autorizado401Chave ausente, inválida ou revogada.
plataforma_bloqueada403Plataforma reprovada ou suspensa.
plataforma_nao_aprovada403Chave de produção antes da aprovação.
cobranca_nao_encontrada404A cobrança não existe nesta conta.
recebedor_nao_encontrado404O recebedor não existe nesta conta.
plataforma_ja_cadastrada409Já existe credenciamento para este documento.
idempotencia_conflito422Idempotency-Key reutilizada com outro corpo.
split_invalido422Soma acima do valor, recebedor repetido ou regra ambígua.
split_excede_limite_provedor422Mais recebedores do que o provedor aceita por cobrança.
recebedor_nao_aprovado422Recebedor ainda sem KYC aprovado.
recebimento_nao_configurado409A conta de recebimento da plataforma ainda não foi cadastrada (PUT /v1/plataforma/recebimento).
sem_gateway_disponivel422Nenhum gateway pode processar agora: a mensagem diz o que falta (KYC de quem) em cada um.
split_sem_espaco_para_tarifa422O split deixa para a plataforma menos que a tarifa do Qorvie Pay.
recebedor_dados_insuficientes422O provedor exige dados cadastrais que não foram enviados.
estorno_invalido422O status atual da cobrança não permite estorno.
chave_publica_invalida401Chave pública ausente ou inválida.
origem_nao_permitida403A tokenização só é aceita a partir dos campos de cartão hospedados.
somente_sandbox403Ação que só existe com chave de teste.
checkout_nao_encontrado404O link de pagamento não existe nesta conta.
pagamento_em_andamento409Já há um Pix aguardando pagamento neste link.
checkout_cancelado409O link de pagamento foi cancelado.
checkout_expirado410O link de pagamento expirou.
token_invalido422Token de cartão inválido, expirado ou já usado.
cartao_numero_invalido422Número de cartão inválido. Também: cartao_vencido, cartao_cvv_invalido, cartao_validade_invalida.
metodo_indisponivel422O meio de pagamento não está habilitado neste link.
parcelas_invalidas422Mais parcelas do que o link permite.
cliente_obrigatorio422Cartão exige nome, documento e e-mail do titular.
origem_invalida422Domínio inválido na lista de domínios permitidos.
muitas_tentativas429Muitas tentativas de pagamento neste link.
muitas_requisicoes429Limite de tentativas por endereço. Aguarde alguns minutos.
tokenizacao_pelo_provedor501Em produção a tokenização é feita pelo SDK do provedor.
url_invalida422URL de webhook inválida: precisa ser https e pública (rede interna e localhost são recusados).
limite_de_webhooks422No máximo 5 endpoints de webhook por ambiente.
webhook_nao_encontrado404O endpoint de webhook não existe nesta conta.
entrega_nao_encontrada404A entrega de webhook não existe nesta conta.
provedor_indisponivel502O provedor de pagamento não respondeu. Tente de novo com a mesma Idempotency-Key.

Repetir com segurança

Em 502 ou em falha de rede, repita a requisição com a mesma Idempotency-Key. Se a cobrança chegou a ser criada, você recebe a mesma resposta e não cobra duas vezes.