# POST - Create Cards

You can create virtual or physical cards that are issued to the consumer or corporate identity.\
\
A card created in prepaid mode has its own balance, whereas a card created in debit mode does not have its own balance but taps into the balance of its parent managed account.

### Create a card

***

### Production End point

```markup
https://api.up2.money/cards/request
```

### Headers

<details>

<summary>Security</summary>

**REQUEST BODY SCHEMA: application/json**

&#x20;:closed\_lock\_with\_key: **API SECRET: x-secret**

Add `YWJjMTIzIQ==` in  `x-secret` in headers.  &#x20;

**Header parameter name:** `x-secret`

***

&#x20;:lock\_with\_ink\_pen:  **HTTP:** `Authorization-key`

The authentication token representing the user. This will be included in the login response object as `token`.&#x20;

**Header parameter name:** `Authorization-key`

</details>

***

### **Payload Details**

***

<table><thead><tr><th width="232"></th><th></th></tr></thead><tbody><tr><td>profileId <mark style="color:red;">(required)</mark><br><br></td><td><p><code>string (ProfileId) ^[0-9]+$</code></p><p>The profile Id which a specific identity, instrument or transaction type is linked to.<br><br>Profiles contain configuration and determine behavioural aspects of the newly created transaction, for example, fees that may apply.<br></p><p>You can have one or more profiles linked to your application, and these can be used to drive different behaviours according to your product's needs.</p></td></tr><tr><td>tag<br></td><td><p><code>string (Tag) &#x3C;= 50 characters ^[a-zA-Z0-9_-]+$</code></p><p>The tag field is a custom field that can be used to search and filter.</p></td></tr><tr><td>friendlyName <mark style="color:red;">(required)</mark></td><td><code>string [ 1 .. 50 ] characters</code><br>The friendly name for the card.</td></tr><tr><td>nameOnCard <mark style="color:red;">(required)</mark><br><br><br><br><br><br><br><br><br><br><br></td><td><p><code>string [ 1 .. 27 ] characters</code> <code>^[a-zA-Z0-9ßÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÑÒÓÔÕÖØŠÙÚÛÜŸÝŽĄĆČĎĘĹĽŁŃŇŐŔŚȘȚŤŰŹŻäácdæéëeíllnöoøôrštüúuuýž\-^. '-]*$</code><br><br>The card holder's name for the card.<br></p><p>This may be verified by merchants when the card is used online. For Physical cards, this field will be printed on the card. The maximum characters allowed will depend on the design chosen and will be provided to you by us when setting up your plastic cards.<br></p></td></tr><tr><td>nameOnCardLine2<br><br><br><br><br><br><br></td><td><code>string &#x3C;= 27 characters</code> <code>^[a-zA-Z0-9ßÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÑÒÓÔÕÖØŠÙÚÛÜŸÝŽĄĆČĎĘĹĽŁŃŇŐŔŚȘȚŤŰŹŻäácdæéëeíllnöoøôrštüúuuýž\-^. '-]*$</code><br><br>Line 2 of the 'name on card' field. For Physical cards, this field will be printed on the card. The maximum characters allowed will depend on the design chosen and will be provided to you by Weavr when setting up your plastic cards.</td></tr><tr><td>billingAddress <mark style="color:red;">(required)</mark><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br></td><td><p><code>object (Address)</code></p><p>The billing address set for the card holder. This may be verified by merchants when the card is used online.<br></p><p></p></td></tr><tr><td>digitalWallets<br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br></td><td><code>object (DigitalWallets)</code><br><br>The Card Tokenisation details<br></td></tr><tr><td>authForwardingDefaultTimeoutDecision<br></td><td><p><code>string</code></p><p>Default decision for auth forwarding on timeout</p><p>Enum: <code>"APPROVE"</code> <code>"DECLINE"</code></p></td></tr><tr><td>threeDSecureAuthConfig</td><td><p><code>object (ThreeDSecureAuthConfig)</code></p><p>3DS details for card creation<br><br></p></td></tr><tr><td>mode <mark style="color:red;">(required)</mark><br><br><br><br><br><br><br><br><br></td><td><p><code>string</code>  // "PREPAID_MODE" OR "DEBIT_MODE"</p><p><br>The card can be created in prepaid mode or debit mode.</p><ul><li>A prepaid mode card has its own balance and can have funds transferred to or from it.</li><li>A debit mode card does not have its own balance but will be able to spend funds belonging to its parent managed account, subject to a configurable spend limit.</li></ul></td></tr><tr><td>currency <mark style="color:red;">(required)</mark></td><td><code>string (Currency) = 3 characters ^[A-Z]*$</code><br>The currency expressed in ISO-4217 code. Example: GBP, EUR, USD.</td></tr><tr><td>parentManagedAccountId  <mark style="color:red;">(required for prepaid mode)</mark></td><td><p><code>string^[0-9]+$</code></p><p>Id of the managed account holding funds which the managed card will access, up to a configurable spend limit.</p></td></tr></tbody></table>

