Skip to main content

Connect your own Stripe and collect payments

Connect your agency's Stripe account with a restricted key, then ask clients to pay a total, a deposit or a fixed amount right after they sign.

For workspace admins, senders, billing ownersPlans: Growth, Agency, Scale, Trial

Let your client pay you straight after they sign. The money goes to your own Stripe account.

Plans: Growth, Agency, Scale, TrialRole: Owner

A workspace owner connects Stripe. Owners and admins can see the connection status. A document's creator, an owner or an admin sets the payment on a document.

What Plutosign does and does not do

  • Plutosign is never the merchant of record. The client pays your Stripe account directly. Plutosign takes no fee on these payments.
  • Plutosign never holds your money and never stores card details. The client pays on Stripe's own checkout page (checkout.stripe.com).
  • Plutosign never refunds, pays out or handles disputes. You do all of that in your Stripe Dashboard.
  • Plutosign never asks for your Stripe secret key. It refuses keys that start with sk_live_ or sk_test_. You give it a restricted key that can only use Checkout Sessions.
  • Plutosign does not create the Stripe webhook for you. You create it in Stripe, so the stored key never needs webhook permissions.

How Plutosign keeps your Stripe details:

  • The restricted key and the webhook signing secret are encrypted before they are stored.
  • After you save them, nobody can read them back. The page shows only the last 4 characters of the key.
  • Every connect, key change, webhook-secret change and disconnect is recorded and emailed to every workspace owner.
  • When you replace the key, Plutosign clears the webhook secret. You must paste the signing secret again.

Before you start

  • You need a Growth, Agency or Scale plan, or an active trial. On Free, the Payments card shows In-document payments are included in Growth and above.
  • You need to be a workspace owner.
  • You need a Stripe account with access to Developers → API keys and Developers → Webhooks.
  • Payment opens only after every signer has signed. The sender's own countersigner is never asked to pay.

Connect your Stripe account

Go to Settings, select the Workspace tab, and scroll to the Payments card. Direct link: /settings?tab=workspace#stripe.

In Stripe, go to Developers → API keys and create a restricted key. Give it the permission Checkout Sessions: Write. Copy the whole key. It starts with rk_live_ or rk_test_.

In Plutosign, paste the key into Restricted key and select Connect. Plutosign checks the key with Stripe. The card then shows Connected Stripe account: restricted key ending in the last 4 characters, a Live mode or Test mode badge, and Webhook needed.

Under Payment confirmations, select the copy button to copy the webhook URL.

In Stripe, go to Developers → Webhooks and add an endpoint. Paste the URL. Subscribe it to the events the card lists: checkout.session.completed, checkout.session.async_payment_succeeded, checkout.session.async_payment_failed and charge.refunded. If you set up the endpoint before November 10, 2026, add charge.refunded to it so refunds show in Plutosign.

In Stripe, copy the endpoint's signing secret (it starts with whsec_). In Plutosign, paste it into the field below the event list and select Save secret. The badge changes to Ready.

Ask for a payment on a document

Open a draft document. In the right pane, find Collect payment after signing and select Stripe payment request.

Choose the amount:

  • Total due at signing: the total your client accepts in the pricing table.
  • Deposit (% of the total due at signing): a whole percentage of the total. The form tells you if the value is out of range.
  • Fixed amount: an amount with a 3-letter currency code such as USD. The form tells you if the amount is too small.

The total and deposit options need a pricing table in the document. Without one, use Fixed amount. The pane shows Saved when the choice is stored.

Keep Remind the client to pay after 3 and 7 days on, or clear it. It is on by default.

Send the document as usual.

Your client signs. When everyone has signed, the client's completion screen shows Payment requested with Amount due, a Reference and a Pay … now button. The button opens Stripe Checkout. A client who signed before the others sees Pay now opens on this page once everyone has signed.

If you do not want to connect Stripe, select Your own payment link in Collect payment after signing. Paste an https:// link of up to 2,048 characters from one of these:

  • a Stripe Payment Link or Checkout link (buy.stripe.com, checkout.stripe.com)
  • a PayPal.me link (paypal.me, or www.paypal.com/paypalme/… and www.paypal.com/ncp/payment/…)
  • a Square payment link (square.link, checkout.square.site)

Your client sees the link after they sign. Plutosign does not process this payment and does not know if the client paid. You choose one option per document: choosing one clears the other.

What happens next

  • Statuses. The document's payment panel shows Not paid yet, Processing, Paid or Payment failed. The Payments page (/payments) lists payments with the same words.
  • Paid. Stripe tells Plutosign through your webhook. Plutosign marks the document Paid, adds a payment entry to the audit trail, shows an in-app notification, and sends the payment.received event to your outbound webhooks. In live mode, the document's creator also gets an email.
  • Bank debits. Some methods take days to clear. The status stays Processing until Stripe confirms. If no confirmation arrives after 14 days, Plutosign treats the payment as not paid so the client can pay again.
  • Wrong amount. If Stripe reports an amount or currency that differs from the request, Plutosign does not mark the document paid. It records the mismatch in the audit trail.
  • Completion email. When the document completes, each signer who can pay gets a link back to their signing page, where Pay … now waits.
  • Reminders. Automatic reminders go out 3 and 7 days after completion, at most once each. They stop when the payment is made or processing. You can also select Remind to pay on a sent document. You can send one reminder per document every 24 hours, and automatic reminders count toward that limit. Reminders skip addresses that bounced, and automatic reminders respect a recipient's choice to stop reminders. Each reminder is recorded in the audit trail.
  • Paid elsewhere. If the client pays by bank transfer or another way, select Mark as paid on the sent document. Plutosign asks you to confirm and adds the record to the audit trail. The client can quote the document's Reference when they pay.

Limits

  • Owners only can connect, replace the key, set the webhook secret or disconnect. Admins can view the status.
  • New Stripe payment requests need Growth or higher, or an active trial. After a downgrade, documents that already ask for payment keep their Pay now button. Owners can still disconnect on any plan.
  • One Stripe connection per workspace.
  • When you refund a payment in your Stripe Dashboard, the document shows Refunded or Partially refunded with the amount, and Payments lists it as refunded. The endpoint must include the charge.refunded event.
  • Key saves are rate-limited for each person.

Troubleshooting

SymptomCauseFix
Use a restricted key (rk_live_ or rk_test_), not your secret key.You pasted an sk_ secret key.Create a restricted key in Stripe and paste that.
That restricted key looks incomplete.Part of the key is missing.Copy the whole key from Stripe again.
This key cannot use Checkout Sessions.The key does not have the right permission.In Stripe, give the key Checkout Sessions: Write.
Stripe did not accept this key.The key is wrong, rolled or deleted.Create a new restricted key and paste it.
Badge stays Webhook needed.No signing secret is saved, or you replaced the key.Add the endpoint in Stripe and paste its whsec_ secret.
Clients see no Pay now button.Not everyone has signed yet, or the webhook secret is missing.Wait for the last signer. Check that the badge says Ready.
Payment paid in Stripe but Plutosign still shows Not paid yet or Processing.The webhook endpoint is missing an event, or points at the wrong URL.In Stripe, check the endpoint URL and the events the card lists. If Stripe shows the debit failed or was canceled, select Reset processing payment.
Only an organization owner can change the Stripe connection.You are an admin or member.Ask a workspace owner.
You did not expect a "Stripe was connected" or "key was replaced" email.Another owner changed the connection.Open Payments settings, check the connection, and roll the key in your Stripe Dashboard.