sub2
  • sub2 protocol
  • Concepts
    • Subscription
    • Fees
    • Fee auction
    • Sponsored subscriptions
    • Processors
  • Deployments
  • SDK
    • Query subscriptions
    • Listen for incoming subscriptions
    • Listen for canceled subscriptions
    • Listen for incoming payments
    • Sponsor subscriptions
    • Check if user is a payed subscriber
    • Cancel subscription
    • Process payments
    • Query active subscriptions to recipient
    • Query active subscriptions from sender
  • Popup integration
  • Become a payment processor
  • Technical Reference
  • DAO
Powered by GitBook
On this page
  1. SDK

Listen for incoming payments

PreviousListen for canceled subscriptionsNextSponsor subscriptions

Last updated 11 months ago

In this example, we will use the sub2 SDK to set up a listener for incoming payments to our address. This is useful for anyone who wishes to accept payments with sub2 as you can validate that a payment has successfully gone through and update your backend accordingly. It is assumed that sub2-sdk is installed and set up as done .

const unwatch: WatchEventReturnType = sub2SDK.watchIncomingPayments(recipientAddress, callbackFn);

Here recipientAddress is of type `0x{string}` and callbackFn is of type (payment: Payment) => any. The callback function is defiend by you and is called on the newly observed payment to the address. For example, you can make a callback function which checks that the subscription index corresponds to an active subscription in your backend and update access accordingly.

The returned value unwatch of the viem type WatchEventReturnType is a function that can be called to stop listening for events.

The Payment type has the following definition and can be imported directly from sub2-sdk:

interface Payment {
  sender: `0x${string}`,
  recipient: `0x${string}`,
  subscriptionIndex: bigint,
  sponsor: `0x${string}`,
  amount: bigint,
  token: `0x${string}`,
  protocolFee: bigint,
  processingFee: bigint,
  processingFeeToken: `0x${string}`,
  terms: bigint,
}
here