# Submit Order

> Used to generate payment data of specified digital currency, merchants can guide users to jump to the UPay checkout counter for payment through the payment link. After the user's payment is successful, the system will immediately issue a **callback notification**.&#x20;
>
> Note: Users must pay strictly according to the order amount. If the payment amount is inconsistent, the **order will not be processed**.

**URL：**/v1/api/open/order/apply

**Method：**&#x50;OST

**Parameter Type：**&#x61;pplication/json

**Parameter ：**

<table><thead><tr><th width="157">Field Name</th><th width="108">Field Type</th><th width="103">Required</th><th width="100">Signature</th><th>Instruction</th></tr></thead><tbody><tr><td>appId</td><td>string(8)</td><td><strong>True</strong></td><td><strong>True</strong></td><td>Merchant APP ID</td></tr><tr><td>merchantOrderNo</td><td>string(14-32)</td><td><strong>True</strong></td><td><strong>True</strong></td><td>The order number generated independently by the merchant must be unique on the merchant's end.</td></tr><tr><td>chainType</td><td>string(1)</td><td><strong>True</strong></td><td><strong>True</strong></td><td><p>Network: </p><p>1: Tron (TRC20) </p><p>2: Ethereum (ERC20)</p><p>3: PayPal (PYUSD)</p></td></tr><tr><td>fiatAmount</td><td>string(10)</td><td><strong>True</strong></td><td><strong>True</strong></td><td>Legal currency amount, accurate to 4 decimal places</td></tr><tr><td>fiatCurrency</td><td>string(3)</td><td><strong>True</strong></td><td><strong>True</strong></td><td><p>USD (US Dollars)</p><p>CNY (Chinese Yuan Renminbi)</p><p>INR (Indian Rupee)</p><p>JPY (Japanese Yen)</p><p>KRW (South Korean Won)</p><p>PHP (Philippine Peso)</p><p>EUR (Euro)</p><p>GBP (British Pound)</p><p>CHF (Swiss Franc)</p><p>TWD (New Taiwan Dollar)</p><p>HKD (Hong Kong dollar)</p><p>MOP (Macau Pataca)</p><p>SGD (Singapore Dollar )</p><p>NZD (New Zealand Dollar)</p><p>THB (Thai Baht)</p><p>CAD (Canadian Dollar)</p><p>ZAR (South African Rand)</p><p>BRL (Brazilian Real)</p></td></tr><tr><td>attach</td><td>string(64)</td><td>False</td><td>False</td><td>User-defined data, if it is not empty, will be returned as is when calling back to notifyUrl.</td></tr><tr><td>productName</td><td>string(32)</td><td>False</td><td>False</td><td>Product name</td></tr><tr><td>notifyUrl</td><td>string(256)</td><td><strong>True</strong></td><td><strong>True</strong></td><td>The callback address for receiving asynchronous notifications. It must be a directly accessible URL and cannot contain parameters, session verification, or csrf verification.</td></tr><tr><td>redirectUrl</td><td>string(256)</td><td>False</td><td>False</td><td>After the payment is successful, the front-end redirects the address. Be sure to include "http://" or "https://" at the beginning</td></tr><tr><td>signature</td><td>string(32)</td><td><strong>True</strong></td><td><strong>True</strong></td><td>Data signature, see: <a href="../introduction/signature">Signature Algorithm</a></td></tr></tbody></table>

**Return value data parameter：**

<table><thead><tr><th width="209">Field Name</th><th width="147">Field Type</th><th>Instruction</th></tr></thead><tbody><tr><td>appId</td><td>string</td><td>Merchant APP ID</td></tr><tr><td>orderNo</td><td>string</td><td>UPay order number</td></tr><tr><td>merchantOrderNo</td><td>string</td><td>Merchant order number</td></tr><tr><td>exchangeRate</td><td>string</td><td>Fiat currency exchange rate when placing order</td></tr><tr><td>crypto</td><td>string</td><td>Order amount, unit USDT / PYUSD</td></tr><tr><td>status</td><td>string</td><td>Order status, for details, see: <a href="../order-notify#order-status">Order Status</a></td></tr><tr><td>payUrl</td><td>string</td><td>Cashier address, merchants can jump directly to this address for users to pay.</td></tr></tbody></table>
