> For the complete documentation index, see [llms.txt](https://docs.neox.vn/docs/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.neox.vn/docs/global/va-service-qa/overview.md).

# Overview of Payments

Payments can be classified according to the source of funds:

| Type                    | Description                                                                                                                                                                                                                        |
| ----------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| **Trade Collection**    | Payments made by your customers (buyers) to your VA account to pay for goods or service fees, which have a genuine trade background.                                                                                               |
| **Platform Collection** | Payments made by the platform or institution to your VA account, such as settlement payments from e-commerce platforms, advertising traffic platforms, app developer platforms, website building platforms, or acquiring agencies. |
| **Same-Name Deposit**   | Transferring funds to your VA account using the same account name (matching the opening name of the VA account).                                                                                                                   |

***

## Trade & Platform Collection Flow

Steps marked with `*` in trade collection/platform collection scenarios are triggered based on different business situations.

### Trade Collection

```mermaid
sequenceDiagram
    participant Merchant as Merchant
    participant Provider as Provider

    Note over Merchant,Provider: 1. Account Application

    Merchant->>Provider: 1.1 Apply for Collection Account
    Provider-->>Merchant: 1.2 Async Notification: VA Account Created Successfully

    Note over Merchant,Provider: 2. Incoming Funds (No Payer Info)

    Provider-->>Merchant: 2.1 Incoming Fund Notification (Without Payer Information)
    Merchant->>Provider: 2.2 Submit Supplementary Remittance Information

    Note over Merchant,Provider: 3. Trade Collection Notification & Info Supplement

    Provider-->>Merchant: 3.1 Trade Collection Notification<br/>(Merchant Incoming Payment Notification · code=15)<br/><br/>Action Required: Payment Matching

    Merchant->>Provider: 3.2 Create / Update Contract Order
    Provider-->>Merchant: 3.3 Synchronous Response

    Note over Merchant,Provider: 4. Matching & Review

    Merchant->>Provider: 4.1 Associate Incoming Payment with Collection Order<br/>(Match Collection & Trade Order API)
    Provider-->>Merchant: 4.2 Return Review Processing Status
    Note over Provider: 4.3 System Review

    Note over Merchant,Provider: 5. Review Result

    Provider-->>Merchant: 5. Async Merchant Incoming Payment Notification<br/>(Document Review Result)

    alt code=20 · Posting Successful
        Note over Merchant: Funds credited — flow complete
    else code=17 · Review Rejected
        Note over Merchant: Modify & resubmit with original requestId<br/>(Create / Update Trade Order API)
    end
```

### Platform Collection

```mermaid
sequenceDiagram
    participant Merchant as Merchant
    participant Provider as Provider

    Note over Merchant,Provider: 1. Account Application

    Merchant->>Provider: 1.1 Apply for Collection Account
    Provider-->>Merchant: 1.2 Async Notification: VA Account Created Successfully

    Note over Merchant,Provider: 2. Incoming Funds (No Payer Info)

    Provider-->>Merchant: 2.1 Incoming Fund Notification (Without Payer Information)
    Merchant->>Provider: 2.2 Submit Supplementary Remittance Information

    Note over Merchant,Provider: 3. Platform Collection Notification & Info Supplement

    Provider-->>Merchant: 3.1 Platform Collection Notification<br/>(Merchant Incoming Payment Notification · code=13)<br/><br/>Action Required: Supplementary Information Required

    Merchant->>Provider: 3.2 Submit Supplementary Information<br/>(Supplement Recharge Information API)
    Provider-->>Merchant: 3.3 Synchronous Response

    Note over Merchant,Provider: 4. Review Result

    Provider-->>Merchant: 4. Async Merchant Incoming Payment Notification<br/>(Document Review Result)

    alt code=20 · Posting Successful
        Note over Merchant: Funds credited — flow complete
    else code=17 · Review Rejected
        Note over Merchant: Modify & resubmit with original requestId<br/>(Supplement Recharge Information API)
    end
```

{% hint style="info" %}
**Prerequisite:** Merchants must first complete a payment account application. See [Create Virtual Account](/docs/global/global-collections/integration/virtual-accounts/api-create-virtual-account.md) for details.
{% endhint %}

### Step 1\* — Supplement Payer Information

The merchant receives a "No Payer Incoming Payment Notification" and supplements it through the [Supplement Payer Information](/docs/global/global-collections/integration/collections/api-supplement-payer-information.md) interface.

Some small currency payments lack payer information, so the provider cannot automatically match and post the payment for customers, requiring merchants to complete the process after supplementing payer information. The provider will notify customers via [Collection Webhook](/docs/global/global-collections/collection-management/webhook.md) to provide additional information and posting results.

### Step 2 — Incoming Payment Notification

The merchant receives an incoming payment. The provider sends an incoming payment notification to the merchant via the [Collection Webhook](/docs/global/global-collections/collection-management/webhook.md).

After merchants receive the incoming payment notification, if they want to check the incoming status, they can call the [Get Detail Collection Order](/docs/global/global-collections/integration/collections/get-detail-collection-order.md) interface to confirm.

### Step 3\* — Supplement Information Based on Notification

Merchants supplement information according to the incoming payment notification:

**(1) Trade Collection scenario:** Merchants call the [Create Trade Order](/docs/global/global-collections/integration/trade-orders/api-create-trade-order.md) interface to create or update contract orders.

**(2) Platform Collection scenario:** Merchants call the [Supplement Recharge Information](/docs/global/global-collections/integration/collections/api-supplement-recharge-information.md) interface to supplement the required information for platform payment and account entry.

{% hint style="info" %}
**Webhook code reference:**

* If the Collection Webhook returns `code=15`, the merchant calls [Create Trade Order](/docs/global/global-collections/integration/trade-orders/api-create-trade-order.md) to create or update the contract order.
* If the Collection Webhook returns `code=13`, the merchant calls [Supplement Recharge Information](/docs/global/global-collections/integration/collections/api-supplement-recharge-information.md) to supplement the required information for platform payment posting.
  {% endhint %}

In the trade collection scenario, merchants can call the [Get Detail Trade Order](/docs/global/global-collections/integration/trade-orders/get-detail-trade-order.md) interface to check contract orders. If incorrect contract order information is found during the query process, they can call [Create Trade Order](/docs/global/global-collections/integration/trade-orders/api-create-trade-order.md) to update the contract order information.

### Step 4\* — Match Collection to Contract Order

Occurs only in trade collection scenarios. Merchants call the [Match Collection and Trade Order](/docs/global/global-collections/integration/trade-orders/api-match-collection-trade-order.md) interface to establish an association between incoming payments and maintained contract orders.

### Step 5\* — Review Result & Posting Notification

After the provider completes the document review, they send the verification result or account posting notification to the merchant via the [Collection Webhook](/docs/global/global-collections/collection-management/webhook.md).

{% hint style="info" %}
**Webhook code reference:**

* `code=20` — Posting successful.
* `code=17` — Review not approved. The merchant needs to modify and resubmit. Follow these rules for resubmission:
  * **Platform Collection:** Resubmit updated documents through [Supplement Recharge Information](/docs/global/global-collections/integration/collections/api-supplement-recharge-information.md). Update the original order using the **original request number**.
  * **Trade Collection:** Resubmit updated information through [Create Trade Order](/docs/global/global-collections/integration/trade-orders/api-create-trade-order.md). Update the original order using the **original request number**.
  * **Trade Collection — changing matched contract order:** If you need to replace the matching contract order, re-establish the matching relationship through [Match Collection and Trade Order](/docs/global/global-collections/integration/trade-orders/api-match-collection-trade-order.md) using a **new request number**.
    {% endhint %}

***

## Refund Instructions

```mermaid
sequenceDiagram
    participant Merchant as Merchant
    participant NeoX as NeoX / Provider

    Note over Merchant,NeoX: Eligible when: pending contract orders, risk rejected, pending match, or within 14 days of posting

    Merchant->>NeoX: Create Refund Request API
    NeoX->>Merchant: Refund Result (Collection Webhook)

    alt Refund Successful
        Note over Merchant: Funds returned to payer
    else Refund Failed (e.g. incomplete payer info)
        Note over Merchant: Contact provider for offline manual processing
    end
```

For recharge, platform collection, and trade collection records, merchants can call the [Create Refund Request](/docs/global/global-collections/integration/refund-requests/api-create-refund-request.md) interface to return funds to the original route under the following circumstances:

* Pending related contract orders / Additional documents to be supplemented
* Risk control review rejected
* Pending matching orders
* Within 14 days of successful posting

After the provider accepts the refund, the result will be returned via the [Collection Webhook](/docs/global/global-collections/collection-management/webhook.md).

{% hint style="warning" %}
Some payments are temporarily unsupported for online refunds due to incomplete payer information and other reasons. If the refund reports an error, contact the provider for offline manual processing. Refund procedures may incur fees or financial losses — consult your account manager or customer service for details.
{% endhint %}

***

## Contract Orders & Collection Records

### What is a Contract Order?

Only applicable in trade collection business, contract orders are used to demonstrate the authenticity of the trade collection business background. Merchants need to link corresponding contract orders, and the provider will review this information accordingly. Only after approval will the funds be credited.

### What is a Collection Record?

A record of the actual receipt of funds received by the merchant's account.

### When to Create a Contract Order?

Merchants can create or update contract orders through the [Create Trade Order](/docs/global/global-collections/integration/trade-orders/api-create-trade-order.md) interface, usually before payment is received or after receiving payment notifications.

### What are the Requirements for Creating a Contract Order?

When creating a contract order, you need to fill in the contract amount and related business information, and you can also choose whether to settle foreign exchange. The labeling of non-settlement and settlement does not affect customer receipt and entry, but **only contract orders marked "settlement" can increase the "settlement limit"**. Contract orders marked as "foreign exchange settlement" must simultaneously meet the review requirements for settlement business. Once approved, the corresponding settlement quota will be increased.

### When Can Contract Orders Be Modified?

Whether modification is possible depends on `canModifyType` in the [Collection Webhook](/docs/global/global-collections/collection-management/webhook.md):

| canModifyType     | Meaning                                                                                                                                                              |
| ----------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `SUPPLY_MATERIAL` | Only `otherFiles` and `contractFiles` can be added through [Create Trade Order](/docs/global/global-collections/integration/trade-orders/api-create-trade-order.md). |
| `ALL_MODIFY`      | All contract order information can be modified through [Create Trade Order](/docs/global/global-collections/integration/trade-orders/api-create-trade-order.md).     |

***

## Matching Collection Records with Contract Orders

### How Do Collection Records Match Contract Orders?

Merchants use the [Match Collection and Trade Order](/docs/global/global-collections/integration/trade-orders/api-match-collection-trade-order.md) interface to establish the association between collection records and contract orders. After completing the relationship review, the provider records the transaction.

### What is the Relationship Between Collection Records and Contract Orders?

The two have a **many-to-many relationship**: a single collection record can match multiple contract orders, and a single contract order can match multiple collection records.

### What Conditions Must Be Met for Matching to Be Credited?

The total amount of the associated contract order(s) must be **≥** the collection record amount.

### Which Side Can Initiate the Match?

* **\[Collection Record] → Initiate linked contract order:** The matching amount of the contract order can be adjusted.
* **\[Contract Order] → Initiate related collection records:** The matching amount is based on the collection records and cannot be modified.

### Does It Support Matching Different Currencies?

Only **one mismatched currency** is supported.

***

## Related APIs

| API                                                                                                                               | Description                                       |
| --------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------- |
| [Create Virtual Account](/docs/global/global-collections/integration/virtual-accounts/api-create-virtual-account.md)              | Apply for a payment account                       |
| [Get Detail Collection Order](/docs/global/global-collections/integration/collections/get-detail-collection-order.md)             | Query collection records                          |
| [Supplement Payer Information](/docs/global/global-collections/integration/collections/api-supplement-payer-information.md)       | Supplement missing payer information              |
| [Supplement Recharge Information](/docs/global/global-collections/integration/collections/api-supplement-recharge-information.md) | Supplement platform collection information        |
| [Create Trade Order](/docs/global/global-collections/integration/trade-orders/api-create-trade-order.md)                          | Create or update contract orders                  |
| [Get Detail Trade Order](/docs/global/global-collections/integration/trade-orders/get-detail-trade-order.md)                      | Query contract orders                             |
| [Match Collection and Trade Order](/docs/global/global-collections/integration/trade-orders/api-match-collection-trade-order.md)  | Match collection records to contract orders       |
| [Create Refund Request](/docs/global/global-collections/integration/refund-requests/api-create-refund-request.md)                 | Initiate a refund                                 |
| [Collection Webhook](/docs/global/global-collections/collection-management/webhook.md)                                            | Incoming payment notifications and status updates |


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://docs.neox.vn/docs/global/va-service-qa/overview.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
