SAAS PAYMENTS

How to Accept Global Subscription Payments for SaaS

Anyway Team

· 7 min read ·

To accept global subscription payments for SaaS, define the recurring offer, use a legal seller that can handle the buyer's location, collect clear consent, create a hosted subscription checkout, verify payment events on the server, track subscription states, provide easy cancellation, and reconcile each renewal to the payout ledger.

The setup in eight steps

  1. Define the plan, price, interval, limits, and renewal terms.

  2. Choose the legal seller for the subscription.

  3. Publish the pricing, cancellation, and refund terms.

  4. Create the recurring product and payment link.

  5. Attach the checkout to the correct application user.

  6. Verify signed order and subscription webhooks.

  7. Keep access aligned with the paid lifecycle.

  8. Reconcile renewal orders and request available payouts.

Step 1: Define the subscription before writing code

A recurring price needs a complete promise. State what the customer receives, how often they are charged, when access starts, whether usage limits reset, and how cancellation affects the current period.

For a $29 monthly AI writing tool, the pricing page should say whether the plan includes 500 generations, whether unused capacity rolls over, and whether cancellation stops access immediately or at period end.

Anyway's current subscription records support daily, monthly, and yearly billing intervals for supported Card/USD pricing. Pick the interval that matches the public offer. Keep the first version simple enough that support can explain it in one reply.

Step 2: Choose who sells the subscription

The legal seller appears on the receipt and owns the customer transaction. A standard processor leaves the SaaS company responsible for indirect-tax registration, invoices, filings, and remittance.

A Merchant of Record sells the approved product to the buyer and handles the covered transaction-tax workflow. Anyway states that it is the Merchant of Record on each covered Business sale and calculates, collects, and files applicable sales tax, VAT, and GST.

This is valuable for a subscription because every renewal is another sale. Each one needs a payment status, invoice, tax treatment, and financial record.

Read the complete Merchant of Record guide for the seller model behind recurring payments.

Step 3: Publish clear recurring-payment terms

Put the renewal terms next to the price, not behind an unrelated footer link. Tell the customer:

  • The amount and billing currency

  • The billing interval

  • When the first charge occurs

  • Whether a trial becomes paid

  • How to cancel

  • When cancellation takes effect

  • How refunds are handled

Visa's published subscription-merchant policy requires express consent to recurring billing, an electronic copy of the subscription terms, clear transaction receipts, and an easy online cancellation mechanism. It also requires advance reminders in defined trial and plan-change situations.

Clear terms are useful even before a rule applies to a specific transaction. They reduce “I did not expect this renewal” disputes.

Step 4: Create the subscription payment link

In Anyway Business, create a product with its name, description, price, and currency. Add a supported recurring Card/USD payment link and publish it.

The customer-facing link follows this form:

https://pay.anyway.sh/pay/PL_EXAMPLE
https://pay.anyway.sh/pay/PL_EXAMPLE
https://pay.anyway.sh/pay/PL_EXAMPLE

Place it behind the exact plan on the pricing page. A Pro button should not point to the Starter link, and a yearly price should not open a monthly checkout.

Anyway creates a subscription record that includes customer, product, amount, currency, billing interval, current-period end, and cancellation state. Initial and renewal payments remain separate orders tied to the same subscription.

Step 5: Match checkout to the application user

Create a pending purchase in your database and pass its reference through the Anyway payment link:

https://pay.anyway.sh/pay/PL_EXAMPLE?merchant_reference=PUR_456&user_id=USR_123&plan=pro-monthly
https://pay.anyway.sh/pay/PL_EXAMPLE?merchant_reference=PUR_456&user_id=USR_123&plan=pro-monthly
https://pay.anyway.sh/pay/PL_EXAMPLE?merchant_reference=PUR_456&user_id=USR_123&plan=pro-monthly

The order receives merchantReference and merchantMetadata. These values are visible to the buyer and must be treated as untrusted strings.

Do not let plan=pro-monthly decide the price by itself. Compare the verified product, amount, and currency in the paid order with the server-side pending purchase.

Step 6: Verify order and subscription events

