Service Providers is where you connect a fulfillment provider (for example a data, airtime or delivery provider) so that orders placed in your WhatsApp chat are completed automatically, without you copying anything by hand. This guide walks the whole journey: connecting a provider, importing its products, setting your selling prices, what happens when a customer orders, and — the part most businesses ask about — how a customer can use their own account with that provider so you do not collect a payment for those orders at all.
It is written in sections. If you only need one thing, use the links below to jump straight to it.
Jump to a section
- What Service Providers is and what it does
- For businesses: connecting a provider, step by step
- Importing products and setting your prices
- How it works: the life of an order
- Refreshing the catalog when the provider changes
- Editing, deactivating and disconnecting a provider
- For customers: using your own provider account
- Who gets charged? The rules in one place
- Pausing and disabling: every switch explained
- Navigation cheat-sheet (business)
- Navigation cheat-sheet (customer)
- Troubleshooting and FAQ
What Service Providers is and what it does
A service provider is an external service that actually delivers what your customer buys — a data bundle, an airtime top-up, or a physical delivery. Whapick connects to that provider through the provider’s own API, using credentials that you supply from your account with them.
Once connected, the flow is fully automatic:
- A customer messages you on WhatsApp and picks a product through your workflow.
- Whapick collects the details (phone number, plan, quantity, and so on) and the payment.
- Whapick sends the order to your provider’s API.
- The provider returns a result, and Whapick marks the order completed, pending or failed — and tells the customer.
Two things make this flexible:
- Products are imported from the provider. When you connect, Whapick fetches the provider’s product list and turns each network/brand into a product and each plan into a variant with its own price. You then choose what to sell and at what price.
- Your credentials are encrypted. The keys you enter are stored encrypted and are never shown back to you or to anyone else — the app can only report whether a field is set, never its value.
You reach the page from the sidebar: Service Providers, under Fulfillment. (If you had an old bookmark to Settings → Service Providers, it now redirects there.)
For businesses: connecting a provider, step by step
Connecting has one prerequisite: you must already have an account with that provider. The credentials you enter here are the ones the provider issued to you, and they decide who the provider bills.
Step 1 — Open Service Providers
In the sidebar choose Service Providers. You will see two panels:
- Available Providers — the provider templates the Whapick team has made available to you.
- My Connected Providers — the providers you have already connected, with their status and imported product count.
Step 2 — Click Connect on a provider
Find the provider in Available Providers and click Connect. The panel shows how many products it offers and which credential fields you will need (for example apiKey and secretKey). The connect dialog opens.
Step 3 — Check the endpoints
There are two URL fields. Usually you can leave these exactly as they are — they come from the provider template the Whapick team configured:
- Purchase Endpoint URL — where an order is actually submitted to the provider. This is the URL Whapick calls to buy data, airtime or delivery.
- Catalog Endpoint URL — where the product list is fetched from. Leave it blank if the provider lists its catalog on the same URL as the purchase call (this is common). Blank means “use the purchase endpoint for both”. Only fill it in if the provider has a separate listing URL — for example
GETon one path lists plans whilePOSTon another buys them.
You would only change the purchase endpoint if you are on your own white-label install of the provider and it lives at a different address.
Step 4 — Enter your provider credentials
Fill in each credential field the template asks for, then continue. A few rules worth knowing:
- Every declared field is required — a connection missing one is rejected, because a partial set cannot authenticate a call.
- The fields are shown as password inputs. Your values are encrypted before they are stored, and they are never sent back to the browser — even the edit screen only shows whether a field is set, not what it is.
- Credentials are stored on your connection, never copied from the platform template. If the Whapick team configured a template, its own keys are the platform’s, not yours.
Step 5 — Choose products and set prices
Before you finish connecting, you choose what to import from the provider’s catalog. See the next section for exactly how this works.
Step 6 — Connect & Import
Click Connect & Import. Whapick authenticates with your credentials, fetches the provider’s catalog, and creates the products in your catalogue. The provider then appears under My Connected Providers with a green Active badge.
Two small things to note about the connect step:
- If the catalog fetch fails, the connection still succeeds and falls back to the product list already stored on the template — so a provider-side hiccup never blocks you from connecting.
- Your imported products appear on your Products page, and the relevant order workflow is created or refreshed automatically. A provider with no products leaves no empty workflow behind.
Importing products and setting your prices
This is the part that trips people up, so here it is plainly: one product per network, one variant per plan.
- Each network or brand the provider offers (for example MTN, Airtel) becomes a product.
- Each plan inside that network (1GB, 2GB, 5GB …) becomes a variant of that product, with its own price.
In the import list, tick the plans you actually sell and untick the rest. You can also set your own selling price on any plan:
- A plan you do not touch keeps tracking the provider’s current price. If the provider changes it, your price follows on the next refresh. This is the default and the safest choice.
- A plan you type a price into becomes yours — it is held at that price and no longer follows the provider. That is how you add a margin. You can undo it by typing the provider’s price back in.
- Unticking a plan removes it from your catalogue so customers cannot buy it. When you untick a product, it is archived, not deleted — past orders and their records stay intact.
When the same plan appears under two networks, do not worry: the product name alone is not the identity. If a provider splits a brand into several networks that only differ by a type label (for example MTN SME versus MTN Gifting), Whapick appends that label to the product name so they stay separate — you will see MTN SME and MTN Gifting rather than two products both called MTN.
You can change any of this later from the provider’s Edit dialog — the same tick-and-price list reopens on what you actually imported.
How it works: the life of an order
Once a provider is connected, here is the journey of a single order.
- The customer orders. They pick a product and plan through your workflow and provide the details (the phone number to top up, the delivery address, the quantity).
- Payment is collected. Depending on how you are set up and whether the customer is using their own provider account, the order is paid by transfer or store credit — or marked as settled on the customer’s own provider account (see customer accounts).
- Whapick calls the provider. Whapick builds the request from the order — the network’s provider ID, the plan’s provider ID, the number to top up, and your credentials.
- The provider answers. Whapick reads the response and decides the outcome:
- Completed — the provider confirmed success. The customer is told the order is done (data/airtime) or being processed (physical delivery).
- Failed — the provider explicitly reported a failure, or the request could not be delivered. The customer is told, and if they had paid from store credit, the amount is automatically returned to them.
- Pending — the provider did not clearly say success or failure. The order stays in-flight and you (the business) are notified to reconcile it yourself. Pending is not a failure — it means the provider’s answer was inconclusive.
Every attempt is recorded on the order, so you can always see what was sent and what came back. Open the order from your Orders page and the detail view shows the endpoint, the request, the provider’s response, and the order’s full history. Credentials are never stored on the order, so this is safe to review.
A useful detail: the number the provider receives is the one the customer typed (the number being topped up), not the WhatsApp number they messaged you from. Buying data for someone else just works.
Refreshing the catalog when the provider changes
Providers add plans, drop plans and change prices. To pick that up, use Refresh Catalog on the connected provider.
- Whapick re-fetches the provider’s live list and updates your catalogue.
- New plans are added. Plans the provider no longer offers are archived, never deleted, so your order history stays whole.
- Your prices are respected. A plan you never re-priced follows the provider’s new price; a plan you priced yourself stays at your price.
- Your stock settings are kept. The provider’s list says nothing about your inventory, so your stock numbers survive a refresh.
If a refresh fails, an explicit Refresh Catalog will tell you; a refresh triggered automatically when you update credentials only logs the failure and falls back to what is already stored, so updating credentials never blocks on a catalog hiccup.
Editing, deactivating and disconnecting a provider
On each connected provider you have three actions.
Refresh Catalog
Described above — re-imports the provider’s latest products and prices.
Edit
Opens a dialog where you can:
- Change the status between Active and Inactive. Inactive means the provider is not used for new orders while it stays connected.
- Update the endpoints — the purchase and catalog URLs.
- Update credentials — leave a field blank to keep the existing value; type a new value to replace it.
- Change what you import — tick or untick plans and set selling prices.
Nothing is lost by opening Edit. The list opens on what you actually imported, and a plan you never re-priced is not turned into a price override just because you saved the form.
Disconnect
Disconnect removes the provider’s products from your catalogue and takes the provider out of your order flows. Whapick matches the products it removes carefully — it removes the ones this provider imported (including older imports made before the provider was tracked on each product) and will not touch a product you added by hand or one belonging to a different provider. As always, if a provider’s products are all that remained of a workflow, that workflow is removed too.
For customers: using your own provider account
This is the feature for businesses whose customers already hold an account on the same provider website. When a customer links that account, an order they place on WhatsApp is completed on their account there — the provider debits them directly and you collect no payment for those orders.
Turn it on (business)
Go to Settings → Business and find the Customer Accounts section. Tick “Let customers use their own account with my provider”.
- This switch is the master gate. With it off, a customer’s stored credentials are ignored completely — even a full set — so turning the switch off genuinely revokes the no-charge path.
- With it on, customers see a My Website Account option in their chat, and linked customers’ orders run on their own account.
- Only turn it on if your customers really do have accounts on the provider you connected. It is not for every business.
How the customer links their account (customer)
The customer never types their password or keys into the chat — for their safety, and because chat messages are stored. Instead:
- In the chat, the customer opens Account Services and taps My Website Account.
- They choose Link My Website Account.
- Whapick sends them a secure, short-lived link to a hosted page. The link expires in 30 minutes and is tied to that one customer and one provider, so forwarding it achieves nothing.
- On the page they enter their provider account details and tap Save my account. Only the fields the provider declares are accepted, and only whether a field is set is ever shown — never the value.
- Their account is now linked. Orders they place are completed on their own account.
Whapick is deliberately strict here: a customer only overrides the business’s account when they have supplied every credential the provider declares. A partial set is never mixed between the two accounts — taking one key from the customer and one from the business would fail confusingly and bill the wrong person. An incomplete set simply falls back to your account.
What the customer sees in chat (customer)
The My Website Account submenu always shows the current state and offers the right action:
- Not linked yet — they can Link My Website Account.
- Linked and active — they can Update account details or Pause using my account.
- Linked but paused by them — they can Resume using my account or update details.
- Paused by the business — they are told the business has paused it, and no resume row is shown (it would not take effect). They are asked to contact the business instead.
When an order runs on the customer’s own account they get a confirmation saying it is being completed on their own account and they will not be charged in the chat.
Who gets charged? The rules in one place
There are exactly two accounts an order can use, and one set of rules decides between them.
- Your business account — the normal case. The customer pays you (by transfer, store credit, or however you collect), and Whapick calls the provider with your credentials. You are charged by the provider.
- The customer’s own account — the customer pays the provider directly from their website account. Whapick calls the provider with their credentials, and you collect nothing for that order. The order still shows as settled so it can be fulfilled, but it is not your revenue.
The decision is made in a strict order, and the first rule that applies wins:
- The decision recorded when the order was placed. Once an order is placed, whose account it uses is locked in. Changing a switch afterwards affects only new orders — it never moves an order that was already placed. This is what stops an order being charged twice or delivered free.
- Your business-wide switch. If Customer Accounts is off, the customer’s account is not used at all.
- Your per-customer pause. If you have paused one customer, their account is not used, even if they linked it.
- The customer’s own preference. If they paused their own account, orders go back to your account.
- All-or-nothing completeness. Only a complete credential set uses the customer’s account.
A handy way to remember it: business switch beats per-customer pause beats the customer’s own preference beats completeness. And a recorded decision beats all of them, for that one order.
Pausing and disabling: every switch explained
There are several ways to stop a customer’s own account being used, at different scopes. Here is when to use each.
1. Business-wide off (Settings → Business)
Untick Let customers use their own account with my provider. This turns the whole feature off: no customer is offered the option, and any credentials already stored are ignored. Use this if you want to stop the feature entirely — for everyone — without deleting anything. Turning it back on restores it, and customers’ stored details are still there.
2. Per-customer pause (Contacts)
Pause one customer without affecting anyone else. In your Contacts page, open the customer and use the provider-account box:
- Pause this account — future orders for this customer are charged to you again. Their stored details are kept, so you can resume later.
- Resume this account — hands their next orders back to their own account.
- Remove account — deletes the stored credentials completely, so orders always use your account until the customer links again.
The box also tells you why orders are or are not on the customer’s account: Active, Paused by you, or Paused by the customer.
Two important points:
- Pausing affects only new orders. An order already placed keeps the account it was placed with.
- Your pause and the customer’s pause are separate. If you pause a customer and later resume them, they get their own choice back — you have not overwritten it.
3. Customer pauses their own account (chat)
A customer who no longer wants orders on their own account can pause it themselves from My Website Account → Pause using my account. Their details are kept, and they can resume from the same menu. This is their choice, and you can still override it with a per-customer pause.
4. Revoke access (Contacts → Remove account)
If you want a customer’s credentials gone for good, use Remove account in their contact details. This clears the stored credentials so orders go back to your account — you do not need the customer’s cooperation to revoke access to your provider.
Navigation cheat-sheet (business)
- Connect a provider: Sidebar → Service Providers → Available Providers → Connect.
- See your connected providers: the My Connected Providers panel on the same page.
- Re-import latest products/prices: My Connected Providers → Refresh Catalog.
- Change credentials, endpoints or imported plans: My Connected Providers → Edit.
- Turn a provider off temporarily: Edit → Status → Inactive.
- Remove a provider and its products: My Connected Providers → Disconnect.
- See imported products: Sidebar → Products.
- Turn on customer accounts: Sidebar → Settings → Business → Customer Accounts.
- Pause or revoke one customer’s account: Sidebar → Contacts → open the customer → the provider-account box.
- Review an order’s provider call: Sidebar → Orders → open the order → the request and provider response.
Navigation cheat-sheet (customer)
- Open the services menu: in the chat, use the Account Services button (or type menu).
- Link your own provider account: Account Services → My Website Account → Link My Website Account → follow the secure link.
- Check your order: Account Services → Check Order.
- Check your store credit: Account Services → Check Balance.
- Pause orders on your own account: Account Services → My Website Account → Pause using my account.
- Resume them: the same menu → Resume using my account.
- Change your account details: the same menu → Update account details.
The My Website Account row only appears when the business has enabled customer accounts and has a provider that declares credentials. If you do not see it, the business has not turned the option on.
Troubleshooting and FAQ
My connection was rejected for a missing credential
Every credential field the provider declares is required. Fill in all of them from your account with the provider. A partial set cannot be used, and Whapick will not silently mix your keys with someone else’s.
Import failed, or a provider returned “product not found”
This almost always means the wrong network or plan identifier was sent. Whapick reads those identifiers from the product the customer actually bought, which came from the provider’s own catalog. If a plan looks wrong, use Refresh Catalog so the imported identifiers match what the provider currently offers, then check that the plan the customer bought still exists under the right network.
An order is stuck on Pending
Pending means the provider did not clearly report success or failure. Whapick notifies you to reconcile it — check the order in your Orders page, which shows the exact request and response, then confirm with the provider.
A customer says they were charged in the chat and on their provider account
This should not happen: an order placed on the customer’s own account is never also collected by you. Check that the customer’s credential set is complete, and confirm the order was actually placed after they linked their account (a switch changed later only affects new orders). If it persists, contact support with the order reference.
I turned customer accounts off but a customer says they are still not being charged
Turning the switch off stops new orders from using a customer’s account. An order already placed keeps the account it was placed with — check the order’s date against when you flipped the switch.
Can a customer type their credentials in the chat instead?
No, and please do not ask them to. Chat messages are stored, so a password sent there would sit in plaintext. Always use the secure link from My Website Account.
What happens to past orders if I disconnect a provider?
They stay. Disconnecting archives the provider’s products and removes the provider from your flows, but your order records — including completed, failed and cancelled orders — are untouched.
Conclusion
Service Providers turns your WhatsApp chat into an end-to-end shop: the customer orders, pays, and gets fulfilled by your provider automatically. Connect with your credentials, import the plans you sell at the prices you want, and refresh whenever the provider changes. Then decide whether your customers can bring their own provider account — if they can, a single setting plus a secure link lets their orders run on their account with you collecting nothing, and you keep the final say with a per-customer pause or a full revoke.
Ready to connect your first provider? Open Service Providers from the sidebar and follow the steps above.