> ## Documentation Index
> Fetch the complete documentation index at: https://docs.equalsmoney.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Order physical cards

> Convert individual virtual cards into physical cards and order replacement cards.

## Convert a virtual card into a physical card

<Note>
  **POST** `/v2/cards/{cardId}/convert-to-physical`
</Note>

### Request

Use this request to convert an existing virtual card into a physical card. The virtual card will remain active until the physical card is activated. Once the physical card is activated, the virtual card will automatically be terminated.

<Info>
  You can only convert an individual card, not a shared one.
</Info>

<CodeGroup>
  ```bash Sample request theme={null}
  curl -i -X POST \
    'https://api.equalsmoney.com/v2/cards/e9293471-5eb3-4dbc-916c-dbaf9e2deefd/convert-to-physical?accountId=F12345&personId=775596ae-2624-40af-a9dc-9756110a4a04' \
    -H 'Authorization: ApiKey YOUR_API_KEY_HERE' \
    -H 'Content-Type: application/json' \
    -d '{
      "pin": "1111",
      "recipientAddress": {
        "firstName": "Jane",
        "middleName": "Roger",
        "lastName": "Doe",
        "address1": "123 Henry St",
        "address2": "Suite 101",
        "city": "Porterville",
        "state": "CA",
        "postalCode": "93257",
        "country": "US",
        "phone": "8315555555"
      },
      "careOfLine": "Care of JRD",
      "expedite": false,
      "addressId": "1c480aec-406b-41fb-b03a-5656d8fc71cf"
    }'
  ```

  ```bash Request structure theme={null}
  curl -i -X POST \
    'https://api.equalsmoney.com/v2/cards/{cardId}/convert-to-physical?accountId={accountId}&personId={personId}' \
    -H 'Authorization: ApiKey YOUR_API_KEY_HERE' \
    -H 'Content-Type: application/json' \
    -d '{
      "pin": "string",
      "recipientAddress": {
        "firstName": "string",
        "middleName": "string",
        "lastName": "string",
        "address1": "string",
        "address2": "string",
        "city": "string",
        "state": "string",
        "postalCode": "string",
        "country": "string",
        "phone": "string"
      },
      "careOfLine": "string",
      "expedite": boolean,
      "addressId": "string"
    }'
  ```
</CodeGroup>

#### Path parameters

<ParamField body="cardId" type="string" required>
  The ID of the virtual card that you want to convert.

  Allowable values: An existing `cardId` (≤ 36 characters)
</ParamField>

#### Query parameters

<ParamField body="accountId" type="string" required>
  The ID of the account that the card is associated with.

  Allowable values: An existing `accountId`
</ParamField>

<ParamField body="personId" type="string" required>
  The ID of the person that the card belongs to.

  Allowable values: An existing `personId` (≤ 36 characters)
</ParamField>

#### Request body schema

<ParamField body="pin" type="string">
  The Personal Identification Number (PIN) that you want to assign to the card.

  Allowable values: 4 characters
</ParamField>

<ParamField body="recipientAddress" type="object" required>
  Details about the recipient of the physical card.

  Allowable values: A valid `recipientAddress` containing the following fields: `firstName`, `middleName`, `lastName`, `address1`, `address2`, `city`, `state`, `postalCode`, `country`, `phone`

  <Expandable title="recipientAddress properties">
    <ParamField body="recipientAddress.firstName" type="string" required>
      The recipient's first name.

      Allowable values: A valid string
    </ParamField>

    <ParamField body="recipientAddress.middleName" type="string">
      The recipient's middle name.

      Allowable values: A valid string
    </ParamField>

    <ParamField body="recipientAddress.lastName" type="string" required>
      The recipient's last name.

      Allowable values: A valid string
    </ParamField>

    <ParamField body="recipientAddress.address1" type="string" required>
      The first line of the recipient's address.

      Allowable values: A valid string
    </ParamField>

    <ParamField body="recipientAddress.address2" type="string">
      The second line of the recipient's address.

      Allowable values: A valid string
    </ParamField>

    <ParamField body="recipientAddress.city" type="string" required>
      The recipient's city.

      Allowable values: A valid string
    </ParamField>

    <ParamField body="recipientAddress.state" type="string">
      The recipient's state.

      Allowable values: A valid string
    </ParamField>

    <ParamField body="recipientAddress.postalCode" type="string" required>
      The recipient's postal or ZIP code.

      Allowable values: A valid string
    </ParamField>

    <ParamField body="recipientAddress.country" type="string" required>
      The recipient's country.

      Allowable values: A valid string (≤ 40 characters)
    </ParamField>

    <ParamField body="recipientAddress.phone" type="string">
      The recipient's phone number.

      Allowable values: A valid string
    </ParamField>
  </Expandable>
