Overview
Every payment in Shoppex starts with an invoice. Whether a customer checks out through your storefront, clicks a payment link, or your backend creates one via API β the invoice is always the central object that tracks who is paying, what theyβre buying, and whether the payment succeeded.This guide covers the Shoppex invoice model used by both hosted checkout flows and the Developer API.
An invoice can go through more than one payment attempt before it reaches its final state. A customer might try PayPal, abandon it, and come back with a credit card β itβs still the same invoice.
Invoice Statuses
| Status | Description |
|---|---|
PENDING | Invoice created, awaiting payment |
COMPLETED | Payment completed successfully |
PARTIAL | Partial payment received (crypto underpayment) |
VOIDED | Invoice cancelled or expired |
WAITING_FOR_CONFIRMATIONS | Crypto payment pending blockchain confirmations |
CUSTOMER_DISPUTE_ONGOING | Customer opened a dispute/chargeback |
REVERSED | Payment reversed (chargeback won by customer) |
REFUNDED | Payment was refunded |
Creating an Invoice
Via Dashboard
Via API (Developer API)
Use the POST /payments endpoint to create an invoice programmatically:Invoice Expiration
By default, Shoppex-hosted invoice payment windows expire after 24 hours. You can customize the default expiration in Settings β Invoices.The current Dev API payment example on this page does not accept an
expires_at request field.
Configure a different default expiration in the dashboard instead.Partial Payments
Partial payments can occur with cryptocurrency when the customer sends slightly less than required. You can:Accept as paid
Accept as paid
Mark the invoice as paid manually from the dashboard. Use this when the shortfall is negligible and you want to fulfill the order immediately.
Request remaining
Request remaining
Customer pays the difference. The invoice stays in
PARTIAL status until the remaining amount is received, then transitions to COMPLETED.Refund
Refund
Cancel and refund the partial payment. The invoice moves to
VOIDED and you can create a new one if needed.Webhooks
Get notified when invoice status changes:Integration Rule
If you sync invoices into your own system, use the Shoppex invoice status as the final source of truth. The first payment attempt might fail, the second might succeed β the invoice ends asCOMPLETED regardless of how many tries it took.
Next Steps
Payments Guide
Learn about payment gateways, configuration, and processing.
Webhooks Guide
Set up real-time notifications for invoice status changes.