Skip to main content
API Reference
Cards
Digital Wallet Tokens

A Digital Wallet Token is created when a user adds a Card to their Apple Pay or Google Pay app. The Digital Wallet Token can be used for purchases just like a Card.

Events
Your application can listen to webhooks about this resource. The events about Digital Wallet Tokens will have the categories "digital_wallet_token.created" or "digital_wallet_token.updated".
The Digital Wallet Token object
{
  "account_id": "account_in71c4amph0vgo2qllky",
  "card_id": "card_oubs0hwk5rn6knuecxg2",
  "cardholder": {
    "name": "John Smith"
  },
  "created_at": "2020-01-31T23:59:59Z",
  "device": {
    "device_type": "mobile_phone",
    "identifier": "04393EADF4149002225811273840459271E36516DA4875FF",
    "ip_address": "1.2.3.4",
    "name": "My Work Phone"
  },
  "dynamic_primary_account_number": null,
  "id": "digital_wallet_token_izi62go3h51p369jrie0",
  "primary_account_number_reference_identifier": "V-0000000000000000000000",
  "status": "active",
  "token_reference_identifier": "DNITHE000000000000000000000",
  "token_requestor": "apple_pay",
  "type": "digital_wallet_token",
  "updates": [
    {
      "status": "inactive",
      "timestamp": "2020-01-31T23:59:59Z"
    }
  ]
}
Attributes
account_id
string

The identifier for the Account this Digital Wallet Token belongs to.

More about Accounts.
card_id
string

The identifier for the Card this Digital Wallet Token belongs to.

More about Cards.
cardholder
dictionary

The cardholder information given when the Digital Wallet Token was created.

created_at
string

The ISO 8601 date and time at which the Digital Wallet Token was created.

device
dictionary

The device that was used to create the Digital Wallet Token.

dynamic_primary_account_number
dictionary
Nullable

The redacted Dynamic Primary Account Number.

id
string

The Digital Wallet Token identifier.

primary_account_number_reference_identifier
string

The reference identifier assigned by the card network to the underlying Card.

status
enum

This indicates if payments can be made with the Digital Wallet Token.

token_reference_identifier
string

The reference identifier assigned by the card network to the token.

token_requestor
enum

The digital wallet app being used.

type
string

A constant representing the object’s type. For this resource it will always be digital_wallet_token.

updates
array

Updates to the Digital Wallet Token.

List Digital Wallet Tokens
curl \
  --url "${INCREASE_URL}/digital_wallet_tokens?card_id=card_oubs0hwk5rn6knuecxg2" \
  -H "Authorization: Bearer ${INCREASE_API_KEY}"
import Increase from 'increase';

const client = new Increase({
  apiKey: process.env['INCREASE_API_KEY'], // This is the default and can be omitted
});

// Automatically fetches more pages as needed.
for await (const digitalWalletToken of client.digitalWalletTokens.list()) {
  console.log(digitalWalletToken.id);
}
import os
from increase import Increase

client = Increase(
    api_key=os.environ.get("INCREASE_API_KEY"),  # This is the default and can be omitted
)
page = client.digital_wallet_tokens.list()
page = page.data[0]
print(page.id)
require "increase"

increase = Increase::Client.new(
  api_key: ENV["INCREASE_API_KEY"] # This is the default and can be omitted
)

page = increase.digital_wallet_tokens.list

puts(page)
package main

import (
	"context"
	"fmt"
	"os"

	"github.com/Increase/increase-go"
	"github.com/Increase/increase-go/option"
)

func main() {
	client := increase.NewClient(
		option.WithAPIKey(os.Getenv("INCREASE_API_KEY")), // This is the default and can be omitted
	)
	page, err := client.DigitalWalletTokens.List(context.TODO(), increase.DigitalWalletTokenListParams{})
	if err != nil {
		panic(err.Error())
	}
	fmt.Printf("%+v\n", page)
}
package com.increase.api.example;

import com.increase.api.client.IncreaseClient;
import com.increase.api.client.okhttp.IncreaseOkHttpClient;
import com.increase.api.models.digitalwallettokens.DigitalWalletTokenListPage;
import com.increase.api.models.digitalwallettokens.DigitalWalletTokenListParams;

