Skip to main content

Overview

Every payment in StartMyVPN is backed by an Invoice. Invoices are created when a customer orders a plan or renews a service.

Invoice states

StatusDescription
pendingInvoice created, payment not yet received
paidPayment confirmed; service activated/renewed
cancelledInvoice voided (e.g. customer chose not to pay)
refundedPayment was refunded

Invoice fields

FieldDescription
UUIDUnique identifier used in URLs and API
UserThe customer this invoice is for
ServiceThe subscription being billed
Plan CycleThe billing cycle (determines amount and duration)
AmountTotal charged
CurrencyCurrency code (e.g. USD)
GatewayWhich payment gateway was used
PromoApplied promo code (if any)
DiscountDiscount amount applied
Due DateWhen payment is expected
Paid AtTimestamp of confirmed payment

Payment flow

  1. Invoice is created in pending state
  2. Customer is directed to payment gateway
  3. Payment gateway processes the payment
  4. Webhook notification arrives at StartMyVPN
  5. Invoice status changes to paid
  6. Service is activated or expiry date extended
  7. Receipt email sent to customer

Getting a payment URL

Customers can retrieve payment links for pending invoices:
  • Web: /invoice/{invoice}
  • API: GET /v1/invoices/{invoice}/payment-url

Admin view

From Admin → Invoices you can:
  • View all invoices with filters (status, gateway, date range)
  • View individual invoice details
  • Manually mark an invoice as paid (for manual/bank transfer payments)
  • Record a refund

Refunds

Recording a refund in StartMyVPN:
  1. Open the invoice in Admin → Invoices → [Invoice]
  2. Click Refund
  3. Enter the refund amount and reason
  4. The refund is recorded, and the service may be suspended depending on settings
StartMyVPN records refunds for tracking purposes, but does not automatically process the refund via the payment gateway. You must issue the actual refund through Stripe, PayPal, or your crypto exchange manually.