> For the complete documentation index, see [llms.txt](https://experience.wallex.global/wallex-pay/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://experience.wallex.global/wallex-pay/merchant-tools/invoice-builder.md).

# Invoice Builder

Send your customers a link to complete a payment in crypto.

{% tabs %}
{% tab title="Invoice Basics" %}

### Invoice Basics

***

Creating a crypto invoice is straightforward with our builder. Here's a quick overview of the essential fields:

* **Merchant ID**\*: Unique identifier for your account, ensuring payments are directed correctly.
* **Request Amount**\*: The total amount to be paid in cryptocurrency.
* **Invoice**\*: A reference or invoice number for tracking the transaction.
* **Tax Amount**: Specify any applicable taxes to be added to the total.
* **Collect Shipping Address**: Option to request the buyer's shipping details.
* **Shipping Cost**: Add any shipping charges to the invoice.
* **IPN URL (Optional)**: Provide a custom URL for instant payment notifications, or leave blank to use the default.
* **Allow Buyer to Leave a Note**: Enable this to let buyers add special instructions or comments.

This guide ensures you set up your invoices accurately, making the payment process seamless for both you and your customers.

{% hint style="info" %}
For a full list of fields and detailed information please check out the [HTML POST Fields](/wallex-pay/merchant-tools/invoice-builder.md#html-post-fields) page.
{% endhint %}
{% endtab %}

{% tab title="HTML POST Fields" %}

### Simple HTML POST Fields

***

If you need a checkout with more options such as buyer selectable quantity, multiple item shipping, etc. check out our[ Advanced Buttons](/wallex-pay/merchant-tools/payment-buttons.md#advance-button-maker).

**Main Fields**

<table><thead><tr><th width="171" align="center">Field Name</th><th width="333" align="center">Description</th><th width="110">Required?</th><th align="center">Length Limit</th></tr></thead><tbody><tr><td align="center">cmd</td><td align="center">This should always be set to '_pay_simple'.</td><td>Yes</td><td align="center">N/A</td></tr><tr><td align="center">reset</td><td align="center">This tells the server to delete any cached button data for the user. Set the value to 1</td><td>Yes</td><td align="center">1</td></tr><tr><td align="center">merchant</td><td align="center">Your merchant ID (you can find this on the My Account page).</td><td>Yes</td><td align="center">N/A</td></tr></tbody></table>

**Item/Payment Description Fields**

<table><thead><tr><th width="189" align="center">Field Name</th><th width="335" align="center">Description</th><th width="113" align="center">Required?</th><th align="center">Length Limit</th></tr></thead><tbody><tr><td align="center">currency</td><td align="center">The currency of the payment (BTC, LTC, USD, EUR, etc.). Values supported: Any crypto or fiat currency on the Supported Coins page. Note we in no way process any fiat currencies, they are simply convenience values so you don't have to convert to BTC or another coin yourself.</td><td align="center">Yes</td><td align="center">3</td></tr><tr><td align="center">amountf</td><td align="center">The amount (in the currency chosen) of the payment.</td><td align="center">Yes</td><td align="center">N/A</td></tr><tr><td align="center">item_name</td><td align="center">The name of the item being purchased.</td><td align="center">Yes</td><td align="center">128</td></tr><tr><td align="center">item_desc</td><td align="center">Description of the item being purchased.</td><td align="center">No</td><td align="center">128</td></tr><tr><td align="center">item_number</td><td align="center">This is a passthru variable for your own use. [not visible to buyer]</td><td align="center">No</td><td align="center">128</td></tr><tr><td align="center">invoice</td><td align="center">This is a passthru variable for your own use. [not visible to buyer]</td><td align="center">No</td><td align="center">128</td></tr><tr><td align="center">custom</td><td align="center">This is a 2nd passthru variable for your own use. [not visible to buyer]</td><td align="center">No</td><td align="center">128</td></tr><tr><td align="center">allow_currencies</td><td align="center">Currency codes separated with a comma of coins you will accept. This is used to further restrict the coin selection from your list of enabled coins; for example if you are doing your own exchange rates and want to limit checkout to a user selected currency. Example: BTC,LTC</td><td align="center">No</td><td align="center">255</td></tr><tr><td align="center">on1</td><td align="center">1st option name. This lets you pass through a buyer option like size or color.</td><td align="center">No(unless ov1 set)</td><td align="center">128</td></tr><tr><td align="center">ov1</td><td align="center">1st option value. This would be the buyer's selection such as small, large, red, white.</td><td align="center">No</td><td align="center">128</td></tr><tr><td align="center">on2</td><td align="center">2nd option name. This lets you pass through a buyer option like size or color.</td><td align="center">No(unless ov2 set)</td><td align="center">128</td></tr><tr><td align="center">ov2</td><td align="center">2nd option value. This would be the buyer's selection such as small, large, red, white.</td><td align="center">No</td><td align="center">128</td></tr></tbody></table>

**Shipping Fields**

<table><thead><tr><th width="173">Field Name</th><th width="339">Description</th><th width="110">Required?</th><th>Length Limit</th></tr></thead><tbody><tr><td>want_shipping</td><td>1 = Want buyer's shipping information.0 = Don't want buyer's shipping information. (default)</td><td>No</td><td>1</td></tr><tr><td>shippingf</td><td>Cost of shipping the item.</td><td>No</td><td>N/A</td></tr><tr><td>taxf</td><td>Any tax to charge.</td><td>No</td><td>N/A</td></tr><tr><td>allow_ship_countries</td><td>ISO 3166 2 digit country codes separated with a comma of countries you will ship to. The will deny transactions if the shipping address is not in one of these countries.<br>Example: US,CA,GB</td><td>No</td><td>255</td></tr></tbody></table>

**Miscellaneous Fields**

<table><thead><tr><th width="185" align="center">Field Name</th><th width="339" align="center">Description</th><th width="109" align="center">Required?</th><th align="center">Length Limit</th></tr></thead><tbody><tr><td align="center">ipn_url</td><td align="center">Sets an IPN URL.If not set or blank defaults to the IPN URL in your settings.</td><td align="center">No</td><td align="center">255</td></tr><tr><td align="center">success_url</td><td align="center">Sets a URL to go to if the buyer does complete checkout.</td><td align="center">No</td><td align="center">255</td></tr><tr><td align="center">cancel_url</td><td align="center">Sets a URL to go to if the buyer decides to not complete checkout.</td><td align="center">No</td><td align="center">255</td></tr><tr><td align="center">lang</td><td align="center">Automatically set the checkout language to this language code. For a list of supported codes check this page.</td><td align="center">No</td><td align="center">16</td></tr></tbody></table>

**Buyer Information. These fields can be used to pre-populate forms with any information you already know about your buyer.**

<table><thead><tr><th width="153" align="center">Field Name</th><th width="340" align="center">Description</th><th width="111" align="center">Required?</th><th align="center">Length Limit</th></tr></thead><tbody><tr><td align="center">first_name</td><td align="center">Buyer's first name.</td><td align="center">No</td><td align="center">32</td></tr><tr><td align="center">last_name</td><td align="center">Buyer's last name.</td><td align="center">No</td><td align="center">32</td></tr><tr><td align="center">email</td><td align="center">Buyer's email address.</td><td align="center">No</td><td align="center">128</td></tr><tr><td align="center">address1</td><td align="center">Street / address line 1</td><td align="center">No</td><td align="center">128</td></tr><tr><td align="center">address2</td><td align="center">Street / address line 2</td><td align="center">No</td><td align="center">128</td></tr><tr><td align="center">city</td><td align="center">City</td><td align="center">No</td><td align="center">64</td></tr><tr><td align="center">state</td><td align="center">State / Province</td><td align="center">No</td><td align="center">64</td></tr><tr><td align="center">zip</td><td align="center">Zip / Postal Code</td><td align="center">No</td><td align="center">32</td></tr><tr><td align="center">country</td><td align="center">Country of Residence<br>This uses 2 digit ISO 3166 country codes.</td><td align="center">No</td><td align="center">2</td></tr><tr><td align="center">phone</td><td align="center">Phone Number</td><td align="center">No</td><td align="center">32</td></tr></tbody></table>

{% hint style="info" %}
**Note**: The system will only let you have 3 transactions at a time in the 'Waiting for funds...' state (as a buyer, no limit for sellers)
{% endhint %}
{% endtab %}
{% endtabs %}
