Create a Stripe channel in Blip
Install the Blip iOS app, tap + to create a channel named Stripe, and copy its key (it starts with blip_live_). The key is the only credential you need.
You should not find out about a sale from tomorrow's dashboard check. Two minutes of setup puts every Stripe payment on your lock screen the second it lands.
Install the Blip iOS app, tap + to create a channel named Stripe, and copy its key (it starts with blip_live_). The key is the only credential you need.
In the Stripe Dashboard, open Developers, then Webhooks, then Add endpoint, and paste your channel's URL. Done: Blip turns payments, invoices, subscriptions, refunds, disputes, and payouts into readable pushes. Failed payments arrive with high priority so they cut through. No code on your side at all.
https://blipnotify.com/api/v1/hooks/stripe/blip_live_xxx
The key travels in the URL because webhook senders can't set an Authorization header. Rotate the key in the app anytime to revoke a leaked URL.
Trigger a test payment from the Stripe CLI (or use Send test webhook in the Dashboard) and watch your phone.
stripe trigger payment_intent.succeeded
200 { "ok": true, "delivered": 1, "devices": 1 } · pushed to your iPhone
If you already verify Stripe signatures yourself (or want custom wording), call Blip from your handler instead. title is the only required field; body, url, priority("default" or "high"), and a free-form data object are optional.
import Stripe from "stripe";
const stripe = new Stripe(process.env.STRIPE_SECRET_KEY!);
export async function POST(request: Request) {
const payload = await request.text();
const signature = request.headers.get("stripe-signature")!;
const event = stripe.webhooks.constructEvent(
payload,
signature,
process.env.STRIPE_WEBHOOK_SECRET!
);
if (event.type === "payment_intent.succeeded") {
const payment = event.data.object;
const amount = (payment.amount_received / 100).toFixed(2);
// The whole Blip integration is this one HTTP call.
await fetch("https://blipnotify.com/api/v1/notify", {
method: "POST",
headers: {
Authorization: `Bearer ${process.env.BLIP_STRIPE_KEY}`,
"Content-Type": "application/json",
},
body: JSON.stringify({
title: "Payment received",
body: `$${amount} ${payment.currency.toUpperCase()}`,
url: "https://dashboard.stripe.com/payments",
}),
});
}
return Response.json({ received: true });
}Blip is free to try for 14 days, every feature included. After that it is $29.99/yr or $9/mo: see pricing.
Download on the App Store