</ParamField>

<ParamField body="addressId" type="string" required>
  The ID of the address to send the physical card to.

  Allowable values: An existing `addressId`
</ParamField>

<ParamField body="expedite" type="boolean">
  If set to true, expedited shipping will be used. Product and account settings may block this.

  Allowable values: `true`, `false`
</ParamField>

<ParamField body="careOfLine" type="string">
  An optional, additional care of (C/O) line that will be added to the mailing carrier.

  Allowable values:
</ParamField>

### Response

If your request is successful, you'll receive a `201` response.

<CodeGroup>
  ```json Sample response theme={null}
  {
    "id": "e9293471-5eb3-4dbc-916c-dbaf9e2deefd",
    "personId": "f3e5ff26-28ff-4cd6-9b1b-e303a185a13a",
    "accountId": "F12345",
    "cardProductName": "string",
    "lastFour": "0056",
    "expiration": "0111",
    "expirationTime": "2025-01-31T23:59:59Z",
    "pinIsSet": true,
    "state": "UNACTIVATED",
    "stateReason": "New card",
    "fulfillmentStatus": "ISSUED",
    "cardType": "PHYSICAL_MSR",
    "recipientAddress": {
      "firstName": "Jane",
      "middleName": "Roger",
      "lastName": "Doe",
      "address1": "123 Henry St",
      "address2": "Suite 101",
      "city": "Porterville",
      "state": "CA",
      "postalCode": "93257",
      "country": "US",
      "phone": "8315555555"
    },
    "cardOwnerType": "PEOPLE",
    "name": "Team Party Card",
    "budgetCardPhoneNumber": "+447911001762",
    "meta": [
      {
        "id": "string",
        "cardId": "e9293471-5eb3-4dbc-916c-dbaf9e2deefd",
        "metaKey": "expirationTime",
        "metaValue": "New card"
      }
    ],
    "budgets": [
      {
        "id": "775596ae-2624-40af-a9dc-9756110a4a03",
        "name": "Engineering"
      }
    ],
    "budget": {
      "id": "775596ae-2624-40af-a9dc-9756110a4a03",
      "name": "Engineering"
    },
    "spendingLimit": {
      "id": "775596ae-2624-40af-a9dc-9756110a4a03",
      "amount": 100.5,
      "active": false,
      "limitTurnedOff": true,
      "limitWindow": "DAY",
      "available": {
        "uses": 0,
        "amount": 100.5,
        "daysRemaining": 1
      }
    },
    "transactionLimit": {
      "id": "775596ae-2624-40af-a9dc-9756110a4a03",
      "amount": 100.5,
      "active": false,
      "limitTurnedOff": true,
      "limitWindow": "TRANSACTION"
    },
    "budgetCardPhoneNumberPersonId": "775596ae-2624-40af-a9dc-9756110a4a08",
    "previousCards": [
      null
    ],
    "currencies": [
      {
        "numericCode": "840",
        "code": "USD"
      }
    ],
    "physicalCardState": "ACTIVE",
    "physicalCardId": "884496ae-2624-40af-a9dc-9756110a4a18",
    "forceChangePin": false,
    "createdAt": "2021-01-30T08:30:00Z",
    "updatedAt": "2021-01-30T08:30:00Z"
  }
  ```

  ```json Response structure theme={null}
  {
    "id": "string",
    "personId": "string",
    "accountId": "string",
    "cardProductName": "string",
    "lastFour": "string",
    "expiration": "string",
    "expirationTime": "string",
    "pinIsSet": boolean,
    "state": "string",
    "stateReason": "string",
    "fulfillmentStatus": "string",
    "cardType": "string",
    "recipientAddress": {
      "firstName": "string",
      "middleName": "string",
      "lastName": "string",
      "address1": "string",
      "address2": "string",
      "city": "string",
      "state": "string",
      "postalCode": "string",
      "country": "string",
      "phone": "string"
    },
    "cardOwnerType": "string",
    "name": "string",
    "budgetCardPhoneNumber": "string",
    "meta": [
      {
        "id": "string",
        "cardId": "string",
        "metaKey": "string",
        "metaValue": "string"
      }
    ],
    "budgets": [
      {
        "id": "string",
        "name": "string"
      }
    ],
    "budget": {
      "id": "string",
      "name": "string"
    },
    "spendingLimit": {
      "id": "string",
      "amount": number,
      "active": boolean,
      "limitTurnedOff": boolean,
      "limitWindow": "string",
      "available": {
        "uses": number,
        "amount": number,
        "daysRemaining": number
      }
    },
    "transactionLimit": {
      "id": "string",
      "amount": number,
      "active": boolean,
      "limitTurnedOff": boolean,
      "limitWindow": "string"
    },
    "budgetCardPhoneNumberPersonId": "string",
    "previousCards": [
      null
    ],
    "currencies": [
      {
        "numericCode": "string",
        "code": "string"
      }
    ],
    "physicalCardState": "string",
    "physicalCardId": "string",
    "forceChangePin": boolean,
    "createdAt": "string",
    "updatedAt": "string"
  }
  ```
