Skip to main content
API Reference
Cards
Physical Cards

Custom physical Visa cards that are shipped to your customers. The artwork is configurable by a connected Card Profile. The same Card can be used for multiple Physical Cards. Printing cards incurs a fee. Please contact support@increase.com for pricing!

Events
Your application can listen to webhooks about this resource. The events about Physical Cards will have the categories "physical_card.created" or "physical_card.updated" .
The Physical Card object
{
  "card_id": "card_oubs0hwk5rn6knuecxg2",
  "cardholder": {
    "first_name": "Ian",
    "last_name": "Crease"
  },
  "created_at": "2020-01-31T23:59:59Z",
  "id": "physical_card_ode8duyq5v2ynhjoharl",
  "idempotency_key": null,
  "physical_card_profile_id": "physical_card_profile_m534d5rn9qyy9ufqxoec",
  "shipment": {
    "address": {
      "city": "New York",
      "country": "US",
      "line1": "33 Liberty Street",
      "line2": "Unit 2",
      "line3": null,
      "name": "Ian Crease",
      "postal_code": "10045",
      "state": "NY"
    },
    "method": "usps",
    "schedule": "next_day",
    "status": "shipped",
    "tracking": {
      "number": "9400110200881234567890",
      "return_number": null,
      "return_reason": null,
      "shipped_at": "2020-01-31T23:59:59Z",
      "updates": [
        {
          "carrier_estimated_delivery_at": null,
          "category": "delivered",
          "city": null,
          "created_at": "2020-01-31T23:59:59Z",
          "postal_code": "10001",
          "state": null
        }
      ]
    }
  },
  "status": "active",
  "type": "physical_card"
}
Attributes
card_id
string

The identifier for the Card this Physical Card represents.

More about Cards.
cardholder
dictionary

Details about the cardholder, as it appears on the printed card.

created_at
string

The ISO 8601 date and time at which the Physical Card was created.

id
string

The physical card identifier.

idempotency_key
string
Nullable

The idempotency key you chose for this object. This value is unique across Increase and is used to ensure that a request is only processed once. Learn more about idempotency.

physical_card_profile_id
string
Nullable

The Physical Card Profile used for this Physical Card.

More about Physical Card Profiles.
shipment
dictionary

The details used to ship this physical card.

status
enum

The status of the Physical Card.

type
string

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

List Physical Cards
curl \
  --url "${INCREASE_URL}/physical_cards?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 physicalCard of client.physicalCards.list()) {
  console.log(physicalCard.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.physical_cards.list()
page = page.data[0]
print(page.id)
require "increase"

increase = Increase::Client.new(api_key: "My API Key")

page = increase.physical_cards.list

puts(page)
package main

import (
	"context"
	"fmt"

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

func main() {
	client := increase.NewClient(
		option.WithAPIKey("My API Key"),
	)
	page, err := client.PhysicalCards.List(context.TODO(), increase.PhysicalCardListParams{})
	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.physicalcards.PhysicalCardListPage;
import com.increase.api.models.physicalcards.PhysicalCardListParams;

public final class Main {
    private Main() {}

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

        PhysicalCardListPage page = client.physicalCards().list();
    }
}
package com.increase.api.example

import com.increase.api.client.IncreaseClient
import com.increase.api.client.okhttp.IncreaseOkHttpClient
import com.increase.api.models.physicalcards.PhysicalCardListPage
import com.increase.api.models.physicalcards.PhysicalCardListParams

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

    val page: PhysicalCardListPage = client.physicalCards().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') ?: 'My API Key', environment: 'sandbox'
);

try {
  $page = $client->physicalCards->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',
    idempotencyKey: 'x',
    limit: 1,
  );

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

IncreaseClient client = new();

PhysicalCardListParams parameters = new();

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

Filter Physical Cards to ones belonging to the specified Card.

More about Cards.
idempotency_key
string

Filter records to the one with the specified idempotency_key you chose for that object. This value is unique across Increase and is used to ensure that a request is only processed once. Learn more about idempotency.

Between 1 and 200 characters
More
cursor
string
limit
integer
created_at.after
string
created_at.before
string
created_at.on_or_after
string
created_at.on_or_before
string
Create a Physical Card
curl -X "POST" \
  --url "${INCREASE_URL}/physical_cards" \
  -H "Authorization: Bearer ${INCREASE_API_KEY}" \
  -H "Content-Type: application/json" \
  -d $'{
    "card_id": "card_oubs0hwk5rn6knuecxg2",
    "cardholder": {
      "first_name": "Ian",
      "last_name": "Crease"
    },
    "shipment": {
      "address": {
        "city": "New York",
        "line1": "33 Liberty Street",
        "line2": "Unit 2",
        "name": "Ian Crease",
        "postal_code": "10045",
        "state": "NY"
      },
      "method": "usps"
    }
  }'
