# 

## Base URLs

| Environment | URL |
|  --- | --- |
| Sandbox | `https://api.dev.paradisegateway.net` |
| Production | `https://api.paradisegateway.net` |


## Authentication

| Method | Header | When to use |
|  --- | --- | --- |
| API Key | `APIKEY: YOUR-API-KEY` | All transactional and reporting endpoints |
| Basic Auth | `Authorization: Basic base64(user:pass)` | Password management, key retrieval |


## Endpoint cheat sheet

### Transactions

| Action | Method | Endpoint |
|  --- | --- | --- |
| Create transaction | POST | `/v1/transactions` |
| List transactions | GET | `/v1/transactions` |
| Retrieve transaction | GET | `/v1/transactions/{id}` |
| Update transaction | POST | `/v1/transactions/{id}` |
| Capture authorization | POST | `/v1/transactions/{id}/capture` |
| Cancel or refund | POST | `/v1/transactions/{id}/cancel` |


### Payment Tokens

| Action | Method | Endpoint |
|  --- | --- | --- |
| Create token | POST | `/v1/payment_tokens` |
| List tokens | GET | `/v1/payment_tokens` |
| Retrieve token | GET | `/v1/payment_tokens/{token}` |
| Update token | POST | `/v1/payment_tokens/{token}` |
| Delete token | DELETE | `/v1/payment_tokens/{token}` |


### Clients

| Action | Method | Endpoint |
|  --- | --- | --- |
| Create client | POST | `/v1/clients` |
| List clients | GET | `/v1/clients` |
| Retrieve client | GET | `/v1/clients/{id}` |
| Update client | POST | `/v1/clients/{id}` |


### Users

| Action | Method | Endpoint |
|  --- | --- | --- |
| Create user | POST | `/v1/users` |
| List users | GET | `/v1/users` |
| Retrieve user | GET | `/v1/users/{id}` |
| Update user | POST | `/v1/users/{id}` |
| Update password | PATCH | `/v1/users/me/passwords` |


### Integrations

| Action | Method | Endpoint |
|  --- | --- | --- |
| Create integration | POST | `/v1/integrations` |
| List integrations | GET | `/v1/integrations` |
| Retrieve integration | GET | `/v1/integrations/{id}` |
| Update integration | POST | `/v1/integrations/{id}` |


### Batches

| Action | Method | Endpoint |
|  --- | --- | --- |
| List batches | GET | `/v1/batches` |
| Batch settlement status | GET | `/v1/batches/status` |
| Close batch | PUT | `/v1/batches/status` |


### MFA

| Action | Method | Endpoint |
|  --- | --- | --- |
| Request OTP | POST | `/v1/mfa/challenges` |
| Verify OTP | POST | `/v1/mfa/verifications` |


### Auth

| Action | Method | Endpoint |
|  --- | --- | --- |
| Retrieve API key | POST | `/v1/auth/keys` |


## Query parameters for list endpoints

| Parameter | Type | Default | Description |
|  --- | --- | --- | --- |
| `skip` | string | `0` | Number of records to skip |
| `take` | string | `25` | Records per page |
| `sort_column` | string | varies | Column to sort by |
| `sort_order` | string | `desc` | `asc` or `desc` |
| `search_text` | string | — | Free-text search |
| `term` | string | — | Filter term |


## Test card numbers

Use these card numbers in the **sandbox environment only**. Any expiry date in the future and any 3-digit CVV will work.

### Approved transactions

| Card brand | Number | Result |
|  --- | --- | --- |
| Visa | `4111111111111111` | Approved |
| Visa | `4012888888881881` | Approved |
| Mastercard | `5431111111111111` | Approved |
| Mastercard | `5105105105105100` | Approved |
| American Express | `341111111111111` | Approved |
| Discover | `6011111111111117` | Approved |


### Declined transactions

| Card brand | Number | Result |
|  --- | --- | --- |
| Visa | `4000000000000002` | Declined |
| Mastercard | `5200000000000007` | Declined |


### AVS test scenarios

| Address | ZIP | Expected AVS result |
|  --- | --- | --- |
| `123 Main St` | `62704` | `y` — full match |
| `999 Wrong Ave` | `62704` | `z` — ZIP match only |
| `123 Main St` | `00000` | `a` — address match only |
| `999 Wrong Ave` | `00000` | `n` — no match |


## Test bank accounts

Use these bank account details in the **sandbox environment only**.

| Routing number | Account number | Account type | Result |
|  --- | --- | --- | --- |
| `021000021` | `123456789012` | `checking` | Approved |
| `021000021` | `987654321098` | `savings` | Approved |
| `021000021` | `000000000001` | `checking` | Declined |


## Amount format

All monetary amounts are integers in **minor units** (cents for USD).

| Display amount | API value |
|  --- | --- |
| $1.00 | `100` |
| $19.99 | `1999` |
| $100.00 | `10000` |
| $999,999.99 | `99999999` |


Minimum transaction amount: **$0.50** (`50`).

## HTTP status codes

| Code | Meaning |
|  --- | --- |
| `200` | Success |
| `201` | Created (user accounts, payment tokens) |
| `400` | Bad request — invalid parameters |
| `401` | Unauthorized — invalid or missing API key |
| `404` | Resource not found |
| `422` | Validation failed (for example, invalid card number) |


## ID formats

| Object | Prefix | Example |
|  --- | --- | --- |
| Transaction | `TRANSACTION-` | `TRANSACTION-01KEW32V6YNV11T33XGDR7TGWC` |
| Client | `CLIENT-` | `CLIENT-3MtwBwLkdIwHu7ix28a3tqPa` |
| User | `USER-` | `USER-3MtwBwLkdIwHu7ix28a3tqPa` |
| Payment Token | `PAYMENT_TOKEN-` | `PAYMENT_TOKEN-01KFDKXMQ637EKEAY410MSQSXB` |
| Integration (TSYS) | `proc_` | `proc_3MtwBwLkdIwHu7ix28a3tqPa` |
| Integration (Vericheck) | `INTEGRATION-` | `INTEGRATION-01KFDKXMQ637EKEAY410MSQSXB` |
| Batch | `batch_` | `batch_01KFDKXMQ637EKEAY410MSQSXB` |