> ## 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.

# Create cards

> Create new shared or individual virtual cards.

## Create a new shared card

<Note>
  **POST** `/v2/cards`
</Note>

### Request

Use this request to create a new shared virtual card for a budget. [Learn more about card types](/pages/cards/about-card-types).

<CodeGroup>
  ```bash Sample request theme={null}
  curl -i -X POST \
    'https://api.equalsmoney.com/v2/cards?accountId=F12345' \
    -H 'Authorization: ApiKey YOUR_API_KEY_HERE' \
    -H 'Content-Type: application/json' \
    -d '{
      "cardOwnerType": "BUDGET",
      "budgetCardPhoneNumber": "+447911001762",
      "budgetCardPhoneNumberPersonId": "775596ae-2624-40af-a9dc-9756110a4a08",
      "budgetId": "775596ae-2624-40af-a9dc-9756110a4a03",
      "name": "Team Party"
    }'
  ```

  ```bash Request structure theme={null}
  curl -i -X POST \
    'https://api.equalsmoney.com/v2/cards?accountId={accountId}' \
    -H 'Authorization: ApiKey YOUR_API_KEY_HERE' \
    -H 'Content-Type: application/json' \
    -d '{
      "cardOwnerType": "string",
      "budgetCardPhoneNumber": "string",
      "budgetCardPhoneNumberPersonId": "string",
      "budgetId": "string",
      "name": "string"
    }'
  ```
</CodeGroup>

#### Query parameters

<ParamField body="accountId" type="string" required>
  The ID of the account that the budget belongs to.

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

#### Request body schema

<ParamField body="cardOwnerType" type="string" required>
  The type of card owner. Set this to `BUDGET`.

  Allowable values: `BUDGET`
</ParamField>

<ParamField body="budgetCardPhoneNumber" type="string">
  The phone number associated with the shared card, including the area code. Do not include hyphens, spaces, or parentheses.

  Allowable values: A valid string, prepended by the `+ ` symbol and the 1- to 3-digit country calling code
</ParamField>

<ParamField body="budgetId" type="string" required>
  The ID of the budget for which you're creating the card.

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

<ParamField body="name" type="string" required>
  The name of the card. Any diacritics will be converted to the nearest English letter equivalent. Note that any name that is longer than 21 characters will be truncated.

  Allowable values: A valid string
</ParamField>

### Response

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

<CodeGroup>
  ```json Sample response theme={null}
  {
    "forceChangePin": false,
    "id": "afe526fb-83a3-4917-ac6c-214a5e454c58",
    "name": "Joy Mueller",
    "accountId": "F12345",
    "state": "UNACTIVATED",
    "cardType": "VIRTUAL_PAN",
    "lastFour": "1527",
    "expiration": "0827",
    "cardProductToken": "18e0fedb-c07d-467a-8317-49827d30a56e",
    "fulfillmentStatus": "ISSUED",
    "pinIsSet": false,
    "userTokenId": "cf267eb9-f517-4338-8d01-548216804a5d",
    "cardOwnerType": "BUDGET",
    "cardGroupId": "afe526fb-83a3-4917-ac6c-214a5e454c58",
    "cardProductId": "fe4fdbfd-ea5c-4f2a-9de4-275a80e99c9f",
    "physicalCardState": "NOT_REQUESTED",
    "updatedAt": "2023-08-02T09:54:56.339Z",
    "createdAt": "2023-08-02T09:54:56.339Z",
    "meta": [
      {
        "id": "c8d95d49-a9a0-4331-840e-228e507f3165",
        "metaKey": "expirationTime",
        "metaValue": "2027-08-31T23:59:59Z",
        "cardId": "afe526fb-83a3-4917-ac6c-214a5e454c58",
        "updatedAt": "2023-08-02T09:54:56.346Z",
        "createdAt": "2023-08-02T09:54:56.346Z"
      },
      {
        "id": "e274b753-c8aa-4ee6-b931-63875451ff22",
        "metaKey": "stateReason",
        "metaValue": "New card",
        "cardId": "afe526fb-83a3-4917-ac6c-214a5e454c58",
        "updatedAt": "2023-08-02T09:54:56.348Z",
        "createdAt": "2023-08-02T09:54:56.348Z"
      }
    ]
  }
  ```

  ```json Response structure theme={null}
  {
    "forceChangePin": boolean,
    "id": "string",
    "name": "string",
    "accountId": "string",
    "state": "string",
    "cardType": "string",
    "lastFour": "string",
    "expiration": "string",
    "cardProductToken": "string",
    "fulfillmentStatus": "string",
    "pinIsSet": boolean,
    "userTokenId": "string",
    "cardOwnerType": "string",
    "cardGroupId": "string",
    "cardProductId": "string",
    "physicalCardState": "string",
    "updatedAt": "string",
    "createdAt": "string",
    "meta": [
      {
        "id": "string",
        "metaKey": "string",
        "metaValue": "string",
        "cardId": "string",
        "updatedAt": "string",
        "createdAt": "string"
      },
      {
        "id": "string",
        "metaKey": "string",
        "metaValue": "string",
        "cardId": "string",
        "updatedAt": "string",
        "createdAt": "string"
      }
    ]
  }
  ```
</CodeGroup>

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

## Create a new individual card

<Note>
  **POST** `/v2/cards`
</Note>

### Request

Use this request to create a new individual virtual card for a person. [Learn more about card types](/pages/cards/about-card-types).

<CodeGroup>
  ```bash Sample request theme={null}
  curl -i -X POST \
    'https://api.equalsmoney.com/v2/cards?accountId=F12345' \
    -H 'Authorization: ApiKey YOUR_API_KEY_HERE' \
    -H 'Content-Type: application/json' \
    -d '{
      "personId": "775596ae-2624-40af-a9dc-9756110a4a04",
      "cardOwnerType": "PEOPLE",
      "budgets": [
        {
          "budgetId": "775596ae-2624-40af-a9dc-9756110a4a03",
          "active": true
        }
      ],
      "name": "Team Party"
    }'
  ```

  ```bash Request structure theme={null}
  curl -i -X POST \
    'https://api.equalsmoney.com/v2/cards?accountId={accountId}' \
    -H 'Authorization: ApiKey YOUR_API_KEY_HERE' \
    -H 'Content-Type: application/json' \
    -d '{
      "personId": "string",
      "cardOwnerType": "string",
      "budgets": [
        {
          "budgetId": "string",
          "active": boolean
        }
      ],
      "name": "string"
    }'
  ```
</CodeGroup>

#### Query parameters

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

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

#### Request body schema

<ParamField body="personId" type="string" required>
  The ID of the person for whom you want to create the card.

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

<ParamField body="cardOwnerType" type="string" required>
  The type of card owner. Set this to `PEOPLE`.

  Allowable values: `PEOPLE`
</ParamField>

<ParamField body="budgets" type="array" required>
  Details about the budget(s) that the card should be associated with.

  Allowable values: A valid `budgets` object containing the following fields: `budgetId`, `active`

  <Expandable title="budgets properties">
    <ParamField body="budgets.budgetId" type="string" required>
      The ID of the budget.

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

    <ParamField body="budgets.active" type="boolean">
      Whether or not the budget is active.

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

<ParamField body="name" type="string" required>
  The name of the card. Any diacritics will be converted to the nearest English letter equivalent. Note that any name that is longer than 21 characters will be truncated.

  Allowable values: A valid string
</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/create-a-new-virtual-card).