public final class Main {
    private Main() {}

    public static void main(String[] args) {
        IncreaseClient client = IncreaseOkHttpClient.fromEnv();

        DigitalWalletTokenListPage page = client.digitalWalletTokens().list();
    }
}
package com.increase.api.example

import com.increase.api.client.IncreaseClient
import com.increase.api.client.okhttp.IncreaseOkHttpClient
import com.increase.api.models.digitalwallettokens.DigitalWalletTokenListPage
import com.increase.api.models.digitalwallettokens.DigitalWalletTokenListParams

fun main() {
    val client: IncreaseClient = IncreaseOkHttpClient.fromEnv()

    val page: DigitalWalletTokenListPage = client.digitalWalletTokens().list()
}
<?php

require_once dirname(__DIR__) . '/vendor/autoload.php';

use Increase\Client;
use Increase\Core\Exceptions\APIException;

$client = new Client(apiKey: getenv('INCREASE_API_KEY'));

try {
  $page = $client->digitalWalletTokens->list(
    cardID: 'card_id',
    createdAt: [
      'after' => new \DateTimeImmutable('2019-12-27T18:11:19.117Z'),
      'before' => new \DateTimeImmutable('2019-12-27T18:11:19.117Z'),
      'onOrAfter' => new \DateTimeImmutable('2019-12-27T18:11:19.117Z'),
      'onOrBefore' => new \DateTimeImmutable('2019-12-27T18:11:19.117Z'),
    ],
    cursor: 'cursor',
    limit: 1,
  );

  var_dump($page);
} catch (APIException $e) {
  echo $e->getMessage();
}
using System;
using Increase.Api;
using Increase.Api.Models.DigitalWalletTokens;

IncreaseClient client = new();

DigitalWalletTokenListParams parameters = new();

var page = await client.DigitalWalletTokens.List(parameters);
await foreach (var item in page.Paginate())
{
    Console.WriteLine(item);
}
Returns a list response:
{
  "data": [
    { /* Digital Wallet Token object */ },
    { /* Digital Wallet Token object */ }
    /* ... */
  ],
  "next_cursor": "v57w5d",
}
Parameters
card_id
string

Filter Digital Wallet Tokens to ones belonging to the specified Card.

More about Cards.
More parameters
Retrieve a Digital Wallet Token
curl \
  --url "${INCREASE_URL}/digital_wallet_tokens/digital_wallet_token_izi62go3h51p369jrie0" \
  -H "Authorization: Bearer ${INCREASE_API_KEY}"
import Increase from 'increase';

const client = new Increase({
  apiKey: process.env['INCREASE_API_KEY'], // This is the default and can be omitted
});

const digitalWalletToken = await client.digitalWalletTokens.retrieve(
  'digital_wallet_token_izi62go3h51p369jrie0',
);

console.log(digitalWalletToken.id);
import os
from increase import Increase

client = Increase(
    api_key=os.environ.get("INCREASE_API_KEY"),  # This is the default and can be omitted
)
digital_wallet_token = client.digital_wallet_tokens.retrieve(
    "digital_wallet_token_izi62go3h51p369jrie0",
)
print(digital_wallet_token.id)
require "increase"

increase = Increase::Client.new(
  api_key: ENV["INCREASE_API_KEY"] # This is the default and can be omitted
)

digital_wallet_token = increase.digital_wallet_tokens.retrieve("digital_wallet_token_izi62go3h51p369jrie0")

puts(digital_wallet_token)
package main

import (
	"context"
	"fmt"
	"os"

	"github.com/Increase/increase-go"
	"github.com/Increase/increase-go/option"
)

func main() {
	client := increase.NewClient(
		option.WithAPIKey(os.Getenv("INCREASE_API_KEY")), // This is the default and can be omitted
	)
	digitalWalletToken, err := client.DigitalWalletTokens.Get(context.TODO(), "digital_wallet_token_izi62go3h51p369jrie0")
	if err != nil {
		panic(err.Error())
	}
	fmt.Printf("%+v\n", digitalWalletToken.ID)
}
package com.increase.api.example;

