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. Issuance
  • Welcome 👋
  • Get Started
  • Auth
    • Token
      POST
  • Onboarding
    • Start onboarding
      POST
    • Verify onboarding OTP
      POST
    • Resend onboarding OTP
      POST
    • Get session status
      GET
    • Initiate Nafath
      POST
    • Cancels session
      POST
    • Complete customer info
      POST
  • Wallet
    • Change mobile number from profile settings
      • Change mobile number
      • Verify mobile number change OTP
      • Get mobile change status
    • Change mobile number from login screen
      • Change mobile number
      • Verify mobile number change OTP
      • Initiate Nafath
      • Get mobile number change status
  • Payouts
    • Create payout
      POST
    • Get payout status
      GET
    • Create bulk payout
      POST
    • Get bulk payout status
      GET
    • Get batch report
      GET
  • Cards
    • Issuance
      • Issue card
        POST
      • Get card issuance
        GET
      • Complete card issuance
        POST
      • Verify card issuance OTP
        POST
      • Convert virtual to physical
        POST
      • Verify card conversion OTP
        POST
    • Management
      • Get card
      • Change card status
      • Set or update card PIN
      • Verify card PIN OTP
      • Activate physical card
      • Verify activation OTP
      • Display sensitive data
      • Verify display sensitive data OTP
  • Transactions
    • Business Accounts
      • Get business account balance
      • Get transaction details
      • List business transactions
    • Wallet Accounts
      • Get wallet balance
      • List wallet transactions
  • cards
    • Initiate card replacement
    • Verify OTP and complete card replacement
  1. Issuance

Verify card issuance OTP

POST
https://api.staging.vrtx.sa/cards/issuances/{card_issuance_id}/verify-otp
Last modified:2025-12-03 10:51:05
Verifies the OTP for a card issuance flow. On success, the system proceeds with card creation and PIN setting when applicable.
Error Responses:
400 INVALID_OTP_FORMAT - OTP format is invalid (must be 4 digits)
400 OTP_EXPIRED - OTP has expired. Please initiate a new operation.
400 OTP_MAX_ATTEMPTS_REACHED - Maximum OTP verification attempts reached. Please initiate a new operation.
400 OTP_VERIFICATION_FAILED - OTP verification failed (generic error)
400 OTP_INCORRECT - Invalid OTP provided. Please try again.
404 CARD_ISSUANCE_NOT_FOUND - The card issuance cannot be found
404 OTP_OPERATION_NOT_FOUND - OTP operation context is missing or not found
409 CARD_STATUS_NOT_ALLOWED - Card issuance state transition is not allowed
412 OTP_OPERATION_WRONG_STATUS - OTP operation is not in correct state (already completed or failed)
503 SERVICE_UNAVAILABLE - The service is currently unavailable. Please try again later.

Request

Authorization
JWT Bearer
Add the parameter
Authorization
to Headers
Example:
Authorization: ********************
or
Path Params

Body Params application/jsonRequired

Example
{
    "otp": "1234"
}

Request Code Samples

Shell
JavaScript
Java
Swift
Go
PHP
Python
HTTP
C
C#
Objective-C
Ruby
OCaml
Dart
R
Request Request Example
Shell
JavaScript
Java
Swift
curl --location --request POST 'https://api.staging.vrtx.sa/cards/issuances//verify-otp' \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data-raw '{
    "otp": "1234"
}'

Responses

🟢200OK
application/json
Default Response
Body

Examples
{
    "id": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
    "created_at": "2024-01-15T10:30:00Z",
    "updated_at": "2024-01-15T10:35:00Z",
    "account_id": "b2c3d4e5-f6a7-5890-b123-c4d5e6f7a8b9",
    "account_number": "ACC-2024-00123",
    "customer_id": "c3d4e5f6-a7b8-9012-c345-d6e7f8a9b0c1",
    "status": "ISSUED",
    "idempotency_key": "f9e8d7c6-b5a4-3210-9876-543210fedcba",
    "card": {
        "id": "f5a4b3c2-d1e0-9876-5432-1a0b9c8d7e6f",
        "account_id": "b2c3d4e5-f6a7-5890-b123-c4d5e6f7a8b9",
        "token": 987654321,
        "status": "ACTIVE",
        "last_4_digits": "1234",
        "expiry_date": "2027-12-31",
        "design": "standard",
        "created_at": "2024-01-15T10:35:00Z",
        "updated_at": "2024-01-15T10:35:00Z"
    }
}
🟠400Bad Request
🟠401Unauthorized
🟠403Forbidden
🟠404Not Found
🟠405Method Not Allowed
🟠409Conflict
🟠410Gone
🟠412Precondition Failed
🟠422Unprocessable Entity
🟠429Too Many Requests
🔴500Internal Server Error
🔴501Not Implemented
🔴503Service Unavailable
🔴504Gateway Timeout
🔴505HTTP Version Not Supported
Modified at 2025-12-03 10:51:05
Previous
Complete card issuance
Next
Convert virtual to physical
Built with