Skip to main content

Visão Geral

A API de Pagamentos Dodo utiliza códigos de status HTTP padrão e códigos de erro personalizados para indicar o sucesso ou a falha das solicitações da API. Quando um erro ocorre, a API retorna um código de status HTTP apropriado e uma resposta JSON contendo informações detalhadas sobre o erro. Cada resposta de erro inclui:
  • Um código de status HTTP indicando a categoria geral do erro
  • Um código de erro específico que identifica a natureza exata do erro
  • Uma mensagem de erro legível por humanos explicando o que deu errado
  • Detalhes adicionais sobre o erro quando aplicável
Compreender esses códigos de erro e seus significados é crucial para:
  • Depurar problemas de integração
  • Implementar um tratamento de erro adequado em sua aplicação
  • Fornecer feedback significativo aos usuários finais
  • Manter um sistema de processamento de pagamentos robusto
Estes são erros de API e lógica de negócios. Para motivos de recusa de cartão retornados em um pagamento falho (como INSUFFICIENT_FUNDS ou CARD_DECLINED), veja a referência de Falhas de Transação em vez disso.

Códigos de Erro da API Padrão

Formato da Resposta de Erro

Quando um erro ocorre, a API retorna uma resposta JSON com a seguinte estrutura:

Referência de Códigos de Erro

Os códigos de erro abaixo são agrupados pela área da API à qual se referem. Cada entrada lista a condição que o aciona e a mensagem que a API retorna.

Autenticação & Conta

  • UNAUTHORIZED
    • Trigger: Sem chave de API ou token/escopo inválido
    • Message: Você não está autorizado a realizar esta ação
  • MERCHANT_NOT_LIVE
    • Gatilho: A empresa ainda está no Modo de Teste
    • Mensagem: O comerciante não está ativo
  • BUSINESS_ARCHIVED
    • Gatilho: Qualquer solicitação voltada ao cliente (checkout, link de pagamento, storefront, Customer Portal ou chave de licença) para uma empresa que foi arquivada
    • Mensagem: Esta empresa está arquivada e não aceita mais solicitações

Pagamentos e Checkout

  • CHECKOUT_SESSION_CONSUMED
    • Gatilho: A sessão de Checkout já gerou um pagamento
    • Mensagem: A sessão de Checkout já foi consumida
  • NO_ELIGIBLE_PAYMENT_METHODS
    • Gatilho: Após a filtragem, não restou nada
    • Mensagem: Nenhum método de pagamento elegível encontrado
  • PAYMENT_NOT_SUCCEEDED
    • Gatilho: Tentativa de reembolsar/processar um pagamento malsucedido
    • Mensagem: O pagamento fornecido não foi bem-sucedido
  • PREVIOUS_PAYMENT_PENDING
    • Gatilho: Tentativa de criar uma cobrança enquanto a anterior está em um estado não terminal
    • Mensagem: Não é possível criar uma nova cobrança porque o pagamento anterior ainda não foi bem-sucedido
  • UNSUCCESSFUL_PAYMENT_ID
    • Gatilho: O ID do pagamento referencia um pagamento malsucedido
    • Mensagem: O ID do pagamento tem um status malsucedido.

Conectores e BYOP

Estes erros estão relacionados aos conectores de pagamento pertencentes ao merchant (Bring Your Own Processor).
  • BYOP_CONNECTOR_DISABLED
    • Gatilho: Atualização de um método de pagamento em uma assinatura direcionada por um conector BYOP desativado
    • Mensagem: A assinatura é direcionada pelo conector próprio do merchant (BYOP), que está desativado no momento
  • BYOP_CUSTOM_INVOICE_ADDRESS_MISSING
    • Gatilho: Um pagamento direcionado pelo merchant (BYOP) não contém o endereço de invoice personalizado obrigatório
    • Mensagem: O endereço de invoice personalizado BYOP é obrigatório quando um pagamento é direcionado pelo conector do merchant
  • CONNECTOR_LABEL_ALREADY_EXISTS
    • Gatilho: Criação de um conector com um rótulo que já existe
    • Mensagem: Já existe um conector com este rótulo. Escolha um rótulo diferente.

