vrtx Docs
Core APIs
  • Start
  • Onboarding
  • Wallet
  • Payouts
  • Cards
  • Transactions
Closed loop APIsCard Simulator
SDK APIs
  • Coming Soon!
Core APIs
  • Start
  • Onboarding
  • Wallet
  • Payouts
  • Cards
  • Transactions
Closed loop APIsCard Simulator
SDK APIs
  • Coming Soon!
  1. Closed loop APIs
  • Welcome 👋
  • Get Started
  • Authentication
  • Responses
  • Pagination
  • Auth
    • Token
      POST
  • Businesses
    • List businesses
      GET
    • Create business
      POST
  • Money Movement
    • Create fund
      POST
    • Create payout
      POST
    • Get payout
      GET
    • Create refund
      POST
    • Create transfer
      POST
    • Create withdrawal
      POST
  • Labels
    • List labels
      GET
    • Create label
      POST
  • Transactions
    • List transactions
      GET
    • Get transaction
      GET
    • List wallet transactions
      GET
  • Wallets
    • List wallets
      GET
    • Create wallet
      POST
    • Lookup wallet
      GET
    • Update wallet
      PATCH
    • Get wallet
      GET
    • Get wallet balance
      GET
    • Remove label
      DELETE
    • Assign label
      PUT
  • Wallet Statements
    • Retrieve wallet statement (preview)
  • Webhooks
    • Register webhook endpoint (preview)
    • List webhook endpoints (preview)
  1. Closed loop APIs

Responses

vrtx follows modern REST API standards to ensure consistent responses across all endpoints.
Both success and error responses follow a structured JSON format for easier parsing, logging, and debugging.

Success Responses (2xx)#

CodeStatusMeaning
200SuccessThe request completed successfully.
201CreatedA new resource was successfully created or inserted.
202AcceptedThe request has been accepted for asynchronous processing.
204No ContentThe operation succeeded, but no content is returned.

Error Responses (4xx / 5xx)#

All vrtx errors follow this structure:
{
  "errorCode": "INVALID_INPUT",
  "errorMessage": "Input parameters failed validation",
  "details": [
    {
      "fieldName": "newPin",
      "description": "The PIN you provided is weak. PIN must be 4 digits, does not have serial digits or repeated digits.",
      "code": "invalid_string"
    }
  ],
  "statusCode": 400
}

Error Codes#

StatusError CodeMeaning
400INVALID_INPUTRequest contains invalid or missing parameters.
401UNAUTHORIZEDInvalid or missing credentials (API key, secret, or token).
403FORBIDDENRequest understood but permissions/scopes do not allow action.
404NOT_FOUNDThe requested resource or endpoint does not exist.
405METHOD_NOT_ALLOWEDHTTP method not supported for this endpoint.
406NOT_ACCEPTABLEThe request format or encoding is not supported.
410GONEThe resource existed previously but is no longer available.
422VALIDATION_FAILEDBody is well-formed but semantic validation failed.
429RATE_LIMIT_EXCEEDEDToo many requests in a short timeframe.
500INTERNAL_ERRORUnexpected internal server error.
503SERVICE_UNAVAILABLETemporary downtime or maintenance window.

Scenarios#

Unauthorized Scenarios (401)
These occur with the following scenarios:
1
Invalid or Missing Credentials
2
Invalid or Expired Access Token
3
Token Revoked
4
Wrong Environment Token (Sandbox vs Production)
Forbidden Scenarios (403)
This error occur when doing actions with insufficient permissions such as trying to write with read-Only token.
Rate Limiting (429)
Rate limiting is applied across all endpoints to ensure proper usage.
{
  "errorCode": "RATE_LIMIT_EXCEEDED",
  "errorMessage": "Too many requests. Please try again later.",
  "details": [],
  "statusCode": 429
}
Service Unavailable (503)
These errors rarely occur when service is unvailable.
{
  "errorCode": "SERVICE_UNAVAILABLE",
  "errorMessage": "An unexpected error occurred",
  "details": [],
  "statusCode": 503
}
Modified at 2025-11-27 07:05:25
Previous
Authentication
Next
Pagination
Built with