import com.increase.api.client.IncreaseClient;
import com.increase.api.client.okhttp.IncreaseOkHttpClient;
import com.increase.api.models.digitalwallettokens.DigitalWalletToken;
import com.increase.api.models.digitalwallettokens.DigitalWalletTokenRetrieveParams;

public final class Main {
    private Main() {}

    public static void main(String[] args) {
        IncreaseClient client = IncreaseOkHttpClient.fromEnv();

        DigitalWalletToken digitalWalletToken = client.digitalWalletTokens().retrieve("digital_wallet_token_izi62go3h51p369jrie0");
    }
}
package com.increase.api.example

import com.increase.api.client.IncreaseClient
import com.increase.api.client.okhttp.IncreaseOkHttpClient
import com.increase.api.models.digitalwallettokens.DigitalWalletToken
import com.increase.api.models.digitalwallettokens.DigitalWalletTokenRetrieveParams

fun main() {
    val client: IncreaseClient = IncreaseOkHttpClient.fromEnv()

    val digitalWalletToken: DigitalWalletToken = client.digitalWalletTokens().retrieve("digital_wallet_token_izi62go3h51p369jrie0")
}
<?php

require_once dirname(__DIR__) . '/vendor/autoload.php';

use Increase\Client;
use Increase\Core\Exceptions\APIException;

$client = new Client(apiKey: getenv('INCREASE_API_KEY'));

try {
  $digitalWalletToken = $client->digitalWalletTokens->retrieve(
    'digital_wallet_token_izi62go3h51p369jrie0'
  );

  var_dump($digitalWalletToken);
} catch (APIException $e) {
  echo $e->getMessage();
}
using System;
using Increase.Api;
using Increase.Api.Models.DigitalWalletTokens;

IncreaseClient client = new();

DigitalWalletTokenRetrieveParams parameters = new()
{
    DigitalWalletTokenID = "digital_wallet_token_izi62go3h51p369jrie0"
};

var digitalWalletToken = await client.DigitalWalletTokens.Retrieve(parameters);

Console.WriteLine(digitalWalletToken);
Parameters
digital_wallet_token_id
string
Required

The identifier of the Digital Wallet Token.

Transition a Digital Wallet Token

Submit a Digital Wallet Token status transition to the card network. The Digital Wallet Token will move to pending_transitioning until the card network confirms the transition, and a digital_wallet_token.updated webhook will be sent once the transition has been confirmed.

curl -X "POST" \
  --url "${INCREASE_URL}/digital_wallet_tokens/digital_wallet_token_izi62go3h51p369jrie0/transition" \
  -H "Authorization: Bearer ${INCREASE_API_KEY}" \
  -H "Content-Type: application/json" \
  -d $'{
    "status": "suspended"
  }'
import Increase from 'increase';

const client = new Increase({
  apiKey: process.env['INCREASE_API_KEY'], // This is the default and can be omitted
});

const digitalWalletToken = await client.digitalWalletTokens.transition(
  'digital_wallet_token_izi62go3h51p369jrie0',
  { status: 'suspended' },
);

console.log(digitalWalletToken.id);
import os
from increase import Increase

client = Increase(
    api_key=os.environ.get("INCREASE_API_KEY"),  # This is the default and can be omitted
)
digital_wallet_token = client.digital_wallet_tokens.transition(
    digital_wallet_token_id="digital_wallet_token_izi62go3h51p369jrie0",
    status="suspended",
)
print(digital_wallet_token.id)
require "increase"

increase = Increase::Client.new(
  api_key: ENV["INCREASE_API_KEY"] # This is the default and can be omitted
)

digital_wallet_token = increase.digital_wallet_tokens.transition("digital_wallet_token_izi62go3h51p369jrie0", status: :suspended)

puts(digital_wallet_token)
package main

import (
	"context"
	"fmt"
	"os"

	"github.com/Increase/increase-go"
	"github.com/Increase/increase-go/option"
)

func main() {
	client := increase.NewClient(
		option.WithAPIKey(os.Getenv("INCREASE_API_KEY")), // This is the default and can be omitted
	)
	digitalWalletToken, err := client.DigitalWalletTokens.Transition(
		context.TODO(),
		"digital_wallet_token_izi62go3h51p369jrie0",
		increase.DigitalWalletTokenTransitionParams{
			Status: increase.F(increase.DigitalWalletTokenTransitionParamsStatusSuspended),
		},
	)
	if err != nil {
		panic(err.Error())
	}
	fmt.Printf("%+v\n", digitalWalletToken.ID)
}
package com.increase.api.example;