Reembolsos

  • EXISTING_REFUND_REQUEST_PROCESSING
    • Gatilho: A solicitação de reembolso anterior ainda está sendo processada
    • Mensagem: Uma solicitação de reembolso com status “Pending” ainda está sendo processada
  • LINE_ITEM_FULLY_REFUNDED
    • Gatilho: Tentativa de reembolsar um item de linha já totalmente reembolsado
    • Mensagem: O item de linha foi totalmente reembolsado e não pode receber mais reembolsos.
  • LINE_ITEM_NOT_FOUND
    • Gatilho: O ID do item não faz parte do pagamento referenciado
    • Mensagem: Item de linha não encontrado no pagamento
  • LINE_ITEM_PRORATED
    • Gatilho: Tentativa de reembolso ou atualização em uma linha rateada
    • Mensagem: O item de linha não pode ser reembolsado porque é rateado
  • LINE_ITEM_REFUND_AMOUNT_TOO_HIGH
    • Gatilho: Valor do reembolso > valor pago (incluindo impostos)
    • Mensagem: O valor de reembolso solicitado para o item de linha , incluindo impostos, é , acima do valor pago de
  • LINE_ITEM_REFUND_AMOUNT_TOO_LOW
    • Gatilho: Valor do reembolso abaixo do limite mínimo
    • Mensagem: O valor de reembolso solicitado para o item de linha é , que é muito baixo
  • NOTHING_TO_REFUND
    • Gatilho: Não resta nenhum valor reembolsável; todos os itens de linha positivos já foram totalmente reembolsados
    • Mensagem: Não resta nenhum valor reembolsável. Todos os itens de linha positivos foram totalmente reembolsados.
  • PARTIAL_REFUND_NOT_ALLOWED
    • Gatilho: Tentativa de reembolso parcial em um método de pagamento que aceita apenas reembolsos integrais
    • Mensagem: Reembolsos parciais não são permitidos para este método de pagamento
  • PAYMENT_ALREADY_REFUNDED
    • Gatilho: Reembolso duplicado
    • Mensagem: Este pagamento já foi reembolsado
  • PAYMENT_HAS_BEEN_REFUNDED
    • Gatilho: O pagamento foi totalmente reembolsado
    • Mensagem: O ID do pagamento foi totalmente reembolsado.
  • REFUND_AMOUNT_EXCEEDS_PAID_AMOUNT
    • Gatilho: Valor agregado do reembolso > valor pago
    • Mensagem: O valor calculado do reembolso é maior que o valor pago
  • REFUND_WINDOW_EXPIRED
    • Gatilho: Fora do prazo permitido para reembolso
    • Mensagem: Os reembolsos não podem ser iniciados dias após a criação do pagamento. Entre em contato com support@dodopayments.com.
  • ZERO_AMOUNT_PAYMENT_REFUND_NOT_ALLOWED
    • Gatilho: Tentativa de reembolsar um pagamento de valor zero
    • Mensagem: Não é possível reembolsar um pagamento com valor monetário zero

