Rutba CRM

Online payments

Connect your own Stripe or Moyasar account, so customers can pay quotes online and each payment is recorded for you.

Connect your company's own Stripe or Moyasar account, and you can create a payment link from any sent or accepted quote. The customer pays on the provider's page, the money goes straight to your account, and the payment is recorded against the quote when the provider confirms it. Card details never pass through Rutba CRM.

Before you start

  • Who can do it: owners and administrators connect the account. Anyone who can edit records can create a payment link.
  • Plan: available when your plan includes Online payments, together with Quotes and payments.
  • An account with Stripe or Moyasar that is approved to take payments in your quotes' currency. Fees are charged by the provider.
  • Use test keys first. Both providers offer test keys and test cards, so you can try the whole flow without real money.

Open the Online payments screen

  1. In the sidebar click Team.
  2. At the top of the page click Online payments. The button shows for owners and administrators when your plan includes online payments.

The screen shows Provider, Secret key, Webhook secret and a read-only Webhook address. Keep it open while you work in the provider's dashboard.

Connect Stripe

  1. In the Stripe Dashboard open Developers → API keys and copy the Secret key. It starts with sk_test_ in test mode and sk_live_ in live mode.
  2. Open Developers → Webhooks and add an endpoint:
    • Endpoint URL: the Webhook address from the Online payments screen.
    • Events: checkout.session.completed.
  3. Save the endpoint, then reveal and copy its Signing secret. It starts with whsec_.
  4. In Rutba CRM, choose Stripe as Provider, paste the secret key into Secret key and the signing secret into Webhook secret, then click Save.

Connect Moyasar

  1. In the Moyasar dashboard, open the API keys and copy the secret key. It starts with sk_test_ in test mode and sk_live_ in live mode.
  2. Open the webhook settings and add a webhook:
    • URL: the Webhook address from the Online payments screen.
    • Secret token: a long random value that you make up.
    • Events: payment_paid.
  3. In Rutba CRM, choose Moyasar as Provider, paste the secret key into Secret key and the same secret token into Webhook secret, then click Save.

After saving, the screen says Connected to Stripe. or Connected to Moyasar. The keys are stored encrypted and never shown again. To change anything, enter both keys again and save.

Take a payment

  1. Open the quote under Quotes. It must be sent or accepted.
  2. Click Create payment link. A message shows Payment link: followed by the link.
  3. Send the link to the customer, for example in the conversation. The quote's public page also shows a Pay now button while the quote is live.
  4. When the customer pays, the provider tells Rutba CRM through the webhook. The payment is recorded on the quote as an online payment, and the person who created the quote is notified.

How quotes and recorded payments work is in Quotes and invoices.

Test it

  1. Save your test keys, and create a payment link for a small test quote.
  2. Open the link and pay with one of the provider's published test cards.
  3. As soon as the provider confirms the payment, the quote shows it and the amount left to pay drops.
  • The amount is what is still due: the quote's total minus what has already been paid. When nothing is left, you see Nothing is left to pay.
  • One live link per quote. Clicking Create payment link again returns the same link while the amount due is unchanged. If the amount changes, the old link is cancelled and a new one is made, so a customer cannot pay the wrong amount.
  • A cancelled link paid anyway is still recorded, because the money did arrive. It can take the total above the quote's value, so check such payments by hand.
  • Only a signed confirmation counts. A payment is recorded only from the provider's signed webhook, never from the customer's browser, and each confirmation is recorded once.
  • No card data reaches Rutba CRM: customers pay on the provider's own page.

Good to know

  • Stripe confirmations older than 5 minutes are refused, so keep the webhook pointed at the current address.
  • Refunds are handled in the provider's dashboard. They are not sent back to Rutba CRM; record them on the quote by hand.
  • If you switch providers, links already created with the old one still work at that provider, but their payments are no longer recorded. Wait until open links are paid before switching.

Troubleshooting

What you see What to do
Set up online payments first. Save the provider and keys on the Online payments screen
The payment link could not be created. The secret key is wrong or from the other mode, or the provider does not accept the quote's currency
This cannot be done in the current status. Send the quote first. Draft, declined, cancelled and expired quotes cannot be paid
The customer paid but nothing was recorded Check in the provider's dashboard that the webhook uses the exact address and event, and that Webhook secret matches the signing secret (Stripe) or secret token (Moyasar). Failed deliveries are listed there and can be resent

Last updated 2026-11-08