</CodeGroup>

For more detailed information about this request and its response, [see the API reference](/api-reference/order-a-card/convert-a-virtual-card-into-a-physical-card).

## Order a replacement card

<Note>
  **POST** `/v2/cards/{cardId}/replace`
</Note>

### Request

Use this request to replace an existing card with a new one. A physical card will be replaced with a physical card and a virtual card will be replaced with a virtual card.

<CodeGroup>
  ```bash Sample request theme={null}
  curl -i -X POST \
    'https://api.equalsmoney.com/v2/cards/884496ae-2624-40af-a9dc-9756110a4a18/replace?accountId=F12345' \
    -H 'Content-Type: application/json' \
    -d '{
      "keepPan": true,
      "keepDigitalWalletTokens": true
    }'
  ```

  ```bash Request structure theme={null}
  curl -i -X POST \
    'https://api.equalsmoney.com/v2/cards/{cardId}/replace?accountId={accountId}' \
    -H 'Content-Type: application/json' \
    -d '{
      "keepPan": boolean,
      "keepDigitalWalletTokens": boolean
    }'
  ```
</CodeGroup>

#### Path parameters

<ParamField body="cardId" type="string" required>
  The ID of the card that you want to replace.

  Allowable values: An existing `cardId` (≤ 36 characters)
</ParamField>

#### Query parameters

<ParamField body="accountId" type="string" required>
  The ID of the account that the card is associated with.

  Allowable values: An existing `accountId`
</ParamField>

<ParamField body="personId" type="string">
  The ID of the person that the card belongs to.

  Allowable values: An existing `personId` (≤ 36 characters)
</ParamField>

#### Request body schema

<ParamField body="keepPan" type="boolean">
  Whether or not the new card should keep the same PAN as the old one. By default, this is set to `false`.

  Allowable values: `true`, `false`
</ParamField>

<ParamField body="keepDigitalWalletTokens" type="boolean">
  Whether or not any existing digital wallet tokens should be reassigned to the new card. By default, this is set to `true`.

  Allowable values: `true`, `false`
</ParamField>

### Response

