API versionv2 next

API v2 is not live yet: it launches in early 2027, and until then these pages are its spec. Switch to v1 (live)

Subscribers

A subscriber is a payer's saved card, which you can charge without them. The payer saves it in the payment window; after that, charging it is a request of yours.

Requests

Request What it does
POST {shopid}:sub/new Create subscriber: a link where the payer saves their card, and pays a first charge if you ask for one.
POST {shopid}:sub:{subid}/charge Charge subscriber without the payer. Answers with the new transaction.
POST {shopid}:sub:{subid}/renew Renew subscriber: a link where the payer saves a new card for the subscriber.
DELETE {shopid}:sub:{subid} Delete subscriber: forget the saved card, so that the subscriber can't be charged.

How they fit together

  1. Create a link, and send the payer to it. When they have saved their card, seq returns the new subscriber, with your "ref". Store its "id".
  2. Charge the subscriber when a payment is due. The charge answers with the transaction it created, which seq also returns, as a charge, and which you capture, refund, or void as any transaction.
  3. When the card stops working, or the payer wants to use another, renew the subscriber: a link like the first, after which seq returns the subscriber with a "renew" act.
  4. When the payer cancels for good, delete the subscriber, which forgets the card. Seq then returns it with a "delete" act, and it can be renewed again.

We keep no schedule: when to charge, and how much, is yours to decide. See Charging subscribers. The first payment, in the payment window, is customer-initiated, and every charge after it merchant-initiated, which the card schemes treat differently: see the knowledge base's Stored credentials.

The subscriber object

Every field is always there, as in a transaction; a field without a value is an empty string or an empty array.

Field Type Description
type string "subscriber".
id integer The subscriber's ID, the {subid} of its requests. A shop's subscribers are numbered from 1.
rev integer The revision: 1 when the subscriber is created, and one higher with each change, such as a renewal.
ref string Your reference, from Create subscriber.
method.type string What the payer saved: "card" or "applepay".
method.id string An opaque ID of the card or device, as a transaction's.
method.card.brand string The card's brand, as a transaction's.
method.card.last4 string The last four digits of the card number.
method.card.exp integer The last moment the card is valid, in Unix time: the end of its expiry month. Ask the payer to renew before then.
services array of strings What took part when the card was last saved: "3dsecurev2" and "applepay", or on older subscribers "3dsecure" and "dsbn"; and the acquiring agreement, such as "nets-2".
info.ip string The IP address of the browser that last saved the card.
time.created integer When the link that created the subscriber was created, in Unix time.
time.authorized integer When the card was first saved, in Unix time.
billing object The billing address, as a transaction's, from when the subscriber was created or last renewed.
shipping object The shipping address, likewise.
acts array of objects What happened to it since it was created, oldest first: "act": "renew" when the payer saved a new card, with its "time" and the "services" that took part in it, or "act": "delete" when it was deleted, with its "time" and an empty "services".

A subscriber that the payer saved, and renewed once:

{
    "type": "subscriber",
    "id": 19,
    "rev": 2,
    "ref": "user301",
    "method": {
        "type": "card",
        "id": "I2hfG55UvlDvAwzW8aVec1049giH0Z1ZEPlGYMPiCac=",
        "card": {
            "brand": "mastercard",
            "last4": "2847",
            "exp": 1848700800
        }
    },
    "services": [
        "3dsecurev2",
        "nets-2"
    ],
    "info": {
        "ip": "2001:db8:400f:804::200e"
    },
    "time": {
        "created": 1715259306,
        "authorized": 1715259314
    },
    "billing": {
        "name": "Anne Jensen",
        "company": "",
        "vatin": "",
        "gln": "",
        "email": "anne@example.com",
        "phone": "80781943",
        "address": ["Hans Christiansvænge 99", "Postboks 401"],
        "city": "Neder Vindinge",
        "zip": "4760",
        "state": "",
        "country": "DK"
    },
    "shipping": {
        "name": "",
        "company": "",
        "email": "",
        "phone": "",
        "address": [],
        "city": "",
        "zip": "",
        "state": "",
        "country": ""
    },
    "acts": [
        {
            "act": "renew",
            "time": 1757573571,
            "services": [
                "3dsecurev2",
                "nets-2"
            ]
        }
    ]
}