# Add Payment Method

<mark style="color:orange;">`POST`</mark> /v3/paymentMethods/add

## Request

The details below help you form your HTTP requests to this endpoint.

### Headers

You may need to provide specific headers.

<table><thead><tr><th>Name</th><th>Type</th><th data-type="checkbox">Required</th><th>Description</th></tr></thead><tbody><tr><td>customer-token</td><td>string</td><td>true</td><td>Customer's authentication token</td></tr><tr><td>x-version-override</td><td>string</td><td>false</td><td>N/A</td></tr></tbody></table>

### Body

You must provide a JSON payload.

<table><thead><tr><th>Name</th><th>Type</th><th data-type="checkbox">Required</th><th>Description</th></tr></thead><tbody><tr><td>primary</td><td>boolean</td><td>true</td><td>N/A</td></tr><tr><td>label</td><td>string</td><td>true</td><td>N/A</td></tr><tr><td>ach</td><td>object</td><td>false</td><td>N/A</td></tr><tr><td>ach.routing</td><td>string</td><td>false</td><td>N/A</td></tr><tr><td>ach.account</td><td>string</td><td>false</td><td>N/A</td></tr><tr><td>ach.accountType</td><td>string</td><td>false</td><td>N/A</td></tr><tr><td>token</td><td>object</td><td>false</td><td>N/A</td></tr><tr><td>token.expirationDate</td><td>string</td><td>false</td><td>N/A</td></tr><tr><td>token.cardType</td><td>string</td><td>false</td><td>N/A</td></tr><tr><td>token.lastFour</td><td>string</td><td>false</td><td>N/A</td></tr><tr><td>token.firstSix</td><td>string</td><td>false</td><td>N/A</td></tr><tr><td>token.token</td><td>alternatives</td><td>true</td><td>N/A</td></tr><tr><td>token.billingZip</td><td>string</td><td>true</td><td>N/A</td></tr></tbody></table>

## Response

The details below help you understand the responses you could get from this endpoint.

### Samples

Below are samples of responses, with tabs corresponding to returned status code.

{% tabs %}
{% tab title="201" %}

```javascript
{
    "data": {}
}
```

{% endtab %}

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

```javascript
{
    "error": {
        "statusCode": 400,
        "code": 11503,
        "message": "Payment method is not primary eligible",
        "data": {}
    }
}
```

{% endtab %}

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

```javascript
{
    "error": {
        "statusCode": 400,
        "code": 11505,
        "message": "Bank is not accepted",
        "data": {}
    }
}
```

{% endtab %}

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

```javascript
{
    "error": {
        "statusCode": 400,
        "code": 11506,
        "message": "Bank requires verification",
        "data": {}
    }
}
```

{% endtab %}
{% endtabs %}

### Schema

The response's schema is outlined below.

<table><thead><tr><th>Name</th><th>Type</th><th data-type="checkbox">Required</th><th>Description</th></tr></thead><tbody><tr><td>data</td><td>object</td><td>false</td><td>N/A</td></tr></tbody></table>
