/api/v2/server-side-api/vc/transactions/ Crear transacción de moneda virtual
Acredita o debita una o más monedas virtuales para un perfil en una única transacción atómica. Utiliza un amount positivo para acreditar (conceder) y un amount negativo para debitar (gastar). Todos los elementos se aplican de forma conjunta: si alguno falla, ninguno se aplica.
Cada código de moneda puede aparecer solo una vez por solicitud. Una acreditación a través de este endpoint siempre crea un saldo sin vencimiento.
Header parameters
El ID único del cliente en tu sistema. Se requiere adapty-customer-user-id o adapty-profile-id.
El ID único del perfil en tu sistema. Es la mejor opción si trabajas con perfiles anónimos. Se requiere adapty-customer-user-id o adapty-profile-id.
Un UUID v4 que hace la solicitud idempotente. Si reintentas una solicitud con la misma clave, Adapty devuelve el resultado de la transacción original sin modificar los saldos nuevamente. Debe ser un UUID v4 válido.
Las claves se recuerdan hasta una hora, dentro del ámbito de un único perfil. Pasado ese período, una solicitud con la misma clave se aplica como una nueva transacción; por lo tanto, usa la clave para reintentar una llamada de forma segura, no para deduplicar una concesión a largo plazo.
Request body
Cuerpo de la solicitud para crear una transacción de moneda virtual.
Ajustes de saldo que se aplican de forma atómica. Cada código de moneda puede aparecer solo una vez.
El código de moneda virtual a ajustar.
El importe a aplicar. Un valor positivo acredita (otorga) la moneda; un valor negativo debita (gasta) la moneda. No puede ser cero.
Pares clave-valor opcionales almacenados con la transacción. Como máximo 5 claves. Cada clave debe coincidir con ^[a-z0-9_]{1,30}$, y cada valor tiene como máximo 200 caracteres.
Responses
Transacción aplicada correctamente
Schema
Resultado de una transacción de moneda virtual.
ID único de la transacción creada.
Saldo posterior a la transacción para cada moneda afectada por esta solicitud (una entrada por cada elemento en items). Para leer la lista completa de saldos del perfil, use GET /api/v2/server-side-api/vc/balances/.
Código de moneda virtual.
Nombre visible de la moneda virtual.
Saldo total, incluidos los importes retenidos actualmente.
Suma de todas las retenciones activas (importes reservados). Actualmente siempre es 0.
Saldo disponible para gastar, calculado como balance - held.
Example
{
"transaction_id": "0190e8a4-1c2b-7def-8abc-2c1a4b6d8e90",
"balances": [
{
"code": "COINS",
"name": "Gold Coins",
"balance": 12950,
"held": 0,
"available": 12950
}
]
} Solicitud incorrecta. El campo error_code identifica la causa: insufficient_balance, unknown_currency, duplicate_currency, amount_zero, balance_overflow, empty_items o idempotency_key_invalid.
Schema
Fuente del error
Array de mensajes de error
Nombre corto del error
Código de estado HTTP
Example
{
"errors": [
{
"source": "currency_code",
"errors": [
"Insufficient balance for currency COINS"
]
}
],
"error_code": "insufficient_balance",
"status_code": 400
} No autorizado. La clave de API falta o no es válida.
Schema
Fuente del error
Array de mensajes de error
Nombre corto del error
Código de estado HTTP
Prohibido. La Server API para monedas virtuales no está habilitada para esta aplicación. Contacta con el soporte de Adapty para solicitar acceso.
Schema
Fuente del error
Array de mensajes de error
Nombre corto del error
Código de estado HTTP
Example
{
"errors": [
{
"source": null,
"errors": [
"Server API for virtual currencies is not enabled for this app. Contact Adapty support to request access."
]
}
],
"error_code": "feature_not_enabled",
"status_code": 403
} Perfil no encontrado.
Schema
Fuente del error
Array de mensajes de error
Nombre corto del error
Código de estado HTTP
Conflicto. El campo error_code identifica la causa:
idempotency_in_flight— una solicitud con el mismoIdempotency-Keyaún está siendo procesada. Reintenta después del intervalo indicado en el encabezado de respuestaRetry-After.duplicate_source_transaction— la transacción de store subyacente ya fue acreditada, por lo que no se aplica de nuevo.
Schema
Fuente del error
Array de mensajes de error
Nombre corto del error
Código de estado HTTP
Example
{
"errors": [
{
"source": null,
"errors": [
"A similar request is being processed."
]
}
],
"error_code": "idempotency_in_flight",
"status_code": 409
} Entidad no procesable. El cuerpo de la solicitud no superó la validación del esquema; por ejemplo, items contiene más de 20 entradas, o una clave o valor de metadata incumple sus restricciones.
Schema
Fuente del error
Array de mensajes de error
Nombre corto del error
Código de estado HTTP
Demasiadas solicitudes. Se superó el límite de velocidad por aplicación o global (error_code es rate_limited). Los límites predeterminados son 600 solicitudes por minuto por aplicación y 6000 solicitudes por minuto a nivel global.
Schema
Fuente del error
Array de mensajes de error
Nombre corto del error
Código de estado HTTP
Error interno del servidor