Descripción General
La API de Dodo Payments utiliza códigos de estado HTTP estándar y códigos de error personalizados para indicar el éxito o el fracaso de las solicitudes de la API. Cuando ocurre un error, la API devuelve un código de estado HTTP apropiado y una respuesta JSON que contiene información detallada sobre el error. Cada respuesta de error incluye:- Un código de estado HTTP que indica la categoría general del error
- Un código de error específico que identifica la naturaleza exacta del error
- Un mensaje de error legible por humanos que explica qué salió mal
- Detalles adicionales sobre el error cuando sea aplicable
- Depurar problemas de integración
- Implementar un manejo de errores adecuado en su aplicación
- Proporcionar retroalimentación significativa a los usuarios finales
- Mantener un sistema de procesamiento de pagos robusto
Estos son errores de API y lógica empresarial. Para razones de declinación de tarjeta devueltas en un pago fallido (como
INSUFFICIENT_FUNDS o CARD_DECLINED), consulte la referencia de Fallos de Transacción.Códigos de Error de API Estándar
Formato de Respuesta de Error
Cuando ocurre un error, la API devuelve una respuesta JSON con la siguiente estructura:Referencia de Códigos de Error
Los códigos de error a continuación están agrupados por el área del API al que se refieren. Cada entrada enumera la condición que lo desencadena y el mensaje que el API devuelve.Autenticación & Cuenta
-
UNAUTHORIZED- Desencadenante: No hay clave API o token/scope inválido
- Mensaje: No está autorizado para realizar esta acción
-
MERCHANT_NOT_LIVE- Activador: El negocio aún está en Modo de prueba
- Mensaje: El Merchant no está activo
-
BUSINESS_ARCHIVED- Activador: Cualquier solicitud dirigida al cliente (checkout, enlace de pago, tienda, Customer Portal o clave de licencia) para un negocio archivado
- Mensaje: Este negocio está archivado y ya no acepta solicitudes
Payments & Checkout
-
CHECKOUT_SESSION_CONSUMED- Activador: La sesión de checkout ya generó un pago
- Mensaje: La sesión de checkout ya se ha utilizado
-
NO_ELIGIBLE_PAYMENT_METHODS- Activador: No queda nada después del filtrado
- Mensaje: No se encontraron métodos de pago elegibles
-
PAYMENT_NOT_SUCCEEDED- Activador: Intento de reembolsar o procesar un pago no exitoso
- Mensaje: El pago proporcionado no se ha completado correctamente
-
PREVIOUS_PAYMENT_PENDING- Activador: Intento de crear un cargo mientras el anterior se encuentra en un estado no terminal
- Mensaje: No se puede crear un nuevo cargo porque el pago anterior aún no se ha completado correctamente
-
UNSUCCESSFUL_PAYMENT_ID- Activador: Payment ID hace referencia a un pago no exitoso
- Mensaje: El Payment ID tiene un estado no exitoso.
Connectors & BYOP
Estos errores están relacionados con conectores de pago propiedad del merchant (Bring Your Own Processor).-
BYOP_CONNECTOR_DISABLED- Activador: Actualización de un método de pago en una suscripción gestionada mediante un conector BYOP deshabilitado
- Mensaje: La suscripción se gestiona mediante el conector propio del merchant (BYOP), que está deshabilitado actualmente
-
BYOP_CUSTOM_INVOICE_ADDRESS_MISSING- Activador: Falta la dirección de factura personalizada requerida en un pago gestionado por el merchant (BYOP)
- Mensaje: La dirección de factura personalizada de BYOP es obligatoria cuando el pago se gestiona mediante el conector del merchant
-
CONNECTOR_LABEL_ALREADY_EXISTS- Activador: Creación de un conector con una etiqueta que ya existe
- Mensaje: Ya existe un conector con esta etiqueta. Elige otra etiqueta.
Refunds
-
EXISTING_REFUND_REQUEST_PROCESSING- Activador: La solicitud de reembolso anterior aún se está procesando
- Mensaje: Una solicitud de reembolso con estado “Pending” aún se está procesando
-
LINE_ITEM_FULLY_REFUNDED- Activador: Intento de reembolsar un elemento de línea ya reembolsado por completo
- Mensaje: El elemento de línea se ha reembolsado por completo y no se puede reembolsar más.
-
LINE_ITEM_NOT_FOUND- Activador: El ID del elemento no forma parte del pago referenciado
- Mensaje: No se encontró el elemento de línea en el pago
-
LINE_ITEM_PRORATED- Activador: Se intentó reembolsar o actualizar una línea prorrateada
- Mensaje: El elemento de línea no se puede reembolsar porque está prorrateado
-
LINE_ITEM_REFUND_AMOUNT_TOO_HIGH- Activador: Importe del reembolso > importe pagado (impuestos incluidos)
- Mensaje: El importe del reembolso solicitado para el elemento de línea , incluidos los impuestos, es , superior al importe pagado
-
LINE_ITEM_REFUND_AMOUNT_TOO_LOW- Activador: El importe del reembolso es inferior al umbral mínimo
- Mensaje: El importe del reembolso solicitado para el elemento de línea es , demasiado bajo
-
NOTHING_TO_REFUND- Activador: No queda ningún importe reembolsable; todos los elementos de línea positivos ya se han reembolsado por completo
- Mensaje: No queda ningún importe reembolsable. Todos los elementos de línea positivos se han reembolsado por completo.
-
PARTIAL_REFUND_NOT_ALLOWED- Activador: Se intentó realizar un reembolso parcial con un método de pago que solo admite reembolsos completos
- Mensaje: No se permiten reembolsos parciales para este método de pago
-
PAYMENT_ALREADY_REFUNDED- Activador: Reembolso duplicado
- Mensaje: Este pago ya se ha reembolsado
-
PAYMENT_HAS_BEEN_REFUNDED- Activador: El pago se ha reembolsado por completo
- Mensaje: El Payment ID se ha reembolsado por completo.
-
REFUND_AMOUNT_EXCEEDS_PAID_AMOUNT- Activador: Importe total de reembolsos > importe pagado
- Mensaje: El importe de reembolso calculado es superior al importe pagado
-
REFUND_WINDOW_EXPIRED- Activador: Fuera del plazo de reembolso permitido
- Mensaje: No se pueden iniciar reembolsos días después de la creación del pago. Contacta con support@dodopayments.com.
-
ZERO_AMOUNT_PAYMENT_REFUND_NOT_ALLOWED- Activador: Intento de reembolsar un pago de importe cero
- Mensaje: No se puede reembolsar un pago con un importe monetario de cero
Subscriptions & Add-ons
-
ADDONS_IN_USAGE_BASED_BILLING_NOT_SUPPORTED- Activador: Intento de añadir addons a suscripciones con facturación basada en el uso
- Mensaje: Los addons en Subscriptions no son compatibles con Usage Based Billing
-
ADDONS_NOT_ALLOWED_FOR_ON_DEMAND- Activador: Intento de añadir addons a suscripciones bajo demanda
- Mensaje: No se permiten addons en suscripciones bajo demanda
-
CANCEL_SCHEDULED_PLAN_CHANGE_FOR_CUSTOMER_PORTAL_DISABLED- Activador: Customer Portal intenta cancelar un cambio de plan programado mientras el negocio ha deshabilitado esa acción
- Mensaje: La cancelación de cambios de plan programados está deshabilitada para Customer Portal.
-
CHARGE_NOT_ALLOWED_FOR_SCHEDULED_CANCELLATION- Activador: Intento de cobrar una suscripción programada para cancelarse
- Mensaje: Suscripción programada para cancelarse
-
CUSTOMER_HAS_EXISTING_SUBSCRIPTION- Activador: Creación de una suscripción para un cliente que ya tiene una, cuando no se permiten varias suscripciones por cliente
- Mensaje: El cliente ya tiene una suscripción. Para permitir varias suscripciones por cliente, cambia la configuración del negocio
-
DO_NOT_BILL_NOT_ALLOWED_IN_CUSTOMER_PORTAL- Activador: Se utilizó el modo de prorrateo
do_not_billen un cambio de plan de Customer Portal - Mensaje: El modo de prorrateo do_not_bill no está permitido en Customer Portal
- Activador: Se utilizó el modo de prorrateo
-
DUPLICATE_ADDON_IDS_IN_REQUEST- Activador: El mismo
addon_idaparece más de una vez en la solicitud - Mensaje: No se permiten IDs de addons duplicados
- Activador: El mismo
-
INACTIVE_SUBSCRIPTION_PLAN_CHANGE_NOT_SUPPORTED- Activador: Cambio de plan en una suscripción inactiva
- Mensaje: No se admite cambiar de plan en suscripciones inactivas
-
INVALID_PRORATION_MODE_WITH_NEXT_BILLING_DATE- Activador: Se utilizó un modo de prorrateo distinto de
full_immediatelyconeffective_at: next_billing_date - Mensaje: Solo se permite el modo de prorrateo full_immediately con effective_at: next_billing_date
- Activador: Se utilizó un modo de prorrateo distinto de
-
MISSING_ADDON_IDS- Activador: La lista
addon_idestá vacía o contiene IDs desconocidos - Mensaje: Uno o varios IDs de producto no existen:
- Activador: La lista
-
ON_DEMAND_PLAN_CHANGE_NOT_SUPPORTED- Activador: No se permite cambiar de plan en suscripciones bajo demanda
- Mensaje: No se admite cambiar de plan en suscripciones bajo demanda
-
ON_DEMAND_USAGE_BASED_BILLING_NOT_SUPPORTED- Activador: Intento de usar el modo bajo demanda con facturación basada en el uso
- Mensaje: Las suscripciones bajo demanda no son compatibles con Usage Based Billing
-
ONE_TIME_PRODUCTS_NOT_ALLOWED_FOR_ON_DEMAND- Activador: Se añadió un producto único a una suscripción bajo demanda
- Mensaje: No se permiten productos únicos en suscripciones bajo demanda
-
PENDING_PLAN_CHANGE_EXISTS- Activador: Se solicitó un nuevo cambio de plan mientras otro anterior aún espera el pago
- Mensaje: Ya existe un cambio de plan pendiente para esta suscripción. Espera a que se complete el pago actual.
-
PLAN_CHANGE_FOR_CUSTOMER_PORTAL_DISABLED- Activador: Cambio de plan mediante Customer Portal mientras el negocio lo ha deshabilitado
- Mensaje: El cambio de plan de suscripción para Customer Portal está deshabilitado.
-
PLAN_CHANGE_NOT_ALLOWED_FOR_SCHEDULED_CANCELLATION- Activador: Se intentó cambiar el plan de una suscripción programada para cancelarse
- Mensaje: Suscripción programada para cancelarse
-
SCHEDULE_PLAN_CHANGE_FOR_CUSTOMER_PORTAL_DISABLED- Activador: Programación de un cambio de plan mediante Customer Portal mientras el negocio lo ha deshabilitado
- Mensaje: La programación de cambios de plan está deshabilitada para este negocio.
-
SCHEDULED_PLAN_CHANGE_EXISTS- Activador: Creación de un cambio de plan programado cuando ya existe uno
- Mensaje: Ya existe un cambio de plan programado para esta suscripción. Cancela el cambio programado existente antes de crear uno nuevo.
-
SCHEDULED_PLAN_CHANGE_NOT_FOUND- Activador: Referencia o cancelación de un cambio de plan programado que no existe
- Mensaje: No se encontró ningún cambio de plan programado para esta suscripción.
-
SUBSCRIPTION_EXPIRED- Activador: Facturación posterior a
expires_at - Mensaje: La suscripción ha caducado; no se pueden crear nuevos cargos
- Activador: Facturación posterior a
-
SUBSCRIPTION_INACTIVE- Activador: Estado ≠
active - Mensaje: La suscripción no está activa
- Activador: Estado ≠
-
SUBSCRIPTION_NOT_ON_DEMAND- Activador: Se esperaba una suscripción bajo demanda, pero se recibió un intervalo fijo
- Mensaje: La suscripción ya no es bajo demanda
-
SUBSCRIPTION_PAYMENT_RETRY_LIMIT_EXCEEDED- Activador: Los reintentos de pago de la suscripción superaron el máximo de intentos
- Mensaje: Se superó el límite máximo de 10 reintentos para esta suscripción
Products, Cart & Brands
-
BRAND_ALREADY_ARCHIVED- Activador: Archivado de una marca que ya está archivada
- Mensaje: La marca ya está archivada
-
BRAND_ARCHIVED- Activador: Actualización de una marca archivada, envío para verificación o asignación de un nuevo producto, colección de productos o suscripción a ella
- Mensaje: La marca está archivada y no se puede actualizar
-
BRAND_ARCHIVE_TARGET_REQUIRED- Activador: Archivado de una marca que aún contiene productos, suscripciones activas o colecciones de productos sin un destino
move_products_to - Mensaje: La marca tiene 12 producto(s). Define move_products_to con una marca de destino para volver a asignarlos.
- Activador: Archivado de una marca que aún contiene productos, suscripciones activas o colecciones de productos sin un destino
-
BRAND_MISMATCH- Activador: Los elementos del carrito pertenecen a marcas distintas
- Mensaje: Todos los elementos del carrito de productos deben pertenecer a la misma marca
-
BRAND_NOT_ENABLED- Activador: La marca está deshabilitada o no está activa
- Mensaje: La marca proporcionada no está habilitada
-
BRAND_SUBMISSION_NOT_ENABLED- Activador: La función de reenvío de la verificación de marca no está habilitada
- Mensaje: El reenvío de la verificación de marca no está habilitado
-
CANNOT_ARCHIVE_PRIMARY_BRAND- Activador: Archivado de la marca principal, cuyo ID de marca es el ID del negocio
- Mensaje: La marca principal no se puede archivar
-
FILE_IN_USE- Activador: Eliminación de un archivo de producto digital que aún está referenciado por concesiones de derechos activas
- Mensaje: El archivo digital está referenciado por concesiones activas
-
INVALID_BRAND_ARCHIVE_TARGET- Activador:
move_products_toindica la marca que se está archivando, una marca archivada o una marca de otro negocio - Mensaje: move_products_to debe ser una marca de este negocio que no esté archivada
- Activador:
-
INVALID_SUGGESTED_PRICE- Activador: Precio PWYW < precio mínimo permitido
- Mensaje: Suggested Price no puede ser inferior al precio mínimo. En el caso de pay what you want, el precio se considera el importe mínimo aceptado
-
LOCALIZED_PRICE_ALREADY_EXISTS- Activador: Ya existe un precio localizado para este producto y país/moneda
- Mensaje: Ya existe un precio localizado para este producto y país/moneda
-
LOCALIZED_PRICE_DUPLICATES_BASE- Activador: El precio localizado duplica la moneda/país base del producto
- Mensaje: El precio localizado duplica la moneda/país base del producto
-
LOCALIZED_PRICE_SHAPE_MISMATCH- Activador: La estructura del precio localizado no coincide con
pricing_modedel producto - Mensaje: La estructura del precio localizado no coincide con pricing_mode del producto
- Activador: La estructura del precio localizado no coincide con
-
MISSING_PRODUCT_INFORMATION- Activador: El producto existe, pero falta información obligatoria
- Mensaje: El producto existe, pero falta otra información obligatoria o no es válida
-
PAY_AS_YOU_WANT_AMOUNT_REQUIRED- Activador: Falta el precio de un producto PWYW
- Mensaje: El importe es obligatorio para un producto pay as you want
-
PRODUCT_CART_EMTPY- Activador: Se envió un carrito de productos vacío
- Mensaje: product_cart está vacío (el código de error está escrito intencionadamente como
EMTPYpara coincidir con el valor exacto que devuelve la API)
-
PRODUCT_COLLECTION_IS_DELETED- Activador: Operación sobre una colección de productos que ha sido eliminada
- Mensaje: Sin mensaje
-
PRODUCT_COLLECTION_MUST_HAVE_PRODUCTS- Activador: Eliminación del último producto (o del último grupo con productos) de una colección
- Mensaje: No se puede eliminar el último producto de una colección. Archiva la colección en su lugar.
-
PRODUCT_IS_DELETED- Activador: Producto eliminado de forma lógica
- Mensaje: Sin mensajes
-
PRODUCT_PRICING_MODE_REQUIRED- Activador: Adición de precios localizados antes de establecer
pricing_modedel producto - Mensaje: Debe establecerse pricing_mode del producto antes de añadir precios localizados
- Activador: Adición de precios localizados antes de establecer
-
SLUG_ALREADY_TAKEN- Activador: El slug / URL corta del producto solicitado ya está en uso
- Mensaje: El slug ya está ocupado
-
UNABLE_TO_EDIT_PRIMARY_BRAND- Activador: Intento de actualizar la marca principal mediante la API normal
- Mensaje: La marca principal no se puede actualizar mediante este endpoint de API.
Discounts
-
DISCOUNT_ALREADY_USED_ON_SUBSCRIPTION- Activador: Reaplicación de un descuento que ya se ha utilizado en esta suscripción
- Mensaje: Este descuento ya se ha utilizado en esta suscripción
-
DISCOUNT_CODE_ALREADY_EXISTS- Activador: Creación de un código de descuento duplicado
- Mensaje: El Discount Code ya existe
-
DISCOUNT_CODE_EXPIRED- Activador: El código de descuento ha superado su fecha
expires_at - Mensaje: El código de descuento ha caducado
- Activador: El código de descuento ha superado su fecha
-
DISCOUNT_CODE_USAGE_LIMIT_EXCEEDED- Activador: Se reutilizó el descuento después de alcanzar
usage_limit - Mensaje: El límite de uso no puede ser inferior a times_used / El código de descuento alcanzó el límite de uso
- Nota: Terminal: el código está agotado. No reintentar.
- Activador: Se reutilizó el descuento después de alcanzar
-
DISCOUNT_CONCURRENT_REDEMPTION- Activador: Otro canje del mismo código mantuvo demasiado tiempo el bloqueo de la fila del límite de uso
- Mensaje: El descuento se está canjeando simultáneamente; vuelve a intentarlo
- Nota: Transitorio. El código aún puede tener capacidad, por lo que es seguro reintentar la solicitud. No mostrar esto al cliente como “código agotado”.
-
DISCOUNT_CURRENCY_OPTION_INVALID- Activador:
currency_optionsno válido al crear o actualizar - Mensaje: Un descuento fijo requiere al menos una opción de moneda con un valor predeterminado resoluble / No se permiten opciones de moneda duplicadas / Solo una opción de moneda puede marcarse como predeterminada
- Activador:
-
DISCOUNT_CUSTOMER_NOT_ELIGIBLE- Activador: El cliente no cumple
customer_eligibilitydel código (first_time,existingo no figura en la lista de permitidos de un códigospecific) - Mensaje: El cliente no cumple los requisitos para este código de descuento
- Activador: El cliente no cumple
-
DISCOUNT_MINIMUM_SUBTOTAL_NOT_MET- Activador: El subtotal del carrito es inferior a
minimum_subtotalconfigurado para la moneda del checkout - Mensaje: El subtotal del carrito es inferior al subtotal mínimo requerido por el descuento
- Activador: El subtotal del carrito es inferior a
-
DISCOUNT_NOT_YET_ACTIVE- Activador: El código se utilizó antes de su fecha
starts_at - Mensaje: El código de descuento aún no está activo (starts_at está en el futuro)
- Activador: El código se utilizó antes de su fecha
-
DISCOUNT_PER_CUSTOMER_USAGE_LIMIT_EXCEEDED- Activador: El cliente ya ha canjeado el código
per_customer_usage_limitveces - Mensaje: Se superó el límite de uso por cliente para este código de descuento
- Activador: El cliente ya ha canjeado el código
-
DISCOUNT_NOT_APPLICABLE_TO_NEW_PRODUCT- Activador: Cambio de plan a un producto al que no se aplica el descuento existente
- Mensaje: El descuento no se aplica al producto del nuevo plan
-
DISCOUNT_NOT_AVAILABLE_FOR_ON_DEMAND- Activador: Código aplicado a una suscripción bajo demanda
- Mensaje: El cupón de descuento no está disponible para suscripciones bajo demanda
-
DISCOUNT_NOT_AVAILABLE_FOR_PRODUCT- Activador: Código aplicado a productos no relacionados
- Mensaje: El cupón de descuento no está disponible para este producto
-
INVALID_DISCOUNT_CODE- Activador: El código no existe o no es aplicable
- Mensaje: Código de descuento no válido / El Discount Code no se puede aplicar a ningún producto del carrito
-
INVALID_PERCENTAGE- Activador: Importe porcentual > 100 % (o 10.000 puntos básicos)
- Mensaje: El importe porcentual no puede superar 10000 / El importe del código de descuento no puede superar el 100 %
-
UNSUPPORTED_DISCOUNT_TYPE- Activador: Un tipo de descuento no compatible.
percentageyflatson compatibles; los descuentos de importe por unidad no lo son. - Mensaje: Solo se admiten códigos de descuento porcentuales y fijos
- Activador: Un tipo de descuento no compatible.
License Keys
-
ACTIVATION_LIMIT_LESS_THAN_CURRENT_AMOUNT- Activador: Activaciones de claves de licencia: nuevo límite < número de instancias existentes
- Mensaje: El nuevo límite de activación no puede ser inferior al número actual de instancias
-
INACTIVE_LICENSE_KEY- Activador: Estado de la clave ≠
active - Mensaje: La clave de licencia no está activa
- Activador: Estado de la clave ≠
-
LICENSE_KEY_LIMIT_REACHED- Activador: Activaciones = límite
- Mensaje: Se alcanzó el límite de activación de la clave de licencia
-
LICENSE_KEY_NOT_FOUND- Activador: El ID de instancia o el ID de clave no es válido
- Mensaje: No se encontró la instancia de la clave de licencia o no pertenece a esta clave de licencia
-
NO_EXPIRY_ON_SUBSCRIPTION_LICENSE_KEYS- Activador: Intento de establecer la caducidad en una clave basada en suscripción
- Mensaje: No se puede establecer una fecha de caducidad para una clave de licencia basada en suscripción
Usage-Based Billing & Meters
-
DUPLICATE_METER_IDS_IN_REQUEST- Activador: El mismo ID de medidor aparece varias veces en la solicitud
- Mensaje: No se permiten Meter Ids duplicados
-
INVALID_QUANTITY- Activador: Se especificó una cantidad no válida para precios basados en el uso
- Mensaje: Solo se permite la cantidad 1 en productos con precios basados en el uso
-
METER_IS_DELETED- Activador: Intento de utilizar un medidor eliminado
- Mensaje: El Meter ya ha sido eliminado
-
MISSING_METER_IDS- Activador: La lista de IDs de medidores está vacía o contiene IDs no válidos
- Mensaje: Uno o varios IDs de medidores no existen:
Credit-Based Billing
-
CREDIT_ENTITLEMENT_IS_DELETED- Activador: Operación sobre un derecho de crédito que ha sido eliminado
- Mensaje: El derecho de crédito ya ha sido eliminado
-
CREDIT_ENTITLEMENT_NAME_ALREADY_EXISTS- Activador: Creación de un derecho de crédito con un nombre que ya existe
- Mensaje: Ya existe un derecho de crédito con este nombre
-
OVERAGE_LIMIT_EXCEEDED- Activador: Un uso o deducción de crédito superaría el límite de exceso configurado
- Mensaje: Se superó el límite de exceso
Wallet
-
INSUFFICIENT_WALLET_FUNDS- Activador: Saldo de Wallet < importe del débito
- Mensaje: Fondos insuficientes en Wallet
-
NEGATIVE_BALANCE_ADJUSTMENT- Activador: Intento de hacer negativo el saldo de Wallet
- Mensaje: No se permite que el saldo de Wallet sea negativo
Currency, Tax & Region
-
EXCHANGE_RATE_NOT_FOUND- Activador: No existe una tasa de cambio FX para el par de divisas
from → to - Mensaje: No se encontró la tasa de cambio para convertir de Currency a Currency
- Activador: No existe una tasa de cambio FX para el par de divisas
-
INVALID_TAX_ID- Activador: VAT/GST/TIN no superó la validación
- Mensaje: El Tax Id no es válido
-
REQUEST_AMOUNT_BELOW_MINIMUM- Activador: Importe < mínimo del producto
- Mensaje: El importe no puede ser inferior al importe mínimo especificado para el producto
-
TOTAL_PAYMENT_AMOUNT_BELOW_MINIMUM_AMOUNT- Activador: Total combinado del carrito < mínimo de la pasarela
- Mensaje: Se requiere un importe mínimo de para procesar el pago
-
UNSUPPORTED_BILLING_CURRENCY- Activador: La moneda de facturación solicitada no es compatible con esta suscripción
- Mensaje: Las suscripciones no admiten monedas de facturación distintas de USD
-
UNSUPPORTED_COUNTRY- Activador: La región geográfica aún no es compatible
- Mensaje: El país no es compatible actualmente
-
UNSUPPORTED_CURRENCY- Activador: La moneda del producto o addon no es una moneda en la que Dodo Payments pueda realizar cargos. Los precios base se pueden establecer en cualquier moneda apta para cargos, por lo que esto normalmente significa que el código de moneda no es válido o aún no es compatible.
- Mensaje: La moneda no es compatible actualmente / Actualmente solo se admiten productos en USD e INR / Para el precio de addons solo se admiten USD e INR / Solo se puede solicitar USD o INR para billing_currency / Moneda no compatible / Moneda inesperada para suscripciones con tarjeta de India
-
UNSUPPORTED_TAX_CATEGORY- Activador: La cadena de categoría fiscal no pertenece al enum
- Mensaje: La categoría no es compatible actualmente
Validation & Requests
-
DUPLICATE_LINE_ITEMS_IN_REQUEST- Activador: El mismo
item_idaparece dos veces enitems[] - Mensaje: Se especificaron item_ids duplicados en la matriz items
- Activador: El mismo
-
INVALID_QUERY_PARAMS- Activador: Parámetros de consulta mutuamente excluyentes o mal formados
- Mensaje: Los parámetros de consulta solo deben contener time_frame o (start, end)
-
INVALID_REQUEST_BODY- Activador: JSON mal formado o incumplimiento del esquema
- Mensaje: El cuerpo de la solicitud no es válido. Comprueba los encabezados y el objeto de la solicitud.
-
INVALID_REQUEST_PARAMETERS- Activador: Semántica incorrecta (por ejemplo, una fecha pasada)
- Mensaje: No se puede cambiar next_billing_date a un momento pasado
-
MAXIMUM_KEYS_REACHED- Activador: Metadata / custom-fields superó los 50 pares
- Mensaje: Se superaron los 50 pares clave-valor
General & System
-
INTEGER_CONVERSION_FAILURE- Activador: Cualquier conversión de entero ↔ cadena/decimal que falle en el servidor
- Mensaje: Error de conversión de entero
-
INTERNAL_SERVER_ERROR- Activador: Excepciones no controladas; debes registrar los detalles en el servidor
- Mensaje: Sin mensaje público (500 genérico)
-
NOT_FOUND- Activador: 404 genérico para cualquier recurso inexistente
- Mensaje: Elemento no encontrado (o uno más específico)
-
TOO_MANY_REQUESTS- Activador: Límite de frecuencia 429
- Mensaje: Sin mensajes
-
UNSUPPORTED_ACTION- Activador: Acción no compatible con el tipo de recurso
- Mensaje: No se admite cambiar de plan en suscripciones con facturación basada en el uso
Best Practices
- Gestiona siempre los errores correctamente en tu aplicación
- Implementa un registro de errores adecuado
- Utiliza mensajes de error apropiados para los usuarios finales
- Implementa una lógica de reintento para errores transitorios
- Contacta con soporte para resolver problemas no solucionados