Payments
Read-only records of on-chain payments matched to your products. Created automatically on detection.
The payment object
idstringoptional | Unique identifier. |
status"PENDING" | "CONFIRMED" | "FAILED"optional | Lifecycle status. |
amountstringoptional | Amount actually paid. |
assetCodestringoptional | Asset paid. |
assetIssuerstring | nulloptional | Issuer for non-native assets. |
memostring | nulloptional | Memo on the transaction. |
senderAddressstring | nulloptional | Payer address. |
receiverAddressstringoptional | Your wallet address. |
transactionHashstringoptional | Stellar transaction hash. |
productobjectoptional | The product paid for (id, name). |
paymentLinkIdstring | nulloptional | Originating payment link. |
createdAtstringoptional | ISO 8601 timestamp. |
CONFIRMED means the payment passed verification (a payment.completed webhook was fired). FAILED means a matched payment did not satisfy the asset/amount checks.
List payments
GET
/api/v1/paymentsstatus"PENDING" | "CONFIRMED" | "FAILED"optional | Filter by status. |
productIdstringoptional | Filter by product. |
sortOrder"asc" | "desc"optional | Sort by date (default desc). |
pagenumberoptional | Page number. |
pageSizenumberoptional | Items per page (max 100). |
bash
curl "https://your-app.com/api/v1/payments?status=CONFIRMED" \ -H "Authorization: Bearer $STELLARHOOKS_API_KEY"Retrieve a payment
GET
/api/v1/payments/{id}json
{ "data": { "id": "pay_123", "status": "CONFIRMED", "amount": "25", "assetCode": "XLM", "assetIssuer": null, "memo": "abc123xyz0", "senderAddress": "G...", "receiverAddress": "G...", "transactionHash": "f6afcc6b...", "product": { "id": "prod_123", "name": "Pro plan" }, "paymentLinkId": "plink_123", "createdAt": "2026-01-01T00:00:00.000Z" }, "error": null}