Quick Start
This guide will help you create your first payment using the 123hub Multihub API.Step 1: Get Your Credentials
Obtain your credentials
Credentials are provided by the 123hub team during merchant onboarding. You will receive:
- application_id — an integer identifying your application
- secret_key — a private key used to sign requests
Merchant accounts and credentials are created by the 123hub team. Self-registration is not available.
Step 2: Test Connectivity
Verify your credentials work by callinggateway.ping:
Step 3: Create a Deposit
Create a deposit payment (customer pays to you) using thepayment.in method.
- INR (India)
- MXN (Mexico)
- ARS (Argentina)
Response
- INR Response
- MXN Response
- ARS Response
Step 4: Check Payment Status
Usepayment.status with the h_id returned from the deposit to check its current status:
Step 5: Check Balance
Usebalance.get to retrieve your current account balance:
Understanding the Response
All API responses follow the same envelope format:| Field | Description |
|---|---|
success | true if the request succeeded, false if an error occurred |
result | The response payload (structure varies by method) |
error | Present only on failure. Contains code (integer), message (string), details, and context |
request_id | Unique identifier for this request (useful for debugging) |
processing_time | Server processing time in milliseconds |
Payment identifiers
| Identifier | Description |
|---|---|
c_id | Your client-side identifier (the value you send) |
h_id | Hub-assigned payment identifier (use this for status queries) |
p_id | Provider-assigned transaction identifier |
Payment statuses
| Status | final | success | Description |
|---|---|---|---|
created | false | null | Payment created, awaiting processing |
processing | false | null | Payment is being processed |
success | true | true | Payment completed successfully |
error | true | false | Payment failed |
canceled | true | false | Payment was cancelled |
declined | true | false | Payment expired or was declined |
refunded | true | true | Payment was refunded |
What’s Next?
Set up Webhooks
Receive real-time notifications when the payment completes
Payment Types
Learn about deposits, withdrawals, and payment pages
Test Your Integration
Use test mode to simulate different scenarios
Go Live
Switch to production when you’re ready
Common Issues
Error 3000: Authentication Error
Error 3000: Authentication Error
Verify that
X-Data-Hash is computed as sha512(requestBody + secretKey) where requestBody is the exact JSON string sent in the request body. Ensure there is no extra whitespace or encoding difference between what you hash and what you send.Error 3003: Application Not Found
Error 3003: Application Not Found
Check that the
X-Data-Application-Id header contains your correct integer application ID.Error 1005: Invalid Request Format
Error 1005: Invalid Request Format
Ensure all required fields are present in your request. The
method and params fields are always required. For payment.in, you must include service_id and the params.payment object with amount, identifiers, and payer. Check the details field in the error response for specifics.Error 2002: No Route Available
Error 2002: No Route Available
The specified
service_id may not be enabled for your account, or the payment method is temporarily unavailable. Contact your account manager to verify your service configuration.