How to connect payments, e-mail, push and more
Every integration runs on your own provider account: payments, text messages and push go through your own accounts, and their costs are yours. OsDot takes no commission.
Video tutorial #
Watch Invoices and payments on YouTube
Each integration has its page in the System group. The pages work the same way:
- Existing credentials stay hidden; leave a credential blank to keep it. A saved key or password is never shown again; type a new one only to replace it.
- The page's state says Disabled until you switch the integration on, then whether it is configured and tested.
- Save settings stores the values; Validate saved configuration checks them.
E-mail (SMTP) — set this up first #
System → E-mail (SMTP): Enable E-mail (SMTP), the Transport (SMTP server), the SMTP host, SMTP port and Encryption (STARTTLS or Implicit TLS), the SMTP username and SMTP password, the From e-mail, From name and Reply-to e-mail. Use the details your e-mail provider or hosting gives for sending.
Until e-mail works, nothing is e-mailed: no sign-in codes, booking confirmations, reminders, estimates, invoices, review requests or the workers' job e-mails. Business → Messages shows each message's sending status.
Payment providers #
Three payment providers are available — System → Stripe, System → PayPal and System → Razorpay — each on your own account with that provider:
| Page | You enter | The page also shows |
|---|---|---|
| Stripe | Enable Stripe, the Mode (Test or Live), the Publishable key, Secret key and Webhook secret | the webhook address to register with Stripe, and which currencies Stripe accepts |
| PayPal | Enable PayPal, the Mode (Sandbox / Test or Live), the Client ID, Client secret and Webhook ID | the webhook address to register with PayPal, and the currencies PayPal accepts (some only in whole units) |
| Razorpay | Enable Razorpay, the Mode (Test or Live), the Key ID, Key secret and Webhook secret | the webhook address to register with Razorpay; Razorpay requires a business account registered in India, and currencies other than INR need international payments enabled on that account |
For each provider:
- Create the keys in the provider's own dashboard (test keys first).
- Register the webhook address the page shows (it ends in
/payments/webhooks/stripe,/paypalor/razorpayon your own site) in the provider's dashboard, and copy its secret or ID back here. - Save, then Validate saved configuration.
- Make one payment in test mode before you switch the Mode to live.
Prices are always worked out by your site, never taken from the customer's browser. Checkout offers only the providers that accept your site's currency. Money → Reconciliation shows what is still being confirmed.
Payment options #
System → Payment options:
- Order of the online payment methods (comma separated);
- Prices include tax — No: tax is added to the prices or Yes: the prices shown include tax;
- Pay at the job (jobs without a required deposit) and Pay at pickup (pickup orders) (on or off), and what a customer is told with “Pay at the job”, “Pay at pickup” and “Pay on delivery”;
- The deposit of a job at the customer's address — each service's own deposit (with or without the travel fee paid up front), a percentage of the whole job, or no deposit — and the percentage;
- your app's Android package name, its signing certificates' SHA-256 fingerprints and its iOS App ID, so that a customer who pays from the app comes back to it.
Text messages (SMS) #
System → SMS: Enable SMS and the Provider — An HTTP gateway, Twilio or AWS End User Messaging SMS — with that provider's fields (the gateway's address and token; Twilio's account SID and auth token; for AWS, an IAM user allowed to send texts only, its region and origination identity). Then the Sender, the Countries texts may go to (two-letter codes, for example US, CA), the Price of one segment in the site's currency and a Monthly cap. The cap is never passed: reminders and confirmations stop at 90 % of it, so that sign-in codes sent by text keep the rest. Business → Messages shows this month's segments and their cost.
Text messages go through your own SMS provider account; you pay your provider directly. Once SMS is on, Business → Reminders can send a reminder by text message too.
Push notifications (Firebase) #
System → Push notifications: Enable Push notifications and Send through — Firebase Cloud Messaging (your Firebase project), with the Firebase service account key (JSON) of your own Firebase project, or A push gateway (its address and token). Push also depends on your app's build: see the app build guide in the Flutter source package.
Which messages go by push: a customer gets a push from the worker's On my way and Running late (when that feature is on) and from each reminder you set to Push; a booking's confirmation and a changed job's notice go by e-mail, and the suggested reminders are e-mail only until you tick Push on them. A worker gets a push and an e-mail when one of their jobs is assigned, moved or cancelled. A phone receives push once the app is signed in there.
AI writing helper (optional) #
System → AI writing helper is off on a new site, and everything works without it. To use it: Enable AI writing helper, the Provider your key is from, the Model (blank: the first listed for the provider), the API key (your business's own), Writing helper on, and the limits — Drafts a month, Tokens a month (for all accounts together) and the seconds to wait for an answer.
The helper sits beside a service's description in the owner's pages; a draft is only a draft for you to review, and the helper saves nothing by itself. System → AI usage shows this month's drafts and tokens against your limits. The provider's charges for your key are yours.