import Increase from 'increase';

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

const physicalCard = await client.physicalCards.create({
  card_id: 'card_oubs0hwk5rn6knuecxg2',
  cardholder: { first_name: 'Ian', last_name: 'Crease' },
  shipment: {
    address: {
      city: 'New York',
      line1: '33 Liberty Street',
      name: 'Ian Crease',
      postal_code: '10045',
      state: 'NY',
    },
    method: 'usps',
  },
});

console.log(physicalCard.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
)
physical_card = client.physical_cards.create(
    card_id="card_oubs0hwk5rn6knuecxg2",
    cardholder={
        "first_name": "Ian",
        "last_name": "Crease",
    },
    shipment={
        "address": {
            "city": "New York",
            "line1": "33 Liberty Street",
            "name": "Ian Crease",
            "postal_code": "10045",
            "state": "NY",
        },
        "method": "usps",
    },
)
print(physical_card.id)
require "increase"

increase = Increase::Client.new(api_key: "My API Key")

physical_card = increase.physical_cards.create(
  card_id: "card_oubs0hwk5rn6knuecxg2",
  cardholder: {first_name: "Ian", last_name: "Crease"},
  shipment: {
    address: {city: "New York", line1: "33 Liberty Street", name: "Ian Crease", postal_code: "10045", state: "NY"},
    method: :usps
  }
)

puts(physical_card)
package main