Assinaturas e Add-ons

  • ADDONS_IN_USAGE_BASED_BILLING_NOT_SUPPORTED
    • Gatilho: Tentativa de adicionar add-ons a assinaturas com cobrança baseada em uso
    • Mensagem: Add-ons em Subscriptions não são compatíveis com Usage Based Billing
  • ADDONS_NOT_ALLOWED_FOR_ON_DEMAND
    • Gatilho: Tentativa de adicionar add-ons a assinaturas on-demand
    • Mensagem: Add-ons não são permitidos para assinaturas on demand
  • CANCEL_SCHEDULED_PLAN_CHANGE_FOR_CUSTOMER_PORTAL_DISABLED
    • Gatilho: O Customer Portal tenta cancelar uma alteração de plano agendada enquanto a empresa desativou essa ação
    • Mensagem: O cancelamento da alteração de plano agendada está desativado no Customer Portal.
  • CHARGE_NOT_ALLOWED_FOR_SCHEDULED_CANCELLATION
    • Gatilho: Tentativa de cobrar uma assinatura agendada para cancelamento
    • Mensagem: Assinatura agendada para cancelamento
  • CUSTOMER_HAS_EXISTING_SUBSCRIPTION
    • Gatilho: Criação de uma assinatura para um cliente que já possui uma, quando não são permitidas várias assinaturas por cliente
    • Mensagem: O cliente já possui uma assinatura. Para permitir várias assinaturas por cliente, altere as configurações da empresa
  • DO_NOT_BILL_NOT_ALLOWED_IN_CUSTOMER_PORTAL
    • Gatilho: O modo de proration do_not_bill foi usado em uma alteração de plano no Customer Portal
    • Mensagem: O modo de proration do_not_bill não é permitido no Customer Portal
  • DUPLICATE_ADDON_IDS_IN_REQUEST
    • Gatilho: O mesmo addon_id aparece mais de uma vez na solicitação
    • Mensagem: IDs de add-ons duplicados não são permitidos
  • INACTIVE_SUBSCRIPTION_PLAN_CHANGE_NOT_SUPPORTED
    • Gatilho: Alteração de plano em uma assinatura inativa
    • Mensagem: Não é possível alterar planos de assinaturas inativas
  • INVALID_PRORATION_MODE_WITH_NEXT_BILLING_DATE
    • Gatilho: Um modo de proration diferente de full_immediately foi usado com effective_at: next_billing_date
    • Mensagem: Somente o modo de proration full_immediately é permitido com effective_at: next_billing_date
  • MISSING_ADDON_IDS
    • Gatilho: A lista de addon_id está vazia ou contém IDs desconhecidos
    • Mensagem: Um ou mais IDs de produto não existem:
  • ON_DEMAND_PLAN_CHANGE_NOT_SUPPORTED
    • Gatilho: A troca de plano não é permitida para on-demand
    • Mensagem: Não é possível alterar planos de assinaturas on demand
  • ON_DEMAND_USAGE_BASED_BILLING_NOT_SUPPORTED
    • Gatilho: Tentativa de usar on-demand com cobrança baseada em uso
    • Mensagem: Assinaturas On Demand não são compatíveis com Usage Based Billing
  • ONE_TIME_PRODUCTS_NOT_ALLOWED_FOR_ON_DEMAND
    • Gatilho: Produto único adicionado a uma assinatura on-demand
    • Mensagem: Produtos únicos não são permitidos para assinaturas on demand
  • PENDING_PLAN_CHANGE_EXISTS
    • Gatilho: Nova alteração de plano solicitada enquanto uma alteração anterior ainda aguarda pagamento
    • Mensagem: Já existe uma alteração de plano pendente para esta assinatura. Aguarde a conclusão do pagamento atual.
  • PLAN_CHANGE_FOR_CUSTOMER_PORTAL_DISABLED
    • Gatilho: Alteração de plano pelo Customer Portal enquanto a empresa a desativou
    • Mensagem: A alteração de plano da assinatura pelo Customer Portal está desativada.
  • PLAN_CHANGE_NOT_ALLOWED_FOR_SCHEDULED_CANCELLATION
    • Gatilho: Tentativa de alterar o plano de uma assinatura agendada para cancelamento
    • Mensagem: Assinatura agendada para cancelamento
  • SCHEDULE_PLAN_CHANGE_FOR_CUSTOMER_PORTAL_DISABLED
    • Gatilho: Agendamento de uma alteração de plano pelo Customer Portal enquanto a empresa a desativou
    • Mensagem: O agendamento de alterações de plano está desativado para esta empresa.
  • SCHEDULED_PLAN_CHANGE_EXISTS
    • Gatilho: Criação de uma alteração de plano agendada quando já existe uma
    • Mensagem: Já existe uma alteração de plano agendada para esta assinatura. Cancele a alteração agendada existente antes de criar uma nova.
  • SCHEDULED_PLAN_CHANGE_NOT_FOUND
    • Gatilho: Referência ou cancelamento de uma alteração de plano agendada que não existe
    • Mensagem: Nenhuma alteração de plano agendada encontrada para esta assinatura.
  • SUBSCRIPTION_EXPIRED
    • Gatilho: Cobrança após expires_at
    • Mensagem: A assinatura expirou; não é possível criar novas cobranças
  • SUBSCRIPTION_INACTIVE
    • Gatilho: Status ≠ active
    • Mensagem: A assinatura não está ativa
  • SUBSCRIPTION_NOT_ON_DEMAND
    • Gatilho: Esperava-se on-demand, mas foi recebido um intervalo fixo
    • Mensagem: A assinatura já não é on demand
  • SUBSCRIPTION_PAYMENT_RETRY_LIMIT_EXCEEDED
    • Gatilho: As tentativas de pagamento da assinatura excederam o número máximo de tentativas
    • Mensagem: O limite máximo de 10 tentativas foi excedido para esta assinatura

