Using SnapScan/Zapper to enable payments

Reghardt Pretorius had some really cool ideas around what could be built if we all had SnapScan Merchant accounts and could accept credit card payments into our Investec Programmable Bank Accounts.

If we get enough people interested they might be keen to give us a special deal, or perhaps I could pull some strings at Investec / OfferZen.

Would anyone be keen in getting a SnapScan Merchant account to play around with?

1 Like

hi, so the idea is to use snapscan’s apis to allow the programmable bank account to make payments, with a human just allowing it to take place.

Using these two flows:


Awesome :sunglasses: thanks so much for sharing Reghardt and welcome to the community discourse!

I’m definitely going to start looking into this when I’m back on Monday.

Christo Bezuidenhout actually used SnapScan in one of his demos, in a WhatsApp bill splitting implementation. You can watch it here

Thanks for the systems diagrams!

@reggiepret can you describe the use cases you have in mind here?

hi, @adrianhopebailie sure thing!

So a few come to mind:

  1. semi-auto stokvel contributions
  2. auto-balancing “splitwise” for a group of friends
  3. can do interesting things when you trigger a snapscan type payment like this, can control entry to locations, or events
  4. having this snapcode with zero fees could also be a great way to pay a friend for dinner etc.
  5. cheap way to run a debit order, with a bit of consent from whoever you are debiting (better than an eft I think) this might be interesting use case for the property market. Especially if remax/seeff/etc run their escrow accounts with investec, will be nice and cheap to move the money to them

Nothing too groundbreaking, but having the ability to actually pull/push money programmatically would be pretty great. Doing it on the back of another transaction is pretty novel I think.

What do you think? On your side, any ideas?

1 Like

Interesting. Can you explain what the flow/journey would be like for one of these?
i.e. When is the QR rendered, by whom etc?
(I’m struggling to understand where the money is flowing but I think I’m being dumb)

No worries,
So the QR is optional, we can also use a link of sorts, pushed via sms or email

So, A owes B money. B’s account creates a message to pull payment from A.
A receives message to make payment, makes payment. B hears about the transaction and clears the debt.

Something like that, not sure if it is making sense?

SnapScan can generate payment links for use on mobile. But the transaction must always be authorized by the mobile app.


And you can add the amount and a reference with extra queries.

So this would have to be sent to the user for auth.

So lets say you need to put R100 into stokvel. You send an sms with the link and amount and reference embedded. You can check if the payment has been made using the reference and API. If the payment has been made you can confirm the deposit, if not then send a reminder. You can also use SnapScan params to make each payment reference only payable once and for the exact amount, in the URL

Not 100% yet. In this case who is using Snapscan (presumably B) and who is using the Investec programmable account (presumably A)?

So presumably B creates a payment link for A who pays it using their Investec card. This triggers a post-auth event in the programmable banking system.

What does A program this to do? Notify B? Surely B get’s notified immediately anyway by Snapscan?

Is the key innovation here that the programmable banking API is triggered by incoming payments?

I’m still a bit lost as to what this enables?

Erm so afaik

A - who wants to accept payments

  • Has an Investec Private Bank Account
  • Has Investec Programmable Banking
  • Has a SnapScan Merchant Account linked to Investec Private Bank Account

B - who wants to make payments

  • Has SnapScan App, linked to any credit card (not necessarily Investec)

So A can program things to happen with card transactions and payments that appear in transaction history including request B to make a payment and confirm receipt of payments from B.

Sounds great to me. I tried getting a merchant account a while back but they wanted to see a website first which I didn’t have yet since I was developing it for the demo, so had to opt with Zapper instead. Might port that Grub Splitter to Telegram and Snapscan if I can get a merchant account. The “snapcode with zero fees” also sounds great for the splitter.

1 Like

Can’t believe SnapScan required you to have a website :-/

Are Zapper’s dev docs publicly available?

Yes. These are the docs I used.

When signing up you need to select a store type. I selected Online. In the Legal Information you then need to provide a website, which I didn’t have yet. This is the email they sent me:

Hi there,

I hope this finds you well :slight_smile:

We are currently screening all of our merchants for compliance with the new FICA and KYC (Know Your Customer) regulations, and we’ve noticed that your account is missing some information.

Could you please give us an indication of the nature of your business / how you plan to use SnapScan? I’m struggling to find any relevant information online, but might be looking in the wrong places. Please send us a link to your website or Facebook page. If you don’t have a website, we might need some photographs of your goods/store set up.

If you are registered with the CIPC, please be sure to let us know!

Apologies for the extra admin! Hopefully we can get you up and running in no time :slight_smile:

I then explained what the site will be and said I’ll to get a demo site up for them, after which they said they will wait for the demo website, but I then also applied to Zapper and they approved me so I left the Snapscan process.

1 Like

Yeah I can see why some people might not get how this can be useful, having a snapscan merchant account myself, I can confirm it is really easy to already:

  1. Send someone a link with an amount that I would like them to pay me. If they click on it, it will open snapscan and kickoff the normal Auth procedure
  2. It will notify me when it gets paid.

So @reggiepret’s example of pulling money is already totally possible. I have even implemented snapscan using its API’s such that a ‘notifyURL’ can be used to notify any server of your choice of the successful payment. In theory opening up the doorway to automate other actions using that Server. We retrofitted the API’s to create a PayGate-like interaction on an ecommerce app. (I know we have. so many better solutions now, like PayFast, Flutterwave etc. trust me, this was a special case)

I do however think that adding a bill splitting app to this mix makes things super interesting because what we could do is use splitwise to automatically settle and request payments using the Investec banking API’s.

You could run a script almost like a cron job monthly, which automatically sends links to those who owe you money, and automatically settle with people who you owe money to.

What would be even more epic is using some kind of smart logic to query your transaction history, point out items that seem ‘irregular’ and prompt you to check if you should split the amount (like R400 at a restaurant, you likely shared the meal – unless you have really expensive taste)

I plan to tackle this at the next hackathon if my team agrees (unless we have an even cooler idea).

1 Like

Thanks for the post @Ahren_Posthumus, this is really insightful into how Zapper can be leveraged into workflows.

So I tried to contact SnapScan but didn’t get much response.

I did however chat to the peeps at Zapper: Brett (CEO) and Keiran who heads up research and development. They’re unable to offer any zero-rated accounts as their pricing is stipulated by their T&C’s and fees are payable to Visa/MasterCard.

They are putting a large focus on developer APIs and tools though and building out a dev portal at the moment, and they’re keen to work with the community to offer new features and so on.

One thing they did mention was that they can plug in any wallet and that would remove the fees involved. So that could work - and @reddragonlr has just built a wallet system on top of his Investec Account which could be leveraged for this purpose: