Skip to main content

Stripe Checkout payments

Use Stripe Checkout to request payments or collect card details for later charging, using any method set up in your Stripe account.

Updated over 2 weeks ago

Note: As we’re gradually releasing new Stripe Checkout payments to our customers, you might be using our legacy integration.

With our enhanced Stripe Checkout integration, you can collect payments directly from PandaDoc documents using the payment extension and any payment method enabled in your Stripe account. You can also use the Card details field to collect card information and charge later.

Key things to know

  • The Stripe payment description will include the name of the PandaDoc document.

  • If a payment fails, the customer may briefly see a $1 charge. Learn more from Stripe Support.

  • PandaDoc transaction fee: $0.00 (subject to change).

  • Minimum charge: $0.50

  • One Stripe account can be connected to multiple PandaDoc workspaces — disconnecting it from one will disconnect it from all.

  • Multiple Stripe accounts cannot be connected to one PandaDoc workspace. To use multiple Stripe accounts, connect each to a separate workspace.

  • Stripe displays payment methods based on payer location (e.g., Klarna in the US, not in Latin America).

  • PandaDoc supports Stripe payment methods that allow recurring payments (e.g., cards, digital wallets, and bank debits).

  • Not supported: Real-time payments, cash vouchers, bank transfers (as a push payment method), and buy now/pay later.

New: Set a default payment method

You can now define the default payment method for your customers in two ways:

Workspace-level default

Go to Settings > Integrations > Stripe > Settings. Under Payment Method, choose between:

  • Dynamic (default): Automatically adapts to the customer’s device, location, and currency.

  • Pre-set: Manually choose supported methods (e.g., Credit card, Bank Transfer) — ideal if you want more control.

Document-level override

In the payment extension in your document or template:

  • Click Advanced options

  • Under Connected Gateways, choose your preferred payment method:

    • Dynamic

    • Pre-set with one or more methods selected (e.g., Credit Card, Bank Transfer)

This allows you to customize the payment experience per document.

Connect your Stripe account to PandaDoc

Note: You can connect one Stripe account to several PandaDoc workspaces. Please note, in case you disconnect Stripe from one of the workspaces, it will be disconnected from other workspaces too.

You can connect Stripe:

  • From any document/template via the Payment extension, or

  • Via Settings > Integrations and API > Stripe

Open a template, document, or a form. Select Payment extension on the right panel, then select Get started > Connect.

Note: Only the Account owner and users with an Admin or a Manager role can connect Payment gateways.

Alternatively:

  1. Go to Settings > Integrations

  2. Select Stripe

  3. Select Connect, then sign in to your Stripe account.

Note that once you’ve connected Stripe, it’ll be selected as the default primary payment gateway in your workspace settings, and will be applied to all new templates and documents with a payment extension. You can change your primary payment gateway in Settings > Document settings.

Add a payment to your document or template

  1. Select Payment extension on the right panel

  2. Assign a payer and set a payment amount

  3. Use Advanced options to control payment methods (see above)

Note: All payment methods enabled in your Stripe settings (and not requiring domain validation) will be available to your customers during checkout. Local payment methods (e.g., SEPA Direct Debit, ACH) are supported where applicable.

You need to ensure that the payment methods you need are enabled under the 'PandaDoc configuration' in the Payment methods settings.

Testing Stripe integration

The Stripe integration in PandaDoc now supports a test mode, allowing you to simulate payments without processing actual transactions. This is ideal for ensuring your setup works seamlessly before going live.


Nagivate to Settings > Integrations > Stripe, and switch on the toggle the "Test mode" toggle.

Note: Any user on the account, regardless of their account role, can enable or disable Test mode.

Set up a test payment in your document

  1. Add a payment block to your document.

  2. Send the document to a test email address.

  3. Finalize the document and proceed to payment.

When simulating transactions, use Stripe's test card numbers, such as 4242 4242 4242 4242. For additional details, refer to Stripe's documentation.

