Skip to content

Errors ​

Every error uses the same shape:

json
{
  "error": {
    "code": "INSUFFICIENT_BALANCE",
    "message": "Insufficient balance. You can withdraw up to 42.5 XLM.",
    "details": { "withdrawable": "42.5" }
  }
}

message is safe to show to users. details is optional.

Codes ​

StatusCodeWhen
400VALIDATION_ERRORBody, query or params failed validation. details is [{ path, message }].
400INVALID_JSONMalformed JSON body
400UPLOAD_ERRORFile too large or invalid multipart
400BAD_REQUESTInvalid action, e.g. trading your own order, non-image upload, bad token
401UNAUTHORIZEDMissing token or deleted account
401SESSION_EXPIREDInvalid or expired token
401INVALID_CREDENTIALSWrong email or password
403FORBIDDENNot allowed, e.g. not a trade participant, wrong role
403ACCOUNT_RESTRICTEDAccount suspended or banned
403EMAIL_NOT_VERIFIEDEmail verification required
403KYC_REQUIREDIdentity verification required
404NOT_FOUNDResource missing or no longer available
404ROUTE_NOT_FOUNDUnknown endpoint
409CONFLICTDuplicate data or a concurrent state change
422INSUFFICIENT_BALANCENot enough XLM for an order, trade or withdrawal
422ORDER_SIZE_OUT_OF_RANGEOrder below MIN_TRADE_XLM or above MAX_TRADE_XLM
422TOO_MANY_ORDERS10 active orders already
422TOO_MANY_TRADES5 trades in progress already
422TOO_MANY_ACCOUNTS10 payout accounts already
422PAYMENT_ACCOUNT_REQUIREDSeller lacks a payout account for the method. details.missing lists methods when posting orders.
422COUNTERPARTY_INACTIVEThe seller's account is restricted
422PAYMENT_WINDOW_CLOSEDMarking paid after the deadline
429RATE_LIMITEDRate limit exceeded
500INTERNAL_ERRORUnexpected server error
502STELLAR_TX_FAILEDStellar rejected the transaction. details contains Horizon result codes.
503HORIZON_UNAVAILABLEStellar Horizon unreachable or timed out
503KYC_PROVIDER_ERRORSmile ID unavailable

Handling conflicts ​

409 with "This trade just changed. Refresh and try again." means another request changed the trade first. Refetch the trade and show its current state.

Handling 503 HORIZON_UNAVAILABLE during trades ​

The operation may or may not have reached Stellar. Don't retry blindly — refetch the trade after a short delay. The server reconciles uncertain outcomes automatically.

Nexlm is a peer-to-peer facilitator and never holds customer Naira.