<CodeGroup>
  ```json Sample response theme={null}
  {
    "id": "e9293471-5eb3-4dbc-916c-dbaf9e2deefd",
    "personId": "f3e5ff26-28ff-4cd6-9b1b-e303a185a13a",
    "accountId": "F12345",
    "cardProductName": "string",
    "lastFour": "0056",
    "expiration": "0111",
    "expirationTime": "2025-01-31T23:59:59Z",
    "pinIsSet": true,
    "state": "UNACTIVATED",
    "stateReason": "New card",
    "fulfillmentStatus": "ISSUED",
    "cardType": "PHYSICAL_MSR",
    "recipientAddress": {
      "firstName": "Jane",
      "middleName": "Roger",
      "lastName": "Doe",
      "address1": "123 Henry St",
      "address2": "Suite 101",
      "city": "Porterville",
      "state": "CA",
      "postalCode": "93257",
      "country": "US",
      "phone": "8315555555"
    },
    "cardOwnerType": "PEOPLE",
    "name": "Team Party Card",
    "budgetCardPhoneNumber": "+447911001762",
    "meta": [
      {
        "id": "string",
        "cardId": "e9293471-5eb3-4dbc-916c-dbaf9e2deefd",
        "metaKey": "expirationTime",
        "metaValue": "New card"
      }
    ],
    "budgets": [
      {
        "id": "775596ae-2624-40af-a9dc-9756110a4a03",
        "name": "Engineering"
      }
    ],
    "budget": {
      "id": "775596ae-2624-40af-a9dc-9756110a4a03",
      "name": "Engineering"
    },
    "spendingLimit": {
      "id": "775596ae-2624-40af-a9dc-9756110a4a03",
      "amount": 100.5,
      "active": false,
      "limitTurnedOff": true,
      "limitWindow": "DAY",
      "available": {
        "uses": 0,
        "amount": 100.5,
        "daysRemaining": 1
      }
    },
    "transactionLimit": {
      "id": "775596ae-2624-40af-a9dc-9756110a4a03",
      "amount": 100.5,
      "active": false,
      "limitTurnedOff": true,
      "limitWindow": "TRANSACTION"
    },
    "budgetCardPhoneNumberPersonId": "775596ae-2624-40af-a9dc-9756110a4a08",
    "previousCards": [
      null
    ],
    "currencies": [
      {
        "numericCode": "840",
        "code": "USD"
      }
    ],
    "physicalCardState": "ACTIVE",
    "physicalCardId": "884496ae-2624-40af-a9dc-9756110a4a18",
    "forceChangePin": false,
    "createdAt": "2021-01-30T08:30:00Z",
    "updatedAt": "2021-01-30T08:30:00Z"
  }
  ```

  ```json Response structure theme={null}
  {
    "id": "string",
    "personId": "string",
    "accountId": "string",
    "cardProductName": "string",
    "lastFour": "string",
    "expiration": "string",
    "expirationTime": "string",
    "pinIsSet": boolean,
    "state": "string",
    "stateReason": "string",
    "fulfillmentStatus": "string",
    "cardType": "string",
    "recipientAddress": {
      "firstName": "string",
      "middleName": "string",
      "lastName": "string",
      "address1": "string",
      "address2": "string",
      "city": "string",
      "state": "string",
      "postalCode": "string",
      "country": "string",
      "phone": "string"
    },
    "cardOwnerType": "string",
    "name": "string",
    "budgetCardPhoneNumber": "string",
    "meta": [
      {
        "id": "string",
        "cardId": "string",
        "metaKey": "string",
        "metaValue": "string"
      }
    ],
    "budgets": [
      {
        "id": "string",
        "name": "string"
      }
    ],
    "budget": {
      "id": "string",
      "name": "string"
    },
    "spendingLimit": {
      "id": "string",
      "amount": number,
      "active": boolean,
      "limitTurnedOff": boolean,
      "limitWindow": "string",
      "available": {
        "uses": number,
        "amount": number,
        "daysRemaining": number
      }
    },
    "transactionLimit": {
      "id": "string",
      "amount": number,
      "active": boolean,
      "limitTurnedOff": boolean,
      "limitWindow": "string"
    },
    "budgetCardPhoneNumberPersonId": "string",
    "previousCards": [
      null
    ],
    "currencies": [
      {
        "numericCode": "string",
        "code": "string"
      }
    ],
    "physicalCardState": "string",
    "physicalCardId": "string",
    "forceChangePin": boolean,
    "createdAt": "string",
    "updatedAt": "string"
  }
  ```
</CodeGroup>

For more detailed information about this request and its response, [see the API reference](/api-reference/order-a-card/order-a-replacement-card).