Configure an HTTPS webhook in Anyway Developer settings. Verify the Ed25519 signature against the raw body before parsing the event.

The core events are:

  • Event: order.paid; Application action: Confirm the initial or renewal payment

  • Event: order.failed; Application action: Record the failed attempt without granting new access

  • Event: subscription.created; Application action: Store the new subscription ID

  • Event: subscription.updated; Application action: Update period end, status, or scheduled cancellation

  • Event: subscription.expired; Application action: Apply the expired-state rule

  • Event: subscription.ended; Application action: End recurring access after the final period

Use webhook-id as the idempotency key. Anyway keeps that logical event ID stable across delivery attempts, which lets the app process each renewal once and preserve the newest paid state.

Step 7: Align product access with subscription state

Anyway documents these lifecycle states: PENDING, ACTIVE, PAUSED, CANCELED, EXPIRED, and ENDED.

Scheduled cancellation deserves special handling. Canceling from the Subscriptions page sets cancellation for the end of the current billing period. The record can remain active until currentPeriodEnd, with cancelAtPeriodEnd set to true. The app should show the paid-through date instead of removing access early.

Store four fields in your app:

  • Anyway subscription ID

  • Current status

  • Current period end

  • Scheduled-cancellation flag

Use the server state for authorization. A browser redirect can improve the post-checkout experience, but it should not control premium access.

Step 8: Reconcile every renewal

Anyway distinguishes the first subscription payment from later renewal orders. A renewal includes the same subscriptionId and an originalOrderId that points back to the initial order.

For each eligible Card/USD sale, compare the order ID across Orders and Finance. Finance records the gross buyer amount, platform fee, net seller amount, and financial posting status.

A paid order can appear shortly before its Finance transaction because posting is asynchronous. Reconcile after the entry appears rather than treating that short delay as a missing payment.

Build a clear renewal experience

A clear renewal experience helps customers understand the value they receive on every billing date:

  1. Show the renewal interval next to the price.

  2. Send the subscription confirmation immediately.

  3. Provide an easy cancellation route.

  4. Notify customers when trial or plan terms require it.

  5. Keep the support email visible.

  6. Keep an accurate product-access and usage history.

Visa's recurring-payment guidance supports the same customer-first approach: clear transaction details, timely communication, and easy customer control.

See how to prevent SaaS chargebacks for the evidence and response workflow.

Receive subscription revenue through Anyway

Anyway's official Finance documentation lists Alipay, mainland China bank, US ACH, UK bank, and Hong Kong bank payout accounts. The minimum payout request is $50.

The published Business price is 3.9% + $0.50 per transaction, with no monthly or setup fee. The plan includes the MoR service, global tax and compliance, billing, and subscriptions.

For founders starting without an entity, read how to sell SaaS globally without setting up a company.

Frequently asked questions

Can I accept SaaS subscriptions without a company?

Yes. Anyway supports Individual applications as well as Business applications and provides a documented onboarding process for founders with a ready product.

Which subscription intervals does Anyway support?

The current customer and subscription documentation lists daily, monthly, and yearly billing intervals for supported recurring Card/USD pricing.

What happens when a customer cancels?

Cancellation from the Subscriptions page is scheduled for the end of the current billing period. The subscription can remain active until currentPeriodEnd, and the app receives the scheduled state through subscription.updated.

How should my app keep renewal access accurate?

Use the verified renewal order, canonical subscription status, and currentPeriodEnd value. This keeps customer access aligned with the paid subscription period.

Does Anyway handle tax on renewals?

Anyway states that it calculates, collects, and files applicable sales tax, VAT, and GST as the Merchant of Record for covered transactions, including covered recurring sales.

Launch the subscription with the full lifecycle

The checkout begins the subscription relationship. Build confirmation, renewal, period-end updates, customer communication, and payout reconciliation around the complete lifecycle from day one.

Anyway joins the Merchant of Record sale, hosted subscription checkout, tax handling, lifecycle records, signed webhooks, and payout routes. Create an Anyway account and test the complete recurring flow before launch.

Official sources checked