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

# ISV Enablement Solution Overview

# ISV Integration Overview

This documentation is for **ISV (Independent Software Vendor)** customers, explaining how to use OristaPay Open APIs to complete onboarding for end customer (merchants) and conduct daily transaction operations on their behalf.

## Integration Flow

```mermaid theme={null}
sequenceDiagram
    participant ISV as ISV (A)
    participant RD as OristaPay
    participant Merchant as Merchant (B)

    ISV->>RD: 1. Submit merchant onboarding application (Onboarding API)
    RD->>RD: Company search + compliance review
    RD-->>ISV: Webhook: ready for IDV
    ISV->>Merchant: 2. Forward IDV/signing link
    Merchant->>RD: 3. Complete IDV + signing
    RD-->>ISV: Webhook: approved + walletId
    ISV->>RD: 4. Call transaction APIs on behalf of merchant
```

## API Documentation

| Document                                     | Description                                                                                                           |
| -------------------------------------------- | --------------------------------------------------------------------------------------------------------------------- |
| [**Authentication & Signing**](./auth)       | OAuth2 token acquisition, HMAC signature algorithm, request headers, response envelope, error handling, rate limiting |
| [**ISV Onboarding API**](./onboarding-api)   | Merchant onboarding application, IDV link, progress inquiry, company profile query, callback handling                 |
| [**ISV Transaction API**](./transaction-api) | Internal transfers, payment order declaration, Payout, bank account management on behalf of merchants                 |

## Authentication & Signing

All APIs use OAuth2 + HMAC dual authentication. After completing onboarding, ISVs can call transaction APIs on behalf of merchants by simply passing `walletId`. OristaPay automatically enforces authorization based on the ISV ↔ merchant relationship. See [Authentication & Signing](./auth) for details.

## API Quick Reference

### Onboarding API (6 endpoints)

| # | Path                                         | Purpose                       |
| - | -------------------------------------------- | ----------------------------- |
| 1 | `POST /storage/media/dg-putObject`           | File upload                   |
| 2 | `POST /api/v1/onboarding/application/submit` | Submit onboarding application |
| 3 | `POST /api/v1/onboarding/application/query`  | Query application progress    |
| 4 | `POST /api/v1/onboarding/idv/link`           | Get IDV link                  |
| 5 | `POST /api/v1/onboarding/link/refresh`       | Refresh link expiration       |
| 6 | `POST /api/v1/onboarding/profile`            | Query full company profile    |

### Transaction API (15 endpoints)

| Category         | API                          | Purpose                           |
| ---------------- | ---------------------------- | --------------------------------- |
| WalletPayment    | `internalTransfer`           | Internal transfer                 |
| WalletPayment    | `walletOrderDetail`          | Order details                     |
| WalletPayment    | `payinOrderDeclare`          | Request Payment order declaration |
| WalletPayment    | `addRequestPaymentMaterials` | Order material supplement         |
| WalletPayment    | `queryReconBill`             | Download statement                |
| Convert > Payout | `payoutQuote`                | Payout quote                      |
| Convert > Payout | `payoutBook`                 | Payout order                      |
| Convert > Payout | `payoutEnquiry`              | Payout order enquiry              |
| Convert > Payout | `payoutReSettle`             | Payout re-settle                  |
| Convert > Payout | `addBankAccount`             | Add beneficiary bank account      |
| Convert > Payout | `updateBankAccount`          | Update beneficiary bank account   |
| Convert > Payout | `delBankAccount`             | Delete beneficiary bank account   |
| Convert > Payout | `getBankAccount`             | Enquiry beneficiary bank account  |
| Callback         | Order result notification    | Order status change callback      |
| Callback         | Add bank account result      | Bank account add result callback  |
