Skip to main content

PurseHeadlessCheckoutSecondaryToken

Represents a secondary token in the Purse checkout system. Secondary tokens are saved alternative payment methods like gift cards that can be combined with primary payment methods.

Example

// Use part of the gift card balance
await secondaryToken.take(50);

// Remove it from the split if needed
await secondaryToken.removeFromSplit();

Extends

Extended by

Properties

additionalAssets

additionalAssets: CardSchemeAsset[];

Additional assets associated with this payment item, primarily card scheme logos.

For credit card methods with vault support, this contains one entry per supported card scheme (e.g. Visa, Mastercard, CB). For all other payment methods the array is empty.

Each asset provides a CDN URL and a human-readable label suitable for display and accessibility purposes.

Example

// React
{method.additionalAssets.map(asset => (
<img key={asset.url} src={asset.url} alt={asset.label} />
))}

Inherited from

PurseHeadlessCheckoutToken.additionalAssets


balance

balance: Readable<number>;

The amount available for use on the card. This value will be at 0 until we've fetched its current value. The fetching is done in parallel during the checkout creation to speed up the process.


cvv?

optional cvv?: string;

the card cvv


disabled

disabled: Readable<DisabledState | null>;

Indicates if the payment token is disabled with an error code and message

Inherited from

PurseHeadlessCheckoutToken.disabled


expiration_date

expiration_date: string | Date;

iconUrl

iconUrl: string;

Absolute URL of the payment method icon on the Purse CDN.

The URL is stable and environment-aware (sandbox vs production). The icon is an SVG file that respects the brand guidelines of the payment partner. It can be used directly in an <img> tag or as a CSS background image without any further processing.

Example

// React
<img src={method.iconUrl} alt={method.method} />

Inherited from

PurseHeadlessCheckoutToken.iconUrl


id

id: string;

Unique identifier of the payment method

Examples

'hipay-bancontact'
'illicado-giftcard'
'aci-creditcard'

Inherited from

PurseHeadlessCheckoutToken.id


isSecondary

isSecondary: true;

Indicates if the payment method is a secondary mean of payment

Overrides

PurseHeadlessCheckoutToken.isSecondary


limit

limit: number;

maxAmount

maxAmount: number | null;

Maximum amount to use the payment method

Inherited from

PurseHeadlessCheckoutToken.maxAmount


method

method: string;

Type of payment method, it can be a card, a wallet, a bank transfer, etc.

Examples

'applepay'
'googlepay'
'creditcard'

Inherited from

PurseHeadlessCheckoutToken.method


minAmount

minAmount: number | null;

Minimum amount to use the payment method

Inherited from

PurseHeadlessCheckoutToken.minAmount


name

name: string;

User-friendly name for the token, provided by the user during registration or by the payment partner. This name is used for display purposes in the UI to help users identify their saved payment methods.

Inherited from

PurseHeadlessCheckoutToken.name


pan

pan: string;

the card pan


partner

partner: string;

Partner associated with the payment method

Examples

'hipay'
'paypal'

Inherited from

PurseHeadlessCheckoutToken.partner


takePolicy

takePolicy: SecondaryTakePolicy;

Depending on the secondary method, the takable amount is constrained. Vouchers for instance can't be partially used.

methodtake policy
easy2play - vouchermax
easy2play - giftcardnone
illicado - giftcardnone
ogloba - giftcardnone
buybox - giftcardnone
maxxing - loyaltycardmax

Max: "All or nothing" the only takable amount is the full balance. None: The take amount is not constrained (should still be less than the token's available balance').


totalBalance?

optional totalBalance?: Readable<number>;

This value is populated for secondaries that can be partially consumed/eligible for a session This is the case for loyalty accounts like maxxing for instance.


type

type: "token" | "temporary_token";

Overrides

PurseHeadlessCheckoutToken.type

Methods

delete()

delete(): Promise<void>;

Delete the token from the user's wallet

Returns

Promise<void>

Throws

Example

token.delete();

Inherited from

PurseHeadlessCheckoutToken.delete


edit()

edit(payload): Promise<void>;

Edit the token's name

Parameters

ParameterTypeDescription
payload{ name: string; }-
payload.namestring-

Returns

Promise<void>

Throws

Example

token.edit({ name: 'New Name' });

Inherited from

PurseHeadlessCheckoutToken.edit


removeFromSplit()

removeFromSplit(): Promise<void>;

Removes this token from the current payment split configuration. Any amount previously allocated from this token will be removed from the split.

Returns

Promise<void>

Throws

  • PurseHeadlessCheckoutError METHOD_NOT_IMPLEMENTED
    If the real token could not be fetched and a placeholder object was returned instead

Example

// Remove a gift card from the payment split
await token.removeFromSplit();

take()

take(amount): Promise<void>;

Applies a specified amount from this secondary token to the current payment session. The amount will be deducted from the token's balance and added to the payment split.

Parameters

ParameterTypeDescription
amountnumberAmount to use from this token's balance

Returns

Promise<void>

Throws

  • PurseHeadlessCheckoutError INVALID_TAKE_AMOUNT
    If any of these conditions are not met:
    • Amount must be greater than 0
    • Amount must be less than the remaining session amount
    • Amount must be less than the token's available balance
  • PurseHeadlessCheckoutError METHOD_NOT_IMPLEMENTED
    If the real token could not be fetched and a placeholder object was returned instead
  • PurseHeadlessCheckoutError USAGE_LIMIT_ERROR
    If the usage limit of the secondary method was reached
  • PurseHeadlessCheckoutError SECONDARY_METHOD_TAKE_POLICY_VIOLATED
    If the take amount requested violates the policy of the secondary method.

Example

// Use 50 from a gift card balance
await token.take(50);