Produtos, Carrinho e Marcas

  • BRAND_ALREADY_ARCHIVED
    • Gatilho: Arquivamento de uma marca que já está arquivada
    • Mensagem: A marca já está arquivada
  • BRAND_ARCHIVED
    • Gatilho: Atualização de uma marca arquivada, envio dela para verificação ou associação de um novo produto, coleção de produtos ou assinatura a ela
    • Mensagem: A marca está arquivada e não pode ser atualizada
  • BRAND_ARCHIVE_TARGET_REQUIRED
    • Gatilho: Arquivamento de uma marca que ainda contém produtos, assinaturas ativas ou coleções de produtos sem um destino move_products_to
    • Mensagem: A marca tem 12 produto(s). Defina move_products_to como uma marca de destino para associá-los novamente.
  • BRAND_MISMATCH
    • Gatilho: Os itens do carrinho pertencem a marcas diferentes
    • Mensagem: Todos os itens do carrinho de produtos devem pertencer à mesma marca
  • BRAND_NOT_ENABLED
    • Gatilho: A marca está desativada ou não está ativa
    • Mensagem: A marca fornecida não está habilitada
  • BRAND_SUBMISSION_NOT_ENABLED
    • Gatilho: O recurso de reenvio da verificação da marca não está habilitado
    • Mensagem: O reenvio da verificação da marca não está habilitado
  • CANNOT_ARCHIVE_PRIMARY_BRAND
    • Gatilho: Arquivamento da marca principal, cujo ID de marca é o ID da empresa
    • Mensagem: A marca principal não pode ser arquivada
  • FILE_IN_USE
    • Gatilho: Exclusão de um arquivo de produto digital ainda referenciado por concessões de acesso ativas
    • Mensagem: O arquivo digital é referenciado por concessões ativas
  • INVALID_BRAND_ARCHIVE_TARGET
    • Gatilho: move_products_to identifica a marca que está sendo arquivada, uma marca arquivada ou uma marca de outra empresa
    • Mensagem: move_products_to deve ser uma marca desta empresa que não esteja arquivada
  • INVALID_SUGGESTED_PRICE
    • Gatilho: Preço PWYW < preço mínimo permitido
    • Mensagem: O preço sugerido não pode ser inferior ao preço mínimo. No caso de pay what you want, o preço é considerado o valor mínimo aceito
  • LOCALIZED_PRICE_ALREADY_EXISTS
    • Gatilho: Já existe um preço localizado para este produto e país/moeda
    • Mensagem: Já existe um preço localizado para este produto e país/moeda
  • LOCALIZED_PRICE_DUPLICATES_BASE
    • Gatilho: O preço localizado duplica a moeda/país base do produto
    • Mensagem: O preço localizado duplica a moeda/país base do produto
  • LOCALIZED_PRICE_SHAPE_MISMATCH
    • Gatilho: O formato do preço localizado não corresponde ao pricing_mode do produto
    • Mensagem: O formato do preço localizado não corresponde ao pricing_mode do produto
  • MISSING_PRODUCT_INFORMATION
    • Gatilho: O produto existe, mas faltam informações obrigatórias
    • Mensagem: O produto existe, mas outras informações obrigatórias estão ausentes ou são inválidas
  • PAY_AS_YOU_WANT_AMOUNT_REQUIRED
    • Gatilho: Preço ausente para produto PWYW
    • Mensagem: O valor é obrigatório para um produto pay as you want
  • PRODUCT_CART_EMTPY
    • Gatilho: Carrinho de produtos vazio enviado
    • Mensagem: product_cart está vazio (o código do erro é intencionalmente escrito como EMTPY para corresponder ao valor exato retornado pela API)
  • PRODUCT_COLLECTION_IS_DELETED
    • Gatilho: Operação em uma coleção de produtos que foi excluída
    • Mensagem: Nenhuma mensagem
  • PRODUCT_COLLECTION_MUST_HAVE_PRODUCTS
    • Gatilho: Remoção do último produto (ou último grupo com produtos) de uma coleção
    • Mensagem: Não é possível excluir o último produto de uma coleção. Arquive a coleção.
  • PRODUCT_IS_DELETED
    • Gatilho: Produto excluído logicamente
    • Mensagem: Nenhuma mensagem
  • PRODUCT_PRICING_MODE_REQUIRED
    • Gatilho: Adição de preços localizados antes que o pricing_mode do produto seja definido
    • Mensagem: O pricing_mode do produto deve ser definido antes da adição de preços localizados
  • SLUG_ALREADY_TAKEN
    • Gatilho: O slug / URL curta do produto solicitado já está em uso
    • Mensagem: O slug já está em uso
  • UNABLE_TO_EDIT_PRIMARY_BRAND
    • Gatilho: Tentativa de atualizar a marca principal pela API regular
    • Mensagem: A marca principal não pode ser atualizada por este endpoint da API.

