> ## Documentation Index
> Fetch the complete documentation index at: https://docs.eliteneobank.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Create payout

# Create Payout

Use the Transaction Initiation API to initiate payouts directly from your Elite Neo Bank wallet to beneficiary bank accounts using supported banking transfer modes.

This API enables merchants to:

* Send instant payouts
* Process salary disbursements
* Automate vendor settlements
* Transfer funds securely
* Build scalable payout workflows

***

## Endpoint

```http theme={null}
POST /api/v3/banking/payment/create
```

#### To view all available base URLs and environments, refer to:

➡️ [API Resources](https://docs.eliteneobank.com/guide/quick-start/api-resources.md)

***

## Authentication required.

Refer to:\
➡️ [Headers](https://docs.eliteneobank.com/guide/authentication/headers.md)\
➡️ [Signature Generation](https://docs.eliteneobank.com/guide/authentication/signature.md)\
➡️ [Timestamp Validation](https://docs.eliteneobank.com/guide/authentication/timestamp.md)

***

## Request Parameters

**Bank Transfer**

| Parameter | Type | Required | Description |
| - | - | - | - |
| `kwikx_wallet_id` | String | Yes | Merchant wallet ID |
| `debit_account_type` | String | Yes | Source account type |
| `transfer_type` | String | Yes | Transfer processing type |
| `mobile` | String | Yes | Merchant mobile number |
| `email` | String | Yes | Merchant email address |
| `country_dialing_code` | String | Yes | Country dialing code |
| `transfer_mode` | String | Yes | Transfer mode (`imps`, `neft`, `rtgs`, `upi`, `ach`, `wire`, `swift`, `sepa`, `bank_transfer`, `wallet`, `card_transfer`, `international`) |
| `transfer_amount` | Decimal | Yes | Transfer amount |
| `payout_order_id` | String/Integer | Yes | Unique merchant payout order ID |
| `account_transfer.account_owner_name` | String | Yes | Beneficiary account holder name |
| `account_transfer.account_number` | String | Yes | Beneficiary account number |
| `account_transfer.ifsc_code` | String | Yes | Beneficiary IFSC code |
| `account_transfer.is_validate` | Boolean/String | No | Validate beneficiary account |
| `account_transfer.payment_for` | String | No | Transfer description |

**UPI**

| Parameter | Type | Required | Description |
| - | - | - | - |
| `kwikx_wallet_id` | String | Yes | Merchant wallet ID |
| `debit_account_type` | String | Yes | Source account type |
| `transfer_type` | String | Yes | Transfer processing type |
| `beneficiary_id` | String/Null | No | Existing beneficiary reference |
| `mobile` | String | Yes | Merchant mobile number |
| `email` | String | Yes | Merchant email address |
| `address` | String/Null | No | Merchant address |
| `country_dialing_code` | String | Yes | Country dialing code |
| `transfer_mode` | String | Yes | Transfer mode (`upi`) |
| `transfer_amount` | Decimal | Yes | Transfer amount |
| `payout_order_id` | String/Integer | Yes | Unique merchant payout order ID |
| `upi_transfer.upi_owner_name` | String | Yes | Beneficiary UPI holder name |
| `upi_transfer.upi_id` | String | Yes | Beneficiary UPI ID |
| `upi_transfer.is_validate` | Boolean/String | No | Validate beneficiary UPI ID |
| `upi_transfer.payment_for` | String | No | Transfer description |

## Example Request Body'

**Bank Transfer**

```json theme={null}
{
  "kwikx_wallet_id": "9896989698",
  "debit_account_type": "kwikx_wallet",
  "transfer_type": "direct",
  "mobile": "9896989698",
  "email": "email@example.com",
  "country_dialing_code": "91",
  "transfer_mode": "imps",
  "transfer_amount": "9999999999",
  "payout_order_id": "9999999999",
  "account_transfer": {
    "account_owner_name": "beneficiary name",
    "account_number": "6760654654",
    "ifsc_code": "icici000143",
    "is_validate": "false",
    "payment_for": "salary payment"
  }
}
```

**UPI**

```json theme={null}
{
  "kwikx_wallet_id": "9896989698",
  "debit_account_type": "kwikx_wallet",
  "transfer_type": "direct",
  "mobile": "9896989698",
  "email": "email@example.com",
  "country_dialing_code": "91",
  "transfer_mode": "upi",
  "transfer_amount": "9999999999",
  "payout_order_id": "9999999999",
  "upi_transfer": {
        "upi_owner_name": "beneficiary name",
        "upi_id": "upi-owner@upi",
        "is_validate": "false",
        "payment_for": "salary payment"
    } 
}
```

## Example cURL Request

**Bank Transfer**

```json theme={null}
curl -X POST https://sandbox.Elite Neo Bank.com/api/v3/banking/payment/create \
     -H "X-API-KEY: pk_test_mQZnmh2BeSDTjEQgzwiSPOhrWyUsPqS6" \
     -H "X-SIGNATURE: 623a603fa35bb5ab736a1272dcd797908ab9af4b0247a55bcfc8676cd821a39b" \
     -H "X-TIMESTAMP: 1778659835" \
     -H "Content-Type: application/json" \
     -d '{
  "kwikx_wallet_id": "9896989698",
  "debit_account_type": "kwikx_wallet",
  "transfer_type": "direct",
  "mobile": "9896989698",
  "email": "email@example.com",
  "country_dialing_code": "91",
  "transfer_mode": "imps",
  "transfer_amount": "9999999999",
  "payout_order_id": "9999999999",
  "account_transfer": {
    "account_owner_name": "beneficiary name",
    "account_number": "6760654654",
    "ifsc_code": "icici000143",
    "is_validate": "false",
    "payment_for": "salary payment"
  }
}'
```

**UPI**

```json theme={null}
curl -X POST https://sandbox.Elite Neo Bank.com/api/v3/banking/payment/create \
     -H "X-API-KEY: pk_test_mQZnmh2BeSDTjEQgzwiSPOhrWyUsPqS6" \
     -H "X-SIGNATURE: 623a603fa35bb5ab736a1272dcd797908ab9af4b0247a55bcfc8676cd821a39b" \
     -H "X-TIMESTAMP: 1778659835" \
     -H "Content-Type: application/json" \
     -d '{
  "kwikx_wallet_id": "9896989698",
  "debit_account_type": "kwikx_wallet",
  "transfer_type": "direct",
  "mobile": "9896989698",
  "email": "email@example.com",
  "country_dialing_code": "91",
  "transfer_mode": "upi",
  "transfer_amount": "9999999999",
  "payout_order_id": "9999999999",
  "upi_transfer": {
        "upi_owner_name": "beneficiary name",
        "upi_id": "upi-owner@upi",
        "is_validate": "false",
        "payment_for": "salary payment"
    } 
}'
```

## Example Success Response

```json theme={null}
{
  "status": true,
  "code": 200,
  "message": "Payout initiated successfully.",
  "data": {
    "payout_id": "payout_2c17a19bc5be6d05",
    "payout_order_id": 1778761733,
    "wallet_id": "2026-04-30 13:01:32",
    "debited_amount": 99,
    "available_balance": 98627.88
  }
}
```

***

## Response Parameters

| Parameter | Description |
| - | - |
| `payout_id` | Unique Elite Neo Bank payout reference ID |
| `payout_order_id` | Merchant payout order ID |
| `wallet_id` | Wallet transaction reference |
| `debited_amount` | Amount debited from wallet |
| `available_balance` | Remaining wallet balance |

***

## Example Failed Response

### Insufficient Wallet Balance

```json theme={null}
{
  "status": false,
  "code": 422,
  "message": "Insufficient wallet balance."
}
```

***

### Transaction Not Found

```json theme={null}
{
  "code": 404,
  "status": false,
  "message": "Order not found",
  "return_data": {
    "payout_id": null,
    "payout_order_id": "68736541046834",
    "payout_status": null
  }
}
```

***

## Supported Transfer Modes

| Transfer Mode | Description |
| - | - |
| `imps` | Instant bank transfer available 24x7 |
| `neft` | Standard bank settlement transfer |
| `rtgs` | Real-time gross settlement for high-value transfers |
| `upi` | Instant UPI transfer using UPI ID |
| `ach` | Automated Clearing House batch transfer |
| `wire` | International wire transfer |
| `swift` | International SWIFT banking transfer |
| `sepa` | Eurozone SEPA bank transfer |
| `bank_transfer` | Standard domestic bank transfer |
| `wallet` | Wallet-to-wallet transfer |
| `card_transfer` | Card-based payout transfer |
| `international` | International cross-border payout |

## Recommended Payout Flow

1. Check wallet balance
2. Generate payout request signature
3. Initiate payout transaction
4. Store `payout_id` and `payout_order_id`
5. Verify payout using Payout Status API
6. Handle webhook notifications

***

## Important Notes

* `payout_order_id` must always be unique
* Duplicate payout IDs may be rejected
* Ensure sufficient wallet balance before initiating payouts
* Beneficiary bank details should be validated carefully
* Always verify payout status server-side

***

## Common Errors

### 400 Bad Request

Possible reasons:

* Missing required parameters
* Invalid payload structure
* Invalid IFSC code
* Incorrect account details

***

### 401 Unauthorized

Possible reasons:

* Invalid API key
* Incorrect signature
* Expired timestamp

***

### 422 Insufficient Wallet Balance

Possible reasons:

* Wallet balance too low
* Transfer amount exceeds available balance

***

### 404 Order Not Found

Possible reasons:

* Invalid payout order ID
* Transaction does not exist
* Incorrect merchant credentials

***

## Security Recommendations

* Always generate signatures server-side
* Never expose secret keys publicly
* Use HTTPS for all API requests
* Validate beneficiary details carefully
* Monitor payout reconciliation regularly

***

## Best Practices

* Use unique payout order IDs
* Validate account details before payouts
* Store payout references securely
* Retry processing payouts carefully
* Enable webhook handling for real-time payout updates


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.