EN BM 中文

VibeFlow

VibeFlow 1.0.34: ask for your own payout, choose how buyers pay — and an identity check that finishes

Sellers now decide which payment methods a listing accepts and who bears the provider’s charge, then ask for a DuitNow payout themselves instead of writing to support. Buyers can finish an order they never paid for, or report a problem with one. And the identity check learned a nod and a look-up — and stopped stalling before the badge arrived.

By the VibeFlow team · · 10 min read

Version 1.0.30 put a shop on every profile and a blue badge beside verified names. What it did not do was let a seller decide how they are paid, or pay them without an email to support. Versions 1.0.31 through 1.0.34 close that gap: the money side of the shop is self-service from listing to bank account, and the identity check that now guards it has been rebuilt in the places where it was quietly failing people. This post covers everything that changed since the 1.0.30 notes.

Choose how buyers may pay, and who bears the charge

Every listing now carries its own list of accepted methods. Open a listing in the editor and Payment methods shows each way to pay with the payment provider’s charge printed beside it, so the choice is made with the number in view rather than against it:

  • Online banking (FPX), through Billplz — RM 1.25 a transaction, flat, whatever the order is worth.
  • Credit or debit card, through Stripe — 3% plus RM 1.
  • GrabPay, through Stripe — 3%.
  • Alipay, through Stripe — 2.9% plus RM 1.

Tick the ones you want; leave them all ticked and buyers get the lot. One switch below them decides who bears the charge. Off — the default — the charge for whichever method the buyer picks comes out of your share. On, it is added to what the buyer pays, grossed up so the percentage covers itself rather than leaving you a few sen short. Either way the buyer sees the exact total, with the line named, on the checkout screen before paying.

The platform fee is 5%, and it is worked out on the subtotal after the provider’s charge you bear — never on top of it. On a RM 100 item that reads the same from both sides of the counter:

  • Card, seller bears the charge: the buyer pays RM 100.00, Stripe keeps RM 4.00, the platform fee is RM 4.80, and RM 91.20 is yours.
  • Card, buyer bears the charge: the buyer pays RM 104.12, Stripe keeps RM 4.12, the platform fee is RM 5.00, and RM 95.00 is yours.
  • FPX, seller bears the charge: the buyer pays RM 100.00, Billplz keeps RM 1.25, the platform fee is RM 4.94, and RM 93.81 is yours.
  • FPX, buyer bears the charge: the buyer pays RM 101.25, and RM 95.00 is yours.

A gateway sometimes reports a dearer channel than the one it quoted — a card issued abroad clears at 4% rather than 3%, a corporate FPX account at RM 3.00 rather than RM 1.25. The order is re-priced against what actually happened, the difference comes off the seller’s share rather than being invented from nowhere, and every line of the arithmetic stays on the order where both sides can read it.

Ask for your payout; DuitNow does the rest

Payouts no longer begin with an email. Under My shop → Payout account, say where the money should go — a bank account, an e-wallet, or somewhere else if neither fits — and then ask for a payout of your available balance whenever it is worth asking for.

  • The account holder is not a field you fill in. It is the name on the document you verified with, shown read-only, because that is the only name we may send money to. Verify first: My shop says so plainly before it will take an account from you.
  • Add or change the account and you are emailed about it, whether or not it was you who did it.
  • Once RM 10 is available you can request a payout, one at a time. Support approves it and Billplz sends a DuitNow transfer; the RM 1.25 transfer fee comes off the amount. A payout support has to pay by hand carries no transfer fee at all.
  • Five states, and an email at each: waiting for support, on its way to your bank, paid, returned by the bank, or not approved.

A sale still becomes available the way it did — once the buyer confirms receipt, or seven days after it was shipped — less the provider’s charge you bear and the platform fee.

Something wrong with an order? Report it

A buyer can now report a problem with any order that has been paid for, from the order itself: not received, not as described, arrived damaged, or something else, with a line of detail if it helps. The order then shows the report’s state — open while support is looking at it, decided when they are done — so nobody is left wondering whether the message landed.

Support chooses between three outcomes: refund the buyer, release the payment to the seller, or close the report. Both sides are emailed whichever it is.

Refunds settle properly behind that. A card payment is refunded through Stripe’s own API; an FPX one goes back by transfer. A partial refund takes back only its share of the seller’s balance instead of the whole sale, and a refunded coin top-up takes the coins back with it.

Finish a payment you walked away from

An order you started and never paid for used to simply vanish from view. It now sits in Purchases marked Unpaid, with a Pay now button — the one thing that is actually yours to do about it. Pressing it asks the server for a live payment link and opens it; when there is not one to be had, because it expired or because the payment is already through and still settling, the app says which of those it was rather than failing silently. A checkout begun in a browser at sxagg.com/shop can be found and finished the same way.

