Entegrasyon
Kendi sitende kripto kabul et
Bir yol seç. Kopyala, yapıştır, hazır.
Üç yol
- 1
Ürün oluştur
New product
Name
1,000 API creditsPrice
24.00USD1,000 API credits$24.00Active - 2
Bağlantıyı kopyala
Linkpay.perly.io/l/your-linkOr print the QR.
Link copied - 3
Her yere yapıştır
Biyografi, mesaj, e-posta, buton, kasada QR.
Bağlantıyı nereye yapıştırmalı
Instagram, TikTok Profili düzenle → Bağlantılar → yapıştır Telegram, WhatsApp Mesaja ya da kanal gönderisine yapıştır E-posta Metne ya da bir kelimenin altına yapıştır Wix Buton → Bağlantı → Web adresi → yapıştır Tilda Buton bloğu → İçerik → Buton bağlantısı → yapıştır Webflow Buton → Ayarlar → Link → URL → yapıştır WordPress Butonlar bloğu → Bağlantı → yapıştır Shopify Temayı özelleştir → Buton → Bağlantı → yapıştır Notion Metni seç → Link → yapıştır Site oluşturucuda: bir buton ekle, bağlantıyı yapıştır.
kestrel.testAI models, paid by the credit.
pay.perly.io/l/your-link
Bio ChatHow do I pay?pay.perly.io/l/your-linkMessage Your orderPay here →Email Buy nowLink
pay.perly.io/l/your-link✓ Done
Site builder - 4
Alıcı öder
1,000 API credits
$24.00
BTCUSDCUSDTUSDC · Base24.000000 USDC
Paid
- 1
Test anahtarını al
Gizli anahtar sunucuda kalır. Asla sayfada değil.
API keys
Local dev
sk_test_…
Copy it now. It is shown once.
sk_test_•••••••••••••••• - 2
SDK'yı kur
npm i perly-pay~/shop $ npm i perly-pay
added 1 package in 1s
0 dependencies · TypeScript types included
ready
- 3
Fatura oluştur ve alıcıyı ona yönlendir
import { PerlyPay } from "perly-pay"; const pay = new PerlyPay(process.env.PERLY_PAY_SECRET_KEY); // sk_test_… app.post("/buy", async (req, res) => { const invoice = await pay.invoices.create({ line_items: [{ price: "price_…" }], return_url: "https://yourshop.com/thanks", metadata: { order: "1042" }, }); res.redirect(303, invoice.url); // https://pay.perly.io/i/<uuid> }); - 4
Ödemeden haberdar ol: webhook
Ham baytları doğrula. Teslimatı invoice.fulfilled ile yap — kontrolden sonra bir kez gelir.
app.post("/webhooks/perly", express.raw({ type: "application/json" }), (req, res) => { const event = pay.webhooks.verify( req.body, // the raw bytes, not parsed JSON req.header("Perly-Signature"), process.env.PERLY_PAY_WEBHOOK_SECRET, // whsec_… ); // throws if forged, or older than 5 minutes if (event.type === "invoice.fulfilled") { ship(event.data.object.metadata.order); // once, after screening } res.sendStatus(204); });Webhooks
Endpoint URL
yourshop.com/webhooks/perlyhttps://yourshop.com/webhooks/perlyOnwhsec_•••• · shown once
invoice.paid200deliveredinvoice.fulfilled200delivered - 5
Sırasıyla ne olur
Önce invoice.paid; invoice.fulfilled teslim edebileceğin an gelir.
AlıcıSenin sitenPerly PayAğSenin sunucunSatın al
POST /invoices
invoice.url
/i/… adresine geçiş
Senin adresine öder
Görüldü, onaylandı
invoice.paid · invoice.fulfilled
Makbuz
Teslim et
Önce test et, sonra canlıya geç
- 1
Test modu
Kestrel AITestTest networks. Nothing real moves. - 2
Simulate payment
Test mode · No real money moves.
USDC · Base SepoliaPaid24.000000
Short or over
- 3
Webhook ve makbuz
Webhooks
invoice.paid200deliveredinvoice.fulfilled200deliveredreceipt.created200deliveredReceipt
TEST-KS-2026-000124
1,000 API credits$24.00PDF - 4
Canlı: cüzdanı kontrol et
İlk adresi cüzdanın kendi ekranında karşılaştır.
Wallets · live · first address
bc1q9h7…x7f2
Verify address
bc1q9h7…x7f2
Live