Descontos

  • DISCOUNT_ALREADY_USED_ON_SUBSCRIPTION
    • Gatilho: Reaplicação de um desconto que já foi usado nesta assinatura
    • Mensagem: Este desconto já foi usado nesta assinatura
  • DISCOUNT_CODE_ALREADY_EXISTS
    • Gatilho: Criação de código de desconto duplicado
    • Mensagem: O código de desconto já existe
  • DISCOUNT_CODE_EXPIRED
    • Gatilho: Código de desconto após a data expires_at
    • Mensagem: O código de desconto expirou
  • DISCOUNT_CODE_USAGE_LIMIT_EXCEEDED
    • Gatilho: Desconto reutilizado após atingir usage_limit
    • Mensagem: O limite de uso não pode ser menor que times_used / O código de desconto atingiu o limite de uso
    • Nota: Terminal — o código foi esgotado. Não tente novamente.
  • DISCOUNT_CONCURRENT_REDEMPTION
    • Gatilho: Outro resgate do mesmo código manteve o bloqueio da linha do limite de uso por tempo demais
    • Mensagem: O desconto está sendo resgatado simultaneamente; tente novamente
    • Nota: Transitório. O código ainda pode ter capacidade, portanto é seguro tentar novamente. Não exiba isso ao cliente como “código esgotado”.
  • DISCOUNT_CURRENCY_OPTION_INVALID
    • Gatilho: currency_options inválido na criação ou atualização
    • Mensagem: Um desconto fixo exige pelo menos uma opção de moeda com padrão resolvível / Não são permitidas opções de moeda duplicadas / Apenas uma opção de moeda pode ser marcada como padrão
  • DISCOUNT_CUSTOMER_NOT_ELIGIBLE
    • Gatilho: O cliente não atende ao customer_eligibility do código (first_time, existing ou não está na lista de permissões do código specific)
    • Mensagem: O cliente não é elegível para este código de desconto
  • DISCOUNT_MINIMUM_SUBTOTAL_NOT_MET
    • Gatilho: O subtotal do carrinho está abaixo do minimum_subtotal configurado para a moeda do Checkout
    • Mensagem: O subtotal do carrinho está abaixo do subtotal mínimo exigido pelo desconto
  • DISCOUNT_NOT_YET_ACTIVE
    • Gatilho: Código usado antes da data starts_at
    • Mensagem: O código de desconto ainda não está ativo (starts_at está no futuro)
  • DISCOUNT_PER_CUSTOMER_USAGE_LIMIT_EXCEEDED
    • Gatilho: O cliente já resgatou o código per_customer_usage_limit vezes
    • Mensagem: O limite de uso por cliente foi excedido para este código de desconto
  • DISCOUNT_NOT_APPLICABLE_TO_NEW_PRODUCT
    • Gatilho: Alteração de plano para um produto ao qual o desconto existente não se aplica
    • Mensagem: O desconto não se aplica ao produto do novo plano
  • DISCOUNT_NOT_AVAILABLE_FOR_ON_DEMAND
    • Gatilho: Código aplicado a uma assinatura on-demand
    • Mensagem: O cupom de desconto não está disponível para assinaturas on demand
  • DISCOUNT_NOT_AVAILABLE_FOR_PRODUCT
    • Gatilho: Código aplicado a produto(s) não relacionados
    • Mensagem: O cupom de desconto não está disponível para este produto
  • INVALID_DISCOUNT_CODE
    • Gatilho: O código não existe/não é aplicável
    • Mensagem: Código de desconto inválido / O código de desconto não pode ser aplicado a nenhum produto do carrinho
  • INVALID_PERCENTAGE
    • Gatilho: Percentual > 100% (ou 10.000 pontos-base)
    • Mensagem: O percentual não pode ser superior a 10000 / O valor do código de desconto não pode ser superior a 100%
  • UNSUPPORTED_DISCOUNT_TYPE
    • Gatilho: Um tipo de desconto que não é compatível. percentage e flat são compatíveis; descontos de valor por unidade não são.
    • Mensagem: Apenas códigos de desconto percentuais e fixos são compatíveis

