NAV Navbar
shell
  • Introduction
  • HTTP Response Codes
  • Request Structure
  • Response Structure
  • Landing Page
  • Auth
  • S2S Application Transaction
  • Onboarding APIs
  • Proof of Fitment
  • Add Money (Work in Progress)
  • Vehicle Update APIs
  • Transaction APIs
  • Auto-Recharge APIs
  • Complaint APIs
  • Document APIs
  • Enums
  • Changelog
  • Introduction

    Fastag Dashboard APIs

    This document includes Fastag Dashboard APIs that provide integration with the National Electronic Toll Collection (NETC) system for FASTag payments. These APIs are used for:

    API Categories

    The Fastag APIs are organized into the following categories:

    1. Landing Page - Customer Summary, Transaction List, Fastag List, Get Fastag Applications
    2. Onboarding APIs - Application Creation, Submission, Add vehicle, Validate tag
    3. Proof of Fitment - Vehicle Fitment Details
    4. Vehicle Update APIs - Initiate, calculate cost, submit, list, get details
    5. Transaction APIs - Transaction history, statements, application transactions
    6. Auto-Recharge APIs - Automatic wallet top-up configuration and OTP validation
    7. Complaint APIs - Raise and track complaints

    HTTP Response Codes

    200 - OK: For all successful queries. Any business logic or validation error can have a response as 200 OK but the data will have status = FAILURE. Details of this behavior will be explained later in this document.

    400 - Bad Request: Invalid request parameters, missing required fields, or malformed request body. Check the request payload for validation errors.

    401 - Unauthorized: In case of signature mismatch, invalid credentials, or missing authentication token. The request lacks valid authentication credentials.

    403 - Forbidden: Access denied - insufficient permissions to access the requested resource. User is authenticated but not authorized.

    404 - Not Found: The requested resource (API endpoint or data) does not exist or has been removed.

    500 - Internal Server Error: This error will only come in case any of the internal service is down. Some examples are network issue, server crashes, database connection failures, or unhandled exceptions.

    Fastag API Response Codes

    Fastag Dashboard APIs use the following response codes in the response_code field:

    Response Code Description
    00 Success - Request completed successfully
    BAD_REQUEST Invalid request parameters or format
    UNAUTHORIZED Authentication failed or missing credentials
    FORBIDDEN Access denied - insufficient permissions
    INTERNAL_SERVER_ERROR Internal server error
    CUSTOMER_NOT_FOUND Customer not found
    APPLICATION_NOT_FOUND Fastag application not found
    INVALID_REQUEST Request validation failed
    OTP_ALREADY_ACTIVE OTP already active - please wait or wait for expiry
    NO_ACTIVE_OTP No active OTP found
    OTP_REFERENCE_MISMATCH OTP reference mismatch
    OTP_GENERATION_ERROR OTP generation failed
    OTP_VALIDATION_ERROR OTP validation failed
    WALLET_INELIGIBLE Wallet not eligible for operation
    WALLET_CREDIT_FREEZE Wallet is credit-frozen
    WALLET_DEBIT_FREEZE Wallet is debit-frozen
    WALLET_FREEZE Wallet is completely frozen
    WALLET_CLOSED Wallet is closed
    WALLET_NOT_FOUND Wallet not found
    WALLET_INACTIVE Wallet is inactive
    WALLET_LIMIT_EXCEEDED Wallet limit exceeded
    ACTIVE_TRANSACTION_EXISTS Transaction already in progress
    INCOMPLETE_CUSTOMER_DETAILS Customer details incomplete
    NOT_FOUND Request resource not found
    SMS_ERROR SMS sending failed
    REPLAYED_REQUEST_ERROR Request already processed
    REQUEST_DECODE_FAILURE Request decode failed
    INVALID_REQUEST_PAYLOAD Invalid request payload
    RECHARGE_FAILED Wallet recharge failed
    AUTO_RECHARGE_ENABLE_FAILED Auto-recharge enable failed
    VALIDATION_ERROR Validation error
    DATABASE_ERROR Database error

    Note:

    For Fastag APIs, always check the status field first. If status is FAILURE, check response_code and response_message for error details.

    Request Structure

    Headers

    {
      "x-client-source": "811",
      "Authorization": Bearer <session_token>,
      "x-customer-crn": "100196918"
    }
    

    For Fastag Dashboard APIs, all the request must have following headers.

    Header Name Description Required
    x-client-source Source of the request ("811") Yes
    Authorization OAuth Bearer token Yes
    x-customer-crn Customer Reference Number (CRN) Yes

    Response Structure

    {
      "status": "SUCCESS",
      "response_code": "00",
      "response_message": "Request Success",
      "payload": {
        // API-specific response data
      }
    }
    
    Parameter Data Type Description
    status String "SUCCESS" or "FAILURE"
    response_code String Response code (e.g., "00", "BAD_REQUEST", etc.,)
    response_message String Human-readable message
    payload Object/Array API-specific response data (null on error)
    Success Response Example
    
    {
      "status": "SUCCESS",
      "response_code": "00",
      "response_message": "Request Success",
      "payload": {
        "customerDetails": {
          "crn": "100196918",
          "mobileNumber": "9876543210"
        }
      }
    }
    
    Failure Response Example
    
    {
      "status": "FAILURE",
      "response_code": "CUSTOMER_NOT_FOUND",
      "response_message": "Customer not found",
      "payload": null
    }
    

    Landing Page

    Customer Status

    Checks whether the customer is registered with the Fastag system. This endpoint is typically called first to determine the customer's registration state before making other API calls.

    Endpoint: GET /api/v1/fastag/dashboard/customer/status

    curl -L -X GET '{{host}}/api/v1/fastag/dashboard/customer/status' \
    -H 'content-type: application/json' \
    -H 'accept: application/json' \
    -H 'x-client-source: 811' \
    -H 'Authorization: Bearer <session_token>' \
    
    # Response: 200 OK
    {
      "status": "SUCCESS",
      "response_code": "00",
      "response_message": "Request Success",
      "payload": {
        "is_registered": true
      }
    }
    

    Response Parameters:

    Parameter Data Type Description
    is_registered Boolean Whether the customer is registered with the Fastag system

    Error Codes:

    Error Code Description
    UNAUTHORIZED No active session found or invalid token

    Customer Summary

    Retrieves the customer's information including Wallet and Fastag details.

    Endpoint: GET /api/v1/fastag/dashboard/customer/summary

    curl -L -X GET '{{host}}/api/v1/fastag/dashboard/customer/summary' \
    -H 'content-type: application/json' \
    -H 'accept: application/json' \
    -H 'x-client-source: 811' \
    -H 'x-customer-crn: 100196918' \
    -H 'Authorization: Bearer <session_token>' \
    
    # Response: 200 OK
    {
      "status": "SUCCESS",
      "response_code": "00",
      "response_message": "Request Success",
      "payload": {
        "customer_details": {
          "customer_id": "CUST_123456",
          "customer_seq_id": "SEQ_001",
          "crn": "100196918",
          "mobile_number": "9876543210",
          "first_name": "John",
          "middle_name": "Kumar",
          "last_name": "Doe",
          "kyc_status": "FKYC",
          "email_address": "john.doe@example.com",
          "delivery_address": {
            "address_1": "123 Main Street",
            "address_2": "Apt 4B",
            "address_3": "Near Station",
            "city": "Mumbai",
            "state": "Maharashtra",
            "pincode": "400001"
          },
          "total_active_tags": 2,
          "total_tag_count": 2,
          "auto_recharge_enabled": true,
          "auto_recharge_wallet": "MASTER",
          "is_wallet_closure_application_raised": false
        },
        "wallet_details": [
          {
            "balance": "1500.00",
            "status": "Active",
            "wallet_type": "PPI"
          }
        ],
        "fastag_details": [
          {
            "fastag_id": "FTG_001",
            "vehicle_id": "Veh_001",
            "tag_id": "TAG001",
            "tid": "TID001",
            "tag_serial_number": "SN001234",
            "barcode": "BC001234",
            "fastag_status": "ACTIVE",
            "vrn": "MH01AB1234",
            "vin": "VIN1234567890",
            "vehicle_class": "VC4",
            "kyv_application_id": "KYV_001",
            "kyv_application_ref_id": "KYV_REF_001",
            "kyv_status": "APPROVED",
            "tag_register_date": "2024-01-15T10:30:00Z",
            "security_deposit": 200.00,
            "tag_cost": 100.00,
            "exception_codes": [
              {
                "code": "04",
                "remarks": "Low balance"
              }
            ],
            "mobile_number": "9876543210",
            "is_commercial_vehicle": false
          }
        ]
      }
    }
    

    Response Parameters:

    Parameter Data Type Description
    customer_details Object(Customer Details Object) Customer information
    wallet_details Array(Wallet Details Object) List of wallet information
    fastag_details Array(Fastag Detail Object) List of Fastag details

    Error Codes:

    Error Code Description
    BAD_REQUEST Customer not registered / Customer not found
    INTERNAL_SERVER_ERROR Failed to retrieve customer summary

    Customer Details Object

    Parameter Data Type Description
    customer_id String Internal customer ID
    customer_seq_id String Customer sequence ID
    crn String Customer Reference Number
    mobile_number String Customer mobile number
    first_name String Customer first name
    middle_name String Customer middle name
    last_name String Customer last name
    kyc_status Enum KYC verification status. See KycStatus
    email_address String Customer email
    delivery_address Object(Delivery Details Object) Delivery address details
    total_active_tags Number Count of active tags
    total_tag_count Number Total tag count
    auto_recharge_enabled Boolean Whether auto-recharge is enabled
    auto_recharge_wallet String Auto-recharge wallet type. See FastagWalletType
    is_wallet_closure_application_raised Boolean Whether wallet closure application has been raised

    Delivery Details Object

    Parameter Data Type Description
    address_1 String Address line 1
    address_2 String Address line 2 (optional)
    address_3 String Address line 3 (optional)
    city String City
    state String State
    pincode String Pincode

    Wallet Details Object

    Parameter Data Type Description
    balance String Wallet balance
    status String Wallet status. See WalletStatus
    wallet_type String Wallet type. See WalletType

    Fastag Detail Object

    Parameter Data Type Description
    fastag_id String Fastag ID
    vehicle_id String Vehicle ID
    tag_id String Tag ID
    tid String Transducer ID
    tag_serial_number String Tag serial number
    barcode String Barcode
    fastag_status String Fastag status. See FastagStatus
    vrn String Vehicle registration number (optional)
    vin String Vehicle identification number
    vehicle_class Enum Vehicle class. See VehicleClass
    kyv_application_id String KYV application ID (optional)
    kyv_application_ref_id String KYV application reference ID (optional)
    kyv_status Enum KYV application status. See KyvApplicationStatus
    tag_register_date DateTime Tag registration date (UTC)
    security_deposit Decimal Security deposit amount
    tag_cost Decimal Tag cost
    exception_codes Array(Exception Code Detail Object) Active exception codes
    mobile_number String Registered mobile number
    is_commercial_vehicle Boolean Commercial vehicle flag

    Exception Code Detail Object

    Parameter Data Type Description
    code String Exception code
    remarks String Remarks (optional)

    Transaction List

    Lists all transactions for the customer with filtering and pagination.

    Endpoint: POST /api/v1/fastag/dashboard/customer/transactions/list

    curl -L -X POST '{{host}}/api/v1/fastag/dashboard/customer/transactions/list' \
    -H 'content-type: application/json' \
    -H 'accept: application/json' \
    -H 'x-client-source: 811' \
    -H 'x-customer-crn: 100196918' \
    -H 'Authorization: Bearer <session_token>' \
    --data-raw '{
      "vehicle_list": ["KA09AB1234"],
      "page_no": 1,
      "page_size": 10,
      "status": ["SUCCESS"],
      "initiation_start_time": "2024-01-01T00:00:00Z",
      "initiation_end_time": "2024-01-31T23:59:59Z",
      "sources": ["NETC"],
      "transaction_types": ["DR"]
    }'
    
    # Response: 200 OK
    {
      "status": "SUCCESS",
      "response_code": "00",
      "response_message": "Request Success",
      "payload": {
        "transactions": [
          {
            "id": "TXN_123456",
            "gateway_ref_id": "GW_REF_789",
            "amount": "150.75",
            "transaction_init_timestamp": "2024-01-15T10:30:00Z",
            "transaction_processing_time": "2024-01-15T10:31:00Z",
            "transaction_type": "DEBIT_TOLL",
            "transaction_status": "SUCCESS",
            "wallet_type": "PPI_MASTER",
            "wallet_transaction_id": "WALLET_TXN_001",
            "plaza_name": "KIAL Toll Plaza",
            "vrn": "KA01AB1234",
            "vin": "CHASSIS123456",
            "tag_id": "TAG123456",
            "transaction_description": "Toll payment",
            "txn_narration": "Narration text"
          }
        ],
        "summary_details": {
          "total_row_count": 10
        }
      }
    }
    

    Request Parameters:

    Parameter Data Type Description Required
    vehicle_list Array List of vehicle IDs to filter No
    page_no Number Page number (1-indexed) Yes
    page_size Number Items per page (10, 20, 50) Yes
    status Array(Enum) Filter by transaction status. See DbTransactionStatus No
    initiation_start_time String Start time in RFC3339 format Yes
    initiation_end_time String End time in RFC3339 format Yes
    sources Array(Enum) Filter by transaction source. See FastagTransactionSource No
    transaction_types Array(Enum) Filter by transaction type. See DbTransactionType No

    Note for status parameter: If you do not wish to filter by transaction status, omit the status field entirely from the request. If the field is included, it must contain at least one valid status (i.e., it cannot be an empty array).

    Response Parameters:

    Parameter Data Type Description
    transactions Array(Transaction Detail Object) List of transactions
    summary_details Object(Summary Details Object) Pagination summary

    Transaction Detail Object

    Parameter Data Type Description
    id UUID Internal transaction ID
    gateway_ref_id String Gateway transaction reference ID
    amount String Transaction amount
    transaction_init_timestamp DateTime When transaction was initiated
    transaction_processing_time DateTime When transaction was processed
    transaction_type String Transaction type. See DbTransactionType
    transaction_status String Transaction status. See DbTransactionStatus
    wallet_type String Type of wallet
    wallet_transaction_id UUID Internal wallet transaction identifier
    plaza_name String Toll plaza name
    vrn String Vehicle registration number
    vin String Vehicle identification number
    tag_id String Fastag tag ID
    transaction_description String Human-readable description
    txn_narration String Transaction narration

    Summary Details Object

    Parameter Data Type Description
    total_row_count Integer Total number of matching records

    Error Codes:

    Error Code Description
    BAD_REQUEST Customer not registered / Validation error
    INTERNAL_SERVER_ERROR Failed to list transactions

    List Fastags

    Lists all Fastags associated with the customer with filtering and pagination.

    Endpoint: POST /api/v1/fastag/dashboard/customer/fastags/list

    curl -L -X POST '{{host}}/api/v1/fastag/dashboard/customer/fastags/list' \
    -H 'content-type: application/json' \
    -H 'accept: application/json' \
    -H 'x-client-source: 811' \
    -H 'x-customer-crn: 100196918' \
    -H 'Authorization: Bearer <session_token>' \
    --data-raw '{
      "crn": "100196918",
      "page_no": 1,
      "page_size": 10,
      "status": ["ACTIVE"],
      "send_fastag_exception_codes": true,
      "vrn": "MH01AB1234",
      "tag_id": "1234567890ABCDEF12345678",
      "mobile_number": "9876543210",
      "start_time": "2024-01-01T00:00:00Z",
      "end_time": "2024-12-31T23:59:59Z",
      "orderby": "asc"
    }'
    
    # Response: 200 OK
    {
      "status": "SUCCESS",
      "response_code": "00",
      "response_message": "Request Success",
      "payload": {
        "fastag_details": [
          {
            "customer_ref_id": "100196918",
            "fastag_id": "550e8400-e29b-41d4-a716-446655440000",
            "vehicle_id": "660e8400-e29b-41d4-a716-446655440000",
            "tag_id": "1234567890ABCDEF12345678",
            "tid": "TID123456",
            "tag_serial_number": "SN123456",
            "barcode": "BC123456",
            "fastag_status": "ACTIVE",
            "vrn": "MH01AB1234",
            "vin": "CHASSIS123456",
            "vehicle_class": "VC4",
            "tag_register_date": "2024-01-15T10:30:00Z",
            "security_deposit": 200.00,
            "tag_cost": 100.00,
            "mobile_number": "9876543210",
            "exception_code_details": []
          }
        ],
        "total_pages": 1
      }
    }
    

    Request Parameters:

    Parameter Data Type Description Required
    crn String Customer Reference Number (auto-set from session) No
    page_no Number Page number (1-indexed) Yes
    page_size Number Items per page Yes
    status Array(FastagStatus) Filter by Fastag status Yes
    send_fastag_exception_codes Boolean Include exception codes in response Yes
    vrn String Filter by vehicle registration number No
    tag_id String Filter by tag ID No
    mobile_number String Filter by mobile number No
    start_time String Start date in RFC3339 format No
    end_time String End date in RFC3339 format No
    orderby String - See OrderBy Sort order No

    Response Parameters:

    Parameter Data Type Description
    fastag_details Array(Fastag Details Object) List of Fastag details
    total_pages Number Total number of pages available

    Fastag Details Object

    Parameter Data Type Description
    customer_ref_id String Customer reference ID
    fastag_id String Fastag ID
    vehicle_id String Vehicle ID
    tag_id String Tag ID
    tid String Tag TID
    tag_serial_number String Tag serial number
    barcode String Barcode
    fastag_status String - See FastagStatus Fastag status
    vrn String Vehicle registration number (optional)
    vin String Vehicle identification number (chassis)
    vehicle_class String - See VehicleClass Vehicle class
    tag_register_date String Tag registration date (ISO 8601)
    security_deposit Decimal Security deposit amount
    tag_cost Decimal Tag cost
    mobile_number String Mobile number
    exception_code_details Array(Exception Code Details Object) Exception code details (optional)

    Exception Code Details Object

    Parameter Data Type Description
    exc_code String Exception code
    source String - See ExceptionSource Exception source
    status String - See ExceptionCodeStatus Exception code status
    start_time String Start time (ISO 8601)
    end_time String End time (ISO 8601, optional)

    Error Codes:

    Error Code Description
    UNAUTHORIZED Your session isn't valid, please try logging again
    BAD_REQUEST Customer not found / Breached max page size limit / Validation error
    INTERNAL_SERVER_ERROR Internal server error

    Get Latest Fastag Applications

    Fetches all the application associated with the customer's CRN.

    Endpoint: GET /api/v1/fastag/dashboard/customer/applications/latest

    curl -L -X GET '{{host}}/api/v1/fastag/dashboard/customer/applications/latest' \
    -H 'content-type: application/json' \
    -H 'accept: application/json' \
    -H 'x-client-source: 811' \
    -H 'x-customer-crn: 100196918' \
    -H 'Authorization: Bearer <session_token>'
    
    # Response: 200 OK
    {
      "response_code": "00",
      "response_message": "Request Success",
      "status": "SUCCESS",
      "payload": {
        "application_details": {
          "applicationId": "dcb2691b-1980-4a95-a8a5-dc7c40cefeb7",
          "applicationRefId": "FA8BD95CEC9D85467ABEDD8A0C3CDC0FAB",
          "applicationStatus": "PAYMENT_INITIATED",
          "crn": "909461524",
          "deliveryAddress": {
            "address_1": "123 Main St",
            "address_2": "Apt 4B",
            "address_3": "Near City Center",
            "city": "Mumbai",
            "pincode": "400001",
            "state": "MH"
          },
          "demographicAddress": {
            "address_1": "456 Park Ave",
            "address_2": "Floor 3",
            "address_3": "Block B",
            "city": "Delhi",
            "pincode": "110001",
            "state": "DL"
          },
          "email": "john.doe@example.com",
          "fullName": "John Doe",
          "mobileNumber": "6545123313"
        },
        "refund_details": [],
        "transaction_details": [
          {
            "amount": "600.00",
            "orderId": "pg_09c275d8-a87c-4beb-a38c-5c89f18bbf4d",
            "paymentMode": "PG",
            "transactionCompletionDate": "2026-04-29 15:35:00.000000 +00:00",
            "transactionId": "a3ea86e4094649d4bcacf6fe858f42fd",
            "transactionRefId": "REF_789",
            "transactionInitiationDate": "2026-04-29 15:31:26.692273 +00:00",
            "transactionStatus": "PENDING"
          }
        ],
        "vehicle_details": [
          {
            "applicationId": "dcb2691b-1980-4a95-a8a5-dc7c40cefeb7",
            "pricing": {
              "initial_wallet_load": "300.00",
              "non_discounted_tag_price": "100.00",
              "tag_cost_breakdown": {
                "gst": "15.25",
                "tag_cost_base": "84.75"
              },
              "tag_price": "100.00",
              "tag_security_deposit": "200.00",
              "vc": "VC4",
              "vehicle_linking_id": "87f5881c-3655-4d4f-ae0f-223acb763d29"
            },
            "rcDocuments": [
              {
                "downloadUri": "https://s3-bucket.amazonaws.com/docs/RC_F.jpeg",
                "extension": "jpeg",
                "path": "909461524/dcb2691b-1980-4a95-a8a5-dc7c40cefeb7/87f5881c-3655-4d4f-ae0f-223acb763d29/RC_F",
                "remarks": "Document uploaded",
                "reupload_count": 0,
                "reupload_path": "reupload/RC_F_path",
                "status": "Pending",
                "status_updated_at": "2026-04-29T15:31:13.450566Z",
                "type": "RC_F",
                "upload_at": "2026-04-29T15:31:13.450566Z"
              },
              {
                "downloadUri": "https://s3-bucket.amazonaws.com/docs/RC_B.jpeg",
                "extension": "jpeg",
                "path": "909461524/dcb2691b-1980-4a95-a8a5-dc7c40cefeb7/87f5881c-3655-4d4f-ae0f-223acb763d29/RC_B",
                "remarks": "Document uploaded",
                "reupload_count": 0,
                "reupload_path": "reupload/RC_B_path",
                "status": "Pending",
                "status_updated_at": "2026-04-29T15:31:13.450566Z",
                "type": "RC_B",
                "upload_at": "2026-04-29T15:31:13.450566Z"
              }
            ],
            "status": "Submitted",
            "tagDetails": {
              "tagId": "1234567890ABCDEF12345678",
              "barcode": "1234567890",
              "inventoryId": "INV123456"
            },
            "vehicleDetails": {
              "chassisNumber": "KA09AB1234ERLF2S0",
              "documents": [
                {
                  "extension": "jpeg",
                  "type": "RC_F"
                },
                {
                  "extension": "jpeg",
                  "type": "RC_B"
                }
              ],
              "engineNumber": "ENG123456789",
              "fuelType": "PETROL",
              "gvwWeight": "12500",
              "hasTagInHand": false,
              "isCommercial": false,
              "isVahanVerified": true,
              "nationalPermit": false,
              "nationalPermitExpiry": "2027-12-31",
              "state": "MH",
              "tagId": "1234567890ABCDEF12345678",
              "vehicleClass": "VC4",
              "vehicleLinkingId": "87f5881c-3655-4d4f-ae0f-223acb763d29",
              "vehicleNumber": "KA09AB1234"
            },
            "vin": "KA09AB1234ERLF2S0",
            "vrn": "KA09AB1234"
          }
        ]
      }
    }
    

    Response Parameters:

    Parameter Data Type Description
    application_details Object(Application Details Object) Application details
    vehicle_details Array(Vehicle Details Object) Array of vehicle details
    transaction_details Array(Transaction Details Object) Transaction details
    refund_details Array(Refund Details Object) List of refunds (empty array if none)

    Application Details Object

    Parameter Data Type Description
    applicationId String (UUID) Unique application identifier
    applicationRefId String Application reference ID
    applicationStatus Enum - See FastagApplicationStatus Application status
    crn String Customer Reference Number
    deliveryAddress Object(Delivery Address Object) Delivery address (nullable)
    demographicAddress Object(Delivery Address Object) Demographic address from customer details (optional)
    email String Customer email address (nullable)
    fullName String Customer full name
    mobileNumber String Customer mobile number

    Delivery Address Object

    Parameter Data Type Description
    address_1 String Address line 1
    address_2 String Address line 2 (nullable)
    address_3 String Address line 3 (nullable)
    city String City
    pincode String Pincode
    state String State code

    Vehicle Details Object

    Parameter Data Type Description
    applicationId String (UUID) Application ID
    pricing Object(Pricing Object) Pricing details (optional)
    rcDocuments Array(RC Document Object) Array of RC documents
    status Enum - See FastagAppInfoStatus Vehicle status
    tagDetails Object(Tag Details Object) Tag details (nullable)
    vehicleDetails Object(Vehicle Details Inner Object) Vehicle details
    vin String Vehicle Identification Number (VIN)
    vrn String Vehicle Registration Number (nullable)

    Pricing Object

    Parameter Data Type Description
    initial_wallet_load String Initial wallet load amount
    non_discounted_tag_price String Non-discounted tag price
    tag_cost_breakdown Object(Tag Cost Breakdown Object) Tag cost breakdown
    tag_price String Final tag price
    tag_security_deposit String Security deposit amount
    vc Enum - See VehicleClass Vehicle class
    vehicle_linking_id String (UUID) Vehicle linking ID

    Tag Cost Breakdown Object

    Parameter Data Type Description
    gst String GST amount
    tag_cost_base String Base tag cost (before GST)

    RC Document Object

    Parameter Data Type Description
    downloadUri String Presigned download URL (nullable)
    extension String File extension (e.g., "jpeg", "pdf") (nullable)
    path String Document storage path
    remarks String Remarks (nullable)
    reupload_count Integer Number of times reuploaded
    reupload_path String Reupload path (nullable)
    status Enum - See DocumentStatus Document status
    status_updated_at String Status update timestamp (nullable)
    type Enum - See DocumentType Document type
    upload_at String Upload timestamp (ISO 8601, nullable)

    Tag Details Object

    Parameter Data Type Description
    tagId String Tag ID
    barcode String Barcode
    inventoryId String Inventory ID

    Vehicle Details Inner Object

    Parameter Data Type Description
    chassisNumber String Chassis/VIN number
    documents Array(Object) Array of submitted document types. See Document Type Object
    engineNumber String Engine number
    fuelType String Fuel type (e.g., "PETROL")
    gvwWeight String Gross vehicle weight (nullable)
    hasTagInHand Boolean Whether customer has physical tag
    isCommercial Boolean Whether commercial vehicle
    isVahanVerified Boolean Vahan verification status
    nationalPermit Boolean National permit flag
    nationalPermitExpiry String Permit expiry date (nullable)
    state String State code
    vehicleClass Enum - See VehicleClass Vehicle class
    vehicleLinkingId String (UUID) Vehicle linking ID
    vehicleNumber String Vehicle registration number
    tagId String Tag ID for tag-in-hand flow (nullable)

    Document Type Object

    Parameter Data Type Description
    extension String File extension
    type String Document type ("RC_F", "RC_B")

    Transaction Details Object

    Parameter Data Type Description
    amount String Transaction amount
    orderId String Order ID from payment gateway (nullable)
    transactionRefId String Transaction reference ID
    paymentMode Enum - See PaymentMode Payment mode
    transactionCompletionDate String Completion timestamp (nullable)
    transactionId String Transaction ID (nullable)
    transactionInitiationDate String Initiation timestamp
    transactionStatus Enum - See DbTransactionStatus Transaction status

    Refund Details Object

    Parameter Data Type Description
    refund_id String (UUID) Internal refund ID
    transaction_id String (UUID) Original payment transaction ID
    gateway_refund_id String External refund ID from payment gateway (nullable)
    amount String Refund amount
    refund_type Enum - See RefundType Refund type
    refund_mode Enum - See RefundMode Refund mode
    status Enum - See DbTransactionStatus Refund status
    created_at String ISO 8601 timestamp
    updated_at String ISO 8601 timestamp
    metadata Object(Refund Metadata Object) Additional refund details (nullable)

    Refund Metadata Object

    Parameter Data Type Description
    vehicle_breakups Array(Vehicle Refund Breakup Object) Vehicle-wise breakup of the refund
    gateway_response Object Raw response from the payment gateway (nullable)
    error_info Object(Refund Error Details Object) Error information if the refund failed (nullable)
    wallet_id String (UUID) Wallet ID if the refund was processed to the wallet (nullable)

    Vehicle Refund Breakup Object

    Parameter Data Type Description
    vehicle_info_id String (UUID) Vehicle info ID
    tag_cost String Tag cost
    initial_wallet_load String Initial wallet load amount
    security_deposit String Security deposit amount
    vrn String Vehicle registration number (nullable)
    vin String Vehicle identification number

    Refund Error Details Object

    Parameter Data Type Description
    code String Error code (nullable)
    message String Error message

    Error Codes:

    Error Code Description
    UNAUTHORIZED Session expired, please login again
    APPLICATION_NOT_FOUND No application found for this customer
    INTERNAL_SERVER_ERROR Internal server error

    Auth

    Generate Token

    Generates an access token for server-to-server authentication.

    Endpoint: POST /api/v1/fastag/dashboard/s2s/auth/token

    curl -L -X POST '{{host}}/api/v1/fastag/dashboard/s2s/auth/token' \
    -H 'Content-Type: application/json' \
    -H 'Authorization: Bearer <session_token>' \
    --data-raw '{
      "grant_type": "client_credentials",
      "client_id": "550e8400e29b41d4a716446655440000",
      "client_secret": "czNjcjN0X3BAc3N3MHJkXzE2Y2hhcnNtaW4="
    }'
    
    # Response: 200 OK
    {
      "status": "SUCCESS",
      "response_code": "00",
      "response_message": "Request Success",
      "payload": {
        "access_token": "base64url_encoded_random_32_bytes",
        "token_type": "Bearer",
        "expires_in": 86400
      }
    }
    

    Request Parameters:

    Parameter Data Type Description
    grant_type String Must be client_credentials
    client_id String Client identifier (32 hex characters, UUID without hyphens)
    client_secret String Client secret (base64-encoded, decodes to 2-255 bytes)

    Response Parameters:

    Parameter Data Type Description
    access_token String Base64url-encoded random 32-byte token
    token_type String Always Bearer
    expires_in Integer Token expiry time in seconds (86400 = 24 hours)

    Error Responses:

    Error Code Description
    BAD_REQUEST Only client_credentials grant type is supported / Validation error
    UNAUTHORIZED Invalid client_id or client_secret / Token is invalid, expired, or revoked
    INTERNAL_SERVER_ERROR An internal error occurred

    Revoke Token

    Revokes an active access token.

    Endpoint: POST /api/v1/fastag/dashboard/s2s/auth/revoke

    curl -L -X POST '{{host}}/api/v1/fastag/dashboard/s2s/auth/revoke' \
    -H 'Content-Type: application/json' \
    -H 'Authorization: Bearer <session_token>' \
    --data-raw '{
      "token": "base64url_encoded_token",
      "client_id": "550e8400e29b41d4a716446655440000",
      "client_secret": "czNjcjN0X3BAc3N3MHJkXzE2Y2hhcnNtaW4=",
      "token_type_hint": "access_token"
    }'
    
    # Response: 200 OK
    {
      "status": "SUCCESS",
      "response_code": "00",
      "response_message": "Token revoked successfully"
    }
    

    Request Parameters:

    Parameter Data Type Description
    token String The token to be revoked
    client_id String Client identifier (32 hex characters, UUID without hyphens)
    client_secret String Client secret (base64-encoded, decodes to 2-255 bytes)
    token_type_hint String Optional hint per RFC 7009: "access_token" or "refresh_token"

    Note: Returns 200 even for invalid tokens (RFC 7009 §2.2) to prevent token enumeration.

    Error Responses:

    Error Code Description
    BAD_REQUEST Validation error
    UNAUTHORIZED Invalid client_id or client_secret
    INTERNAL_SERVER_ERROR An internal error occurred

    S2S Application Transaction

    Record Application Transaction

    Records a payment transaction for a Fastag application via server-to-server integration. The S2S caller has already collected payment (for PG/CC/SBA/CAA modes) or requests a synchronous wallet debit (for WALLET mode).

    Endpoint: POST /api/v1/fastag/dashboard/s2s/customer/applications/transactions

    Sample Request — WALLET Payment:

    curl -L -X POST '{{host}}/api/v1/fastag/dashboard/s2s/customer/applications/transactions' \
    -H 'content-type: application/json' \
    -H 'accept: application/json' \
    -H 'x-client-source: 811' \
    -H 'x-customer-crn: 100196918' \
    -H 'Authorization: Bearer <s2s_access_token>' \
    --data-raw '{
      "application_id": "550e8400-e29b-41d4-a716-446655440000",
      "transaction_id": "KOTAK_TXN_001",
      "amount": 300.00,
      "instrument_type": "WALLET",
      "application_type": "NEW_TAG"
    }'
    

    Sample Request — PG Payment (Terminal Status):

    curl -L -X POST '{{host}}/api/v1/fastag/dashboard/s2s/customer/applications/transactions' \
    -H 'content-type: application/json' \
    -H 'accept: application/json' \
    -H 'x-client-source: 811' \
    -H 'x-customer-crn: 100196918' \
    -H 'Authorization: Bearer <s2s_access_token>' \
    --data-raw '{
      "application_id": "550e8400-e29b-41d4-a716-446655440000",
      "transaction_id": "KOTAK_PG_001",
      "amount": 300.00,
      "instrument_type": "PG",
      "status": "SUCCESS",
      "application_type": "NEW_TAG",
      "transaction_initiated_at": "2024-01-15T10:30:00Z",
      "transaction_completed_at": "2024-01-15T10:31:00Z",
      "pg_order_id": "pg_2d197468-3d18-4b28-b412-063d56def39c",
      "pg_payment_id": "pay_09c275d8a87c4beb"
    }'
    

    Sample Request — PG Payment (Initiated Status):

    curl -L -X POST '{{host}}/api/v1/fastag/dashboard/s2s/customer/applications/transactions' \
    -H 'content-type: application/json' \
    -H 'accept: application/json' \
    -H 'x-client-source: 811' \
    -H 'x-customer-crn: 100196918' \
    -H 'Authorization: Bearer <s2s_access_token>' \
    --data-raw '{
      "application_id": "550e8400-e29b-41d4-a716-446655440000",
      "transaction_id": "KOTAK_PG_002",
      "amount": 300.00,
      "instrument_type": "PG",
      "status": "INITIATED",
      "application_type": "NEW_TAG",
      "transaction_initiated_at": "2024-01-15T10:30:00Z",
      "pg_order_id": "pg_2d197468-3d18-4b28-b412-063d56def39c"
    }'
    
    # Response: 200 OK
    {
      "status": "SUCCESS",
      "response_code": "00",
      "response_message": "Request Success",
      "payload": {
        "application_status": "SUBMITTED",
        "application_ref_id": "FA8BD95CEC9D85467ABEDD8A0C3CDC0FAB",
        "transaction_id": "a3ea86e4-0946-49d4-bcac-f6fe858f42fd",
        "transaction_status": "SUCCESS"
      }
    }
    

    Request Parameters:

    Parameter Data Type Description Required
    application_id UUID The Fastag application UUID this transaction is for Yes
    transaction_id String (1–100 chars, alphanumeric, hyphens, underscores) S2S caller's unique transaction ID. Used as idempotency key Yes
    amount Decimal Transaction amount. Must match the application's total price exactly Yes
    instrument_type Enum — See ApplicationPaymentMode Payment instrument type. Determines routing Yes
    status Enum — See S2sTransactionStatus Transaction status. Required for PG/CC/SBA/CAA. Ignored for WALLET Conditional
    application_type Enum — See S2sApplicationType Type of application. V1 only supports NEW_TAG Yes
    transaction_initiated_at String When the payment was initiated (ISO 8601 / RFC 3339). Required for PG/CC/SBA/CAA Conditional
    transaction_completed_at String When the payment completed (ISO 8601 / RFC 3339). Optional for all modes No
    pg_order_id String Payment Gateway order ID. Required when instrument_type is PG Conditional
    pg_payment_id String Payment Gateway payment ID (Razorpay). Required for PG when status is SUCCESS or FAILED Conditional

    Response Parameters:

    Parameter Data Type Description
    application_status Enum — See FastagApplicationStatus The application status after processing the transaction
    application_ref_id String Customer-facing reference ID for the application
    transaction_id UUID Our internal database transaction ID (not the caller's transaction_id)
    transaction_status Enum — See DbTransactionStatus The resulting transaction status in our system

    Error Codes:

    Error Code Description
    AMOUNT_MISMATCH Amount does not match the application's total price
    BAD_REQUEST Application not found / Application is not in a state that allows payment / CRN mismatch / Invalid wallet ID / Wallet not found / Wallet not authorized / Wallet not applicable / Pricing details not found / Validation error / Active transaction exists
    INVALID_STATUS_TRANSITION The existing transaction cannot transition to the requested status
    WALLET_INELIGIBLE Wallet failed pre-flight eligibility check (balance, limits, or status)
    INTERNAL_SERVER_ERROR Database error or unhandled internal error

    Onboarding APIs

    Create Application

    Creates a new Fastag application for the customer.

    Endpoint: POST /api/v1/fastag/dashboard/customer/applications/create

    curl -L -X POST '{{host}}/api/v1/fastag/dashboard/customer/applications/create' \
    -H 'content-type: application/json' \
    -H 'accept: application/json' \
    -H 'x-client-source: 811' \
    -H 'x-customer-crn: 100196918' \
    -H 'Authorization: Bearer <session_token>' \
    --data-raw '{
      "crn_hash": "a665a45920422f9d417e4867efdc4fb8a04a1f3fff1fa07e998e86f7f7a27ae3",
      "mobile_number": "9876543210"
    }'
    
    # Response: 200 OK
    {
      "status": "SUCCESS",
      "response_code": "00",
      "response_message": "Request Success",
      "payload": {
        "application_id": "APP_123456",
        "application_ref_id": "APP_REF_789"
      }
    }
    

    Request Parameters:

    Parameter Data Type Description Required
    crn_hash String SHA256 hash of the Customer Reference Number (CRN) Yes
    mobile_number String Customer Mobile Number Yes

    Response Parameters:

    Parameter Data Type Description
    application_id String Unique identifier for the created application
    application_ref_id String Application reference ID

    Error Codes:

    Error Code Description
    BAD_REQUEST Invalid crn passed in request / Mobile number is required for this request / Validation error
    WALLET_CLOSED Wallet is closed
    WALLET_CREDIT_FREEZE Wallet credit freeze active
    WALLET_DEBIT_FREEZE Wallet debit freeze active
    WALLET_FREEZE Wallet is frozen
    WALLET_INACTIVE Wallet is inactive
    INTERNAL_SERVER_ERROR Internal error

    Submit Fastag Application

    Submits the Fastag application for processing.

    Endpoint: POST /api/v1/fastag/dashboard/customer/applications/fastag/submit

    curl -L -X POST '{{host}}/api/v1/fastag/dashboard/customer/applications/fastag/submit' \
    -H 'content-type: application/json' \
    -H 'accept: application/json' \
    -H 'x-client-source: 811' \
    -H 'x-customer-crn: 100196918' \
    -H 'Authorization: Bearer <session_token>' \
    --data-raw '{
      "application_id": "550e8400-e29b-41d4-a716-446655440000",
      "opted_master_wallet": true,
      "channel": "MB811_APP"
    }'
    
    # Response: 200 OK
    {
      "status": "SUCCESS",
      "response_code": "00",
      "response_message": "Request Success",
      "payload": {
        "message": "FASTag application submitted successfully",
        "applicationId": "550e8400-e29b-41d4-a716-446655440000"
      }
    }
    

    Request Parameters:

    Parameter Data Type Description Required
    application_id String (UUID) Application ID to submit Yes
    opted_master_wallet Boolean Whether master wallet is opted No
    channel String - See ApplicationChannel Application channel Yes

    Response Parameters:

    Parameter Data Type Description
    message String Response message
    applicationId String Submitted application ID

    Error Codes:

    Error Code Description
    UNAUTHORIZED Not authorized to perform this action on this application
    BAD_REQUEST Application not found, application already submitted, no vehicles to submit, or validation error
    WALLET_CLOSED Wallet is closed
    WALLET_CREDIT_FREEZE Wallet is credit-frozen
    WALLET_DEBIT_FREEZE Wallet is debit-frozen
    WALLET_FREEZE Wallet is completely frozen
    WALLET_INACTIVE Wallet is inactive
    WALLET_NOT_FOUND Wallet not found
    INTERNAL_SERVER_ERROR Internal error

    Links a physical tag to a vehicle after receiving it.

    Endpoint: POST /api/v1/fastag/dashboard/customer/applications/fastag/tag/link

    curl -L -X POST '{{host}}/api/v1/fastag/dashboard/customer/applications/fastag/tag/link' \
    -H 'content-type: application/json' \
    -H 'accept: application/json' \
    -H 'x-client-source: 811' \
    -H 'x-customer-crn: 100196918' \
    -H 'Authorization: Bearer <session_token>' \
    --data-raw '{
      "application_id": "550e8400-e29b-41d4-a716-446655440000",
      "vehicle_info_id": "550e8400-e29b-41d4-a716-446655440001",
      "tag_identifier": {
        "tag_id": "1234567890ABCDEF12345678"
      }
    }'
    
    # Response: 200 OK
    {
      "status": "SUCCESS",
      "response_code": "00",
      "response_message": "Tag linking has been initiated.",
      "payload": {}
    }
    

    Request Parameters:

    Parameter Data Type Description Required
    application_id String (UUID) Application ID Yes
    vehicle_info_id String (UUID) Vehicle info ID to link tag to Yes
    tag_identifier Object Tag identification (Enum: TagId or Barcode) Yes

    tag_identifier (Enum - one of the following):

    Variant Parameters Data Type Description
    Barcode serial_number Number Serial number from barcode
    issuer_key_index Number Issuer key index
    issuer_iin Number Issuer IIN
    TagId tag_id String Direct tag ID (24 or 32 hex characters)

    Error Codes:

    Error Code Description
    UNAUTHORIZED CRN not found for customer
    INVALID_VEHICLE_STATUS Invalid vehicle info status for tag linking
    VEHICLE_INFO_MISMATCH Vehicle info does not belong to the specified application
    TAG_NOT_AVAILABLE The provided fastag is invalid or not available. Please provide a different fastag.
    NOT_FOUND Application not found
    BAD_REQUEST Validation error
    INTERNAL_SERVER_ERROR Database / Internal error

    List Customer Applications

    Lists all Fastag applications for the customer.

    Endpoint: POST /api/v1/fastag/dashboard/customer/applications/list

    curl -L -X POST '{{host}}/api/v1/fastag/dashboard/customer/applications/list' \
    -H 'content-type: application/json' \
    -H 'accept: application/json' \
    -H 'x-client-source: 811' \
    -H 'x-customer-crn: 100196918' \
    -H 'Authorization: Bearer <session_token>' \
    --data-raw '{
      "page": 1,
      "page_size": 10
    }'
    
    # Response: 200 OK
    {
      "status": "SUCCESS",
      "response_code": "00",
      "response_message": "Request Success",
      "payload": {
        "applications": [
          {
            "applicationId": "550e8400-e29b-41d4-a716-446655440000",
            "applicationRefId": "FA38B1D7883BA240B08B62C9E0F81A6224",
            "vehicleLinkingId": "660e8400-e29b-41d4-a716-446655440000",
            "applicationStatus": "SUBMITTED",
            "kycStatus": "FKYC",
            "optedMasterWallet": false,
            "vrn": "KA09AB1234",
            "vin": "KA09AB1234ERLF2S0",
            "vehicleStatus": "SUBMITTED",
            "vehicleClass": "VC4",
            "state": "MH",
            "nationalPermit": false,
            "nationalPermitExpiry": "2027-12-31",
            "isVahanVerified": true,
            "isCommercial": false,
            "gvwWeight": "12500",
            "fuelType": "petrol",
            "engineNumber": "ENG123456789"
          }
        ],
        "total_pages": 1,
        "total_items": 1
      }
    }
    

    Request Parameters:

    Parameter Data Type Description Required
    page Number Page number No
    page_size Number Items per page No

    Response Parameters:

    Parameter Data Type Description
    applications Array(Customer Application Details Object) List of customer applications
    total_pages Number Total number of pages
    total_items Number Total number of items

    Customer Application Details Object

    Parameter Data Type Description
    applicationId String (UUID) Unique application identifier
    applicationRefId String Application reference ID
    vehicleLinkingId String (UUID) Vehicle linking ID
    applicationStatus String - See FastagApplicationStatus Application status
    kycStatus Enum - See ApplicationKycStatus KYC verification status
    optedMasterWallet Boolean Whether master wallet is opted
    vrn String Vehicle registration number (optional)
    vin String Vehicle identification number
    vehicleStatus String - See FastagAppInfoStatus Vehicle info status
    vehicleClass String - See VehicleClass Vehicle class
    state String State code
    nationalPermit Boolean Whether national permit is available
    nationalPermitExpiry String National permit expiry date (optional)
    isVahanVerified Boolean Whether Vahan verification is done
    isCommercial Boolean Whether vehicle is commercial
    gvwWeight String Gross vehicle weight (optional)
    fuelType String Fuel type
    engineNumber String Engine number

    Error Codes:

    Error Code Description
    BAD_REQUEST Crn not found for customer
    BAD_REQUEST Validation error
    INTERNAL_SERVER_ERROR Internal server error

    Create Application Transaction

    Creates a transaction for an application.

    Endpoint: POST /api/v1/fastag/dashboard/customer/applications/transactions

    curl -L -X POST '{{host}}/api/v1/fastag/dashboard/customer/applications/transactions' \
    -H 'content-type: application/json' \
    -H 'accept: application/json' \
    -H 'x-client-source: 811' \
    -H 'x-customer-crn: 100196918' \
    -H 'Authorization: Bearer <session_token>' \
    --data-raw '{
      "application_id": "APP_123456",
      "instrument_type": "WALLET",
      "instrument_id": "wallet-uuid-here"
    }'
    
    # Response: 200 OK
    {
      "status": "SUCCESS",
      "response_code": "00",
      "response_message": "Transaction created successfully",
      "payload": {
        "ref_id": "TRACE_ABC123",
        "transaction_id": "Txn_id",
        "order_id": "Order_id",
        "payment_mode": "WALLET"
      }
    }
    

    Request Parameters:

    Parameter Data Type Description Required
    application_id UUID Application ID Yes
    instrument_type String Payment instrument type. Yes
    instrument_id String Instrument identifier. No

    Response Parameters:

    Parameter Data Type Description
    ref_id String Reference ID
    transaction_id String Settled gateway transaction ID
    order_id String order ID
    payment_mode String (Enum: PaymentMode) Payment mode used

    Error Codes:

    Error Code Description
    BAD_REQUEST Application not found / Application is not in a state that allows payment / Invalid wallet ID / Wallet not found / Wallet not authorized / Wallet not applicable / Unsupported instrument type / Instrument ID missing / Validation error
    ACTIVE_TRANSACTION_EXISTS A transaction is already in progress for this application, please wait and try again later
    WALLET_INELIGIBLE Wallet is not eligible for payment
    INTERNAL_SERVER_ERROR Pricing details not found / Order ID not found / Internal server error

    Application Transaction Status

    Gets the status of an application transaction.

    Endpoint: POST /api/v1/fastag/dashboard/customer/applications/transactions/status

    curl -L -X POST '{{host}}/api/v1/fastag/dashboard/customer/applications/transactions/status' \
    -H 'content-type: application/json' \
    -H 'accept: application/json' \
    -H 'x-client-source: 811' \
    -H 'x-customer-crn: 100196918' \
    -H 'Authorization: Bearer <session_token>' \
    --data-raw '{
      "application_id": "550e8400-e29b-41d4-a716-446655440000",
      "ref_id": "TRACE_ABC123",
      "transaction_id": "a3ea86e4094649d4bcacf6fe858f42fd"
    }'
    
    # Response: 200 OK
    {
      "status": "SUCCESS",
      "response_code": "00",
      "response_message": "Request Success",
      "payload": {
        "status": "Pending"
      }
    }
    

    Request Parameters:

    Parameter Data Type Description Required
    application_id UUID Application ID Yes
    ref_id String Reference ID returned on create No
    transaction_id String Transaction ID No

    Response Parameters:

    Parameter Data Type Description
    status String Transaction status

    Error Codes:

    Error Code Description
    BAD_REQUEST Transaction not found / Application not found / Active transaction already exists / Validation error
    UNAUTHORIZED You are not authorized to perform this action on this application
    INTERNAL_SERVER_ERROR Database error / Payment client error / Transaction status missing / Access tokens not found / Internal server error

    Validate Tag

    Pre-validates a tag before creating vehicle record. Used to validate tag is available and valid before DB record creation.

    Endpoint: POST /api/v1/fastag/dashboard/customer/applications/fastag/tag/validate

    Sample Request - Using TagId:

    curl -L -X POST '{{host}}/api/v1/fastag/dashboard/customer/applications/fastag/tag/validate' \
    -H 'content-type: application/json' \
    -H 'accept: application/json' \
    -H 'x-client-source: 811' \
    -H 'x-customer-crn: 100196918' \
    -H 'Authorization: Bearer <session_token>' \
    --data-raw '{
      "application_id": "550e8400-e29b-41d4-a716-446655440000",
      "tag_identifier": {
        "tag_id": "1234567890ABCDEF12345678"
      },
      "vehicle_class": "CAR",
      "vehicle_linking_id": "87f5881c-3655-4d4f-ae0f-223acb763d29"
    }'
    

    Sample Request - Using Barcode:

    curl -L -X POST '{{host}}/api/v1/fastag/dashboard/customer/applications/fastag/tag/validate' \
    -H 'content-type: application/json' \
    -H 'accept: application/json' \
    -H 'x-client-source: 811' \
    -H 'x-customer-crn: 100196918' \
    -H 'Authorization: Bearer <session_token>' \
    --data-raw '{
      "application_id": "550e8400-e29b-41d4-a716-446655440000",
      "tag_identifier": {
        "serial_number": 12345678,
        "issuer_key_index": 1,
        "issuer_iin": 608006
      },
      "vehicle_class": "CAR",
      "vehicle_linking_id": "87f5881c-3655-4d4f-ae0f-223acb763d29"
    }'
    
    # Response: 200 OK
    {
      "status": "SUCCESS",
      "response_code": "00",
      "response_message": "Tag validated successfully",
      "payload": {
        "is_valid": true,
        "tag_id": "1234567890ABCDEF12345678"
      }
    }
    

    Request Parameters:

    Parameter Data Type Description Required
    application_id String Application UUID Yes
    tag_identifier Object Tag identification (Enum: TagId or Barcode) Yes
    vehicle_class String - See VehicleClass Vehicle class Yes
    vehicle_linking_id String Vehicle linking ID (UUID) No

    tag_identifier (Enum - one of the following):

    Variant Parameters Data Type Description
    Barcode serial_number Number Serial number from barcode
    issuer_key_index Number Issuer key index
    issuer_iin Number Issuer IIN
    TagId tag_id String Direct tag ID (24 or 32 hex characters)

    Response Parameters:

    Parameter Data Type Description
    is_valid Boolean Whether the tag is valid
    tag_id String The validated tag ID

    Error Codes:

    Error Code Description
    TAG_NOT_AVAILABLE The provided fastag is invalid or not available. Please provide a different fastag.
    INVALID_VEHICLE_STATUS Invalid vehicle info status
    VEHICLE_INFO_MISMATCH Vehicle info does not belong to the specified application
    NOT_FOUND Application not found
    UNAUTHORIZED CRN not found for customer
    BAD_REQUEST Validation error
    INTERNAL_SERVER_ERROR Database / Internal error

    Update Application Details

    Updates the delivery address for a pending Fastag application.

    Endpoint: POST /api/v1/fastag/dashboard/customer/applications/fastag/update

    curl -L -X POST '{{host}}/api/v1/fastag/dashboard/customer/applications/fastag/update' \
    -H 'content-type: application/json' \
    -H 'accept: application/json' \
    -H 'x-client-source: 811' \
    -H 'x-customer-crn: 100196918' \
    -H 'Authorization: Bearer <session_token>' \
    --data-raw '{
      "application_id": "550e8400-e29b-41d4-a716-446655440000",
      "delivery_address": {
        "address_1": "123 Main Street",
        "address_2": "Apartment 4B",
        "address_3": "Near Station",
        "city": "Mumbai",
        "state": "Maharashtra",
        "pincode": "400001"
      }
    }'
    
    # Response: 200 OK
    {
      "status": "SUCCESS",
      "response_code": "00",
      "response_message": "Application details updated successfully",
      "payload": {}
    }
    

    Request Parameters:

    Parameter Data Type Description Required
    application_id String (UUID) Application ID Yes
    delivery_address Object(Delivery Details Object) Delivery address Yes

    Error Codes:

    Error Code Description
    BAD_REQUEST Application not found / Application is not in a modifiable state / Validation error
    INTERNAL_SERVER_ERROR Database / Internal error

    Delete Vehicle

    Deletes a vehicle from a pending Fastag application.

    Endpoint: POST /api/v1/fastag/dashboard/customer/vehicle/delete

    curl -L -X POST '{{host}}/api/v1/fastag/dashboard/customer/vehicle/delete' \
    -H 'content-type: application/json' \
    -H 'accept: application/json' \
    -H 'x-client-source: 811' \
    -H 'x-customer-crn: 100196918' \
    -H 'Authorization: Bearer <session_token>' \
    --data-raw '{
      "application_id": "550e8400-e29b-41d4-a716-446655440000",
      "vehicle_linking_id": "550e8400-e29b-41d4-a716-446655440001"
    }'
    
    # Response: 200 OK
    {
      "status": "SUCCESS",
      "response_code": "00",
      "response_message": "Vehicle removed successfully",
      "payload": {}
    }
    

    Request Parameters:

    Parameter Data Type Description Required
    application_id String (UUID) Application ID Yes
    vehicle_linking_id String (UUID) Vehicle linking ID to delete Yes

    Error Codes:

    Error Code Description
    BAD_REQUEST Application not found / Vehicle record not found / Can only be deleted when in PENDING status / Validation error
    INTERNAL_SERVER_ERROR Database error

    Get Application Invoice

    Retrieves the invoice for a specific application.

    Endpoint: GET /api/v1/fastag/dashboard/customer/applications/{application_id}/invoice

    curl -L -X GET '{{host}}/api/v1/fastag/dashboard/customer/applications/550e8400-e29b-41d4-a716-446655440000/invoice' \
    -H 'content-type: application/json' \
    -H 'accept: application/json' \
    -H 'x-client-source: 811' \
    -H 'x-customer-crn: 100196918' \
    -H 'Authorization: Bearer <session_token>'
    
    # Response: 200 OK
    {
      "status": "SUCCESS",
      "response_code": "00",
      "response_message": "Request Success",
      "payload": {
        "applicationDetails": {
          "applicationId": "550e8400-e29b-41d4-a716-446655440000",
          "applicationRefId": "APP_123456",
          "fullName": "John Doe",
          "email": "john@example.com",
          "mobileNumber": "9876543210",
          "deliveryAddress": {
            "address_1": "123 Main Street",
            "address_2": "Apt 4B",
            "address_3": "Near Station",
            "city": "Mumbai",
            "state": "MH",
            "pincode": "400001"
          },
          "crn": "100196918",
          "applicationStatus": "SUBMITTED"
        },
        "vehicleDetails": [
          {
            "applicationId": "550e8400-e29b-41d4-a716-446655440000",
            "vrn": "KA09AB1234",
            "vin": "KA09AB1234ERLF2S0",
            "status": "Submitted",
            "rcDocuments": [
              {
                "type": "RC_F",
                "path": "909461524/app-id/vehicle-id/RC_F",
                "reupload_path": "reupload/doc_path",
                "extension": "jpg",
                "status": "Pending",
                "remarks": "Document verified",
                "status_updated_at": "2026-04-29T15:31:13.450566Z",
                "upload_at": "2024-01-15T10:30:00Z",
                "reupload_count": 0
              }
            ],
            "vehicleDetails": {
              "gvwWeight": "12500",
              "vehicleLinkingId": "550e8400-e29b-41d4-a716-446655440001",
              "vehicleNumber": "KA09AB1234",
              "engineNumber": "ENG123456789",
              "chassisNumber": "KA09AB1234ERLF2S0",
              "state": "MH",
              "fuelType": "petrol",
              "nationalPermit": false,
              "vehicleClass": "VC4",
              "isVahanVerified": true,
              "nationalPermitExpiry": "2027-12-31",
              "isCommercial": false,
              "documents": [
                {
                  "extension": "jpg",
                  "type": "RC_F"
                }
              ],
              "hasTagInHand": false,
              "tagId": "1234567890ABCDEF12345678"
            },
            "tagDetails": {
              "tagId": "1234567890ABCDEF12345678",
              "barcode": "1234567890",
              "inventoryId": "TID123456"
            },
            "vc": "VC4",
            "tag_price": 100.00,
            "non_discounted_tag_price": 100.00,
            "tag_security_deposit": 200.00,
            "initial_wallet_load": 300.00,
            "vehicle_linking_id": "550e8400-e29b-41d4-a716-446655440001",
            "tag_cost_breakdown": {
              "tag_cost_base": 84.75,
              "gst": 15.25
            }
          }
        ],
        "transactionDetails": [
          {
            "transactionId": "PGN0687bfbea759",
            "transactionRefId": "FZ2YX24MLOMWLTMZZK",
            "orderId": "pg_2d197468-3d18-4b28-b412-063d56def39c",
            "amount": "600.00",
            "paymentMode": "PG",
            "transactionInitiationDate": "2024-01-15T18:08:18Z",
            "transactionCompletionDate": "2024-01-15T18:08:21Z",
            "transactionStatus": "SUCCESS"
          }
        ],
        "totalPrice": 600.00,
        "totalDeliveryCharge": 0
      }
    }
    

    Request Parameters:

    Parameter Data Type Description Required
    applicationId String (UUID) Application ID (path parameter) Yes

    Response Parameters:

    Parameter Data Type Description
    applicationDetails Object(Application Details Object) Application details
    vehicleDetails Array(Vehicle Invoice Details Object) Array of vehicle invoice objects
    transactionDetails Array(Transaction Details Object) Transaction details
    totalPrice Decimal Total price amount
    totalDeliveryCharge Decimal Total delivery charge

    Vehicle Invoice Details Object

    Parameter Data Type Description
    applicationId String (UUID) Application ID
    vrn String Vehicle registration number (optional)
    vin String Vehicle identification number
    status String - See FastagAppInfoStatus Vehicle info status
    rcDocuments Array(RC Documents Object) RC documents
    vehicleDetails Object(Vehicle Details Inner Object) Vehicle details
    tagDetails Object(Tag Details Object) Tag details (optional)
    vc String Vehicle class
    tag_price Decimal Tag price (discounted)
    non_discounted_tag_price Decimal Non-discounted tag price
    tag_security_deposit Decimal Tag security deposit
    initial_wallet_load Decimal Initial wallet load amount
    vehicle_linking_id String (UUID) Vehicle linking ID
    tag_cost_breakdown Object(Tag Cost Breakdown Object) Tag cost breakdown

    Transaction Details Object

    Parameter Data Type Description
    transactionId String Transaction ID (optional)
    transactionRefId String Transaction reference ID
    orderId String Order ID (optional)
    amount String Transaction amount
    paymentMode String Payment mode
    transactionInitiationDate String Transaction initiation date
    transactionCompletionDate String Transaction completion date (optional)
    transactionStatus String Transaction status

    Error Codes:

    Error Code Description
    BAD_REQUEST Invalid application ID format
    UNAUTHORIZED Not authorized to view this application
    FETCHING_APPLICATION_FAILED Failed to fetch application details

    Get Vahan Details

    Fetches vehicle details from Vahan (transport department database).

    Endpoint: POST /api/v1/fastag/dashboard/customer/vehicle/vahan-details

    curl -L -X POST '{{host}}/api/v1/fastag/dashboard/customer/vehicle/vahan-details' \
    -H 'content-type: application/json' \
    -H 'accept: application/json' \
    -H 'x-client-source: 811' \
    -H 'x-customer-crn: 100196918' \
    -H 'Authorization: Bearer <session_token>' \
    --data-raw '{
      "vrn": "MH01AB1234",
      "vin": "KA09AB1234ERLF2S0",
      "engineNumber": "ENG123456"
    }'
    
    # Response: 200 OK
    {
      "status": "SUCCESS",
      "response_code": "00",
      "response_message": "Vahan details retrieved successfully",
      "payload": {
        "vrn": "MH01AB1234",
        "vin": "MA1ABC123XYZ456789",
        "engine_number": "ENG123456",
        "region_state": "MH",
        "fuel_type": "PETROL",
        "is_national_permit": false,
        "model": "Swift",
        "chassis_number": "MA1ABC123XYZ456789",
        "national_permit_end_date": "2027-12-31",
        "gvw": "7500",
        "registered_vehicle": "LMV",
        "vehicle_descriptor": "Maruti Swift VXI",
        "color": "WHITE",
        "maker_descr": "MARUTI SUZUKI INDIA LTD"
      }
    }
    

    Request Parameters:

    Parameter Data Type Description Required
    vrn String Vehicle Registration Number No
    vin String Vehicle Identification Number No
    engineNumber String Engine Number Yes

    Response Parameters:

    Parameter Data Type Description
    vrn String Vehicle Registration Number
    vin String Vehicle Identification Number
    engine_number String Engine Number
    region_state String Region/State code
    fuel_type String Fuel type
    is_national_permit Boolean National permit status
    model String Vehicle model
    chassis_number String Chassis number
    national_permit_end_date String End date of the national permit
    gvw String Gross Vehicle Weight in kilograms
    registered_vehicle String Registered vehicle
    vehicle_descriptor String Vehicle descriptor
    color String Vehicle color
    maker_descr String Manufacturer description

    Error Codes:

    Error Code Description
    VALIDATION_ERROR Incorrect vehicle details entered
    VEHICLE_NOT_FOUND Vehicle not found in Vahan database (allows manual entry; returned as failure in HTTP 200 response)
    NETC_ERROR NETC service timeout (HTTP 200) or client error (HTTP 500)
    VAHAN_TIMEOUT Vahan service timeout (returned as failure in HTTP 200 response)
    NO_RESPONSE No response from NETC service (allows manual entry; returned as failure in HTTP 200 response)
    REGISTRATION_NOT_ALLOWED Vehicle registration not allowed
    BAD_REQUEST Validation error (either VRN or VIN required)
    INTERNAL_ERROR Internal error

    Get Tag Pricing Info

    Fetches the current tag pricing information for an application.

    Endpoint: POST /api/v1/fastag/dashboard/customer/tag-price/fetch

    curl -L -X POST '{{host}}/api/v1/fastag/dashboard/customer/tag-price/fetch' \
    -H 'content-type: application/json' \
    -H 'accept: application/json' \
    -H 'x-client-source: 811' \
    -H 'x-customer-crn: 100196918' \
    -H 'Authorization: Bearer <session_token>' \
    --data-raw '{
      "channelName": "DEFAULT",
      "applicationId": "550e8400-e29b-41d4-a716-446655440000"
    }'
    

    Request Parameters:

    Parameter Data Type Description
    channelName String - See FastagChannel Channel name
    applicationId String Application ID (UUID)
    # Response: 200 OK
    {
      "status": "SUCCESS",
      "response_code": "00",
      "response_message": "Request Success",
      "payload": {
        "channel_name": "DEFAULT",
        "vehicles": [
          {
            "vc": "VC4",
            "tag_price": 100.00,
            "non_discounted_tag_price": 120.00,
            "tag_security_deposit": 200.00,
            "initial_wallet_load": 100.00,
            "vehicle_linking_id": "550e8400-e29b-41d4-a716-446655440000",
            "tag_cost_breakdown": {
              "tag_cost_base": 100.00,
              "gst": 18.00
            }
          }
        ],
        "total_initial_wallet_load": 100.00,
        "total_tag_cost": 100.00,
        "total_non_discounted_tag_price": 120.00,
        "total_security_deposit": 200.00,
        "total_price": 300.00,
        "total_delivery_charge": 50.00,
        "total_tag_cost_breakdown": {
          "tag_cost_base": 100.00,
          "gst": 18.00
        }
      }
    }
    

    Response Parameters:

    Parameter Data Type Description
    channel_name String Channel name
    vehicles Array(Vehicle Pricing Response Object) List of vehicle pricing details
    total_initial_wallet_load Decimal Total initial wallet load amount
    total_tag_cost Decimal Total tag cost
    total_non_discounted_tag_price Decimal Total non-discounted tag price
    total_security_deposit Decimal Total security deposit
    total_price Decimal Total price (tag cost + security deposit + delivery charge)
    total_delivery_charge Decimal Total delivery charge
    total_tag_cost_breakdown Object(Tag Cost Breakdown Object) Total tag cost breakdown

    Error Codes:

    Error Code Description
    BAD_REQUEST Validation error
    01 Failed to fetch tag pricing info

    Add Vehicle

    Adds a vehicle to an existing Fastag application.

    Endpoint: POST /api/v1/fastag/dashboard/customer/applications/fastag/vehicle/add

    curl -L -X POST '{{host}}/api/v1/fastag/dashboard/customer/applications/fastag/vehicle/add' \
    -H 'content-type: application/json' \
    -H 'accept: application/json' \
    -H 'x-client-source: 811' \
    -H 'x-customer-crn: 100196918' \
    -H 'Authorization: Bearer <session_token>' \
    --data-raw '{
      "application_id": "550e8400-e29b-41d4-a716-446655440000",
      "vehicle_linking_id": "87f5881c-3655-4d4f-ae0f-223acb763d29",
      "vrn": "MH01AB1234",
      "engine_number": "ENG123456789",
      "vin": "CHASSIS123456",
      "state": "Maharashtra",
      "fuel_type": "PETROL",
      "national_permit": false,
      "vehicle_class": "VC4",
      "is_vahan_verified": false,
      "is_commercial": false,
      "gvw_weight": "12500",
      "national_permit_expiry": "2027-12-31",
      "tag_id": "1234567890ABCDEF12345678",
      "rc_documents": [
        {
          "extension": "pdf",
          "doc_type": "RC_F",
          "redis_key": "doc-upload-abc123"
        }
      ]
    }'
    
    # Response: 200 OK
    {
      "status": "SUCCESS",
      "response_code": "00",
      "response_message": "Request Success",
      "payload": {
        "vehicle_linking_id": "550e8400-e29b-41d4-a716-446655440000"
      }
    }
    

    Request Parameters:

    Parameter Data Type Description Required
    application_id String (UUID) Application UUID Yes
    vehicle_linking_id String (UUID) Vehicle linking ID (for updating existing vehicle) No
    vrn String Vehicle Registration Number (VRN) Yes
    engine_number String Engine number Yes
    vin String Vehicle Identification Number (VIN/Chassis) Yes
    state String State of registration Yes
    fuel_type String Fuel type Yes
    national_permit Boolean Whether vehicle has national permit Yes
    vehicle_class String - See VehicleClass Vehicle class details Yes
    is_vahan_verified Boolean Whether vehicle is Vahan verified Yes
    national_permit_expiry String National permit expiry date No
    is_commercial Boolean Whether vehicle is commercial Yes
    gvw_weight String Gross vehicle weight (for commercial vehicles) No
    tag_id String Tag ID for tag-in-hand flow No
    rc_documents Array(Uploaded Document Info Object) RC document details. Should be madatory for the onboarding flow No

    Response Parameters:

    Parameter Data Type Description
    vehicle_linking_id String (UUID) Unique identifier for the vehicle linking

    Error Codes:

    Error Code Description
    VAHAN_DETAILS_EXPIRED Vahan details have expired or are missing
    DOCUMENT_ERROR Document processing failed
    RC_DOCUMENTS_REQUIRED RC documents are required
    TAG_NOT_AVAILABLE The provided fastag is invalid or not available. Please provide a different fastag.
    VEHICLE_ALREADY_REGISTERED Vehicle with the given VRN or VIN is already registered
    BAD_REQUEST Application not found / Application already submitted / Vehicle record not found / Duplicate vehicle in application / Max vehicles limit reached / Vehicle identifiers cannot be modified / Vahan details mismatch / Application mode mismatch / Validation error
    INTERNAL_SERVER_ERROR Database / Internal error

    Uploaded Document Info Object

    Parameter Data Type Description
    extension String File extension
    doc_type String - See DocumentType Document type
    redis_key String Redis key for the uploaded document

    Proof of Fitment

    Vehicle Fitment

    Fitment details of the tag and the associated vehicle.

    Endpoint: POST /api/v1/fastag/dashboard/customer/vehicle/fitment

    curl -L -X POST '{{host}}/api/v1/fastag/dashboard/customer/vehicle/fitment' \
    -H 'content-type: application/json' \
    -H 'accept: application/json' \
    -H 'x-client-source: 811' \
    -H 'x-customer-crn: 100196918' \
    -H 'Authorization: Bearer <session_token>' \
    --data-raw '{
      "vehicle_id": "550e8400-e29b-41d4-a716-446655440000"
    }'
    
    # Response: 200 OK
    {
      "status": "SUCCESS",
      "response_code": "00",
      "response_message": "Success",
      "payload": {
        "vrn": "MH01AB1234",
        "chassis_no": "CHASSIS123456",
        "engine_no": "ENGINE123456",
        "tag_id": "TAG123456",
        "tid": "TID123456",
        "barcode_no": "BARCODE123456",
        "fitment_challan_number": "FC/2024/001",
        "fitment_date": "2024-01-15",
        "fitment_time": "10:30:45",
        "bank_issuer_name": "HDFC Bank"
      }
    }
    

    Request Parameters:

    Parameter Data Type Description Required
    vehicle_id String (UUID) Vehicle ID Yes

    Response Parameters:

    Parameter Data Type Description
    vrn String Vehicle Registration Number (optional)
    chassis_no String Vehicle chassis number (VIN)
    engine_no String Vehicle engine number
    tag_id String FASTag ID
    tid String Terminal Identifier (TID)
    barcode_no String Barcode number
    fitment_challan_number String Fitment challan number
    fitment_date String Fitment date (YYYY-MM-DD)
    fitment_time String Fitment time (HH:MM:SS)
    bank_issuer_name String Bank issuer name

    Error Codes:

    Error Code Description
    BAD_REQUEST Invalid vehicle_id format / The provided vehicle ID isn't available / This vehicle KYV isn't complete, please complete KYV to proceed
    UNAUTHORIZED Session invalid / You're not authorized to request for this vehicle
    INTERNAL_SERVER_ERROR Failed to get vehicle fitment details

    Add Money (Work in Progress)

    Eligibility API

    Checks whether the customer is eligible to add money to the wallets.

    Endpoint: POST /api/v1/fastag/dashboard/customer/payments/recharge/eligibility

    curl -L -X POST '{{host}}/api/v1/fastag/dashboard/customer/payments/recharge/eligibility' \
    -H 'content-type: application/json' \
    -H 'accept: application/json' \
    -H 'x-client-source: 811' \
    -H 'x-customer-crn: 100196918' \
    -H 'Authorization: Bearer <session_token>' \
    --data-raw '{
      "amount": 100.00
    }'
    
    # Response: 200 OK
    {
      "status": "SUCCESS",
      "response_code": "00",
      "response_message": "Success",
      "payload": {
        "current_balance": "1500.00",
        "wallet_status": "ACTIVE",
        "rejection_reason": "Wallet balance insufficient",
        "is_eligible": true
      }
    }
    
    

    Request Parameters:

    Parameter Data Type Description Required
    amount Decimal Intended recharge amount Yes

    Response Parameters:

    Parameter Data Type Description
    current_balance String Current balance amount in the wallet
    wallet_status String Current status of the wallet. See WalletStatus
    rejection_reason String Reason for rejection if wallet is rejected; null otherwise
    is_eligible Boolean Whether the customer is eligible for recharge

    Error Codes:

    Error Code Description
    UNAUTHORIZED Your session isn't valid, please try logging again
    CUSTOMER_NOT_FOUND Customer not found
    CUSTOMER_INACTIVE Customer is inactive
    WALLET_NOT_FOUND Wallet not found
    NO_WALLET_CONFIGURED No wallet configured for customer
    WALLET_CLOSED / WALLET_INACTIVE / WALLET_CREDIT_FREEZE / WALLET_DEBIT_FREEZE / WALLET_FREEZE Wallet closed / inactive / credit-frozen / debit-frozen / completely frozen
    DATABASE_ERROR Failed to lookup customer
    INTERNAL_ERROR Internal server error

    Credit Transaction API

    Updates the status of a pending transaction (credit/recharge) based on the payment gateway response.

    Endpoint: POST /api/v1/fastag/dashboard/kotak/transaction/credit

    curl -L -X POST '{{host}}/api/v1/fastag/dashboard/kotak/transaction/credit' \
    -H 'content-type: application/json' \
    -H 'accept: application/json' \
    -H 'x-client-source: 811' \
    -H 'x-customer-crn: 100196918' \
    -H 'Authorization: Bearer <session_token>' \
    --data-raw '{
      "crn": "100196918",
      "transaction_id": "TXN123456789",
      "amount": 100.00,
      "status": "SUCCESS",
      "transaction_initiated_at": "2025-04-28T10:30:00Z",
      "transaction_completed_at": "2025-04-28T10:31:00Z",
      "order_id": "ORD123456789",
      "instrument_type": "PG",
      "instrument_id": "ID_1234567890",
      "credit_source": "RECHARGE",
      "instrument_display_value": "XXXX1234"
    }'
    
    # Response: 200 OK
    {
      "status": "SUCCESS",
      "response_code": "00",
      "response_message": "Success",
      "payload": {
        "message": "Transaction updated successfully"
      }
    }
    

    Request Parameters:

    Parameter Data Type Description Required
    crn String Customer's CRN Yes
    transaction_id String The gateway transaction ID to update Yes
    amount Decimal Transaction amount — must be positive with at most 2 decimal places Yes
    status String New status. See TransactionCreditStatus Yes
    transaction_initiated_at String When the transaction was initiated (ISO 8601 / RFC 3339) Yes
    transaction_completed_at String When the transaction completed (ISO 8601 / RFC 3339) No
    order_id String Order ID from the payment gateway Yes
    instrument_type String Instrument type. See PaymentInstrumentTypeV2 Yes
    instrument_id String Instrument ID (e.g. UPI VPA) Yes
    credit_source String Credit Source. See CreditSource Yes
    instrument_display_value String Masked display value of the payment instrument (e.g. "XXXX1234") No

    Response Parameters:

    Parameter Data Type Description
    message String Confirmation message for the transaction update

    Error Codes:

    Error Code Description
    BAD_REQUEST Invalid request parameters / Validation error
    WALLET_NOT_FOUND / WALLET_CLOSED / WALLET_INACTIVE / WALLET_CREDIT_FREEZE / WALLET_DEBIT_FREEZE / WALLET_FREEZE Wallet not found / closed / inactive / credit-frozen / debit-frozen / completely frozen
    UNAUTHORIZED Transaction does not belong to this customer
    WALLET_LIMIT_EXCEEDED Wallet limit exceeded. Available limit is returned in the error message. This transaction is set to FAILURE status
    CONFLICT Transaction already in terminal state
    INTERNAL_ERROR An internal error occurred. Please try again later.

    Vehicle Update APIs

    Initiate Vehicle Update

    Initiates a request to update vehicle information.

    Endpoint: POST /api/v1/fastag/dashboard/customer/vehicle-update/initiate

    curl -L -X POST '{{host}}/api/v1/fastag/dashboard/customer/vehicle-update/initiate' \
    -H 'content-type: application/json' \
    -H 'accept: application/json' \
    -H 'x-client-source: 811' \
    -H 'x-customer-crn: 100196918' \
    -H 'Authorization: Bearer <session_token>' \
    --data-raw '{
      "vehicle_id": "550e8400-e29b-41d4-a716-446655440000",
      "vrn": "MH01AB1234",
      "vin": "KA09AB1234ERLF2S0",
      "engine_number": "ENGINE123456"
    }'
    

    Sample Request - With raw S3 path:

    curl -L -X POST '{{host}}/api/v1/fastag/dashboard/customer/vehicle-update/initiate' \
    -H 'content-type: application/json' \
    -H 'accept: application/json' \
    -H 'x-client-source: 811' \
    -H 'x-customer-crn: 100196918' \
    -H 'Authorization: Bearer <session_token>' \
    --data-raw '{
      "vehicle_id": "550e8400-e29b-41d4-a716-446655440000",
      "vrn": "MH01AB1234",
      "vin": "KA09AB1234ERLF2S0",
      "engine_number": "ENGINE123456",
      "upload_uri_type": "PATH"
    }'
    
    # Response: 200 OK
    {
      "status": "SUCCESS",
      "response_code": "00",
      "response_message": "Request Success",
      "payload": {
        "application_id": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
        "existing_vehicle_details": {
          "vehicle_id": "550e8400-e29b-41d4-a716-446655440000",
          "vrn": "MH01AB1234",
          "vin": "CHASSIS123456",
          "engine_number": "ENGINE123456",
          "region_state": "MH",
          "fuel_type": "PETROL",
          "vehicle_class": "VC4",
          "model": "Camry",
          "is_commercial_vehicle": false
        },
        "vahan_details": {
          "vrn": "MH01AB1234",
          "vin": "CHASSIS123456",
          "engine_number": "ENGINE123456",
          "region_state": "MH",
          "fuel_type": "PETROL",
          "is_national_permit": false,
          "model": "Camry",
          "chassis_number": "CHASSIS123456",
          "national_permit_end_date": "2027-12-31",
          "gvw": "1500",
          "registered_vehicle": "MH01AB1234",
          "vehicle_descriptor": "Sedan"
        },
        "documents": [
          {
            "upload_uri": "https://s3-presigned-url-rc-front",
            "type": "RC_F"
          },
          {
            "upload_uri": "https://s3-presigned-url-rc-back",
            "type": "RC_B"
          }
        ]
      }
    }
    

    Response with raw S3 path:

    # Response: 200 OK
    {
      "status": "SUCCESS",
      "response_code": "00",
      "response_message": "Request Success",
      "payload": {
        "application_id": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
        "existing_vehicle_details": {
          "vehicle_id": "550e8400-e29b-41d4-a716-446655440000",
          "vrn": "MH01AB1234",
          "vin": "CHASSIS123456",
          "engine_number": "ENGINE123456",
          "region_state": "MH",
          "fuel_type": "PETROL",
          "vehicle_class": "VC4",
          "model": "Camry",
          "is_commercial_vehicle": false
        },
        "vahan_details": {
          "vrn": "MH01AB1234",
          "vin": "CHASSIS123456",
          "engine_number": "ENGINE123456",
          "region_state": "MH",
          "fuel_type": "PETROL",
          "is_national_permit": false,
          "model": "Camry",
          "chassis_number": "CHASSIS123456",
          "national_permit_end_date": "2027-12-31",
          "gvw": "1500",
          "registered_vehicle": "MH01AB1234",
          "vehicle_descriptor": "Sedan"
        },
        "documents": [
          {
            "upload_uri": "s3://bucket/vehicle-update/rc_front_abc123",
            "type": "RC_F"
          },
          {
            "upload_uri": "s3://bucket/vehicle-update/rc_back_def456",
            "type": "RC_B"
          }
        ]
      }
    }
    

    Request Parameters:

    Parameter Data Type Description Required
    vehicle_id String (UUID) Vehicle ID Yes
    vrn String Vehicle Registration Number No
    vin String Vehicle Identification Number No
    engine_number String Engine number Yes
    upload_uri_type String Upload URI type: URL (presigned S3 URL, default) or PATH (raw S3 path) No

    Response Parameters:

    Parameter Data Type Description
    application_id String (UUID) Application ID for the update request
    existing_vehicle_details Object(Existing Vehicle Details Object) Current vehicle details from database
    vahan_details Object(Vahan Details Object) Vahan API response with vehicle details
    documents Array(Vehicle Update Document Upload Info Object) List of document upload information

    Existing Vehicle Details Object

    Field Data Type Description
    vehicle_id String Vehicle ID
    vrn String Current VRN (optional)
    vin String Current VIN
    engine_number String Current engine number
    region_state String State of registration (optional)
    fuel_type String Fuel type (optional)
    vehicle_class String Vehicle class. See VehicleClass
    model String Vehicle model (optional)
    is_commercial_vehicle Boolean Whether vehicle is commercial

    Vahan Details Object

    Field Data Type Description
    vrn String VRN from Vahan
    vin String VIN from Vahan
    engine_number String Engine number from Vahan
    region_state String State of registration from Vahan
    fuel_type String Fuel type from Vahan
    is_national_permit Boolean Has national permit
    model String Vehicle model from Vahan
    chassis_number String Chassis number from Vahan
    national_permit_end_date String National permit end date
    gvw String Gross vehicle weight in kg
    registered_vehicle String Registered vehicle details
    vehicle_descriptor String Vehicle descriptor

    Vehicle Update Document Upload Info Object

    Field Data Type Description
    upload_uri String Presigned S3 upload URL (when upload_uri_type is URL) or raw S3 path (when upload_uri_type is PATH)
    type Enum Document type (See DocumentType)

    Error Codes:

    Error Code Description
    VEHICLE_NOT_FOUND Vehicle not found for the given ID
    APPLICATION_NOT_FOUND Vehicle update application not found
    ALREADY_SUBMITTED A vehicle update request is already submitted for this vehicle
    ALREADY_EXISTS VIN or VRN already exists
    ALREADY_VERIFIED_BY_VAHAN Field already verified from Vahan API
    VALIDATION_ERROR Vehicle validation failed (e.g., FASTag is closed, no linked FASTag)
    PAYABLE_DIFF_MISMATCH Security diff does not match server-calculated difference
    NETC_API_ERROR NETC API request failed
    TAG_PRICE_CONFIG_NOT_FOUND Tag price configuration not found for vehicle class
    WALLET_INELIGIBLE PPI wallet not eligible for security deposit debit
    UNAUTHORIZED Session invalid or customer CRN missing
    UNAUTHORIZED Customer does not own this vehicle
    WALLET_CREDIT_FREEZE Credit freeze - operation blocked
    WALLET_DEBIT_FREEZE Debit freeze - operation blocked
    WALLET_FREEZE Wallet frozen - operation blocked
    WALLET_CLOSED Wallet closed - operation not allowed
    WALLET_INACTIVE Wallet inactive - operation not allowed
    WALLET_NOT_FOUND Wallet not found
    DATABASE_ERROR Failed to fetch vehicle from database
    INTERNAL_SERVER_ERROR Internal server error

    Calculate Vehicle Class Cost

    Calculates the security deposit difference when changing a vehicle's class.

    Endpoint: POST /api/v1/fastag/dashboard/customer/vehicle-update/price

    curl -L -X POST '{{host}}/api/v1/fastag/dashboard/customer/vehicle-update/price' \
    -H 'content-type: application/json' \
    -H 'accept: application/json' \
    -H 'x-client-source: 811' \
    -H 'x-customer-crn: 100196918' \
    -H 'Authorization: Bearer <session_token>' \
    --data-raw '{
      "vehicle_class": "VC5",
      "channel_name": "DEFAULT",
      "vehicle_id": "550e8400-e29b-41d4-a716-446655440000"
    }'
    
    # Response: 200 OK
    {
      "status": "SUCCESS",
      "response_code": "00",
      "response_message": "Request Success",
      "payload": {
        "security_diff": 100.00,
        "wallet_flow": "Debit",
        "old_security": 200.00,
        "new_security": 300.00
      }}
    

    Request Parameters:

    Parameter Data Type Description Required
    vehicle_class String Target vehicle class. See VehicleClass Yes
    channel_name String Channel name. See FastagChannel Yes
    vehicle_id String (UUID) Vehicle ID Yes

    Response Parameters:

    Parameter Data Type Description
    security_diff Decimal Payable difference between new and old security deposit. null when equal
    wallet_flow String Debit when customer must pay, Credit when refund. null when equal. See TxnType
    old_security Decimal Current security deposit amount
    new_security Decimal Security deposit amount for the target vehicle class

    Error Codes:

    Error Code Description
    VEHICLE_NOT_FOUND Vehicle not found for the given ID
    APPLICATION_NOT_FOUND Vehicle update application not found
    ALREADY_SUBMITTED A vehicle update request is already submitted for this vehicle
    ALREADY_EXISTS VIN or VRN already exists
    ALREADY_VERIFIED_BY_VAHAN Field already verified from Vahan API
    VALIDATION_ERROR Validation error
    PAYABLE_DIFF_MISMATCH Security diff does not match server-calculated difference
    NETC_API_ERROR NETC API request failed
    TAG_PRICE_CONFIG_NOT_FOUND Tag price configuration not found for the specified vehicle class
    WALLET_INELIGIBLE PPI wallet not eligible for security deposit debit
    WALLET_CREDIT_FREEZE Credit freeze - operation blocked
    WALLET_DEBIT_FREEZE Debit freeze - operation blocked
    WALLET_FREEZE Wallet frozen - operation blocked
    WALLET_CLOSED Wallet closed - operation not allowed
    WALLET_INACTIVE Wallet inactive - operation not allowed
    WALLET_NOT_FOUND Wallet not found
    INTERNAL_SERVER_ERROR Internal server error

    Submit Vehicle Update

    Submits updated vehicle information.

    Endpoint: POST /api/v1/fastag/dashboard/customer/vehicle-update/submit

    curl -L -X POST '{{host}}/api/v1/fastag/dashboard/customer/vehicle-update/submit' \
    -H 'content-type: application/json' \
    -H 'accept: application/json' \
    -H 'x-client-source: 811' \
    -H 'x-customer-crn: 100196918' \
    -H 'Authorization: Bearer <session_token>' \
    --data-raw '{
      "application_id": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
      "vrn": "KA09AB1234",
      "vin": "KA09AB1234ERLF2S0",
      "engine_number": "ENG123456789",
      "vehicle_class": "VC5",
      "fuel_type": "PETROL",
      "is_commercial": false,
      "has_national_permit": false,
      "national_permit_expiry_date": "2027-12-31",
      "channel_name": "DEFAULT",
      "security_diff": 100.00,
      "documents": [
        {
          "type": "RcF",
          "extension": "pdf"
        },
        {
          "type": "RcB",
          "extension": "pdf"
        }
      ]
    }'
    
    # Response: 200 OK
    {
      "status": "SUCCESS",
      "response_code": "00",
      "response_message": "Request Success",
      "payload": {
        "id": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
        "status": "Submitted",
        "message": "Vehicle Update Application Submit Successfully"
      }
    }
    

    Request Parameters:

    Parameter Data Type Description Required
    application_id String (UUID) Application ID Yes
    vrn String Vehicle Registration Number No
    vin String Vehicle Identification Number No
    engine_number String Engine number No
    vehicle_class String Vehicle class. See VehicleClass No
    fuel_type String Fuel type No
    is_commercial Boolean Whether vehicle is commercial No
    has_national_permit Boolean Has national permit No
    national_permit_expiry_date String National permit expiry date No
    channel_name String Channel name. See FastagChannel Yes
    security_diff Decimal Expected payable difference from Calculate Vehicle Class Cost API No
    documents Array(Submitted RC Document Details) List of RC documents Yes

    Submitted RC Document Details

    Parameter Data Type Description Required
    type String Document type. See DocumentType Yes
    extension String File extension (e.g., pdf, jpg) Yes

    Response Parameters:

    Parameter Data Type Description
    id String (UUID) Application ID
    status Enum Application status. See VehicleUpdateRequestStatus
    message String Success message

    Error Codes:

    Error Code Description
    APPLICATION_NOT_FOUND Vehicle update application not found
    VEHICLE_NOT_FOUND Vehicle not found for the given ID
    ALREADY_SUBMITTED A vehicle update request is already submitted for this vehicle
    VALIDATION_ERROR Validation error
    ALREADY_VERIFIED_BY_VAHAN Field already verified from Vahan API
    ALREADY_EXISTS VIN or VRN already registered with another active vehicle
    PAYABLE_DIFF_MISMATCH Security diff does not match server-calculated difference
    NETC_API_ERROR NETC API request failed
    TAG_PRICE_CONFIG_NOT_FOUND Tag price configuration not found for the specified vehicle class
    WALLET_INELIGIBLE PPI wallet not eligible for security deposit debit
    UNAUTHORIZED Session invalid or customer CRN missing
    UNAUTHORIZED Customer does not own this vehicle
    WALLET_CREDIT_FREEZE Credit freeze - operation blocked
    WALLET_DEBIT_FREEZE Debit freeze - operation blocked
    WALLET_FREEZE Wallet frozen - operation blocked
    WALLET_CLOSED Wallet closed - operation not allowed
    WALLET_INACTIVE Wallet inactive - operation not allowed
    WALLET_NOT_FOUND Wallet not found
    INTERNAL_SERVER_ERROR Internal server error

    List Vehicle Updates

    Lists all vehicle update requests for the customer.

    Endpoint: POST /api/v1/fastag/dashboard/customer/vehicle-update/list

    curl -L -X POST '{{host}}/api/v1/fastag/dashboard/customer/vehicle-update/list' \
    -H 'content-type: application/json' \
    -H 'accept: application/json' \
    -H 'x-client-source: 811' \
    -H 'x-customer-crn: 100196918' \
    -H 'Authorization: Bearer <session_token>' \
    --data-raw '{
      "start_time": "2024-01-01T00:00:00Z",
      "end_time": "2024-12-31T23:59:59Z",
      "page_no": 1,
      "page_size": 10,
      "status": ["PENDING", "SUBMITTED"],
      "application_id": "550e8400-e29b-41d4-a716-446655440000"
    }'
    
    # Response: 200 OK
    {
      "status": "SUCCESS",
      "response_code": "00",
      "response_message": "Request Success",
      "payload": {
        "data": [
          {
            "application_id": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
            "application_ref_id": "VUABC1234",
            "status": "Submitted",
            "customer_seq_id": "SEQ_001",
            "customer_mobile": "9876543210",
            "customer_crn": "100196918",
            "original_vrn": "MH01AB1234",
            "original_vin": "OLD_CHASSIS123",
            "original_engine_number": "OLD_ENGINE123",
            "new_vin": "NEW_CHASSIS456",
            "new_vrn": "MH02CD5678",
            "created_at": "2024-01-15 10:30:00"
          }
        ],
        "total_count": 1
      }
    }
    

    Request Parameters:

    Parameter Data Type Description Required
    start_time String Start time in RFC3339 format. Must be before end_time and the date range cannot exceed 45 days. Yes
    end_time String End time in RFC3339 format. Must be after start_time and the date range cannot exceed 45 days. Yes
    page_no Number Page number (starts from 1) Yes
    page_size Number Items per page Yes
    status Array(Enum) Filter by status. See VehicleUpdateRequestStatus No
    application_id String (UUID) Filter by specific application ID No

    Response Parameters:

    Parameter Data Type Description
    data Array(Vehicle Update Summary Item Object) List of vehicle updates
    total_count Number Total records

    Vehicle Update Summary Item Object

    Field Data Type Description
    application_id String (UUID) Application ID
    application_ref_id String Application reference ID
    status Enum Status. See VehicleUpdateRequestStatus
    customer_seq_id String Customer sequence ID
    customer_mobile String Customer mobile number
    customer_crn String Customer CRN
    original_vrn String Original VRN (optional)
    original_vin String Original VIN
    original_engine_number String Original engine number
    new_vin String New VIN (optional)
    new_vrn String New VRN (optional)
    created_at String Created timestamp

    Error Codes:

    Error Code Description
    BAD_REQUEST Invalid start_time or end_time format / validation error
    UNAUTHORIZED Session invalid
    VEHICLE_NOT_FOUND Vehicle not found for the given ID
    APPLICATION_NOT_FOUND Vehicle update application not found
    ALREADY_SUBMITTED A vehicle update request is already submitted for this vehicle
    ALREADY_EXISTS VIN or VRN already exists
    ALREADY_VERIFIED_BY_VAHAN Field already verified from Vahan API
    VALIDATION_ERROR Validation error
    PAYABLE_DIFF_MISMATCH Security diff does not match server-calculated difference
    NETC_API_ERROR NETC API request failed
    TAG_PRICE_CONFIG_NOT_FOUND Tag price configuration not found
    WALLET_INELIGIBLE PPI wallet not eligible for security deposit debit
    INTERNAL_SERVER_ERROR Failed to list vehicle updates

    Get Vehicle Update Details

    Gets detailed information of a specific vehicle update request.

    Endpoint: GET /api/v1/fastag/dashboard/customer/vehicle-update/details/{application_id}

    curl -L -X GET '{{host}}/api/v1/fastag/dashboard/customer/vehicle-update/details/a1b2c3d4-e5f6-7890-abcd-ef1234567890' \
    -H 'content-type: application/json' \
    -H 'accept: application/json' \
    -H 'x-client-source: 811' \
    -H 'x-customer-crn: 100196918' \
    -H 'Authorization: Bearer <session_token>'
    
    # Response: 200 OK
    {
      "status": "SUCCESS",
      "response_code": "00",
      "response_message": "Request Success",
      "payload": {
        "application_id": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
        "application_ref_id": "VUABC1234",
        "status": "Submitted",
        "customer_seq_id": "SEQ_001",
        "customer_crn": "100196918",
        "customer_mobile_number": "9876543210",
        "customer_first_name": "John",
        "customer_middle_name": "Kumar",
        "customer_last_name": "Doe",
        "customer_email": "john.doe@example.com",
        "customer_kyc_status": "FKYC",
        "original_vrn": "MH01AB1234",
        "original_vin": "OLD_CHASSIS123",
        "original_engine_number": "OLD_ENGINE123",
        "new_vehicle_details": {
          "vrn": "MH02CD5678",
          "vin": "NEW_CHASSIS456",
          "engine_number": "NEW_ENGINE456",
          "vehicle_class": "VC5",
          "fuel_type": "DIESEL",
          "is_commercial": true,
          "has_national_permit": false,
          "national_permit_expiry_date": "2027-12-31",
          "security_deposit": 300.00
        },
        "vahan_details": {
          "vrn": "MH02CD5678",
          "vin": "NEW_CHASSIS456",
          "engine_number": "NEW_ENGINE456",
          "region_state": "MH",
          "fuel_type": "DIESEL",
          "is_national_permit": false,
          "model": "Camry",
          "chassis_number": "NEW_CHASSIS456",
          "national_permit_end_date": "2027-12-31",
          "gvw": "2000",
          "registered_vehicle": "MH01AB1234",
          "vehicle_descriptor": "Sedan"
        },
        "rc_documents": [
          {
            "download_uri": "https://s3-presigned-download-url-front",
            "type": "RC_F",
            "extension": "pdf"
          },
          {
            "download_uri": "https://s3-presigned-download-url-back",
            "type": "RC_B",
            "extension": "pdf"
          }
        ],
        "old_vehicle_details": {
          "vrn": "MH01AB1234",
          "vin": "OLD_CHASSIS123",
          "engine_number": "OLD_ENGINE123",
          "vehicle_class": "VC4",
          "fuel_type": "PETROL",
          "is_commercial": false,
          "has_national_permit": false,
          "national_permit_expiry_date": "2027-12-31",
          "old_vc_security_deposit": 200.00
        },
        "created_at": "2024-01-15 10:30:00"
      }
    }
    

    Path Parameters:

    Parameter Data Type Description Required
    application_id String (UUID) Application ID Yes

    Response Parameters:

    Parameter Data Type Description
    application_id String (UUID) Application ID
    application_ref_id String Application reference ID
    status Enum Status. See VehicleUpdateRequestStatus
    customer_seq_id String Customer sequence ID (optional)
    customer_crn String Customer CRN
    customer_mobile_number String Customer mobile number
    customer_first_name String Customer first name
    customer_middle_name String Customer middle name (optional)
    customer_last_name String Customer last name
    customer_email String Customer email address (optional)
    customer_kyc_status Enum Customer KYC status. See KycStatus
    original_vrn String Original VRN (optional)
    original_vin String Original VIN
    original_engine_number String Original engine number
    new_vehicle_details Object(New Vehicle Details Object) New vehicle details
    vahan_details Object(Vahan Details Object) Vahan API response
    rc_documents Array(Vehicle Update Document Download Info Object) RC documents with download URLs (optional)
    old_vehicle_details Object(Old Vehicle Info Object) Old vehicle details
    created_at String Created timestamp

    New Vehicle Details Object

    Field Data Type Description
    vrn String New VRN (optional)
    vin String New VIN (optional)
    engine_number String New engine number (optional)
    vehicle_class Enum Vehicle class. See VehicleClass (optional)
    fuel_type String Fuel type (optional)
    is_commercial Boolean Whether vehicle is commercial (optional)
    has_national_permit Boolean Has national permit (optional)
    national_permit_expiry_date String National permit expiry date (optional)
    security_deposit Decimal Security deposit for the new vehicle class (optional)

    Old Vehicle Info Object

    Field Data Type Description
    vrn String Old VRN (optional)
    vin String Old VIN
    engine_number String Old engine number
    vehicle_class Enum Vehicle class. See VehicleClass
    fuel_type String Fuel type (optional)
    is_commercial Boolean Whether vehicle is commercial
    has_national_permit Boolean Has national permit
    national_permit_expiry_date String National permit expiry date (optional)
    old_vc_security_deposit Decimal Security deposit amount for the old vehicle class (optional)

    Vehicle Update Document Download Info Object

    Field Data Type Description
    download_uri String Presigned S3 download URL
    type Enum Document type (See DocumentType)
    extension String File extension (optional)

    Error Codes:

    Error Code Description
    APPLICATION_NOT_FOUND Vehicle update application not found
    UNAUTHORIZED Session invalid
    UNAUTHORIZED Customer does not own this vehicle
    VEHICLE_NOT_FOUND Vehicle not found for the given ID
    ALREADY_SUBMITTED A vehicle update request is already submitted for this vehicle
    ALREADY_EXISTS VIN or VRN already exists
    ALREADY_VERIFIED_BY_VAHAN Field already verified from Vahan API
    VALIDATION_ERROR Validation error
    PAYABLE_DIFF_MISMATCH Security diff does not match server-calculated difference
    NETC_API_ERROR NETC API request failed
    TAG_PRICE_CONFIG_NOT_FOUND Tag price configuration not found
    WALLET_INELIGIBLE PPI wallet not eligible for security deposit debit
    INTERNAL_SERVER_ERROR Failed to get vehicle update details

    Transaction APIs

    Transaction Statement

    Generates a comprehensive transaction statement for the customer.

    Endpoint: POST /api/v1/fastag/dashboard/customer/transaction/statement

    curl -L -X POST '{{host}}/api/v1/fastag/dashboard/customer/transaction/statement' \
    -H 'content-type: application/json' \
    -H 'accept: application/json' \
    -H 'x-client-source: 811' \
    -H 'x-customer-crn: 100196918' \
    -H 'Authorization: Bearer <session_token>' \
    --data-raw '{
      "vrn": "MH12AB1234",
      "start_time": "2024-04-01T00:00:00Z",
      "end_time": "2024-04-30T23:59:59Z",
      "format": "RAW"
    }'
    
    # Response: 200 OK
    {
      "status": "SUCCESS",
      "response_code": "00",
      "response_message": "Request Success",
      "payload": {
        "download_uri": null,
        "statement": {
        "customer_statement_details": {
          "customer_details": {
            "customer_id": "CUST123456",
            "crn": "100196918",
            "mobile_number": "9876543210",
            "customer_name": "John Doe",
            "kyc_status": "FKYC",
            "email_address": "john.doe@example.com",
            "delivery_address": "123 Main Street, Mumbai",
            "total_active_tags": 2
          },
          "statement_date_time": "2025-04-28T18:00:00Z",
          "statement_period": "2025-01-01 to 2025-04-28",
          "total_vehicle": 2,
          "wallet_opening_balance": 1500.00,
          "wallet_closing_balance": 1300.00,
          "master_opening_balance": 5000.00,
          "master_closing_balance": 4800.00,
          "master_account_number": "1234567890",
          "gstn_no": "27AABCU9603R1ZM",
          "security_deposit": 200.00
        },
        "vehicle_summary": [
          {
            "vehicle_number": "MH12AB1234",
            "serial_no": "1",
            "barcode": "BAR123456",
            "tag_id": "TAG123456789",
            "vehicle_class": "VC4",
            "commercial_flag": "YES",
            "trip_count": 45,
            "txn_amount": 4500.00,
            "group_name": "Fleet A"
          }
        ],
        "master_account_details": [
          {
            "transaction_date_and_time": "2025-04-28T10:30:00Z",
            "processing_date_and_time": "2025-04-28T10:35:00Z",
            "unique_transaction_id": "TXN123456789",
            "transaction_type": "DR",
            "transaction_description": "Toll deduction at Mumbai Plaza",
            "account_number": "1234567890",
            "debit_amt": 200.00,
            "credit_amt": 0.00,
            "opening_balance": 5000.00,
            "closing_balance": 4800.00
          }
        ],
        "wallet_transaction_details": [
          {
            "transaction_date_and_time": "2025-04-28T10:30:00Z",
            "processing_date_and_time": "2025-04-28T10:35:00Z",
            "unique_transaction_id": "TXN123456789",
            "transaction_type": "DR",
            "transaction_description": "Toll deduction at Mumbai Plaza",
            "debit_amt": 200.00,
            "credit_amt": 0.00,
            "opening_balance": 1500.00,
            "closing_balance": 1300.00,
            "plaza_code": "MUM001",
            "plaza_name": "Mumbai Plaza",
            "lane_id": "L1",
            "transaction_date": "2025-04-28",
            "trip_number": "TRIP123",
            "vrn_or_vin": "MH12AB1234",
            "tag_id": "TAG123456789",
            "tag_serial_number": "TSN123456",
            "group_name": "Fleet A"
          }
        ],
        "payment_to_kotak_bank": [
          {
            "transaction_date_and_time": "2025-04-28T10:30:00Z",
            "unique_transaction_id": "TXN123456789",
            "transaction_description": "Toll payment",
            "hsn_code": "996311",
            "vehicle_number": "MH12AB1234",
            "tag_id": "TAG123456789",
            "serial_no": "1",
            "transaction_amount": 200.00,
            "sgst": 9.00,
            "igst": 0.00,
            "cgst": 9.00,
            "grand_total": 218.00
          }
        ]
      }
    }
    }
    

    Request Parameters:

    Parameter Data Type Description Required
    vrn String Vehicle Registration Number to filter No
    start_time String Start time in RFC3339 format Yes
    end_time String End time in RFC3339 format Yes
    format Enum Statement format. See CustomerStatementFormat. Defaults to XLSX No

    Response Parameters:

    Parameter Data Type Description
    download_uri String Presigned S3 download URL (present when format is XLSX, null for RAW)
    statement Object(Customer Statement Response Object) Statement data (present when format is RAW, null for XLSX)

    Customer Statement Response Object

    Parameter Data Type Description
    customer_statement_details Object(Customer Statement Details Object) Customer and statement summary information
    vehicle_summary Array(Vehicle Summary Object) Summary of each vehicle's transactions
    master_account_details Array(Master Account Details Object) Master wallet transaction details
    wallet_transaction_details Array(Wallet Transaction Details Object) PPI wallet transaction details
    payment_to_kotak_bank Array(Payment To Kotak Bank Object) Tax breakdown for payments

    Customer Statement Details Object

    Parameter Data Type Description
    customer_details Object(Report Customer Details Object) Customer identification and contact details
    statement_date_time String Timestamp when statement was generated
    statement_period String Date range of the statement
    total_vehicle Number Total number of vehicles
    wallet_opening_balance Decimal PPI wallet opening balance
    wallet_closing_balance Decimal PPI wallet closing balance
    master_opening_balance Decimal Master wallet opening balance
    master_closing_balance Decimal Master wallet closing balance
    master_account_number String Master account number
    gstn_no String GSTIN number of Kotak Bank
    security_deposit Decimal Total security deposit

    Report Customer Details Object

    Parameter Data Type Description
    customer_id String Unique customer identifier
    crn String Customer Reference Number
    mobile_number String Customer's mobile number
    customer_name String Full name of the customer
    kyc_status Enum KYC verification status. See KycStatus
    email_address String Customer's email address
    delivery_address String Customer's delivery address
    total_active_tags Number Number of active FASTag tags

    Vehicle Summary Object

    Parameter Data Type Description
    vehicle_number String Vehicle registration number
    serial_no String Serial number
    barcode String FASTag barcode
    tag_id String FASTag ID
    vehicle_class String Vehicle classification
    commercial_flag String Commercial vehicle indicator
    trip_count Number Total number of trips
    txn_amount Decimal Total transaction amount
    group_name String Vehicle group name

    Master Account Details Object

    Parameter Data Type Description
    transaction_date_and_time String Transaction timestamp
    processing_date_and_time String Processing timestamp
    unique_transaction_id String Unique transaction identifier
    transaction_type String Type. See DbTransactionType
    transaction_description String Transaction description
    account_number String Account number
    debit_amt Decimal Debit amount
    credit_amt Decimal Credit amount
    opening_balance Decimal Opening balance
    closing_balance Decimal Closing balance

    Wallet Transaction Details Object

    Parameter Data Type Description
    transaction_date_and_time String Transaction timestamp
    processing_date_and_time String Processing timestamp
    unique_transaction_id String Unique transaction identifier
    transaction_type String Type. See DbTransactionType
    transaction_description String Transaction description
    debit_amt Decimal Debit amount
    credit_amt Decimal Credit amount
    opening_balance Decimal Opening balance
    closing_balance Decimal Closing balance
    plaza_code String Toll plaza code
    plaza_name String Toll plaza name
    lane_id String Lane identifier
    transaction_date String Transaction date
    trip_number String Trip identifier
    vrn_or_vin String Vehicle registration or VIN
    tag_id String FASTag ID
    tag_serial_number String FASTag serial number
    group_name String Transaction group name

    Payment To Kotak Bank Object

    Parameter Data Type Description
    transaction_date_and_time String Transaction timestamp
    unique_transaction_id String Unique transaction identifier
    transaction_description String Transaction description
    hsn_code String HSN code for GST
    vehicle_number String Vehicle registration number
    tag_id String FASTag ID
    serial_no String Serial number
    transaction_amount Decimal Base transaction amount
    sgst Decimal State GST
    igst Decimal Integrated GST
    cgst Decimal Central GST
    grand_total Decimal Total amount including tax

    Error Codes:

    Error Code Description
    BAD_REQUEST Customer not registered / Customer ID not found in session
    BAD_REQUEST Validation error
    INTERNAL_SERVER_ERROR Failed to generate statement

    Application Transactions List

    Lists transactions for a specific FASTag application.

    Endpoint: POST /api/v1/fastag/dashboard/customer/applications/transactions/list

    curl -L -X POST '{{host}}/api/v1/fastag/dashboard/customer/applications/transactions/list' \
    -H 'content-type: application/json' \
    -H 'accept: application/json' \
    -H 'x-client-source: 811' \
    -H 'x-customer-crn: 100196918' \
    -H 'Authorization: Bearer <session_token>' \
    --data-raw '{
      "application_id": "550e8400-e29b-41d4-a716-446655440000"
    }'
    
    # Response: 200 OK
    {
      "status": "SUCCESS",
      "response_code": "00",
      "response_message": "Request Success",
      "payload": {
        "transactions": [
          {
            "txn_status": "SUCCESS",
            "txn_id": "a3ea86e4094649d4bcacf6fe858f42fd",
            "transactions_ref_id": "REF_789",
            "txn_mode": "PG",
            "txn_timestamp": "2024-01-15T10:30:00Z",
            "order_id": "pg_09c275d8-a87c-4beb-a38c-5c89f18bbf4d",
            "txn_amount": 600.00
          }
        ]
      }
    }
    

    Request Parameters:

    Parameter Data Type Description Required
    application_id String (UUID) Application ID Yes

    Response Parameters:

    Parameter Data Type Description
    transactions Array(Application Transaction Object) List of application transactions

    Application Transaction Object

    Parameter Data Type Description
    txn_status String - See DbTransactionStatus Transaction status
    txn_id String Transaction ID
    transactions_ref_id String Transaction reference ID
    txn_mode String Transaction mode (e.g., PG, WALLET)
    txn_timestamp String Transaction timestamp
    order_id String Order ID (optional)
    txn_amount Decimal Transaction amount

    Error Codes:

    Error Code Description
    BAD_REQUEST Application not found / validation error / Invalid application ID format
    UNAUTHORIZED Not authorized to perform this action on this application
    BAD_REQUEST Request failed (internal error)

    Auto-Recharge APIs

    Get Auto-Recharge Config

    Gets the customer's auto-recharge configuration.

    Endpoint: GET /api/v1/fastag/dashboard/customer/auto-recharge/config

    curl -L -X GET '{{host}}/api/v1/fastag/dashboard/customer/auto-recharge/config' \
    -H 'content-type: application/json' \
    -H 'accept: application/json' \
    -H 'x-client-source: 811' \
    -H 'x-customer-crn: 100196918' \
    -H 'Authorization: Bearer <session_token>' \
    

    Sample Response - Auto-Recharge Enabled:

    # Response: 200 OK
    {
      "status": "SUCCESS",
      "response_code": "00",
      "response_message": "Request Success",
      "payload": {
        "is_enabled": true,
        "instrument_type": "SBA",
        "instrument_id": "ACC1234567890",
        "instrument_display_value": "XXXX-7890",
        "recharge_amount": "500",
        "threshold_amount": "200",
        "min_recharge": "100",
        "max_recharge_casa": "10000",
        "max_recharge_cc": "25000",
        "min_threshold": "100"
      }
    }
    

    Sample Response - Auto-Recharge Not Configured:

    # Response: 200 OK
    {
      "status": "SUCCESS",
      "response_code": "00",
      "response_message": "Request Success",
      "payload": {
        "is_enabled": false,
        "recharge_amount": "100",
        "threshold_amount": "100",
        "min_recharge": "100",
        "max_recharge_casa": "10000",
        "max_recharge_cc": "25000",
        "min_threshold": "100"
      }
    }
    

    Response Parameters:

    Parameter Data Type Description
    is_enabled Boolean Whether auto-recharge is currently enabled
    instrument_type String Instrument type (CC, SBA, CAA, or PG). See PaymentInstrumentTypeV2 - only if configured
    instrument_id String Instrument ID (account number or card number) - only if configured
    instrument_display_value String Instrument display value (e.g., "XXXX-1234") - only if configured
    recharge_amount String Current recharge amount if configured; suggested minimum amount otherwise
    threshold_amount String Current threshold amount if configured; suggested minimum threshold otherwise
    min_recharge String Minimum recharge amount (hard limit based on customer context)
    max_recharge_casa String Maximum recharge amount for CASA/OD/Prepaid (SBA, CAA, PG) - hard limit
    max_recharge_cc String Maximum recharge amount for Credit Card (CC) - hard limit
    min_threshold String Minimum threshold amount (hard limit based on customer context)

    Error Codes:

    Error Code Description
    UNAUTHORIZED Your session isn't valid, please try logging again
    CUSTOMER_NOT_FOUND Customer not found
    WALLET_NOT_FOUND / WALLET_CLOSED / WALLET_INACTIVE / WALLET_CREDIT_FREEZE / WALLET_DEBIT_FREEZE / WALLET_FREEZE Wallet not found / closed / inactive / credit-frozen / debit-frozen / completely frozen
    DATABASE_ERROR Failed to fetch customer details
    INTERNAL_ERROR Failed to get auto-recharge settings

    Submit Auto-Recharge

    Enables/modifies/disables auto-recharge directly without OTP validation (K811 flow).

    Endpoint: POST /api/v1/fastag/dashboard/customer/auto-recharge/submit

    Sample Request - Enable/Modify:

    curl -L -X POST '{{host}}/api/v1/fastag/dashboard/customer/auto-recharge/submit' \
    -H 'content-type: application/json' \
    -H 'accept: application/json' \
    -H 'x-client-source: 811' \
    -H 'x-customer-crn: 100196918' \
    -H 'Authorization: Bearer <session_token>' \
    --data-raw '{
      "autoRechargeConfigs": {
        "operation": "enable",
        "instrument_id": "ACC1234567890",
        "recharge_amount": "5000",
        "threshold_amount": "2000"
      }
    }'
    

    Sample Request - Disable:

    curl -L -X POST '{{host}}/api/v1/fastag/dashboard/customer/auto-recharge/submit' \
    -H 'content-type: application/json' \
    -H 'accept: application/json' \
    -H 'x-client-source: 811' \
    -H 'x-customer-crn: 100196918' \
    -H 'Authorization: Bearer <session_token>' \
    --data-raw '{
      "autoRechargeConfigs": {
        "operation": "disable"
      }
    }'
    
    # Response: 200 OK
    {
      "status": "SUCCESS",
      "response_code": "00",
      "response_message": "Request Success",
      "payload": {
        "success": true,
        "message": "Auto-recharge enabled successfully",
        "operation": "enable",
        "auto_recharge_id": "550e8400-e29b-41d4-a716-446655440000"
      }
    }
    

    Request Parameters:

    Parameter Data Type Description Required
    autoRechargeConfigs Object Auto-recharge configuration Yes

    autoRechargeConfigs Object:

    Parameter Data Type Description Required
    operation String Operation type: enable, modify, or disable. See AutoRechargeOperation Yes
    instrument_id String Instrument ID (account number or card number) Yes (for enable/modify)
    recharge_amount String Recharge amount to be debited Yes (for enable/modify)
    threshold_amount String Threshold amount that triggers auto-recharge Yes (for enable/modify)

    *Note : For recharge_amount and threshold_amount, string must not contain decimal places.

    Response Parameters:

    Parameter Data Type Description
    success Boolean Whether the operation was successful
    message String Response message
    operation String The operation that was performed. See AutoRechargeOperation - only present on success
    auto_recharge_id String Auto-recharge ID (if successfully created/updated)

    Error Codes:

    Error Code Description
    UNAUTHORIZED Your session isn't valid, please try logging again
    CUSTOMER_NOT_FOUND Customer not found
    VALIDATION_ERROR Invalid request parameters (e.g., missing required fields, PG instrument not supported, amounts out of valid range)
    DAILY_LIMIT_EXCEEDED Auto-recharge can only be set or edited once per day
    NO_CONFIG_FOUND No auto-recharge config found for the OTP reference
    OTP_REFERENCE_MISMATCH OTP reference ID mismatch
    OTP_ALREADY_ACTIVE An OTP is already active - please wait for it to expire
    AUTO_RECHARGE_ENABLE_FAILED Failed to enable auto-recharge
    AUTO_RECHARGE_MODIFY_FAILED Failed to modify auto-recharge
    AUTO_RECHARGE_DISABLE_FAILED Failed to disable auto-recharge
    DATABASE_ERROR Database error
    WALLET_NOT_FOUND / WALLET_CLOSED / WALLET_INACTIVE / WALLET_CREDIT_FREEZE / WALLET_DEBIT_FREEZE / WALLET_FREEZE Wallet not found / closed / inactive / credit-frozen / debit-frozen / completely frozen
    INTERNAL_SERVER_ERROR Internal server error

    Complaint APIs

    Complaint Configuration

    Gets the complaint configuration settings.

    Endpoint: GET /api/v1/fastag/dashboard/customer/complaints/configuration

    curl -L -X GET '{{host}}/api/v1/fastag/dashboard/customer/complaints/configuration' \
    -H 'content-type: application/json' \
    -H 'accept: application/json' \
    -H 'x-client-source: 811' \
    -H 'x-customer-crn: 100196918' \
    -H 'Authorization: Bearer <session_token>' \
    
    # Response: 200 OK
    {
      "status": "SUCCESS",
      "response_code": "00",
      "response_message": "Request Success",
      "payload": {
        "complaints": [
          {
            "display_name": "Tag Not Working",
            "complaint_configuration_id": "550e8400-e29b-41d4-a716-446655440000",
            "is_txn_mandatory": true,
            "is_full_partial_allowed": false,
            "txn_filter": {
              "sources": ["NETC"],
              "transaction_types": ["DR"],
              "cooling_period": 7
            },
            "types": [
              {
                "display_name": "Tag Not Read",
                "complaint_configuration_id": "660e8400-e29b-41d4-a716-446655440001",
                "documents_required": [
                  {
                    "file_name": "receipt_image",
                    "display_name": "Receipt Image",
                    "is_mandatory": true
                  }
                ],
                "is_full_partial_allowed": true,
                "is_txn_mandatory": true,
                "txn_filter": {
                  "sources": ["NETC"],
                  "transaction_types": ["DR"],
                  "cooling_period": 3
                },
                "reason_code": "TAG_NOT_READ"
              }
            ]
          }
        ]
      }
    }
    

    Response Parameters:

    Parameter Data Type Description
    complaints Array(Complaint Type Object) List of complaint types with nested subtypes.

    Complaint Type Object

    Parameter Data Type Description
    display_name String Display name of the complaint type
    complaint_configuration_id UUID Unique identifier for the complaint configuration
    is_txn_mandatory Boolean Whether transaction is mandatory for this complaint type (optional)
    is_full_partial_allowed Boolean Whether full/partial refund is allowed (optional)
    txn_filter Object(Txn Filter Object) Transaction filter criteria (optional)
    types Array(Complaint Subtype Object) List of complaint subtypes.

    Complaint Subtype Object

    Parameter Data Type Description
    display_name String Display name of the complaint subtype
    complaint_configuration_id UUID Unique identifier for the complaint configuration
    documents_required Array(Complaint Configuration Document Object) List of required documents (optional)
    is_full_partial_allowed Boolean Whether full/partial refund is allowed (optional)
    is_txn_mandatory Boolean Whether transaction is mandatory for this subtype (optional)
    txn_filter Object(Txn Filter Object) Transaction filter criteria (optional)
    reason_code String Reason code for the complaint (optional)

    Complaint Configuration Document Object

    Parameter Data Type Description
    file_name String File name of the required document
    display_name String Display name of the document
    is_mandatory Boolean Whether the document is mandatory

    Txn Filter Object

    Parameter Data Type Description
    sources Array List of transaction sources
    transaction_types Array List of transaction types (nullable)
    cooling_period Number Cooling period in days before a complaint can be raised (nullable)

    Error Codes:

    Error Code Description
    INTERNAL_SERVER_ERROR Failed to fetch complaint configurations

    Raise Complaint

    Raises a new complaint.

    Endpoint: POST /api/v1/fastag/dashboard/customer/complaints/raise

    curl -L -X POST '{{host}}/api/v1/fastag/dashboard/customer/complaints/raise' \
    -H 'content-type: application/json' \
    -H 'accept: application/json' \
    -H 'x-client-source: 811' \
    -H 'x-customer-crn: 100196918' \
    -H 'Authorization: Bearer <session_token>' \
    --data-raw '{
      "complaint_configuration_id": "550e8400-e29b-41d4-a716-446655440000",
      "description": "Transaction not reflected",
      "transaction_id": "660e8400-e29b-41d4-a716-446655440001",
      "email": "user@example.com",
      "amount": "100.00"
    }'
    
    # Response: 200 OK
    {
      "status": "SUCCESS",
      "response_code": "00",
      "response_message": "Request Success",
      "payload": {
        "complaint_id": "550e8400-e29b-41d4-a716-446655440000",
        "complaint_ref_id": "COMP_123456",
        "status": "Pending",
        "documents": [
          {
            "file_name": "receipt.jpg",
            "display_name": "Receipt",
            "upload_uri": "https://s3-bucket.s3.amazonaws.com/temp/complaint/2024/01/15/receipt.jpg?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=...&X-Amz-Signature=..."
          }
        ]
      }
    }
    

    Request Parameters:

    Parameter Data Type Description Required
    complaint_configuration_id String Complaint configuration ID from configuration endpoint Yes
    description String Complaint description Yes
    transaction_id String Transaction ID (optional) No
    email String Email address (optional) No
    amount String Dispute amount (optional) No
    upload_uri_type Enum Upload URI type. See RequestedPathType. Defaults to "URL" No

    Response Parameters:

    Parameter Data Type Description
    complaint_id UUID Created complaint ID
    complaint_ref_id String Complaint reference ID
    status String Complaint status. See ComplaintStatus
    documents Array(Complaint Document Upload Object) List of documents to upload (nullable)

    Complaint Document Upload Object

    Parameter Data Type Description
    file_name String File name of the document
    display_name String Display name of the document
    upload_uri String Upload URI — presigned S3 PUT URL when upload_uri_type is URL (default), or raw S3 path when upload_uri_type is PATH

    Error Codes:

    Error Code Description
    BAD_REQUEST Customer ID not found in session, or invalid dispute amount / validation error
    TRANSACTION_NOT_ELIGIBLE Transaction is not eligible for complaint
    CONFLICT Complaint already raised for this transaction
    NOT_FOUND Transaction not found, complaint configuration not found, or customer not found
    INTERNAL_SERVER_ERROR Failed to raise complaint

    Submit Complaint

    Submits a complaint for processing after uploading required documents.

    Endpoint: POST /api/v1/fastag/dashboard/customer/complaints/submit

    curl -L -X POST '{{host}}/api/v1/fastag/dashboard/customer/complaints/submit' \
    -H 'content-type: application/json' \
    -H 'accept: application/json' \
    -H 'x-client-source: 811' \
    -H 'x-customer-crn: 100196918' \
    -H 'Authorization: Bearer <session_token>' \
    --data-raw '{
      "complaint_id": "550e8400-e29b-41d4-a716-446655440000",
      "documents_uploaded": [
        {
          "file_name": "receipt.jpg",
          "extension": "jpg"
        }
      ]
    }'
    
    # Response: 200 OK
    {
      "status": "SUCCESS",
      "response_code": "00",
      "response_message": "Request Success",
      "payload": {
        "complaint_id": "550e8400-e29b-41d4-a716-446655440000",
        "complaint_ref_id": "COMP_123456",
        "status": "Submitted"
      }
    }
    

    Request Parameters:

    Parameter Data Type Description Required
    complaint_id UUID Complaint ID to submit Yes
    documents_uploaded Array(Uploaded Document Object) List of uploaded documents. No

    Response Parameters:

    Parameter Data Type Description
    complaint_id UUID Submitted complaint ID
    complaint_ref_id String Complaint reference ID
    status String Complaint status. See ComplaintStatus

    Uploaded Document Object

    Parameter Data Type Description
    extension String File extension (e.g., jpg, pdf)
    file_name String File name of the uploaded document

    Error Codes:

    Error Code Description
    BAD_REQUEST Customer not registered , complaint not in pending status / documents not provided / invalid document
    MANDATORY_DOCUMENT_MISSING Required document is missing
    NOT_FOUND Complaint not found for the given ID
    FORBIDDEN You are not authorized to submit this complaint
    INTERNAL_SERVER_ERROR Failed to process request

    List Complaints

    Lists all complaints for the customer.

    Endpoint: POST /api/v1/fastag/dashboard/customer/complaints/list

    curl -L -X POST '{{host}}/api/v1/fastag/dashboard/customer/complaints/list' \
    -H 'content-type: application/json' \
    -H 'accept: application/json' \
    -H 'x-client-source: 811' \
    -H 'x-customer-crn: 100196918' \
    -H 'Authorization: Bearer <session_token>' \
    --data-raw '{
      "start_date": "2024-01-01T00:00:00Z",
      "end_date": "2024-02-01T00:00:00Z",
      "status": ["Pending"],
      "dispute_ref": "C-ABC123",
      "gateway_txn_id": "GTW_123456",
      "vehicle_number": "ABC123",
      "page_no": 1,
      "page_size": 10
    }'
    
    # Response: 200 OK
    {
      "status": "SUCCESS",
      "response_code": "00",
      "response_message": "Request Success",
      "payload": {
        "complaints": [],
        "total_count": 0,
        "page_no": 1,
        "page_size": 10
      }
    }
    

    Request Parameters:

    Parameter Data Type Description Required
    start_date String Start date in RFC3339 format Yes
    end_date String End date in RFC3339 format Yes
    status Array(String) Filter by complaint status. See ComplaintStatus No
    dispute_ref String Filter by dispute reference ID No
    gateway_txn_id String Filter by gateway transaction ID No
    vehicle_number String Filter by vehicle registration number No
    page_no Number Page number (must be >= 1) Yes
    page_size Number Items per page Yes

    Note for status parameter: If you do not wish to filter by complaint status, omit the status field entirely from the request. If the field is included, it must contain at least one valid status (i.e., it cannot be an empty array).

    Response Parameters:

    Parameter Data Type Description
    complaints Array(Complaint List Item Object) List of complaints
    total_count Number Total number of complaint records
    page_no Number Current page number
    page_size Number Items per page

    Complaint List Item Object

    Parameter Data Type Description
    complaint_id UUID Complaint ID
    complaint_ref_id String Complaint reference ID
    customer_ref_id String Customer reference ID (optional)
    customer_first_name String Customer first name
    customer_middle_name String Customer middle name (optional)
    customer_last_name String Customer last name (optional)
    customer_mobile String Customer mobile number (optional)
    customer_email String Customer email (optional)
    complaint_type Object(Complaint Type Info Object) Complaint type info (optional)
    complaint_subtype Object(Complaint Subtype Info Object) Complaint subtype info (optional)
    status String Complaint status. See ComplaintStatus
    description String Complaint description
    transaction_id UUID Associated transaction ID (optional)
    gateway_txn_id String Gateway transaction ID (optional)
    transaction_time String Transaction timestamp (nullable)
    vehicle_number String Vehicle registration number (optional)
    maker String Who raised the complaint
    raised_at String Complaint raised timestamp (optional)
    resolution_type String Resolution type. See ComplaintResolutionType (optional)

    Complaint Type Info Object

    Parameter Data Type Description
    complaint_configuration_id UUID Complaint type configuration ID
    display_name String Display name of the complaint type

    Complaint Subtype Info Object

    Parameter Data Type Description
    complaint_configuration_id UUID Complaint subtype configuration ID
    display_name String Display name of the complaint subtype

    Error Codes:

    Error Code Description
    BAD_REQUEST Customer not registered or validation error
    INTERNAL_SERVER_ERROR Failed to list complaints

    Complaint Details

    Gets details of a specific complaint.

    Endpoint: POST /api/v1/fastag/dashboard/customer/complaints/details

    curl -L -X POST '{{host}}/api/v1/fastag/dashboard/customer/complaints/details' \
    -H 'content-type: application/json' \
    -H 'accept: application/json' \
    -H 'x-client-source: 811' \
    -H 'x-customer-crn: 100196918' \
    -H 'Authorization: Bearer <session_token>' \
    --data-raw '{
      "complaint_id": "550e8400-e29b-41d4-a716-446655440000"
    }'
    
    # Response: 200 OK
    {
      "status": "SUCCESS",
      "response_code": "00",
      "response_message": "Request Success",
      "payload": {
        "complaint_id": "550e8400-e29b-41d4-a716-446655440000",
        "complaint_ref_id": "COMP_123456",
        "complaint_type_id": "660e8400-e29b-41d4-a716-446655440001",
        "complaint_type_display_name": "Transaction Issue",
        "complaint_subtype_id": "770e8400-e29b-41d4-a716-446655440002",
        "complaint_subtype_display_name": "Amount Deducted Twice",
        "status": "Pending",
        "description": "Transaction not reflected",
        "vehicle_info": {
          "vin": "VIN123456789",
          "vrn": "ABC123",
          "vehicle_class": "Class 4",
          "fuel_type": "Diesel",
          "is_commercial": "Commercial",
          "national_permit": true,
          "national_permit_expiry": "2025-12-31",
          "tag_issued_date": "2024-01-01"
        },
        "transaction_info": {
          "transaction_id": "880e8400-e29b-41d4-a716-446655440003",
          "gateway_transaction_id": "GTW_123456",
          "transaction_time": "2024-01-15T10:30:00Z",
          "transaction_processing_time": "2024-01-15T10:30:05Z",
          "orig_txn_amount": "500.00",
          "disputed_amount": "500.00",
          "status": "SUCCESS",
          "txn_type": "DR",
          "txn_subtype": "TOLL"
        },
        "documents": [
          {
            "file_name": "receipt.jpg",
            "display_name": "Receipt",
            "extension": "jpg",
            "document_uri": "https://s3-bucket.amazonaws.com/docs/receipt.jpg",
            "uploaded_at": "2024-01-15T10:30:00Z"
          }
        ],
        "review_remarks": "Complaint reviewed and resolved",
        "raised_at": "2024-01-15T10:30:00Z",
        "email": "john@example.com",
        "reason_code": "RC001",
        "dispute_amount_type": "FULL",
        "reviewed_at": "2024-01-16T09:00:00Z"
      }
    }
    

    Request Parameters:

    Parameter Data Type Description Required
    complaint_id UUID Complaint ID Yes

    Response Parameters:

    Parameter Data Type Description
    complaint_id UUID Complaint ID
    complaint_ref_id String Complaint reference ID
    customer_info Object(Customer Info Object) Customer information (optional)
    complaint_type_id UUID Complaint type configuration ID
    complaint_type_display_name String Complaint type display name
    complaint_subtype_id UUID Complaint subtype configuration ID
    complaint_subtype_display_name String Complaint subtype display name
    status String Complaint status. See ComplaintStatus
    description String Complaint description
    vehicle_info Object(Vehicle Info Object) Vehicle information (optional)
    maker String Maker details (SELF or OPS) (optional)
    transaction_info Object(Transaction Info Object) Transaction information (optional)
    documents Array(Complaint Document Info Object) List of documents
    review_remarks String Review remarks (nullable)
    raised_at String Complaint raised timestamp (nullable)
    email String Customer email (optional)
    reason_code String Reason code (optional)
    dispute_amount_type String Dispute amount type. See DisputeAmountType (optional)
    reviewed_at String Review timestamp (nullable)

    Error Codes:

    Error Code Description
    BAD_REQUEST Customer not registered
    NOT_FOUND Complaint not found for the given ID
    FORBIDDEN You are not authorized to view this complaint
    INTERNAL_SERVER_ERROR Failed to process request

    Customer Info Object

    Parameter Data Type Description
    first_name String Customer first name
    middle_name String Customer middle name (nullable)
    last_name String Customer last name (nullable)
    mobile_number String Mobile number
    email String Email address
    customer_ref_id String Customer reference ID
    customer_seq_id String Customer sequence ID

    Vehicle Info Object

    Parameter Data Type Description
    vin String Vehicle Identification Number
    vrn String Vehicle registration number (nullable)
    vehicle_class Enum Vehicle class. See VehicleClass
    fuel_type String Fuel type (nullable)
    is_commercial String Whether vehicle is commercial ("Commercial" or "Private")
    national_permit Boolean National permit status (nullable)
    national_permit_expiry String National permit expiry date (nullable)
    tag_issued_date String Tag issued date (nullable)

    Transaction Info Object

    Parameter Data Type Description
    transaction_id UUID Transaction ID
    gateway_transaction_id String Gateway transaction ID
    transaction_time String Transaction timestamp (nullable)
    transaction_processing_time String Transaction processing time (nullable)
    orig_txn_amount String Original transaction amount
    disputed_amount String Disputed amount (nullable)
    status Enum Transaction status. See DbTransactionStatus (nullable)
    txn_type String Transaction type (nullable)
    txn_subtype String Transaction subtype (nullable)

    Complaint Document Info Object

    Parameter Data Type Description
    file_name String File name
    display_name String Display name
    extension String File extension (optional)
    document_uri String Document URL
    uploaded_at String Upload timestamp (optional)

    Document APIs

    Get Upload URLs

    Generates presigned S3 upload URLs for document uploads.

    Endpoint: POST /api/v1/fastag/dashboard/customer/documents/upload

    Sample Request - URL type:

    curl -L -X POST '{{host}}/api/v1/fastag/dashboard/customer/documents/upload' \
    -H 'content-type: application/json' \
    -H 'accept: application/json' \
    -H 'x-client-source: 811' \
    -H 'x-customer-crn: 100196918' \
    -H 'Authorization: Bearer <session_token>' \
    --data-raw '{
      "number_of_paths": 2,
      "purpose": "NEW_FASTAG",
      "upload_uri_type": "URL"
    }'
    

    Sample Request - PATH type:

    curl -L -X POST '{{host}}/api/v1/fastag/dashboard/customer/documents/upload' \
    -H 'content-type: application/json' \
    -H 'accept: application/json' \
    -H 'x-client-source: 811' \
    -H 'x-customer-crn: 100196918' \
    -H 'Authorization: Bearer <session_token>' \
    --data-raw '{
      "number_of_paths": 2,
      "purpose": "NEW_FASTAG",
      "upload_uri_type": "PATH"
    }'
    
    # Response (upload_uri_type: URL) - 200 OK
    {
      "status": "SUCCESS",
      "response_code": "00",
      "response_message": "Request Success",
      "payload": {
        "upload_uris": {
          "a1b2c3d4-e5f6-7890-abcd-ef1234567890": "https://s3-bucket.s3.amazonaws.com/temp/2026/6/1/.../1?X-Amz-Signature=...",
          "b2c3d4e5-f6a7-8901-bcde-f12345678901": "https://s3-bucket.s3.amazonaws.com/temp/2026/6/1/.../2?X-Amz-Signature=..."
        },
        "expiry_seconds": 3600
      }
    }
    
    # Response (upload_uri_type: PATH) - 200 OK
    {
      "status": "SUCCESS",
      "response_code": "00",
      "response_message": "Request Success",
      "payload": {
        "upload_uris": {
          "a1b2c3d4-e5f6-7890-abcd-ef1234567890": "s3://bucket-name/temp/2026/6/1/.../1",
          "b2c3d4e5-f6a7-8901-bcde-f12345678901": "s3://bucket-name/temp/2026/6/1/.../2"
        },
        "expiry_seconds": 3600
      }
    }
    

    Request Parameters:

    Parameter Data Type Description Required
    number_of_paths Number Number of upload URLs to generate (1-5) Yes
    purpose String - See DocumentUploadPurpose Purpose of the document upload Yes
    upload_uri_type String - See RequestedPathType Whether to return presigned URLs or raw S3 paths. Defaults to URL. No

    Response Parameters:

    Parameter Data Type Description
    upload_uris Object Map of UUID keys to presigned S3 PUT URLs (or S3 paths if upload_uri_type is PATH)
    expiry_seconds Number URL expiry time in seconds

    Error Codes:

    Error Code Description
    BAD_REQUEST Invalid number of paths requested, must be in between 1-5
    INTERNAL_SERVER_ERROR Failed to generate presigned URL / Internal server error

    Enums

    ApplicationPaymentMode

    Value Description
    WALLET Synchronous wallet debit
    PG Payment Gateway
    CC Credit Card
    SBA Savings Bank Account
    CAA Current Account

    S2sTransactionStatus

    Value Description
    INITIATED Payment initiated
    PENDING Payment pending
    SUCCESS Payment successful
    FAILED Payment failed

    S2sApplicationType

    Value Description
    NEW_TAG New tag application

    CustomerStatementFormat

    Value Description
    RAW Raw JSON format
    XLSX XLSX download format

    ApplicationKycStatus

    Value Description
    MIN_KYC Minimum KYC
    FULL_KYC Full KYC

    KycStatus

    Value Description
    LKYC Limited KYC
    FKYC Full KYC

    PaymentMode

    Value Description
    CC Credit Card (default)
    SBA Savings Bank Account
    CAA Current Account
    PG Payment Gateway
    BBPS Bharat Bill Payment System
    UPI UPI Payment
    WALLET Wallet Payment

    Vehicle Pricing Response Object

    Parameter Data Type Description
    vc String Vehicle class
    tag_price Decimal Tag price (discounted)
    non_discounted_tag_price Decimal Non-discounted tag price
    tag_security_deposit Decimal Tag security deposit
    initial_wallet_load Decimal Initial wallet load amount
    vehicle_linking_id UUID Vehicle linking ID
    tag_cost_breakdown Object(Tag Cost Breakdown Object) Tag cost breakdown

    FastagTransactionSource

    Value Description
    NETC NETC toll/parking transactions
    FASTAG_AUTO_TOPUP Automatic wallet top-up
    FASTAG_WALLET_RECHARGE Manual wallet recharge
    REGISTRATION Tag registration transactions
    UNREGISTERED_TAG_TXN Transactions for unregistered tags
    FASTAG_APPLICATION_REJECTION Application rejection refunds
    WALLET_AUTO_RECHARGE Auto-recharge transactions
    APPLICATION_FEE Application fee deductions
    FASTAG_CLOSURE_REFUND Tag closure refunds
    BBPS BBPS payment transactions
    UPI UPI payment transactions
    TAG_REPLACEMENT_FEE Tag replacement fees
    TAG_REPLACEMENT_REJECTION_REFUND Tag replacement rejection refunds

    CreditSource

    Value Description
    RECHARGE Credit Source for recording a Recharge to customer's wallet

    DbTransactionType

    Value Description
    CR Credit transaction
    DR Debit transaction
    NON_FIN Non-financial transaction

    DbTransactionStatus

    Value Description
    PENDING Transaction pending
    SUCCESS Transaction successful
    FAILURE Transaction failed
    SCHEDULED Transaction is scheduled for future processing (auto-recharge)
    SKIPPED Transaction is skipped due to auto-recharge conditions

    FastagStatus

    Value Description
    ACTIVE Tag is active and usable
    CLOSED Tag has been closed

    ExceptionSource

    Value Description
    BANK Exception added by bank
    CUSTOMER Exception requested by customer
    SWITCH Exception from NPCI switch
    WALLET Exception from wallet system
    TAG_CLOSURE Exception due to tag closure
    WALLET_FREEZE Exception due to wallet freeze

    ExceptionCodeStatus

    Value Description
    ACTIVE Exception is currently active
    INACTIVE Exception has been removed

    VehicleClass

    Value Description
    VC1 Car/Jeep/Van
    VC2 Light Commercial Vehicle (LCV)
    VC3 Bus (2 axle)
    VC4 Bus (3 axle)
    VC5 Truck (2 axle)
    VC7 Truck (4 axle)
    VC8 Truck (5 axle)
    VC9 Truck (6 axle)
    VC10 Earth Moving Equipment
    VC11 Heavy Construction Equipment
    VC12 Tractor
    VC13 Trailer (3 axle)
    VC14 Trailer (4 axle)
    VC15 Trailer (5 axle)
    VC16 Trailer (6 axle)
    VC17 Trailer (7 axle)
    VC18 Trailer (8 axle)
    VC19 Trailer (9 axle)
    VC20 Multi-axle vehicle

    WalletStatus

    Value Description
    ACTIVE Wallet is active
    INACTIVE Wallet is inactive
    CLOSED Wallet has been closed
    CREDIT_FREEZE Wallet is frozen for credit
    DEBIT_FREEZE Wallet is frozen for debit
    FREEZE Wallet is completely frozen

    WalletType

    Value Description
    MASTER Master wallet
    PPI Prepaid Instrument wallet
    FASTAG_SECURITY Fastag security deposit wallet

    ApplicationChannel

    Value Description
    WEB_PORTAL Web portal channel
    BANK_PORTAL Bank portal channel
    CUSTOMER_PORTAL Customer portal channel
    MB811_APP Mobile app 811 channel

    FastagChannel

    Value Description
    DEFAULT Default channel
    Other Custom channel name (string value)

    FastagApplicationStatus

    Value Description
    PENDING Application is pending
    PAYMENT_PENDING Payment is pending
    PAYMENT_INITIATED Payment has been initiated
    PAYMENT_FAILED Payment has failed
    SUBMITTED Application has been submitted
    CLOSED Application has been closed

    FastagAppInfoStatus

    Value Description
    SUBMITTED Vehicle info submitted
    APPROVED Vehicle info approved
    REJECTED Vehicle info rejected
    REGISTERED Vehicle registered with NETC
    PENDING Vehicle info pending
    HOLD Vehicle info on hold
    LINKING_FAILED Vehicle linking failed
    LINKING_PENDING Vehicle linking pending
    LINKING_COMPLETED Vehicle linking completed
    DELETED Vehicle info deleted

    DocumentStatus

    Value Description
    PENDING Document pending verification
    APPROVED Document approved
    REJECTED Document rejected

    DocumentType

    Value Description
    KYV_FR KYV Front document
    KYV_S KYV Side document
    KYV_TG KYV Tag document
    VHC Vehicle document
    MA Manufacturer document
    RC_F RC Front document
    RC_B RC Back document
    CHQ Cheque document
    WALLET_CLOSURE_IMMEDIATE_PROOF Wallet closure immediate proof document
    MISC Miscellaneous document

    OrderBy

    Value Description
    asc Ascending order
    desc Descending order

    KyvApplicationStatus

    Value Description
    PENDING KYV application pending
    SUBMITTED KYV application submitted
    APPROVED KYV application approved
    REJECTED KYV application rejected
    HOLD KYV application on hold

    ClosureStatus

    Value Description
    SUBMITTED Closure request submitted
    APPROVED Closure request approved
    REJECTED Closure request rejected
    PENDING Closure request pending

    FastagClosureInitiatedBy

    Value Description
    CUSTOMER Initiated by customer
    NETC Initiated by NETC
    BANK Initiated by bank

    FastagWalletType

    Value Description
    MASTER Master wallet for a customer
    PPI Prepaid Payment Instrument wallet for Fastag transactions
    FASTAG_SECURITY Wallet for holding security deposit for a Fastag

    FastagClosureEligibilityFailureReason

    Tagged enum (discriminated by type field). Possible types:

    Type Additional Fields Description
    TagNotFound Tag not found in database
    TagNotFoundInNetc Tag not found in NETC response
    TagInException exception_codes: Array(Closure Exception Code Detail Object) Tag has exception codes preventing closure
    TagAlreadyClosed Tag is already in CLOSED status
    ClosureAlreadyRaised closure_status: See ClosureStatus, closure_id: String Closure request already exists
    NetcError message: String Error occurred while fetching data from NETC

    SubmitFastagClosureError

    Value Description
    DBError Database error
    EligibilityError Eligibility check failed
    FastagNotFound Fastag not found
    VehicleNotFound Vehicle not found
    RequestAlreadyRaised Closure request already raised
    RequestLimitExceeded Breached max closure request limit
    SubmissionPending Submission is in pending state
    NetcCallFailure NETC call failed
    SubmissionError Submission error
    RequestNotFound Request not found
    CustomerNotFound Customer not found

    ReplacementStatus

    Value Description
    PENDING Replacement application pending
    SUBMIT Replacement submitted
    APPROVE Replacement approved
    REJECT Replacement rejected

    ReplacementInitiatedBy

    Value Description
    CUSTOMER Replacement initiated by customer
    BANK Replacement initiated by bank
    OPS Replacement initiated by operations

    ReplacementReason

    Value Description
    DAMAGED Tag is damaged
    LOST Tag is lost
    THEFT Tag is stolen
    DEFECTIVE Tag is defective
    TAG_NOT_WORKING Tag is not working
    CLASS_CHANGE Vehicle class changed
    OTHERS Other reasons

    ReplacementStage

    Value Description
    LOW_BALANCE_EXC_INITIATED Low balance exception initiated
    UNDER_REVIEW Replacement under review
    TAG_REPLACEMENT_REJECTED Tag replacement rejected
    TAG_CLOSE_INITIATED Tag close initiated
    TAG_REG_INITIATED Tag registration initiated
    TAG_REGISTERED Tag registered

    RefundStatus

    Value Description
    INITIATED Refund initiated
    SUCCESS Refund successful
    FAILURE Refund failed

    PaymentInstrumentTypeV2

    Value Description
    CC Credit Card
    SBA Savings Bank Account
    CAA Current Account
    PG Payment Gateway

    TransactionCreditStatus

    Value Description
    Pending Transaction is pending
    Success Transaction completed successfully
    Failed Transaction failed

    WalletRechargeStatus

    Value Description
    INITIATED Recharge initiated
    SUCCESS Recharge successful
    FAILED Recharge failed

    AutoRechargeOperation

    Value Description
    enable Enable a new auto-recharge
    modify Modify an existing auto-recharge
    disable Disable an existing auto-recharge

    ComplaintStatus

    Value Description
    Pending Complaint is pending
    Submitted Complaint submitted
    Approved Complaint approved
    Rejected Complaint rejected

    DisputeAmountType

    Value Description
    FULL Full dispute amount
    PARTIAL Partial dispute amount

    ComplaintResolutionType

    Value Description
    ODR Online Dispute Resolution
    QDR Quick Dispute Resolution

    DocumentUploadPurpose

    Value Description
    NEW_FASTAG New FASTag application documents
    REPLACEMENT Tag replacement documents
    KYV Know Your Vehicle documents
    COMPLAINT Complaint-related documents
    WALLET_CLOSURE Wallet closure documents
    OTHER Other documents
    INVENTORY Inventory documents

    RequestedPathType

    Value Description
    URL Return presigned S3 URL (default)
    PATH Return raw S3 object key/path

    ConfigType

    Value Description
    MasterConfig Master configuration type

    VehicleUpdateRequestStatus

    Value Description
    PENDING Vehicle update request is pending
    SUBMITTED Vehicle update request is submitted
    APPROVED Vehicle update request is approved
    REJECTED Vehicle update request is rejected

    TxnType

    Value Description
    DEBIT Customer must pay the security deposit difference (new security > old security)
    CREDIT Customer will receive a refund of the security deposit difference (old security > new security)

    RefundType

    Value Description
    FULL Full refund
    PARTIAL Partial refund

    RefundMode

    Value Description
    GATEWAY Refund via payment gateway
    WALLET Refund to wallet

    Changelog

    June 12, 2026

    June 11, 2026

    June 4, 2026

    June 3, 2026

    June 2, 2026

    Sample JSON / Curl Fixes

    Validation Constraint Documentation

    Nullability Corrections

    June 1, 2026

    New APIs

    Field Name Corrections

    Missing Fields Added

    Sample JSON Improvements

    May 28, 2026

    May 27, 2026

    May 20, 2026

    May 19, 2026

    May 15, 2026

    May 4, 2026