Merchant docs
Design your Pulze integration before approval: payment links, recurring mandates, multi-token checkout, credit top-ups, agent billing, webhooks, SDK, and MCP.
Payment links
Create a link from the dashboard. Your customer opens it, connects a wallet, signs once, and Pulze records the payment or subscription against your merchant account.
Unified crypto payments
Customers can pay using bits of crypto left across supported wallets/tokens. The system routes them programmatically into one payment and settles to your preferred stablecoin.
Recurring payments
The customer signs the subscription approval once. When the billing period is due, Pulze can execute the authorized pull without asking the customer for a second approval.
Club memberships
Football teams and social clubs can create a monthly membership link. Members connect a wallet, sign dues once, then Pulze asks the wallet to add the club coin or membership NFT.
API keys and SDK
Build against the typed SDK interfaces for server-side subscriptions, invoices, reporting, webhooks, and checkout. Generate credentials after account approval.
MCP and agent billing
Connect approved AI agents to bounded usage reporting and saved-mandate charging. Human review modes, merchant limits, audit logs, and kill switches remain in the payment path.
Credits and usage businesses
Let customers enter a top-up amount once, save a mandate, and add credits later without repeating wallet setup. Usage businesses can meter first and bill within approved caps.
Webhooks and reconciliation
Consume signed lifecycle events for payments, subscriptions, refunds, disputes, payouts, and credit notes. Treat transaction confirmation as the source of payment truth.
Choose your integration
Club membership flow
- Create a Club membership link with monthly dues.
- Add the fan coin or NFT contract details.
- Send the link to members by WhatsApp, email, QR, or social media.
- Member connects wallet and signs the dues authorization.
- Pulze records the agreement and subscription metadata.
- Wallet prompts the member to add the club asset after activation.
Wallets treat payment authorization and asset import as separate confirmations. Pulze combines them into one guided membership flow, but the wallet may still show an add-asset prompt for member safety.
Quick API
Prepare this server-side integration now. Add the issued key only after verification.
import { PulzeClient } from '@pulze/sdk';
const pulze = new PulzeClient({
baseUrl: 'https://api.pulze.app/api/v1',
apiKey: process.env.PULZE_API_KEY
});
await pulze.subscriptions.create({
sub,
signature,
email: 'customer@example.com',
chain: 'ethereum'
});TypeScript SDK
Use the typed client from your server. Keep issued credentials out of browsers, repositories, logs, prompts, and client bundles.
npm install @pulze/sdk ethers
const pulze = new PulzeClient({
baseUrl: 'https://api.pulze.guru/api/v1',
apiKey: process.env.PULZE_API_KEY
});MCP discovery
Run the MCP server without a key to inspect public payment links and route quotes. Authenticated agent tools unlock only after verification and scoped-key issuance.
PULZE_API_URL=https://api.pulze.guru \ node packages/mcp/src/server.mjs # Add PULZE_MCP_API_KEY only after approval.
API authentication and schema
Store the issued key as PULZE_API_KEY on your server and send it in X-API-Key. It is not a Bearer token. Interactive dashboard sessions use Bearer authentication separately.
POST /api/v1/merchants/{merchantId}/payment-links
X-API-Key: pk_live_...
Content-Type: application/json
{
"amount": "100000000",
"title": "Monthly plan",
"period": 2592000,
"maxCycles": 0,
"trialDays": 0,
"customerEmail": "customer@example.com",
"taxBehavior": "EXCLUSIVE"
}Amount uses six-decimal smallest units: $100.00 is 100000000. Omit period for one-time checkout. A positive period creates recurring billing; zero max cycles means the subscription remains active until cancelled.
# Python
from decimal import Decimal
import requests
usd6 = str(int(Decimal("100.00") * 1_000_000))
response = requests.post(
f"https://api.pulze.guru/api/v1/merchants/{merchant_id}/payment-links",
headers={"X-API-Key": PULZE_API_KEY},
json={"amount": usd6, "title": "Monthly plan", "period": 2592000},
timeout=20,
)
response.raise_for_status()Signed webhook contract
Register an HTTPS endpoint in merchant Settings. Pulze shows its signing secret once, supports test delivery and replay, and retries failed deliveries with backoff.
Pulze-Event: payment.confirmed
Pulze-Delivery: delivery_id
Pulze-Timestamp: 1780000000
Pulze-Signature-Version: v1
Pulze-Signature: v1=<hex hmac sha256>
signature = HMAC_SHA256(
PULZE_WEBHOOK_SECRET,
Pulze-Timestamp + "." + rawRequestBody
)
{
"id": "delivery_id",
"type": "payment.confirmed",
"createdAt": "ISO-8601 timestamp",
"data": { "paymentId": "...", "status": "CONFIRMED", "txHash": "0x..." }
}Verify against the untouched raw request body before parsing JSON. Reject stale timestamps and deduplicate by the outer delivery id. Core events are payment.confirmed, subscription.created, dispute.opened, dispute.resolved, refund.approved, refund.completed, and refund.failed.
Builder-to-launch checklist
- Complete merchant signup and payout wallet.
- Choose the API, SDK, MCP, or no-code integration pattern.
- Map payment, refund, dispute, and payout webhook handling.
- Complete Pulze account verification.
- Generate credentials and run the controlled integration test.
- Enable customer payments only after the launch review passes.