API Overview
The PayItFast API is a REST API platform providing businesses, marketplaces, and financial platforms with compliant fund transfer solutions supporting local fiat currencies and cryptocurrency. Use it to collect payments, process payouts, and enable crypto on/off-ramp flows across 69 countries, 47+ fiat currencies, and 70+ crypto tokens.
All endpoints described in this documentation use API version v2.
Base URLs
PayItFast provides two environments. Use the Sandbox for development and testing, and Production for live transactions.
| Environment | Base URL |
|---|---|
| Sandbox | https://sandbox-api.payitfast.com |
| Production | https://api.payitfast.com |
Authentication
The API uses HTTP Basic Authentication. Every request must include an Authorization header containing your base64-encoded credentials.
Authorization: Basic <base64(username:password)>
API credentials are obtained from the dashboard at dashboard.payitfast.com. Keep your credentials secure and never expose them in client-side code.
Never expose your API credentials in front-end code, public repositories, or client-side applications. All API calls should be made from your server.
Common Headers
Include these headers with every API request.
| Header | Type | Required | Description |
|---|---|---|---|
| Authorization | string | Required | Basic Auth credentials (Basic <base64>) |
| Content-Type | string | Required | application/json for most requests, or multipart/form-data for file uploads |
| MID | string | Optional | Merchant/sub-merchant identifier. Used for multi-entity context. If omitted, applies to the default entity. |
Request Format
The API accepts two request formats depending on the HTTP method:
- POST / PUT / PATCH requests — Send data as a JSON body with
Content-Type: application/json. For file uploads, usemultipart/form-data. - GET requests — Pass parameters as URL query strings (e.g.,
?currency=EUR&direction=deposit).
Response Format
All responses are returned in JSON format. Successful responses typically include a status field or the requested data directly.
Success Response
{
"data": [
{
"currency": "EUR",
"logoUrl": "https://common-fiat-logos.s3.ap-southeast-1.amazonaws.com/eur.svg",
"decimalPrecision": 2
}
],
"pages": 3,
"status": "success",
"total": 15
}
Error Response
{
"error": {
"code": "INVALID_ARGUMENTS",
"message": "The 'direction' parameter is required and must be 'deposit' or 'withdraw'."
}
}
HTTP Status Codes
The API uses standard HTTP status codes to indicate the success or failure of a request.
| Code | Description |
|---|---|
200 |
Success — The request completed successfully. |
201 |
Resource Created — A new resource (user, order, etc.) was created. |
400 |
Bad Request — Invalid or missing parameters in the request. |
403 |
Forbidden — Access restricted (KYC pending, account blocked, or limits reached). |
404 |
Not Found — The requested resource does not exist. |
409 |
Conflict — Duplicate resource (e.g., user already exists with this email). |
422 |
Unprocessable Entity — Validation failed (e.g., invalid token details for KYC sharing). |
500 |
Internal Server Error — An unexpected error occurred on the server. |
Endpoint Summary
The table below lists all 33 available API endpoints. Click any endpoint path to navigate to its detailed documentation.
| # | Method | Path | Description |
|---|---|---|---|
| 1 | GET | /v2/supported-currencies |
List supported fiat currencies |
| 2 | GET | /v2/payment-methods |
List payment methods by currency |
| 3 | GET | /v2/config/list-tokens |
List crypto tokens and networks |
| 4 | GET | /v2/exchange-rates/live-rates |
Live deposit/withdraw rates |
| 5 | GET | /v2/exchange-rates/fiat-to-crypto |
Onramp conversion quote |
| 6 | GET | /v2/exchange-rates/crypto-to-fiat |
Offramp conversion quote |
| 7 | GET | /v2/exchange-rates/gaming |
Gaming conversion quote |
| 8 | GET | /v2/exchange-rates/deposit |
Payin rates (fiat to stablecoin) |
| 9 | GET | /v2/exchange-rates/withdraw |
Payout rates (stablecoin to fiat) |
| 10 | POST | /v2/users/individual |
Create individual user |
| 11 | GET | /v2/users/individuals |
List individual users |
| 12 | POST | /v2/users/business |
Create business user |
| 13 | GET | /v2/users/business |
List business users |
| 14 | POST | /v2/kyc/standard |
Submit standard KYC (Level 1) |
| 15 | POST | /v2/kyc/advanced |
Submit advanced KYC (Level 2) |
| 16 | POST | /v2/kyc/share/same-vendor |
Share KYC via Sumsub token |
| 17 | POST | /v2/kyc/share/third-vendor |
Share KYC from third-party provider |
| 18 | POST | /v2/kyc/share/add-docs |
Submit additional KYC documents |
| 19 | GET | /v2/kyc/user |
Get KYC status |
| 20 | POST | /v2/kyb/standard |
Submit standard KYB |
| 21 | POST | /v2/kyb/advanced |
Submit advanced KYB |
| 22 | GET | /v2/kyb/user |
Get KYB status |
| 23 | POST | /v2/invoices/create |
Upload invoice (PDF) |
| 24 | POST | /v2/orders/deposit |
Create fiat payin order |
| 25 | POST | /v2/orders/gaming |
Create gaming payin order |
| 26 | POST | /v2/payout/orders |
Create fiat payout order |
| 27 | GET | /v2/orders/{orderId} |
Get order details |
| 28 | POST | /v2/crypto/payin |
Create crypto payin order |
| 29 | POST | /v2/crypto/payout |
Create crypto payout order |
| 30 | POST | /v2/prefunds/create-crypto-prefund |
Create crypto prefund |
| 31 | POST | /v2/prefunds/create-fiat-prefund |
Create fiat prefund |
| 32 | POST | /v2/sandbox/prefunds/create-prefund |
Sandbox prefund (test only) |
| 33 | GET | /v2/balance |
Get account balance |
Configuration
Discover supported currencies, payment methods, and crypto tokens available for your integration.
View endpointsExchange Rates
Fetch live rates, conversion quotes, and lock prices with quoteId for payin and payout flows.
View endpointsUser Management
Create and manage individual and business users before initiating transactions.
View endpoints