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

# Cách Pay hoạt động

> Pay cho phép agent thanh toán cho endpoint của bạn từ ví của agent. Bên dưới Pay, x402 và MPP dùng HTTP 402. So sánh các giao thức, rail, loại tiền và số tiền tối thiểu.

Pay cho phép agent thanh toán cho dịch vụ của bạn từ ví của agent, theo quy tắc của chủ sở hữu. Bạn đặt giá. InFlow kiểm tra khoản thanh toán trước khi code của bạn chạy.

Bên dưới Pay là hai giao thức thanh toán HTTP: x402 và Machine Payments Protocol (MPP). Cả hai đều dùng trạng thái `402 Payment Required`.

## Ý nghĩa đối với dịch vụ của bạn

* Bạn đặt giá, loại tiền và các tùy chọn được chấp nhận của từng endpoint.
* InFlow kiểm tra và quyết toán từng khoản thanh toán.
* Dịch vụ của bạn chỉ trả về resource sau khi quyết toán. Với x402, code handler của bạn chạy trước khi quyết toán. Vì vậy, không cộng credit hoặc làm việc khác mà bạn không thể hoàn tác trong handler x402. Xem [Bán credit trả trước](https://ifdocdemo.lumivescence.com/vi/sellers/sell-prepaid-credits.md).
* Khoản thanh toán bằng stablecoin quyết toán vào tài khoản InFlow của bạn. Khoản thanh toán bằng thẻ quyết toán vào tài khoản Stripe của bạn. Xem [Phí và rút tiền](https://ifdocdemo.lumivescence.com/vi/sellers/fees-and-payouts.md).

Agent thanh toán bằng một tùy chọn trong challenge của bạn.

## Cách một khoản thanh toán hoạt động

**1. Agent gọi endpoint**

Request không kèm khoản thanh toán.

**2. Endpoint trả về 402**

Response `402` chứa một challenge. Challenge liệt kê các giao thức, giá và tùy chọn thanh toán mà endpoint chấp nhận.

**3. Chủ sở hữu phê duyệt**

Khi cần phê duyệt, chủ sở hữu hoặc một chính sách hiện có phê duyệt khoản thanh toán.

**4. Agent gửi credential**

Agent gọi lại endpoint với một credential thanh toán.

**5. Người bán quyết toán và phản hồi**

Người bán quyết toán khoản thanh toán qua InFlow. Sau đó người bán trả về resource.

## So sánh MPP và x402

| | MPP | x402 |
| - | - | - |
| Tên đầy đủ | Machine Payments Protocol | x402 |
| Header của challenge | `WWW-Authenticate: Payment` | `PAYMENT-REQUIRED` |
| Header của credential | `Authorization: Payment` | `PAYMENT-SIGNATURE` |
| Vai trò của InFlow | Nhà cung cấp dịch vụ thanh toán. InFlow kiểm tra và quyết toán credential. | Facilitator. InFlow kiểm tra và quyết toán các khoản thanh toán. |
| Package của người bán | `@inflowpayai/mpp-seller` | `@inflowpayai/x402-seller` |
| Package của người mua | `@inflowpayai/mpp-buyer` | `@inflowpayai/x402-buyer` |
| Tiền | Stablecoin từ số dư InFlow trên rail `balance`. USD từ thẻ liên kết trên rail `instrument`, cũng như với các phương thức `card` và `stripe`. | Stablecoin từ số dư InFlow với `balance`, hoặc onchain với `exact` hoặc `upto`. USD từ thẻ liên kết với `instrument`. |
| Gói thuê bao | Có, với `inflow.subscription` | Không có trong SDK hoặc CLI của InFlow |
| Lệnh CLI | `inflow mpp ...` | `inflow x402 ...` |
| Đặc tả | [mpp.dev](https://mpp.dev) | [x402.org](https://x402.org) |

Các tên package này dành cho Node.js. Với Python, Go và Rust, xem [Tham khảo SDK](https://ifdocdemo.lumivescence.com/vi/reference/sdk-packages.md).

## Dùng cả hai giao thức

Tích hợp cả hai giao thức trong cùng một dịch vụ, để agent dùng giao thức nào cũng thanh toán được cho bạn. Dùng chung logic định giá và xử lý đơn hàng. Mỗi request chỉ đi qua một luồng thu tiền. Bạn có thể bắt đầu với một giao thức và thêm giao thức kia sau.

| Giao thức | Phần bổ sung |
| - | - |
| MPP | Các loại tiền pháp định như `USD`, stablecoin và gói thuê bao. |
| x402 | Hệ sinh thái x402, stablecoin onchain và nhiều hơn một facilitator. |

Một endpoint có thể chấp nhận cả hai giao thức. Khi đó, response `402` của endpoint liệt kê các tùy chọn MPP và các tùy chọn x402. Người mua thanh toán bằng một trong các tùy chọn đó. Nếu các header của response quá lớn với proxy của bạn, dùng một endpoint cho mỗi giao thức. Xem [Chấp nhận cả hai giao thức trên một endpoint](https://ifdocdemo.lumivescence.com/vi/sellers/protect-an-endpoint.md#chấp-nhận-cả-hai-giao-thức-trên-một-endpoint).

Khi một endpoint cung cấp cả hai giao thức, InFlow CLI lọc các tùy chọn theo network, loại tiền và số dư khả dụng. Sau đó, CLI ưu tiên MPP.

## Rail và scheme

Một rail (MPP) hoặc một scheme (x402) là cách tiền di chuyển.

| Giao thức | Tên | Những gì di chuyển |
| - | - | - |
| MPP | `balance` | Tiền mã hóa, từ số dư InFlow của người mua. MPP chọn rail này khi loại tiền của khoản thu là một stablecoin, như `USDC`. |
| MPP | `instrument` | Tiền pháp định, từ một phương tiện thanh toán của người mua. |
| x402 | `balance` | Một lần chuyển số dư InFlow: chuyển tiền trên sổ cái giữa hai tài khoản InFlow, không có giao dịch onchain và không tốn gas. `inflowAccepts` mặc định đề xuất scheme này, cùng với `exact`. |
| x402 | `exact` | Một lần chuyển onchain với số tiền chính xác. |
| x402 | `upto` | Một lần chuyển onchain với số tiền tính theo mức dùng, tối đa đến một mức trần. |
| x402 | `instrument` | USD pháp định, từ một thẻ liên kết của người mua. |

Trong MPP, loại tiền của khoản thu trong challenge của người bán quyết định rail. Người mua không chọn rail.

## Network và loại tiền

Người bán đặt loại tiền cho từng khoản thu. Tài khoản InFlow của một agent giữ USDC, USDT, PYUSD và thẻ ở cùng một nơi.

Thanh toán onchain dùng các blockchain sau.

| Blockchain | Giao thức | Loại tiền |
| - | - | - |
| Arc | x402 | USDC |
| Base | x402 | USDC |
| Monad | x402 | USDC |
| Solana | x402 | USDC, USDT, PYUSD |
| Tempo | MPP | USDC, PUSD |

Một khoản thanh toán từ số dư dùng USDC, USDT hoặc PYUSD. Người mua không chọn blockchain cho khoản thanh toán từ số dư. Người mua có thể nạp tiền vào số dư InFlow trên Aptos, Arc, Base, Monad, Solana hoặc Tempo.

Khoản thanh toán thẻ bằng USD đi qua tài khoản Stripe mà bạn kết nối. Phương thức `card` cũng cần một tài khoản Stripe đã kết nối. Với phương thức này, bạn nhận một credential thẻ đã mã hóa, không phải số thẻ.

## Số tiền tối thiểu

Khoản thanh toán bằng stablecoin không có số tiền tối thiểu.

Khoản thanh toán thẻ bằng USD có mức tối thiểu là USD 0.50. Số tiền phải là số cent nguyên. Quy tắc này áp dụng cho rail `instrument` của MPP, các phương thức `card` và `stripe` của MPP và scheme `instrument` của x402. Mức tối thiểu cho thẻ đến từ Stripe.

## Chỉ chấp nhận stablecoin

Chỉ công bố các offer bằng stablecoin. Thanh toán bằng thẻ chỉ bắt đầu khi bạn thêm một offer bằng USD và kết nối một tài khoản Stripe. Một offer bằng USDC không cho phép một khoản thu USD vào thẻ.

## Nhận thanh toán từ người mua ngoài InFlow

Mọi người mua MPP hoặc x402 đều có thể thanh toán cho bạn, không chỉ người mua InFlow. Trên MPP, người mua có thể thanh toán bằng Stripe Link và Visa CARD. Người mua cũng có thể thanh toán stablecoin từ mọi ví tương thích.

## Số dư InFlow

Số dư InFlow là lượng stablecoin trong tài khoản InFlow của một agent. Một khoản thanh toán bằng số dư chuyển giá trị từ người mua sang người bán. Số dư InFlow không phải là giao thức thứ ba. MPP chấp nhận số dư này dưới dạng rail `balance`, còn x402 dưới dạng scheme `balance`.

## Phê duyệt của con người

Khi cần phê duyệt, yêu cầu thanh toán chuyển đến chủ sở hữu. Chủ sở hữu phê duyệt trong dashboard InFlow hoặc ứng dụng di động InFlow. Một chính sách hiện có có thể phê duyệt khoản thanh toán mà không cần chủ sở hữu.

Phê duyệt cho phép khoản thanh toán tiếp tục. Phê duyệt không chứng minh rằng khoản thanh toán đã được quyết toán hoặc người bán đã giao resource.

### Chính sách thanh toán

Chủ sở hữu đặt các chính sách thanh toán trong **Policies**, trong tài khoản InFlow của người mua. Một chính sách áp dụng cho các khoản thanh toán mà InFlow quản lý. Chính sách không kiểm soát các khoản thanh toán từ một ví bên ngoài.

| Hành động | Điều xảy ra với một yêu cầu khớp |
| - | - |
| Approve | InFlow tự động phê duyệt khoản thanh toán, trong giới hạn của chính sách và số tiền khả dụng. |
| Review | Chủ sở hữu phê duyệt hoặc từ chối yêu cầu. |
| Decline | InFlow từ chối yêu cầu. Chủ sở hữu không nhận yêu cầu phê duyệt nào. |

Một yêu cầu không khớp chính sách nào sẽ chuyển sang review. Một yêu cầu cho gói thuê bao luôn chuyển sang review.

| Thiết lập | Chức năng |
| - | - |
| Payment type | MPP hoặc x402. Tạo một chính sách cho mỗi giao thức. |
| Seller | Một người bán, hoặc tất cả người bán. Chọn tài khoản người bán nhận khoản thanh toán. |
| Currency | Loại tiền của các giới hạn. Một giới hạn USD không bao gồm USDC. |
| Threshold | Số tiền tối đa của một lần mua. |
| Budget và period | Tổng số tiền tối đa trong mỗi chu kỳ, ví dụ **Daily**. **Once** không bao giờ đặt lại. |
| Reserved | Giữ riêng toàn bộ budget từ số dư của bạn. Thiết lập này chỉ dành cho số dư stablecoin với chu kỳ **Once**, và cần một thời hạn. |
| Expiration | Thời điểm mà sau đó chính sách không còn khớp với các yêu cầu mới. |

Một chính sách Approve cần một threshold, một budget hoặc cả hai. Threshold không thể lớn hơn budget. Mỗi chính sách có budget riêng. Hai chính sách với budget 10 không dùng chung một giới hạn 10.

Các quy tắc sau áp dụng tại các giới hạn:

* Nếu một lần mua lớn hơn threshold hoặc budget còn lại, InFlow từ chối lần mua đó. InFlow không chuyển lần mua đó sang review.
* InFlow dùng budget khi InFlow phê duyệt khoản thanh toán, trước khi quyết toán.
* Khi các chính sách chồng lên nhau, InFlow chọn một chính sách. Decline được ưu tiên hơn Review, và Review được ưu tiên hơn Approve.
* Một chính sách cho một người bán không được ưu tiên hơn một chính sách cho tất cả người bán.
* Các chính sách của chủ sở hữu được ưu tiên hơn các chính sách mà một người bán yêu cầu.

Để review từng lần mua, dùng một chính sách Review. Không dùng một threshold Approve nhỏ cho việc này. InFlow từ chối các lần mua lớn hơn. InFlow không chuyển các lần mua đó sang review.

Bạn có thể sửa thiết lập bật, thời hạn và thông báo của một chính sách. Để thay đổi một thiết lập khác, tạo một chính sách mới. Sau đó, tắt chính sách cũ. Một chính sách đã tắt không hủy và không hoàn tiền một khoản thanh toán.

## Bắt đầu tại đây

| Bạn là | Bắt đầu tại đây |
| - | - |
| Người bán | [Nhận thanh toán từ agent](https://ifdocdemo.lumivescence.com/vi/sellers/protect-an-endpoint.md) |
| Agent | [Thanh toán cho resource](https://ifdocdemo.lumivescence.com/vi/agents/pay-for-a-resource.md) |


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