| <p>linkedUserIdrequired<br><br><br><br><br><br></p> | <p><code>string <= 19 characters ^\[0-9]+$</code></p><p>The Authorised user whose authentication / billing details will be reflected on the card for verification purposes such as 3ds.</p> |
| --------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| <p>primaryChannelrequired<br><br><br><br><br></p>   | <p><code>string</code></p><p>Primary Authentication Method</p><p>Enum: <code>"OTP\_SMS" "BIOMETRICS" "TWILIO\_AUTHY"</code></p>                                                             |
| <p>fallbackChannel<br><br><br></p>                  | <p><code>string</code></p><p>Fallback Authentication Method</p><p>Value: <code>"OTP\_SMS"</code></p>                                                                                        |

| <p>pushProvisioningEnabled<br><br><br><br></p> | <p><code>boolean</code></p><p>Indicates whether the card is enabled for push provisioning in a digital wallet.</p>                    |
| ---------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------- |
| <p><code>walletsEnabled</code><br><br><br></p> | <p><code>boolean</code></p><p>Indicates whether the card is enabled for tokenisation in a digital wallet.</p>                         |
| <p>artworkReference<br><br><br><br></p>        | <p><code>string</code></p><p>The artwork reference that will be used if the card is enabled for tokenisation in a digital wallet.</p> |

| <p>addressLine1 <mark style="color:red;">(required)</mark><br><br></p>     | <p><code>string <= 150 characters</code><br>The first line of the address.</p>                                                       |
| -------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------ |
| <p>addressLine2<br><br><br></p>                                            | <p><code>string <= 150 characters</code><br>The second line of the address.</p>                                                      |
| <p>city <mark style="color:red;">(required)</mark><br><br></p>             | <p><code>string <= 50 characters</code><br>The city of the address.</p>                                                              |
| <p>postCode <mark style="color:red;">(required)</mark><br><br><br><br></p> | <p><code>string <= 10 characters</code> <code>^\[A-Za-z0-9 -]\*$</code><br>The post cost associated with the address.</p>            |
| <p>state<br><br></p>                                                       | <p><code>string <= 50 characters</code><br>The state of the address.</p>                                                             |
| country <mark style="color:red;">(required)</mark>                         | <p><code>string = 2 characters</code> <code>^\[A-Z]+$</code><br>The country of the address expressed in ISO 3166 alpha-2 format.</p> |

***

### **Payload**

***

```json
{
    "type": "consumer",
    "data": {
        "profileId": "111324375100817512", 
        "friendlyName": "friendly aaa",
        "currency": "USD",
        "nameOnCard": "name on card",
        "cardholderMobileNumber": "+35699112233",
        "billingAddress": {
            "addressLine1": "addressLine1",
            "addressLine2": "addressLine2",
            "city": "city",
            "postCode": "SPB1111",
            "state": "state",
            "country": "MT"
        },
        "digitalWallets": {
            "pushProvisioningEnabled": false,
            "walletsEnabled": false,
            "artworkReference": "string"
        },
        "tag": "tag",
        "mode": "PREPAID_MODE"
    }
}
```

***

### Sample Request

***

```javascript
curl --location 'https://api.up2.money/cards/request' \
--header 'x-secret: YWJjMTIzIQ==' \
--header 'Authorization-key: YOUR_AUTHORIZATION_TOKEN' \
--header 'Content-Type: application/json' \
--data '{
    "type": "consumer",
    "data": {
        "profileId": "111324375100817512", 
        "friendlyName": "friendly aaa",
        "currency": "USD",
        "nameOnCard": "name on card",
        "cardholderMobileNumber": "+35699112233",
        "billingAddress": {
            "addressLine1": "addressLine1",
            "addressLine2": "addressLine2",
            "city": "city",
            "postCode": "SPB1111",
            "state": "state",
            "country": "MT"
        },
        "digitalWallets": {
            "pushProvisioningEnabled": false,
            "walletsEnabled": false,
            "artworkReference": "string"
        },
        "tag": "tag",
        "mode": "PREPAID_MODE"
    }
}

'
```

***

### Sample Response

***

{% tabs %}
{% tab title="Success - 200" %}