import com.increase.api.client.IncreaseClient;
import com.increase.api.client.okhttp.IncreaseOkHttpClient;
import com.increase.api.models.digitalwallettokens.DigitalWalletToken;
import com.increase.api.models.digitalwallettokens.DigitalWalletTokenTransitionParams;

public final class Main {
    private Main() {}

    public static void main(String[] args) {
        IncreaseClient client = IncreaseOkHttpClient.fromEnv();

        DigitalWalletTokenTransitionParams params = DigitalWalletTokenTransitionParams.builder()
            .digitalWalletTokenId("digital_wallet_token_izi62go3h51p369jrie0")
            .status(DigitalWalletTokenTransitionParams.Status.SUSPENDED)
            .build();
        DigitalWalletToken digitalWalletToken = client.digitalWalletTokens().transition(params);
    }
}
package com.increase.api.example

import com.increase.api.client.IncreaseClient
import com.increase.api.client.okhttp.IncreaseOkHttpClient
import com.increase.api.models.digitalwallettokens.DigitalWalletToken
import com.increase.api.models.digitalwallettokens.DigitalWalletTokenTransitionParams

fun main() {
    val client: IncreaseClient = IncreaseOkHttpClient.fromEnv()

    val params: DigitalWalletTokenTransitionParams = DigitalWalletTokenTransitionParams.builder()
        .digitalWalletTokenId("digital_wallet_token_izi62go3h51p369jrie0")
        .status(DigitalWalletTokenTransitionParams.Status.SUSPENDED)
        .build()
    val digitalWalletToken: DigitalWalletToken = client.digitalWalletTokens().transition(params)
}
<?php

require_once dirname(__DIR__) . '/vendor/autoload.php';

use Increase\Client;
use Increase\Core\Exceptions\APIException;

$client = new Client(apiKey: getenv('INCREASE_API_KEY'));

try {
  $digitalWalletToken = $client->digitalWalletTokens->transition(
    'digital_wallet_token_izi62go3h51p369jrie0', status: 'suspended'
  );

  var_dump($digitalWalletToken);
} catch (APIException $e) {
  echo $e->getMessage();
}
using System;
using Increase.Api;
using Increase.Api.Models.DigitalWalletTokens;

IncreaseClient client = new();

DigitalWalletTokenTransitionParams parameters = new()
{
    DigitalWalletTokenID = "digital_wallet_token_izi62go3h51p369jrie0",
    Status = Status.Suspended,
};

var digitalWalletToken = await client.DigitalWalletTokens.Transition(parameters);

Console.WriteLine(digitalWalletToken);
Parameters
digital_wallet_token_id
string
Required

The identifier of the Digital Wallet Token.

status
enum
Required

The status to transition the Digital Wallet Token to.

Sandbox: Create a Digital Wallet Token Request

Simulates a user attempting to add a Card to a digital wallet such as Apple Pay.

curl -X "POST" \
  --url "${INCREASE_URL}/simulations/digital_wallet_token_requests" \
  -H "Authorization: Bearer ${INCREASE_API_KEY}" \
  -H "Content-Type: application/json" \
  -d $'{
    "card_id": "card_oubs0hwk5rn6knuecxg2"
  }'
import Increase from 'increase';

const client = new Increase({
  apiKey: process.env['INCREASE_API_KEY'], // This is the default and can be omitted
});

const digitalWalletTokenRequest = await client.simulations.digitalWalletTokenRequests.create({
  card_id: 'card_oubs0hwk5rn6knuecxg2',
});

console.log(digitalWalletTokenRequest.digital_wallet_token_id);
import os
from increase import Increase

client = Increase(
    api_key=os.environ.get("INCREASE_API_KEY"),  # This is the default and can be omitted
)
digital_wallet_token_request = client.simulations.digital_wallet_token_requests.create(
    card_id="card_oubs0hwk5rn6knuecxg2",
)
print(digital_wallet_token_request.digital_wallet_token_id)
require "increase"

