Luxon uses conventional HTTP response codes to indicate the success or failure of an API request.


200 – OK Everything worked as expected
400 – Bad Request Request may have a missing parameter or be badly configured
401 – Unauthorized Invalid authentication
402 – Request failed The request was valid but failed
403 – Forbidden The API key doesn’t have permission to perform that request
404 – Not Found The resource does not exist

All responses should contain a status object which represents the result of the call.


"status": {
"code": "string", // short code of the call result like 'INSUFFICIENT_FUNDS'
"message": "string" // optional detailed error message


Code Description
general.not.authorized Not authorized for the given operation
auth.bad.credentials Bad credentials
transaction.invalid Invalid transaction
merchant.not.found Merchant not found Unsupported report format
merchant.api.invalid.refund.receiver Invalid receiver for refund
merchant.transaction.refunded Refund for this transaction has already been made Transaction with such merchant transaction id already exists
merchant.transaction.not.found Merchant transaction not found
merchant.transaction.expired The session has expired and the payment cannot be completed
merchant.insufficient.balance Insufficient merchant balance
risk.level.limit.merchant.refund.amount.exceeded Refund is not allowed. The refund amount is above the allowed limit for current wallet
risk.level.limit.merchant.amount.exceeded The transfer amount is above the allowed limit
thirdparty.aml.verification.hold Aml hold response
thirdparty.aml.verification.reject Aml reject response
invalid.amount Invalid amount
invalid.transfer.status Invalid transfer status Invalid transfer id
invalid.receiver.wallet Invalid receiver wallet
insufficient.balance Insufficient balance
address.not.registered.or.inactive Address is not registered or inactive in the smart contract
payment.method.not.found User payment method not found
validation.currency.not.supported The currency sent is not a supported one