Chaves de licença

  • ACTIVATION_LIMIT_LESS_THAN_CURRENT_AMOUNT
    • Gatilho: Ativações de chave de licença: novo limite < contagem de instâncias existentes
    • Mensagem: O novo limite de ativação não pode ser menor que a contagem atual de instâncias
  • INACTIVE_LICENSE_KEY
    • Gatilho: Status da chave ≠ active
    • Mensagem: A chave de licença não está ativa
  • LICENSE_KEY_LIMIT_REACHED
    • Gatilho: Ativações = limite
    • Mensagem: O limite de ativação da chave de licença foi atingido
  • LICENSE_KEY_NOT_FOUND
    • Gatilho: ID da instância ou ID da chave inválido
    • Mensagem: A instância da chave de licença não foi encontrada ou não pertence a esta chave de licença
  • NO_EXPIRY_ON_SUBSCRIPTION_LICENSE_KEYS
    • Gatilho: Tentativa de definir expiração em uma chave baseada em assinatura
    • Mensagem: Não é possível definir a data de expiração para uma chave de licença baseada em assinatura

Cobrança baseada em uso e medidores

  • DUPLICATE_METER_IDS_IN_REQUEST
    • Gatilho: O mesmo ID de medidor aparece várias vezes na solicitação
    • Mensagem: IDs de medidor duplicados não são permitidos
  • INVALID_QUANTITY
    • Gatilho: Quantidade inválida especificada para preços baseados em uso
    • Mensagem: Apenas uma quantidade é permitida em produtos com preço baseado em uso
  • METER_IS_DELETED
    • Gatilho: Tentativa de usar um medidor excluído
    • Mensagem: O medidor já foi excluído
  • MISSING_METER_IDS
    • Gatilho: A lista de IDs de medidores está vazia ou contém IDs inválidos
    • Mensagem: Um ou mais IDs de medidores não existem:

Cobrança baseada em créditos

  • CREDIT_ENTITLEMENT_IS_DELETED
    • Gatilho: Operação em uma concessão de crédito que foi excluída
    • Mensagem: A concessão de crédito já foi excluída
  • CREDIT_ENTITLEMENT_NAME_ALREADY_EXISTS
    • Gatilho: Criação de uma concessão de crédito com um nome que já existe
    • Mensagem: Já existe uma concessão de crédito com este nome
  • OVERAGE_LIMIT_EXCEEDED
    • Gatilho: Uma dedução de uso ou crédito excederia o limite de excedente configurado
    • Mensagem: Limite de excedente excedido

Carteira

  • INSUFFICIENT_WALLET_FUNDS
    • Gatilho: Saldo da carteira < valor do débito
    • Mensagem: Fundos insuficientes na carteira
  • NEGATIVE_BALANCE_ADJUSTMENT
    • Gatilho: Tentativa de tornar negativo o saldo da carteira
    • Mensagem: Não é permitido tornar negativo o saldo da carteira