```json
{
  "type":"consumer" // or "corporate"
  "data":{
    "profileId": "string",
    "tag": "string",
    "friendlyName": "string",
    "nameOnCard": "string",
    "nameOnCardLine2": "string",
    "cardholderMobileNumber": "string",
    "billingAddress": {
      "addressLine1": "string",
      "addressLine2": "string",
      "city": "string",
      "postCode": "string",
      "state": "string",
      "country": "st"
    },
    "digitalWallets": {
      "pushProvisioningEnabled": true,
      "walletsEnabled": true,
      "artworkReference": "string"
    },
    "authForwardingDefaultTimeoutDecision": "APPROVE",
    "threeDSecureAuthConfig": {
      "linkedUserId": "string",
      "primaryChannel": "OTP_SMS",
      "fallbackChannel": "OTP_SMS"
    },
    "mode": "PREPAID_MODE", // "PREPAID_MODE" OR "DEBIT_MODE"
    "externalData": [
      {
        "name": "string",
        "value": "string"
      }
    ],
    "currency": "str"
    // "parentManagedAccountId": "string" - Required in case of {mode:"DEBIT_MODE"}
  }
}
```

{% endtab %}

{% tab title="Error - 400" %}

```json
{
  "message": "string",
  "syntaxErrors": {
    "invalidFields": [
      {
        "params": [
          "string"
        ],
        "fieldName": "string",
        "error": "REQUIRED"
      }
    ]
  }
}
```

{% endtab %}
{% endtabs %}

***

### Response Status

***

<mark style="color:green;">**200 Success**</mark>

<mark style="color:red;">**401 Unauthorized - Your credentials or access token are invalid.**</mark>

<mark style="color:red;">**403 Forbidden - Access to the requested resource or action is forbidden.**</mark>

<details>

<summary><mark style="color:red;">403 Forbidden - Access to the requested resource or action is forbidden.</mark></summary>

errorCode: Enum: `STEP_UP_REQUIRED` `ACCESS_TOKEN_REQUIRED`

</details>

<details>

<summary><mark style="color:red;">409 Conflict</mark></summary>

errorCode: Enum:  `"PAYMENT_MODEL_CONSTRAINTS_VIOLATED"`  `"PROFILE_NOT_FOUND"`  `"PROFILE_INACTIVE"`  `"CURRENCY_NOT_SUPPORTED_BY_PROFILE"`  `"PROVIDER_NOT_SUPPORTED_BY_PROFILE"`  `"INSTRUMENT_NOT_FOUND"`  `"COUNTRY_INVALID"`  `"OWNER_IDENTITY_NOT_VERIFIED"`  `"IDENTITY_LIMITS_EXCEEDED"`  `"PROGRAMME_LIMITS_EXCEEDED"`  `"INNOVATOR_LIMITS_EXCEEDED"`  `"SYSTEM_LIMITS_EXCEEDED"`  `"PARENT_MANAGED_ACCOUNT_NOT_ACTIVE"`  `"PARENT_MANAGED_ACCOUNT_NOT_FOUND"`  `"WALLETS_NOT_ENABLED"` `"WALLET_ARTWORK_NOT_SPECIFIED"`  `"WALLET_ARTWORK_INVALID"`  `"IDENTITY_KYC_LEVEL_STEPUP_REQUIRED"`  `"PUSHPROVISIONING_NOT_ENABLED"`  `"AUTH_FORWARDING_NOT_ENABLED"`  `"THREEDS_DETAILS_NOT_PROVIDED"`  `"USER_NOT_ENROLLED_FOR_BIOMETRICS"`  `"BIOMETRIC_AUTHENTICATION_NOT_SUPPORTED"`  `"LINKED_USER_NOT_FOUND"`  `"USER_INACTIVE"`  `"INVALID_CHANNELS_SELECTED"`  `"INVALID_PRIMARY_CHANNEL_SELECTED"`  `"USER_MOBILE_NUMBER_DOES_NOT_EXIST"`  `"MORE_THAN_ONE_MOBILE_NUMBER_PROVIDED"`  `"MOBILE_NUMBER_ALREADY_EXISTS"` `"TWILIO_AUTHY_AUTHENTICATION_NOT_SUPPORTED"`  `"USER_NOT_ENROLLED_FOR_TWILIO_AUTHY"`

</details>

<mark style="color:red;">**429 Too many requests.**</mark>

<mark style="color:red;">**500 Internal Server Error - There is a problem with the server. Please try again later.**</mark>

<mark style="color:red;">**503 Service Unavailable - We're temporarily offline for maintenance. Please try again later.**</mark>

***

### E-nums

***

<table><thead><tr><th width="264"></th><th></th></tr></thead><tbody><tr><td><code>STEP_UP_REQUIRED</code><br></td><td>Current session is expired, Call stepup api to create new session</td></tr><tr><td><code>ACCESS_TOKEN_REQUIRED</code></td><td>Issue with your token (Invalid or expired)</td></tr></tbody></table>


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.up2.money/08.01/card-issuing/post-create-cards.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
