Invoicing
Accelerate cash flow with automated, trackable, and secure invoicing
Streamline how your team creates and manages invoices. This page covers the Invoice app settings in PCE — defaults for invoice/recurring, tax catalog, and discounts — so you can set consistent rules and reduce setup time.
Prerequisites and Limitations
- Prerequisites: Invoice app installed, API credentials, and a merchant enabled for card and/or ACH.
- Limitations: Tender types, ACH, and notification channels may vary by gateway and region. Tax and discount behavior depends on your configured categories and approval rules.
Settings Overview
The Invoice app exposes three areas:
| Area | What You Configure |
|---|---|
| Invoice & Recurring | Default terms, click‑to‑pay behavior, reminders, recurring schedules, and templates. |
| Sales Tax | Tax rates and tax categories used on invoices and recurring plans. |
| Discounts | Item-, order-, tag-, and collection‑level discounts, approval and timing rules. |
Where to find it: In Settings, select the Invoice tile. Tabs at the top separate Invoice and Recurring options.
Invoice Tab
Invoice settings are organized into three sections.
Default Terms
Default payment terms appear on every new invoice; you can override them when creating an invoice.
Sending Invoices (Click‑to‑Pay)
Enable a pay link on sent invoices so customers can settle balances online. Use the Yes/No toggle to include a payment link and choose which tender types are allowed (card and/or ACH). You can override the default per invoice.
Reminder Notifications
Send automatic reminders before due dates and after invoices become past due.
| Trigger | How It Works | Configuration |
|---|---|---|
| Before Due Date | Sends a reminder n days before the invoice or plan is due. | Enter the number of days before due; use 0 to disable. |
| After Due Date | Sends a reminder n days after the invoice or plan becomes past due. | Enter the number of days after due; use 0 to disable. |
Recurring Tab
Recurring settings define defaults for subscriptions billed on a schedule.
Send Customer Authorization
Set your default for requiring customers to authorize a recurring charge before activation. This is a default only — you can change it per contract.
Schedule Defaults
Choose the most common billing frequency to speed up contract setup. This default can be changed on any contract.
Recurring Plan Templates
Create templates for frequently used recurring plans to prefill schedule, items, taxes, and terms.
Template Fields
| Field | Description |
|---|---|
| Plan Name | Name you’ll enter on a contract to apply this template. |
| Schedule | Billing frequency for the plan. |
| Occurrences | Number of times to bill. Leave blank for unlimited until canceled. |
| Terms | Days the subscriber has to pay after the scheduled date. |
| Items | Line items with qty and price; expand a line to add tax and discounts. |
| Memo | Optional message shown to the customer. |
Create a template: Select + Add Plan, complete the fields, then Save.
Sales Tax
Manage the tax catalog used by invoices and recurring plans. In Settings, select the Sales Tax tile (near the bottom of the page).
What You’ll See
| Column | Description |
|---|---|
| Tax Name | The tax rate name shown at checkout and on receipts. |
| Description | Internal notes about the tax rate. |
| Rate % | Percentage charged for this tax. |
| Categories | Category groups the tax belongs to; use categories to apply multiple related taxes quickly. |
Create a New Tax Rate
| Field | Description |
|---|---|
| Tax Name | Visible to customers; make it specific to what’s being charged. |
| Description | Internal, optional notes about the rate. |
| Rate % | Percentage to charge. |
| Categories | One or more groups for faster assignment on invoices and plans. If omitted, the rate becomes the default category. |
View and Edit a Tax Rate
Select a tax name to open details. Edit fields as needed and select Save to apply changes.
Discounts
Configure discount rules for items, orders, tags, and collections.
What You’ll See
| Column | Description |
|---|---|
| Discount Name | Internal name used to find the discount at checkout. |
| Discount Amount | Percent or fixed amount to reduce. |
| Level | Where it applies — item, order, tag, or collection. |
| Approval | Whether supervisor approval is required. |
| Automatic | Applies automatically when criteria are met. |
| Start Date / End Date | Time‑bound window; leave blank for ongoing. |
| Barcode | System‑generated or manual number. |
Create a New Discount
| Field | Description |
|---|---|
| Discount Name | Internal label; not shown to customers. |
| Discount Amount | Percentage or fixed amount off the total or item price. |
| Level | Choose Order, Item, Tag, or Collection. |
| Automatic | Auto‑apply when criteria match. |
| Never Expires | Set to Yes for ongoing (e.g., Military). Set No to define start/end dates. |
| Supervisor Approval Required | Require a supervisor to approve before applying. |
| Barcode | System‑generated or enter your own number. |
Search and Filter
Use the search box to find discounts by name. Open the filter panel to select criteria and select Apply. To reset, choose Default and Apply. Use Save as Default to keep your preferred filters for next time.
View and Edit a Discount
Select a discount name to view details in a pop‑up. Make changes and select Save to apply them.
PCE MX Invoice lets you create professional invoices and collect payments fast through a secure pay link. Choose a customer, add line items, enable card and/or ACH, and send. Customers receive an email (and optionally SMS) with a link to view and pay. A receipt is issued automatically on successful payment.
Prerequisites & Limitations
- Prerequisites: API credentials, a live or sandbox merchant (
merchantId), and at least one configured payment method (card and/or ACH). - Limitations: Taxes are applied at line level via
taxesortaxCategory. Invoice-levelisTaxExemptoverrides taxes where permitted. Discount stacking depends onisExclusive. ACH availability is region/gateway dependent.
MX Invoice — End-to-End Workflow
Step 0 — Gather prerequisites
- Your
merchantId(sandbox or live). - A
Customer(ID or full object ready to include). - Optional: tax and tax category IDs (or fetch them in Step 2).
- Decide payment options:
allowCreditCard,allowACH,isClick2PayEnabled.
Step 1 — (Optional) Look up taxes and categories
If you don’t already know which Tax or TaxCategory to use, fetch them now and keep the IDs handy for line items.
Get Tax and Tax Category Information
If you don’t know the tax or tax category IDs, fetch them first.
GET https://api.mxmerchant.com/checkout/v3/tax?merchantId={{merchantId}}
Request Parameter
| Name | Type | Required | Description |
|---|---|---|---|
merchantId | integer | Yes | Merchant ID to scope the tax catalog. |
Response Fields
| Path | Type | Description |
|---|---|---|
records[].id | integer | Tax ID used on items. |
records[].name | string | Tax name. |
records[].rate | string | Decimal tax rate (e.g., 0.07). |
records[].taxCategories[].id | integer | Tax Category ID (e.g., 2584). |
records[].taxCategories[].name | string | Category name (e.g., Georgia). |
records[].taxCategories[].code | string | Category code. |
records[].taxCategories[].isPrimary | boolean | Indicates primary category for the tax. |
Tip: Prefer setting a
taxCategoryon each line item. Use explicittaxes[]to target a specific tax ID. SetisTaxExemptat the invoice or customer level where allowed.
Step 2 — Build your line items (PurchaseItem[])
PurchaseItem[])Create at least one line item. Add taxes and/or a tax category if applicable. Add item-level discounts here if needed.
PurchaseItem (Line Item)
PurchaseItem (Line Item)| Field | Type / Enum | Required | Description |
|---|---|---|---|
productName | string | Yes | Item title shown on the invoice. |
description | string | No | Additional detail. |
price | number | Yes | Unit price. |
quantity | integer | Yes | Defaults to 1 if omitted. |
discounts[] | array<Discount> | No | Structured discounts applied to the line. |
taxes[] | array<Tax> | No | Explicit tax entries. |
taxCategory | TaxCategory | No | Category that determines applicable taxes. |
totalAmount | string/number | No | Calculated (read-only on create). |
Step 3 — Apply discounts (optional)
Decide whether the discount applies to a single item (put it on that item) or to the whole invoice (add at the top level).
Item-Level Discount
Applies a 23% discount to a specific line item using the discounts[] array at item level.
| Field | Type | Example Value | Description |
|---|---|---|---|
discountType | Item | Item | Scope of the discount (applies to the line item). |
discountRateType | Percent | 0.23 | Percentage discount rate. |
name | string | Bro Code | Discount name. |
rate | string | 0.23 | Percent value (23%). |
amount | string | 23.00 | Computed discount value. |
code | string | DA4I6PKUHT4MGRFK | Discount code identifier. |
Order-Level Discount
Applies a 15% discount to the entire invoice via the discounts[] array at the top level.
| Field | Type | Example Value | Description |
|---|---|---|---|
discountType | Order | Order | Scope of the discount (applies to invoice total). |
discountRateType | Percent | 0.15 | Percentage discount rate. |
discountApplicationType | Manual | Manual | Discount was applied manually. |
name | string | Bromance | Discount name. |
rate | string | 0.15 | Percent value (15%). |
code | string | DM4I6PKXSGN11YVP | Discount code identifier. |
isExclusive | boolean | false | Allows stacking with other discounts. |
isApprovalRequired | boolean | false | No manual approval needed. |
selected | boolean | true | Indicates discount is active. |
Step 4 — Assemble the invoice body
Set top-level fields, attach your purchases[] and customer, and choose payment options and terms.
Top-Level Body Fields
| Field | Type / Enum | Required | Description |
|---|---|---|---|
invoiceDate | string (ISO 8601) | No | If omitted, server time is used. |
merchantId | integer | Yes | Merchant creating the invoice. |
status | enum: Unpaid, Paid, Void | No | Defaults to Unpaid on create. |
isClick2PayEnabled | boolean | No | Enables pay link on the invoice. |
allowCreditCard | boolean | No | Allow card payments. |
allowACH | boolean | No | Allow ACH payments. |
terms | enum (e.g., OnReceipt) | No | Used to calculate dueDate. |
dueDate | string (ISO 8601) | No | Derived from terms if omitted. |
memo | string | No | Free-form note shown on the invoice. |
isTaxExempt | boolean | No | Invoice-level tax exemption. |
discounts[] | array<Discount> | No | Structured discounts applied to invoice. |
purchases[] | array<PurchaseItem> | Yes | At least one line item required. |
shippingAddress | Address | No | Shipping address snapshot. |
billingAddress | Address | No | Billing address snapshot. |
customer | Customer | Yes | Customer being invoiced. |
Address
Address| Field | Type | Description |
|---|---|---|
address1 | string | Street line 1. |
city | string | City. |
state | string | State/Province. |
zip | string | Postal/ZIP code. |
country | string | ISO country code (e.g., US). |
Customer
Customer| Field | Type | Description |
|---|---|---|
id | integer | Customer ID. |
name | string | Full name. |
email | string | Billing email for invoice delivery. |
mobile | string | Optional; may be used for SMS notices. |
customerNumber | string | Merchant’s external customer number. |
isTaxExempt | boolean | Customer-level tax exemption. |
Step 5 — Create the invoice
Call the endpoint. Use echo=true during testing to get the object back immediately.
Create Invoice
POST https://sandbox.api.mxmerchant.com/checkout/v3/invoice?echo=true
Use this endpoint to create a new invoice with optional click-to-pay functionality.
Query Parameter
| Name | Type | Required | Example | Description |
|---|---|---|---|---|
echo | boolean | No | true | Returns the created invoice object in the response. |
Step 6 — Send the receipt (email and/or SMS)
When the invoice is created, trigger customer notification(s).
Send Invoice Receipt
Send a copy of the invoice receipt via email and/or SMS.
POST https://sandbox.api.mxmerchant.com/checkout/v3/invoicereceipt?id={{invoiceId}}&contact={{email}}%2C{{phoneNumber}}
Parameters
| Name | Location | Required | Example | Description |
|---|---|---|---|---|
id | query | Yes | 239998 | Invoice ID to send a receipt for. |
contact | query | Yes | [email protected],15551234567 | Comma-separated list of email(s) and/or E.164 phone(s). |
Step 7 — Reconcile & verify (post-conditions)
- Store the invoice ID and status (
Unpaid,Paid, orVoid) plus any payment/receipt events. - Confirm taxes and discounts applied match business rules.
- If using Click-to-Pay, open the invoice URL and verify the customer experience (card/ACH options, due date, memo, totals).
Reference Objects
(unchanged from your source; included above where needed)
DiscountTaxTaxCategoryAddressCustomer
See Also
- Activation Video — PCE MX Invoice
Updated 7 days ago