increase = Increase::Client.new(
  api_key: ENV["INCREASE_API_KEY"] # This is the default and can be omitted
)

digital_wallet_token_request = increase.simulations.digital_wallet_token_requests.create(card_id: "card_oubs0hwk5rn6knuecxg2")

puts(digital_wallet_token_request)
package main

import (
	"context"
	"fmt"
	"os"

	"github.com/Increase/increase-go"
	"github.com/Increase/increase-go/option"
)

func main() {
	client := increase.NewClient(
		option.WithAPIKey(os.Getenv("INCREASE_API_KEY")), // This is the default and can be omitted
	)
	digitalWalletTokenRequest, err := client.Simulations.DigitalWalletTokenRequests.New(context.TODO(), increase.SimulationDigitalWalletTokenRequestNewParams{
		CardID: increase.F("card_oubs0hwk5rn6knuecxg2"),
	})
	if err != nil {
		panic(err.Error())
	}
	fmt.Printf("%+v\n", digitalWalletTokenRequest.DigitalWalletTokenID)
}
package com.increase.api.example;

import com.increase.api.client.IncreaseClient;
import com.increase.api.client.okhttp.IncreaseOkHttpClient;
import com.increase.api.models.simulations.digitalwallettokenrequests.DigitalWalletTokenRequestCreateParams;
import com.increase.api.models.simulations.digitalwallettokenrequests.DigitalWalletTokenRequestCreateResponse;

public final class Main {
    private Main() {}

    public static void main(String[] args) {
        IncreaseClient client = IncreaseOkHttpClient.fromEnv();

        DigitalWalletTokenRequestCreateParams params = DigitalWalletTokenRequestCreateParams.builder()
            .cardId("card_oubs0hwk5rn6knuecxg2")
            .build();
        DigitalWalletTokenRequestCreateResponse digitalWalletTokenRequest = client.simulations().digitalWalletTokenRequests().create(params);
    }
}
package com.increase.api.example

import com.increase.api.client.IncreaseClient
import com.increase.api.client.okhttp.IncreaseOkHttpClient
import com.increase.api.models.simulations.digitalwallettokenrequests.DigitalWalletTokenRequestCreateParams
import com.increase.api.models.simulations.digitalwallettokenrequests.DigitalWalletTokenRequestCreateResponse

fun main() {
    val client: IncreaseClient = IncreaseOkHttpClient.fromEnv()

    val params: DigitalWalletTokenRequestCreateParams = DigitalWalletTokenRequestCreateParams.builder()
        .cardId("card_oubs0hwk5rn6knuecxg2")
        .build()
    val digitalWalletTokenRequest: DigitalWalletTokenRequestCreateResponse = client.simulations().digitalWalletTokenRequests().create(params)
}
<?php

require_once dirname(__DIR__) . '/vendor/autoload.php';

use Increase\Client;
use Increase\Core\Exceptions\APIException;

$client = new Client(apiKey: getenv('INCREASE_API_KEY'));

try {
  $digitalWalletTokenRequest = $client
    ->simulations
    ->digitalWalletTokenRequests
    ->create(cardID: 'card_oubs0hwk5rn6knuecxg2');

  var_dump($digitalWalletTokenRequest);
} catch (APIException $e) {
  echo $e->getMessage();
}
using System;
using Increase.Api;
using Increase.Api.Models.Simulations.DigitalWalletTokenRequests;

IncreaseClient client = new();

DigitalWalletTokenRequestCreateParams parameters = new()
{
    CardID = "card_oubs0hwk5rn6knuecxg2"
};

var digitalWalletTokenRequest = await client.Simulations.DigitalWalletTokenRequests.Create(parameters);

Console.WriteLine(digitalWalletTokenRequest);
Returns a Inbound Digital Wallet Token Request Simulation Result object:
{
  "decline_reason": null,
  "digital_wallet_token_id": "digital_wallet_token_izi62go3h51p369jrie0",
  "type": "inbound_digital_wallet_token_request_simulation_result"
}
Parameters
card_id
string
Required

The identifier of the Card to be authorized.

More about Cards.