How Invoice Payments Work
Get paid by bank transfer, or connect your own Stripe, PayPal, Razorpay, Mollie, Midtrans, or Xendit account. Money goes straight to you — Invosend charges 0% fee and never touches your funds.
- Invosend fee on money you receive
- 0%Invosend fee on money you receive
- payment gateways you can connect
- 6payment gateways you can connect
- Bank transfer works on all plans, including Free
- Every planBank transfer works on all plans, including Free
1. Get Paid by Bank Transfer#
The simplest option, available on every plan including Free. You confirm each payment yourself.
- Add your bank details
Go to Payment setup and add your bank name, account holder, account number, and optionally a QR code image for local mobile-banking apps.
- Show it on the invoice
Pick that payment account when you create or edit an invoice. Its bank details and QR code appear directly on the PDF and the public invoice page.
- Confirm payment yourself
Your client transfers manually and can upload proof of payment or mark the invoice as paid on their side. You review it in your dashboard and confirm.
2. Get Paid Automatically via Payment Gateway#
Connect your own merchant account once, then let clients pay online with one click. Invosend relays the checkout link and reads the payment status back — your money never passes through Invosend.
- Connect your own account
Go to Payment setup > Online payment gateways, choose a gateway, and enter your own merchant API keys. This is your own account with that provider, not a shared Invosend account.
- Turn it on for an invoice
Open any invoice and enable the payment gateway you want to offer. You can offer more than one gateway on the same invoice.
- Client pays with one click
Your client opens the invoice link and clicks Pay Now. They complete payment on the gateway's own secure checkout page — no Invosend account needed on their side.
- Invoice updates itself
Once the gateway confirms the payment, Invosend automatically marks the invoice Paid, regenerates the PDF with a paid watermark, and notifies you — no manual follow-up required.
3. Supported Payment Methods#
Offer as many of these as you like on the same invoice.
Bank Transfer
Your own bank account details and an optional QR code for local mobile-banking apps. The client transfers manually; you confirm. Works on every plan, including Free.
Stripe
International card payments in the invoice's own currency. Best for clients paying by credit or debit card from anywhere in the world.
PayPal
Clients pay with their PayPal balance, bank account, or card. Popular with international freelance and agency clients.
Razorpay
Indian UPI, netbanking, and card payments through a Razorpay Payment Link, in the invoice's own currency (INR by default).
Mollie
European payment methods — cards, iDEAL, Bancontact, and more — popular with clients in the Netherlands and the rest of Europe.
Midtrans
Indonesian Virtual Account (BCA, BNI, BRI, Permata, and more), QRIS, and card payments, in Indonesian Rupiah.
Xendit
Indonesian Virtual Account, QRIS, and card payments, in Indonesian Rupiah — an alternative to Midtrans. The invoice's currency can also be PHP, THB, VND, or MYR if your Xendit account is in the Philippines, Thailand, Vietnam, or Malaysia.
Which gateway fits your country?
New workspaces start with these gateways switched on for their country. You can enable any of the others in your workspace settings. Whether a provider accepts you depends on its own country support.
4. Step-by-Step: Connect Each Gateway#
Exact menu names may shift slightly as each provider updates its own dashboard, but this is where every credential lives today.
Last checked: October 13, 2026
Stripe
- Log in to your Stripe Dashboard at dashboard.stripe.com.
- Go to Developers > API keys and copy your Secret Key (starts with sk_test_ for testing, sk_live_ for real payments).
- In Invosend, open Payment setup > Online payment gateways > Stripe and paste it into the Secret Key field.
- Back in Stripe, open Webhooks in the Workbench (dashboard.stripe.com/webhooks) and click Create an event destination. Choose Your account and the Snapshot payload style, select the checkout.session.completed and checkout.session.async_payment_succeeded events, choose Webhook endpoint as the destination type, and paste https://app.invosend.com/api/webhooks/stripe-invoice-payment as the endpoint URL.
- After you create the destination, open its page and click Reveal secret to see the Signing secret (starts with whsec_). Copy it into Invosend's Webhook Signing Secret field. Test and live mode each need their own destination and secret.
- Click Test Connection, then Save. Invosend detects sandbox vs. live automatically from your key.
PayPal
- Log in to the PayPal Developer Dashboard at developer.paypal.com and open Apps & Credentials.
- Switch the Sandbox/Live toggle at the top to match what you want to connect, then select or create an app.
- Copy that app's Client ID and Client Secret.
- In Invosend, open Payment setup > Online payment gateways > PayPal, set the matching Sandbox/Live toggle, then paste the Client ID and Client Secret.
- Still on that app's page in PayPal, find the Webhooks section and add a webhook with the URL https://app.invosend.com/api/webhooks/paypal-invoice-payment, subscribed to the PAYMENT.CAPTURE.COMPLETED event. Sandbox and Live apps each need their own webhook.
- Copy the Webhook ID that PayPal assigns to that webhook into Invosend's Webhook ID field. Do not use the Client ID here.
- Click Test Connection, then Save.
Razorpay
- Log in to your Razorpay Dashboard, choose Test or Live mode, and open Account & Settings > API Keys.
- Click Generate Key, then copy the Key ID and Key Secret straight away, because Razorpay shows the Key Secret only once. Key IDs start with rzp_test_ for testing and rzp_live_ for real payments.
- In Invosend, open Payment setup > Online payment gateways > Razorpay and paste them into the Key ID and Key Secret fields.
- Back in Razorpay, open Account & Settings > Webhooks > Add New Webhook. Paste https://app.invosend.com/api/webhooks/razorpay-invoice-payment as the URL and select the payment_link.paid event.
- In the same form, set a Secret for that webhook (use a new random value, not your API Key Secret) and enter the same value into Invosend's Webhook Secret field.
- Click Test Connection, then Save.
Mollie
- Log in to your Mollie Dashboard and open Developers > API keys.
- Copy your API Key (starts with test_ for testing, live_ for real payments).
- In Invosend, open Payment setup > Online payment gateways > Mollie and paste it into the API Key field.
- Click Test Connection, then Save. No webhook setup is needed — Invosend tells Mollie where to send each payment notification automatically.
Midtrans
- Log in to your Midtrans Dashboard (MAP) at dashboard.midtrans.com.
- Use the Environment drop-down at the top left (Sandbox for testing, Production for real payments), then open Settings > Access Keys and copy your Server Key and Client Key (sandbox keys start with SB-Mid-).
- In Invosend, open Payment setup > Online payment gateways > Midtrans, set the matching Sandbox/Live toggle, then paste the Server Key and Client Key.
- Click Test Connection, then Save. No webhook setup is needed — Invosend sets the payment notification URL automatically for every checkout.
Xendit
- Log in to your Xendit Dashboard and open Settings > Developers > API Keys.
- Copy your Secret Key (starts with xnd_development_ for testing, xnd_production_ for real payments).
- In Invosend, open Payment setup > Online payment gateways > Xendit and paste it into the Secret Key field.
- Still in Xendit, open Settings > Developers > Webhooks and set the invoice-paid webhook URL to https://app.invosend.com/api/webhooks/xendit-invoice-payment, then save. On the same page, click View Webhook Verification Token (Xendit asks for your password) and copy it into Invosend's Webhook Verification Token field. Test and live mode have different tokens.
- Click Test Connection, then Save.
5. Fees & Where the Money Goes#
- Funds go directly from your client to your own bank or gateway account. Invosend never holds, touches, or routes your money at any point.
- Each gateway has its own fees and payout schedule, set by that provider (Stripe, PayPal, Razorpay, Mollie, Midtrans, or Xendit) — check their pricing pages for exact rates in your country.
- Online payment gateways are available on paid plans. Bank transfer, with an optional QR code, works on every plan, including Free.
6. Prefer to Integrate via API?#
Building your own invoicing flow on top of Invosend? The Invoice Generation API accepts a payment_gateway and payment_account field on every generated invoice, so invoices created from your own server can carry the same payment options as ones created in the dashboard.
Read the API DocumentationFrequently Asked Questions#
Does Invosend ever touch or hold my customers' money?
No. Every payment gateway connection is your own merchant account — Stripe, PayPal, Razorpay, Mollie, Midtrans, and Xendit all pay out directly to you. Invosend only relays the checkout link and reads the payment status back.
Which payment gateway should I use?
Use Stripe, PayPal, Razorpay, or Mollie if most of your clients are outside Indonesia, since those charge in the invoice's own currency. Use Midtrans or Xendit if you mainly invoice Indonesian clients, since they support local Virtual Account and QRIS payments in Rupiah.
Can I still use bank transfer without connecting a payment gateway?
Yes. Bank transfer with an optional QR code is available on every plan and needs no third-party account — just add your bank details in Payment setup.
What happens after my client pays online?
The gateway confirms the payment to Invosend automatically. The invoice status flips to Paid, the PDF is regenerated with a paid watermark, and you get a notification — no manual step needed on your side.