import (
	"context"
	"fmt"

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

func main() {
	client := increase.NewClient(
		option.WithAPIKey("My API Key"),
	)
	physicalCard, err := client.PhysicalCards.New(context.TODO(), increase.PhysicalCardNewParams{
		CardID: increase.F("card_oubs0hwk5rn6knuecxg2"),
		Cardholder: increase.F(increase.PhysicalCardNewParamsCardholder{
			FirstName: increase.F("Ian"),
			LastName:  increase.F("Crease"),
		}),
		Shipment: increase.F(increase.PhysicalCardNewParamsShipment{
			Address: increase.F(increase.PhysicalCardNewParamsShipmentAddress{
				City:       increase.F("New York"),
				Line1:      increase.F("33 Liberty Street"),
				Name:       increase.F("Ian Crease"),
				PostalCode: increase.F("10045"),
				State:      increase.F("NY"),
			}),
			Method: increase.F(increase.PhysicalCardNewParamsShipmentMethodUsps),
		}),
	})
	if err != nil {
		panic(err.Error())
	}
	fmt.Printf("%+v\n", physicalCard.ID)
}
package com.increase.api.example;

import com.increase.api.client.IncreaseClient;
import com.increase.api.client.okhttp.IncreaseOkHttpClient;
import com.increase.api.models.physicalcards.PhysicalCard;
import com.increase.api.models.physicalcards.PhysicalCardCreateParams;

public final class Main {
    private Main() {}

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

        PhysicalCardCreateParams params = PhysicalCardCreateParams.builder()
            .cardId("card_oubs0hwk5rn6knuecxg2")
            .cardholder(PhysicalCardCreateParams.Cardholder.builder()
                .firstName("Ian")
                .lastName("Crease")
                .build())
            .shipment(PhysicalCardCreateParams.Shipment.builder()
                .address(PhysicalCardCreateParams.Shipment.Address.builder()
                    .city("New York")
                    .line1("33 Liberty Street")
                    .name("Ian Crease")
                    .postalCode("10045")
                    .state("NY")
                    .build())
                .method(PhysicalCardCreateParams.Shipment.Method.USPS)
                .build())
            .build();
        PhysicalCard physicalCard = client.physicalCards().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.physicalcards.PhysicalCard
import com.increase.api.models.physicalcards.PhysicalCardCreateParams

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

    val params: PhysicalCardCreateParams = PhysicalCardCreateParams.builder()
        .cardId("card_oubs0hwk5rn6knuecxg2")
        .cardholder(PhysicalCardCreateParams.Cardholder.builder()
            .firstName("Ian")
            .lastName("Crease")
            .build())
        .shipment(PhysicalCardCreateParams.Shipment.builder()
            .address(PhysicalCardCreateParams.Shipment.Address.builder()
                .city("New York")
                .line1("33 Liberty Street")
                .name("Ian Crease")
                .postalCode("10045")
                .state("NY")
                .build())
            .method(PhysicalCardCreateParams.Shipment.Method.USPS)
            .build())
        .build()
    val physicalCard: PhysicalCard = client.physicalCards().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') ?: 'My API Key', environment: 'sandbox'
);

try {
  $physicalCard = $client->physicalCards->create(
    cardID: 'card_oubs0hwk5rn6knuecxg2',
    cardholder: ['firstName' => 'Ian', 'lastName' => 'Crease'],
    shipment: [
      'address' => [
        'city' => 'New York',
        'line1' => '33 Liberty Street',
        'name' => 'Ian Crease',
        'postalCode' => '10045',
        'state' => 'NY',
        'country' => 'x',
        'line2' => 'Unit 2',
        'line3' => 'x',
        'phoneNumber' => 'x',
      ],
      'method' => 'usps',
      'schedule' => 'next_day',
    ],
    physicalCardProfileID: 'physical_card_profile_id',
  );

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

IncreaseClient client = new();

PhysicalCardCreateParams parameters = new()
{
    CardID = "card_oubs0hwk5rn6knuecxg2",
    Cardholder = new()
    {
        FirstName = "Ian",
        LastName = "Crease",
    },
    Shipment = new()
    {
        Address = new()
        {
            City = "New York",
            Line1 = "33 Liberty Street",
            Name = "Ian Crease",
            PostalCode = "10045",
            State = "NY",
            Country = "x",
            Line2 = "Unit 2",
            Line3 = "x",
            PhoneNumber = "x",
        },
        Method = Method.Usps,
        Schedule = Schedule.NextDay,
    },
};

var physicalCard = await client.PhysicalCards.Create(parameters);

Console.WriteLine(physicalCard);
Parameters
card_id
string
Required

The underlying card representing this physical card.

More about Cards.
cardholder
dictionary
Required

Details about the cardholder, as it will appear on the physical card.

physical_card_profile_id
string

The physical card profile to use for this physical card. The latest default physical card profile will be used if not provided.

shipment
dictionary
Required

The details used to ship this physical card.

Retrieve a Physical Card
curl \
  --url "${INCREASE_URL}/physical_cards/physical_card_ode8duyq5v2ynhjoharl" \
  -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 physicalCard = await client.physicalCards.retrieve('physical_card_ode8duyq5v2ynhjoharl');

console.log(physicalCard.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
)
physical_card = client.physical_cards.retrieve(
    "physical_card_ode8duyq5v2ynhjoharl",
)
print(physical_card.id)
require "increase"

increase = Increase::Client.new(api_key: "My API Key")

physical_card = increase.physical_cards.retrieve("physical_card_ode8duyq5v2ynhjoharl")

puts(physical_card)
package main

import (
	"context"
	"fmt"

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

func main() {
	client := increase.NewClient(
		option.WithAPIKey("My API Key"),
	)
	physicalCard, err := client.PhysicalCards.Get(context.TODO(), "physical_card_ode8duyq5v2ynhjoharl")
	if err != nil {
		panic(err.Error())
	}
	fmt.Printf("%+v\n", physicalCard.ID)
}
package com.increase.api.example;

import com.increase.api.client.IncreaseClient;
import com.increase.api.client.okhttp.IncreaseOkHttpClient;
import com.increase.api.models.physicalcards.PhysicalCard;
import com.increase.api.models.physicalcards.PhysicalCardRetrieveParams;

public final class Main {
    private Main() {}

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

        PhysicalCard physicalCard = client.physicalCards().retrieve("physical_card_ode8duyq5v2ynhjoharl");
    }
}
package com.increase.api.example

import com.increase.api.client.IncreaseClient
import com.increase.api.client.okhttp.IncreaseOkHttpClient
import com.increase.api.models.physicalcards.PhysicalCard
import com.increase.api.models.physicalcards.PhysicalCardRetrieveParams

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

    val physicalCard: PhysicalCard = client.physicalCards().retrieve("physical_card_ode8duyq5v2ynhjoharl")
}
<?php

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

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

$client = new Client(
  apiKey: getenv('INCREASE_API_KEY') ?: 'My API Key', environment: 'sandbox'
);

try {
  $physicalCard = $client->physicalCards->retrieve(
    'physical_card_ode8duyq5v2ynhjoharl'
  );

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

IncreaseClient client = new();

PhysicalCardRetrieveParams parameters = new()
{
    PhysicalCardID = "physical_card_ode8duyq5v2ynhjoharl"
};

var physicalCard = await client.PhysicalCards.Retrieve(parameters);

Console.WriteLine(physicalCard);
Parameters
physical_card_id
string
Required

The identifier of the Physical Card.

More about Physical Cards.
Update a Physical Card
curl -X "PATCH" \
  --url "${INCREASE_URL}/physical_cards/physical_card_ode8duyq5v2ynhjoharl" \
  -H "Authorization: Bearer ${INCREASE_API_KEY}" \
  -H "Content-Type: application/json" \
  -d $'{
    "status": "disabled"
  }'
import Increase from 'increase';

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

const physicalCard = await client.physicalCards.update('physical_card_ode8duyq5v2ynhjoharl', {
  status: 'disabled',
});

console.log(physicalCard.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
)
physical_card = client.physical_cards.update(
    physical_card_id="physical_card_ode8duyq5v2ynhjoharl",
    status="disabled",
)
print(physical_card.id)
require "increase"

increase = Increase::Client.new(api_key: "My API Key")

physical_card = increase.physical_cards.update("physical_card_ode8duyq5v2ynhjoharl", status: :disabled)

puts(physical_card)
package main

import (
	"context"
	"fmt"

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

func main() {
	client := increase.NewClient(
		option.WithAPIKey("My API Key"),
	)
	physicalCard, err := client.PhysicalCards.Update(
		context.TODO(),
		"physical_card_ode8duyq5v2ynhjoharl",
		increase.PhysicalCardUpdateParams{
			Status: increase.F(increase.PhysicalCardUpdateParamsStatusDisabled),
		},
	)
	if err != nil {
		panic(err.Error())
	}
	fmt.Printf("%+v\n", physicalCard.ID)
}
package com.increase.api.example;

import com.increase.api.client.IncreaseClient;
import com.increase.api.client.okhttp.IncreaseOkHttpClient;
import com.increase.api.models.physicalcards.PhysicalCard;
import com.increase.api.models.physicalcards.PhysicalCardUpdateParams;

public final class Main {
    private Main() {}

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

        PhysicalCardUpdateParams params = PhysicalCardUpdateParams.builder()
            .physicalCardId("physical_card_ode8duyq5v2ynhjoharl")
            .status(PhysicalCardUpdateParams.Status.DISABLED)
            .build();
        PhysicalCard physicalCard = client.physicalCards().update(params);
    }
}
package com.increase.api.example

import com.increase.api.client.IncreaseClient
import com.increase.api.client.okhttp.IncreaseOkHttpClient
import com.increase.api.models.physicalcards.PhysicalCard
import com.increase.api.models.physicalcards.PhysicalCardUpdateParams

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

    val params: PhysicalCardUpdateParams = PhysicalCardUpdateParams.builder()
        .physicalCardId("physical_card_ode8duyq5v2ynhjoharl")
        .status(PhysicalCardUpdateParams.Status.DISABLED)
        .build()
    val physicalCard: PhysicalCard = client.physicalCards().update(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') ?: 'My API Key', environment: 'sandbox'
);

try {
  $physicalCard = $client->physicalCards->update(
    'physical_card_ode8duyq5v2ynhjoharl', status: 'disabled'
  );

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

IncreaseClient client = new();

PhysicalCardUpdateParams parameters = new()
{
    PhysicalCardID = "physical_card_ode8duyq5v2ynhjoharl",
    Status = Status.Disabled,
};

var physicalCard = await client.PhysicalCards.Update(parameters);

Console.WriteLine(physicalCard);
Parameters
physical_card_id
string
Required

The Physical Card identifier.

More about Physical Cards.
status
enum
Required

The status to update the Physical Card to.

Sandbox: Advance the shipment status of a Physical Card

This endpoint allows you to simulate advancing the shipment status of a Physical Card, to simulate e.g., that a physical card was attempted shipped but then failed delivery.

curl -X "POST" \
  --url "${INCREASE_URL}/simulations/physical_cards/physical_card_ode8duyq5v2ynhjoharl/advance_shipment" \
  -H "Authorization: Bearer ${INCREASE_API_KEY}" \
  -H "Content-Type: application/json" \
  -d $'{
    "shipment_status": "shipped"
  }'
import Increase from 'increase';

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

const physicalCard = await client.simulations.physicalCards.advanceShipment(
  'physical_card_ode8duyq5v2ynhjoharl',
  { shipment_status: 'shipped' },
);

console.log(physicalCard.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
)
physical_card = client.simulations.physical_cards.advance_shipment(
    physical_card_id="physical_card_ode8duyq5v2ynhjoharl",
    shipment_status="shipped",
)
print(physical_card.id)
require "increase"

increase = Increase::Client.new(api_key: "My API Key")

physical_card = increase.simulations.physical_cards.advance_shipment(
  "physical_card_ode8duyq5v2ynhjoharl",
  shipment_status: :shipped
)

puts(physical_card)
package main

import (
	"context"
	"fmt"

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

func main() {
	client := increase.NewClient(
		option.WithAPIKey("My API Key"),
	)
	physicalCard, err := client.Simulations.PhysicalCards.AdvanceShipment(
		context.TODO(),
		"physical_card_ode8duyq5v2ynhjoharl",
		increase.SimulationPhysicalCardAdvanceShipmentParams{
			ShipmentStatus: increase.F(increase.SimulationPhysicalCardAdvanceShipmentParamsShipmentStatusShipped),
		},
	)
	if err != nil {
		panic(err.Error())
	}
	fmt.Printf("%+v\n", physicalCard.ID)
}
package com.increase.api.example;

import com.increase.api.client.IncreaseClient;
import com.increase.api.client.okhttp.IncreaseOkHttpClient;
import com.increase.api.models.physicalcards.PhysicalCard;
import com.increase.api.models.simulations.physicalcards.PhysicalCardAdvanceShipmentParams;

public final class Main {
    private Main() {}

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

        PhysicalCardAdvanceShipmentParams params = PhysicalCardAdvanceShipmentParams.builder()
            .physicalCardId("physical_card_ode8duyq5v2ynhjoharl")
            .shipmentStatus(PhysicalCardAdvanceShipmentParams.ShipmentStatus.SHIPPED)
            .build();
        PhysicalCard physicalCard = client.simulations().physicalCards().advanceShipment(params);
    }
}
package com.increase.api.example

import com.increase.api.client.IncreaseClient
import com.increase.api.client.okhttp.IncreaseOkHttpClient
import com.increase.api.models.physicalcards.PhysicalCard
import com.increase.api.models.simulations.physicalcards.PhysicalCardAdvanceShipmentParams

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

    val params: PhysicalCardAdvanceShipmentParams = PhysicalCardAdvanceShipmentParams.builder()
        .physicalCardId("physical_card_ode8duyq5v2ynhjoharl")
        .shipmentStatus(PhysicalCardAdvanceShipmentParams.ShipmentStatus.SHIPPED)
        .build()
    val physicalCard: PhysicalCard = client.simulations().physicalCards().advanceShipment(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') ?: 'My API Key', environment: 'sandbox'
);

try {
  $physicalCard = $client->simulations->physicalCards->advanceShipment(
    'physical_card_ode8duyq5v2ynhjoharl', shipmentStatus: 'shipped'
  );

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

IncreaseClient client = new();

PhysicalCardAdvanceShipmentParams parameters = new()
{
    PhysicalCardID = "physical_card_ode8duyq5v2ynhjoharl",
    ShipmentStatus = ShipmentStatus.Shipped,
};

var physicalCard = await client.Simulations.PhysicalCards.AdvanceShipment(parameters);

Console.WriteLine(physicalCard);
Parameters
physical_card_id
string
Required

The Physical Card you would like to action.

More about Physical Cards.
shipment_status
enum
Required

The shipment status to move the Physical Card to.

Sandbox: Create a Physical Card Shipment Tracking Update

This endpoint allows you to simulate receiving a tracking update for a Physical Card, to simulate the progress of a shipment.

curl -X "POST" \
  --url "${INCREASE_URL}/simulations/physical_cards/physical_card_ode8duyq5v2ynhjoharl/tracking_updates" \
  -H "Authorization: Bearer ${INCREASE_API_KEY}" \
  -H "Content-Type: application/json" \
  -d $'{
    "category": "delivered",
    "city": "New York",
    "postal_code": "10045",
    "state": "NY"
  }'
import Increase from 'increase';

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

const physicalCard = await client.simulations.physicalCards.create(
  'physical_card_ode8duyq5v2ynhjoharl',
  { category: 'delivered' },
);

console.log(physicalCard.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
)
physical_card = client.simulations.physical_cards.create(
    physical_card_id="physical_card_ode8duyq5v2ynhjoharl",
    category="delivered",
)
print(physical_card.id)
require "increase"

increase = Increase::Client.new(api_key: "My API Key")

physical_card = increase.simulations.physical_cards.create("physical_card_ode8duyq5v2ynhjoharl", category: :delivered)

puts(physical_card)
package main

import (
	"context"
	"fmt"

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

func main() {
	client := increase.NewClient(
		option.WithAPIKey("My API Key"),
	)
	physicalCard, err := client.Simulations.PhysicalCards.New(
		context.TODO(),
		"physical_card_ode8duyq5v2ynhjoharl",
		increase.SimulationPhysicalCardNewParams{
			Category: increase.F(increase.SimulationPhysicalCardNewParamsCategoryDelivered),
		},
	)
	if err != nil {
		panic(err.Error())
	}
	fmt.Printf("%+v\n", physicalCard.ID)
}
package com.increase.api.example;

import com.increase.api.client.IncreaseClient;
import com.increase.api.client.okhttp.IncreaseOkHttpClient;
import com.increase.api.models.physicalcards.PhysicalCard;
import com.increase.api.models.simulations.physicalcards.PhysicalCardCreateParams;

public final class Main {
    private Main() {}

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

        PhysicalCardCreateParams params = PhysicalCardCreateParams.builder()
            .physicalCardId("physical_card_ode8duyq5v2ynhjoharl")
            .category(PhysicalCardCreateParams.Category.DELIVERED)
            .build();
        PhysicalCard physicalCard = client.simulations().physicalCards().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.physicalcards.PhysicalCard
import com.increase.api.models.simulations.physicalcards.PhysicalCardCreateParams

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

    val params: PhysicalCardCreateParams = PhysicalCardCreateParams.builder()
        .physicalCardId("physical_card_ode8duyq5v2ynhjoharl")
        .category(PhysicalCardCreateParams.Category.DELIVERED)
        .build()
    val physicalCard: PhysicalCard = client.simulations().physicalCards().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') ?: 'My API Key', environment: 'sandbox'
);

try {
  $physicalCard = $client->simulations->physicalCards->create(
    'physical_card_ode8duyq5v2ynhjoharl',
    category: 'delivered',
    carrierEstimatedDeliveryAt: new \DateTimeImmutable(
      '2019-12-27T18:11:19.117Z'
    ),
    city: 'New York',
    postalCode: '10045',
    state: 'NY',
  );

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

IncreaseClient client = new();

PhysicalCardCreateParams parameters = new()
{
    PhysicalCardID = "physical_card_ode8duyq5v2ynhjoharl",
    Category = Category.Delivered,
};

var physicalCard = await client.Simulations.PhysicalCards.Create(parameters);

Console.WriteLine(physicalCard);
Parameters
physical_card_id
string
Required

The Physical Card you would like to action.

More about Physical Cards.
carrier_estimated_delivery_at
string

The ISO 8601 date and time when the carrier expects the card to be delivered.

category
enum
Required

The type of tracking event.

city
string

The city where the event took place.

Between 1 and 200 characters
postal_code
string

The postal code where the event took place.

Between 1 and 200 characters
state
string

The state where the event took place.

Between 1 and 200 characters