Approve single payin
Approves a single payin for processing. The payin must be in **CREATED** status.
**Response body**
| Field | Type | Description |
|-------|------|-------------|
| `data` | Object | The payin object (`status` reflects the state at response time) |
| `warning` | String | Present on **207** when initiation had a recoverable issue |
**Success responses**
| Status Code | Description |
|-------------|-------------|
| **201** | The payin was approved and processing continued; **`data.status`** reflects the outcome of this request. |
| **202** | The request was accepted and **`data`** includes the payin, but **`data.status`** may still change. Poll **`GET /api/payins/{id}`** until the payin reaches a terminal status. |
| **207** | The payin was approved but initiation did not complete successfully; see **`warning`** and **`data.status`**. |
**Error and retry responses**
| Status Code | Error code | Description |
|-------------|------------|-------------|
| **400** | `INVALID_STATUS` | The payin is not in **CREATED** status and cannot be approved. |
| **401** | `AUTHENTICATION_ERROR` | Authentication credentials are invalid or missing. |
| **403** | `AUTHORIZATION_ERROR` | You do not have permission to perform this action. |
| **404** | `PAYIN_NOT_FOUND` | Payin not found or does not belong to your entity. |
| **503** | (see response body) | **Transient error**—bank initiation did not complete for this request. **Retry** the same approve call after a short wait. The JSON body includes `error_code` and `message` for logging and automation. |
**Notes**
- Treat **202** like any accepted operation: use the returned id and **poll** until status stabilizes.
- **503** is for **retries**, not a final business outcome for the transfer.
Authentication
x-api-keystring
RootPay API key sent in the x-api-key header. Keys are environment-scoped: live_* for production, test_* for sandbox.
Path parameters
payin_id
Response
Payin approved and initiated successfully
data
Response model for payin operations.
warning
Errors
404
Not Found Error
503
Service Unavailable Error