Send any payment event to Slack
- Trigger
- POST /relay
- Lands in
- The relay log, plus any channel you route to
- Setup
- 4 min
- Needs
- Anything that can send an HTTP POST

$49.90 · Apr 27, 8:30 AM
Samuel Chan · Jakarta, ID
- Product
- Pro Plan, monthly
- [email protected]
- Phone
- +62 877 1212 1212
- Source
- pay.myapp.com
Sending the customer email is what attaches this payment to a contact, so the revenue can be attributed to the channel that won them.
Invite @Via to the Slack channel where you want webhooks to appear. Without this, Viably accepts your webhook but cannot post to the channel.
In the Viably dashboard, click New Relay, then Transactions, then Non-Stripe Transactions. Give it a name, pick your Slack channels, and hit Create. You get a Bearer token and relay URL immediately.
After a successful payment in your backend, send a POST to the relay URL with your Bearer token in the Authorization header. Viably formats it and posts to Slack within seconds.
Unlike Stripe, which posts to a plain URL, your own backend can set custom headers. Always pass the token as Authorization: Bearer <token> and store it in an environment variable rather than hardcoding it.
Payload reference
POST a flat JSON object to the relay URL. Viably reads the following top-level fields and maps them into a transaction card in Slack. Fields marked required must be present for the message to render correctly and for batch reporting to produce accurate totals.
amount must be an integer in the smallest currency unit, consistent with Stripe and most payment processors. Send 4990 for $49.90 rather than 49.90. Viably divides by 100 before display and sums raw integers for batch totals and periodic reports, so sending major units makes every revenue figure a hundred times too large.
Code examples
Call the relay from your payment success handler, after your payment provider confirms the charge. Store the token in an environment variable rather than in source code.
Route individual events to a specific Slack channel by adding a channels array to the payload, "channels": ["C0XXXXXXX"]. Viably routes to those channels instead of the endpoint default, as long as the bot is a member.
Turn on Spawn a task for the endpoint to create an owned, claimable task from each transaction, assigned to a teammate or left up for grabs. Handy for high-touch follow-up on new or large payments. See the Auto-create tasks guide.
Periodic reporting
Enable Batch Mode on a Non-Stripe Transactions relay to accumulate events over a configurable window and post a single summary card rather than one message per transaction. Enable Periodic Reporting to also receive a scheduled revenue digest on a daily or multi-day cadence.
Viably sums the amount values across all events in the batch window and displays a Total Revenue figure. The sum is computed from the raw integers you send, so the minor-unit convention is load-bearing and a stray decimal will corrupt every report total.
Up to 20 transactions are shown newest first as swipeable cards. Each card shows amount and submission time as the title, customer name with country flag as the subtitle, and email, phone, city, and product in the body.
When events span more than one time bucket, a sparkline such as ▁▂▄▇█▅▂▁ shows the relative revenue distribution across buckets at a glance, where taller bars mean more revenue in that slot.
A one-day window shows a single date, as in Apr 25. A multi-day window shows a range, as in Apr 19 – Apr 25. All dates are rendered in your workspace’s configured timezone.
Yes, that is what it is for. Any provider or backend that can send an HTTP POST works, including Paddle, Lemon Squeezy, Razorpay, a payment processor with no Slack integration at all, or your own billing code.
A type of transaction and an amount is enough to get a card in Slack. Adding the customer email is what makes the payment attach to a contact, so the revenue can be attributed back to the channel that won that customer.
Yes. Periodic reporting posts a digest on the schedule you choose, covering what came in and where it came from, which suits teams whose payment volume would otherwise make the channel unreadable.
No. The endpoint is hosted by Viably, so the only thing on your side is the POST. Nothing to deploy, monitor, or keep patched.
Create a payment relay endpoint. It works with any provider that can send a POST, on the free plan.
Add Viably to Slack