Moeda, impostos e região

  • EXCHANGE_RATE_NOT_FOUND
    • Gatilho: Nenhuma taxa de câmbio para o par de moedas from → to
    • Mensagem: Taxa de câmbio não encontrada para converter de Currency para Currency
  • INVALID_TAX_ID
    • Gatilho: VAT/GST/TIN falhou na validação
    • Mensagem: O ID fiscal é inválido
  • REQUEST_AMOUNT_BELOW_MINIMUM
    • Gatilho: Valor < mínimo do produto
    • Mensagem: O valor não pode ser inferior ao valor mínimo especificado para o produto
  • TOTAL_PAYMENT_AMOUNT_BELOW_MINIMUM_AMOUNT
    • Gatilho: Total combinado do carrinho < mínimo do gateway
    • Mensagem: É necessário um valor mínimo de para processar o pagamento
  • UNSUPPORTED_BILLING_CURRENCY
    • Gatilho: A moeda de cobrança solicitada não é compatível com esta assinatura
    • Mensagem: Moeda de cobrança diferente de USD não é compatível com assinaturas
  • UNSUPPORTED_COUNTRY
    • Gatilho: A região geográfica ainda não é compatível
    • Mensagem: O país não é compatível no momento
  • UNSUPPORTED_CURRENCY
    • Gatilho: A moeda do produto ou add-on não é uma moeda na qual Dodo Payments pode cobrar. Os preços base podem ser definidos em qualquer moeda cobrável; portanto, isso geralmente significa que o código da moeda é inválido ou ainda não é compatível.
    • Mensagem: A moeda não é compatível no momento / Atualmente, apenas produtos em USD e INR são compatíveis / Apenas USD e INR são compatíveis com o preço de add-on / Só é possível solicitar USD ou INR para billing_currency / Moeda não compatível / Moeda inesperada para assinaturas com cartão indiano
  • UNSUPPORTED_TAX_CATEGORY
    • Gatilho: A string da categoria fiscal não está no enum
    • Mensagem: A categoria não é compatível no momento

Validação e solicitações

  • DUPLICATE_LINE_ITEMS_IN_REQUEST
    • Gatilho: O mesmo item_id aparece duas vezes em items[]
    • Mensagem: item_ids duplicados especificados na matriz items
  • INVALID_QUERY_PARAMS
    • Gatilho: Parâmetros de consulta mutuamente exclusivos/malformados
    • Mensagem: Os parâmetros de consulta devem conter apenas time_frame ou (start, end)
  • INVALID_REQUEST_BODY
    • Gatilho: JSON malformado ou violação do schema
    • Mensagem: O corpo da sua solicitação é inválido. Verifique os headers da solicitação e o objeto.
  • INVALID_REQUEST_PARAMETERS
    • Gatilho: Semântica incorreta (por exemplo, data no passado)
    • Mensagem: Não é possível alterar next_billing_date para um horário no passado
  • MAXIMUM_KEYS_REACHED
    • Gatilho: Metadata/custom-fields excedeu 50 pares
    • Mensagem: Mais de 50 pares de chave-valor

Geral e sistema

  • INTEGER_CONVERSION_FAILURE
    • Gatilho: Qualquer conversão de inteiro ↔ string/decimal que falhe no servidor
    • Mensagem: Falha na conversão de inteiro
  • INTERNAL_SERVER_ERROR
    • Gatilho: Exceções não capturadas; os detalhes devem ser registrados no servidor
    • Mensagem: Nenhuma mensagem pública (500 genérico)
  • NOT_FOUND
    • Gatilho: 404 genérico para qualquer recurso ausente
    • Mensagem: Item não encontrado (ou mais específico)
  • TOO_MANY_REQUESTS
    • Gatilho: Limite de requisições 429
    • Mensagem: Nenhuma mensagem
  • UNSUPPORTED_ACTION
    • Gatilho: Ação não compatível com o tipo de recurso
    • Mensagem: Não é possível alterar planos de assinaturas baseadas em uso

Práticas recomendadas

  1. Sempre trate os erros de forma adequada na sua aplicação
  2. Implemente um registro adequado de erros
  3. Use mensagens de erro apropriadas para os usuários finais
  4. Implemente uma lógica de novas tentativas para erros transitórios
  5. Entre em contato com o suporte para problemas não resolvidos

Suporte

Para obter ajuda adicional com códigos de erro ou problemas de integração, entre em contato com nossa equipe de suporte pelo endereço support@dodopayments.com.
Última modificação em 21 de agosto de 2026