API v1
Começar

Erros

Todo erro tem o mesmo formato. error é estável e pode ser usado no seu código; message é texto para pessoas e pode mudar. Guarde o request_id para falar com o suporte.

Formato
{
  "error": "invalid_request",
  "message": "Algum campo está ausente, sobrando ou com formato inválido.",
  "doc_url": "https://mainumpay.com/docs/erros#invalid_request",
  "request_id": "req_0192a7c4-5b20-7c11-8e4f-2b9d0c6a3e58"
}

Alguns erros trazem campos extras: operation_limit_exceeded traz reasons, destination_ownership_not_verified traz reason e charge_creation_in_progress traz charge_id.

Catálogo de códigos

HTTPerrorO que aconteceuO que fazer
404checkout_session_not_foundNão há sessão de checkout com esse ID nesta conta.Confira o ID e o ambiente da chave.
422store_unavailableA loja informada não existe nesta conta ou não está ativa.Confira o store_id no painel (Lojas) e se a loja não está pausada ou arquivada.
422checkout_amount_mismatchO total informado difere da soma dos itens.Confira quantidades e preços atuais dos produtos antes de criar a sessão.
400invalid_requestAlgum campo está ausente, sobrando ou com formato inválido.Compare o corpo e a query com o contrato do endpoint e corrija o campo.
400invalid_jsonO corpo não é um JSON válido.Envie JSON válido com Content-Type: application/json.
400idempotency_key_requiredFaltou o cabeçalho Idempotency-Key.Envie um valor único de 8 a 128 caracteres visíveis para cada operação.
400invalid_pix_keyA chave Pix não corresponde ao tipo informado.Confira pix_key.type e pix_key.value.
400invalid_cursorO cursor de paginação é inválido.Use o next_cursor devolvido pela página anterior ou recomece sem cursor.
401invalid_api_keyA chave está ausente, revogada, expirada, é de outro ambiente ou não tem o escopo exigido.Confira o prefixo gw_test_ ou gw_live_ e os escopos da chave no painel.
403merchant_not_operationalA conta ainda não pode criar cobranças.Conclua a verificação da conta no painel.
403card_unavailableCobrança no cartão ainda não está disponível.Use Pix por enquanto; o cartão será liberado em uma próxima versão.
403card_not_enabledCobrança no cartão não está liberada para esta conta.Fale com o suporte para liberar o cartão.
403withdrawal_not_permittedA conta não pode sacar agora.Confira a verificação bancária e os bloqueios da conta no painel.
403external_withdrawal_scope_requiredO saque vai para um documento diferente do da conta.Use uma chave com o escopo withdrawals:external_write, liberado pelo admin.
404product_not_foundNão há produto com esse ID nesta conta.Confira o ID em GET /v1/products.
404charge_not_foundNão há cobrança com esse ID nesta conta.Confira o ID e o ambiente da chave.
404withdrawal_not_foundNão há saque com esse ID nesta conta.Confira o ID e o ambiente da chave.
404med_case_not_foundNão há caso MED com esse ID nesta conta.Confira o ID e o ambiente da chave.
404event_not_foundNão há evento com esse ID nesta conta.Confira o ID; eventos internos não são listados.
404not_foundRota inexistente.Confira o método e o caminho.
409external_id_conflictJá existe um recurso com este external_id.Use outro external_id ou consulte o recurso existente.
409idempotency_conflictA mesma Idempotency-Key já foi usada com outro corpo.Gere uma chave nova para cada operação diferente.
409charge_creation_in_progressEsta cobrança ainda está sendo criada.Consulte GET /v1/charges/{charge_id} em alguns segundos.
422product_unavailableO produto não pode ser cobrado assim.Veja reason: not_found, inactive (arquivado, desativado ou plano de assinatura) ou price_mismatch (amount_cents diferente do preço atual).
422charge_rejectedO valor não é aceito pelas tarifas e limites da conta.Se reasons indicar o valor, use minimum_amount_cents e maximum_amount_cents; senão, confira as tarifas no painel.
422withdrawal_rejectedO saque não é aceito pelas tarifas e limites da conta.Se reasons indicar o valor, use minimum_amount_cents e maximum_amount_cents; senão, confira as tarifas no painel.
422insufficient_withdrawable_balanceO saldo sacável não cobre o valor e a tarifa.Consulte GET /v1/balance e ajuste o valor.
422withdrawal_limit_exceededO saque passa do limite diário.Reduza o valor ou tente depois.
422destination_ownership_not_verifiedAinda não confirmamos que o destino pertence à conta.Aguarde a verificação ou use a chave cadastrada no painel.
429rate_limit_exceededMuitas chamadas em pouco tempo.Espere o tempo do cabeçalho Retry-After.
429operation_limit_exceededUm limite de operação da conta foi atingido.Veja reasons e ajuste o valor ou aguarde a janela.
503service_unavailableInstabilidade temporária.Repita com a mesma Idempotency-Key; nada é criado em dobro.
500internal_errorErro inesperado.Repita com a mesma Idempotency-Key e informe o request_id ao suporte se persistir.