After completing a test payment the payment extension will display a label: "Payment has been processed in test mode."

Test payments are marked with a TEST label on the Payments dashboard.

In Stripe, test transactions will be visible under Test mode.

Once testing is complete, disable the Test mode to begin processing real transactions.

Send the document and collect payment

  1. Once you’re ready, send your document.

  2. When your recipient opens the document, they’ll be informed that an online payment option is available, at which point they can add the required information and select Finish at the top of the page. After this, the document status will change to “Waiting for payment.”

  3. To proceed to payment, your recipient can select Pay.

Once payment is complete, the document status will change to “Paid.”

You and your recipients will receive a confirmation email notifying you that payment is complete.

Important: If you're sending a PandaDoc document to an existing customer with the same email address, PandaDoc will not overwrite their payment method. Instead, a new customer will be created in Stripe. Set up data merge to match customer records.

Storing payment methods for future charges

In certain cases, and with a recipient’s consent, payment details can be securely stored within Stripe. Two specific cases are:

  1. Manual subscription creation. If you obtain a customer's credit card information through the Card details field, you can manually create a subscription and charge the customer later with their consent.

  2. Automatic subscription creation for recurring payments. When collecting payments for recurring products, or setting up a recurring payment with Stripe in the payment extension, our system automatically initiates a subscription for the specified product. This allows for automatic charges based on the contract term indicated in your quote.

In addition, you can use the Card details field to store this information within Stripe and charge customers as necessary. You’ll need to ensure you collect the customer's consent as part of the process.

Some important notes:

  • One-time payments: Note that credit card and bank details (for ACH direct debit payments) are not stored within the customer record for one-time payments.

  • Pre-payments and installments: We currently don’t support pre-payments or installments, so storing payment details to charge the full amount later isn’t possible at this time. If you’d like to see this feature created, we encourage you to vote for it.

Collect payment information with Card details field

  1. Add the “Card details” field to the document

  2. Assign it to the recipient whose information you’re collecting

  3. Send the document

  4. The recipient can then open the document and submit their payment information

To access your recipient’s payment information:

  1. Open your Stripe account and select “Customers” in the top panel

  2. Select the customer, then “Actions” in the top right

  3. From here, you can create either a subscription or one-time charge

Set up recurring charges

PandaDoc now supports recurring payments through Stripe, allowing you to collect payments from customers on a weekly, monthly, or annual basis, either for a specific duration or indefinitely.

With recurring payments, you can configure payment frequencies, set durations, and automatically create subscriptions in Stripe when payments are processed. For step-by-step instructions and customization options, visit this page.

You can also set up recurring charges in your catalog and collect payment through Stripe using a quote builder block.

Note: Quote builder block is available on the Enterprise plan.

  1. Next, add a product with a recurring price to the catalog, then select it in your quote (available billing period options are weekly, monthly, quarterly, semiannually, and annually)

  2. Add a payment to your document, then select the payer

  3. Make sure that the necessary quote is selected for payment

  4. Send your document

Recipient view:

Once the client makes payment, a new subscription record will be created in your Stripe account and the next recurring charge will be collected automatically from the subscription.

Note: If you’d like to apply a discount for future recurring payments in the subscription created within Stripe, add it to the line items in the “Discount” column. If you’d like to apply the discount to the first recurring charge only and leave the subscription record in Stipe without the discount, add it in the section or grand total footer.

Setting up recurring charges (subscriptions) through Stripe.com

Stripe allows you to make additional charges or set up a subscription for any customer in your Stripe account with associated billing details (CC info). Further details are available on Stripe.com.

After a charge is made through a PandaDoc document, new customers are entered into your Stripe account, along with their billing details.

In Stripe, go to Customers, then select the customer you want to set up recurring billing for. Next, scroll down to Subscriptions and create one for this client.

Set up invoicing in Stripe