The identity check learned a nod and a look-up

The sequence the server deals at random used to know two directions. It now knows four — turn left, turn right, nod down, tilt back and look up — each measured against how your head sits in the very first frame, since a phone held below eye level already reads as a tilt before you have done anything.

  • A blink is now judged against your own open eyes rather than a fixed number. The app takes your open level from the last second and a half and asks for 40% of it, so narrow eyes, a squint or a pair of glasses blink like anyone else’s. Both eyes are read together, so a wink counts for half and does not pass.
  • A soft frame is refused before it is kept. The app measures sharpness the way the server does, over the same part of the picture, and holds the pose again with the caption saying why — and after three refusals it keeps the next one anyway, so nobody is trapped waiting on a camera that will not focus in that light.
  • Every retake the check can ask for — blurry, face lost, too far away, not facing the camera — now arrives in your own language instead of an English sentence from the server.

…and stopped stalling before the badge arrived

Between 1.0.30 and 1.0.34 the pose coach moved from Google ML Kit to MediaPipe’s face mesh, and two bugs in that move stopped people finishing. If a verification of yours went nowhere in the last few days, this is almost certainly why.

  • On iPhone the camera hands over frames that are already upright, but the coach kept announcing them as sideways. MediaPipe believed it, fitted a sideways face, and read a head turn as a nod — so the sequence stalled at the first turn, silently, and the badge never came. Both engines now take the orientation from one place: nothing to correct on iOS, the camera’s own formula on Android.
  • On Android the selfie frames were saved to file in the sensor’s orientation — sideways — which the server’s own detector could not read at all. They are written upright now.
  • A head-pose fit that fails no longer passes itself off as a face looking straight ahead. Three failures in a row hand the preview back to ML Kit, which can still coach a turn.
  • The engine is never swapped underneath a running sequence, because every measurement in it is on the scale of the engine that started it. A slow start is swapped before the first frame is kept; a broken one hands over and starts the sequence again from the top.
  • The coach judges the newest frame instead of working through a backlog several seconds behind your face.

What a verified document now leaves behind

The 1.0.30 notes said we keep the result and a one-way hash of your document number, and nothing else. That is no longer the whole truth, and the payout is the reason.

Because money may only be sent to the person named on the document, what the document says about its holder is now kept on your account: the name, the document number and the date of birth encrypted; the document type, sex, nationality, MyKad birth state and passport expiry in plain, because those are the codes an operational check actually queries and none of them names anybody on its own. The diagnostics that explain a verdict stay redacted exactly as they were, so an identity cannot leak into an admin screen or a log line through the back door.

The photographs themselves are still swept on a clock. How long that clock runs is now a setting rather than a number buried in the code; successful and failed attempts can be swept on different ones, since they answer different questions; and a hold can exempt an account while something about it is still being argued. An attempt still waiting on a person is never swept at any age — the photographs are the only evidence for a decision that is still owed. What outlives them is the measurement and the reason, which is what explains a verdict months later.

On the website

  • Verify your identity is now where people can find it at sxagg.com — in the account menu and in the dashboard navigation, rather than at a URL you had to be told about.
  • The browser check has the same pose coach the app has, so a laptop no longer asks you to guess what a prompt wants.
  • Its colour flash is steadier. Each colour is held nearly twice as long — four of them used to go past in about a second, which is a full-screen flicker near 3 Hz and unpleasant besides — and the camera’s exposure and white balance are locked for the sequence, so it stops deciding the room has turned blue and correcting it away.
  • Payout accounts have a screen of their own, with the same rules and the same read-only holder name as the app.
  • A verification that leaves a name behind says so, and only a name the document actually verified is allowed to settle a payout match.

Fixes

  • The blue badge arrives again on iPhone — the first head turn no longer stalls the sequence.
  • The first frame of a sequence is no longer taken before the camera has focused, which used to drag every later measurement down with it.
  • The coach no longer latches a turn direction before the turn has been photographed.
  • Removing a badge stops erasing what was verified, so an account can be restored with its trail intact.
  • A seller whose verification recorded no name is told that, instead of being told their name does not match.
  • The payout screen can check a name it wrote there itself.
  • A partial refund takes back its share, not the whole sale.

Update

The update is free, and your account, posts, chats, listings, orders and balances are untouched. A build older than 1.0.30 still cannot start an identity check until it updates, because its consent notice was out of date. And if you tried to verify on an iPhone in the last few days and the prompts simply stopped moving — update to 1.0.34 and start again. That was the bug above, not you.

More from the blog

All posts → · Guides for page admins →