Note: This feature is being gradually rolled out. If you don’t see the invoicing option in your account yet, it’s not available to your workspace.

PandaDoc now supports automated invoicing in Stripe, giving you a seamless way to generate Stripe invoices when a document is completed. This is especially useful for companies that require formal invoices for compliance, accounting, or customer expectations.

Benefits of enabling Stripe invoicing:

  • Automatically creates Stripe invoices for one-time and recurring payments.

  • Supports installment charges.

  • Allows tax calculation and inclusion on invoices using Stripe Tax (if enabled).

  • Provides a consistent invoicing experience directly within your Stripe dashboard.

How it works

When a recipient completes a document with payment, PandaDoc triggers invoice creation in Stripe.

The invoice includes:

  • Line items from quote builder or pricing table

  • Optional taxes (if enabled and properly configured in Stripe)

  • Customer information (email, billing address, ZIP, country)

Important: Invoicing is supported only with the Dynamic pricing method. When invoicing is enabled, you can assign only one payer per document.

Enable invoicing at the workspace level

  1. Go to Settings > API and Integrations > Stripe > Settings.

  2. Switch on the Create Invoice in Stripe toggle.

  3. (Optional) To apply taxes based on the payer’s billing location, enable Include tax amount in Invoice option.

Enable invoicing at the document, template, or form level

  1. Open your document, template, or form.

  2. Go to the Payment extension in the right panel.

  3. Under Invoicing, switch on the Create Invoice in Stripe toggle.

  4. (Optional) Enable Include tax amount in Invoice option.

To generate a Stripe invoice with tax included, ensure the recipient's contact contains:

  • Email

  • Country

  • ZIP code

If any of these fields are missing, you’ll see a “Payment not configured warning.
Click Configure > Edit contact in the payment extension to add the required details.

Warning: If a secondary payment method (e.g., PayPal) is enabled, Stripe invoices cannot be generated.

How Stripe calculates tax

Stripe determines tax on the invoice using:

  • Payer’s location (based on ZIP and country)

  • Tax behavior (inclusive/exclusive)

  • Product tax category (from Stripe’s product catalog or auto-assigned)

Tip: If you regularly use specific products, pre-create them in Stripe and assign accurate tax categories for better tax compliance.

Tax amounts will appear on the invoice and at checkout when the document is paid (if Include tax amount in Invoice was enabled).

Warning: Taxes won't be applied if there are no Tax registrations set up in your Stripe account.

Line item behavior in Stripe invoices

  • If a line item already exists in Stripe, its existing tax settings are used in the invoice.

  • If a line item does not exist in Stripe, it’s created automatically with a default tax category.

    • To ensure correct tax categories, we recommend creating products in Stripe first and assigning the correct category.

For installments or documents with a custom value, Stripe creates custom line items based on the document name. These items are set as tax-exclusive, so taxes will not be applied to these invoices.

Limitations

  • Invoicing works only with the Dynamic pricing option (not manual/custom pricing).

  • If a secondary payment method (e.g., PayPal) is enabled, Stripe invoices cannot be generated.

  • Only one payer can be assigned to documents with invoicing enabled.

  • If you haven’t configured tax registrations in Stripe Tax, taxes won’t be applied even if "Include tax" is enabled.

  • For custom line items (like manually entered prices in a quote), Stripe may not apply taxes unless they’re linked to a defined product with a tax category.

  • Stripe may create items as tax-exclusive by default if no matching product is found in its system.

Troubleshooting

I’m unable to connect my Stripe account

If Stripe asks you to create a new account once you’ve set up the Stripe Checkout integration, this could be connected to your permissions in Stripe or the compatibility of your account with PandaDoc. Please contact Stripe support for assistance.

The payment methods I've set up are not visible to my clients on the checkout page

Ensure that the payment methods you need are enabled under the 'PandaDoc configuration' in the Payment methods settings.

Did this answer your question?