# Retrieves a customer by ID

<span class="api-endpoint">GET {{<a href="#urlbases">baseURL</a>}}/pay-api/v1/customers/{{customerId}}</span>
This endpoint retrieves the specified customer.
<span class="api-seealso">See Also:</span><br>
To search for a customer, see `GET /pay-api/v1/customers`<br>
To update a customer's information, see `PUT /pay-api/v1/customers/{{customerId}}`.<br>
To create a customer, see `POST /pay-api/v1/customers`.<br>
To delete a customer, see `DELETE /pay-api/v1/customers/{{customerId}}`.

Endpoint: GET /pay-api/v1/customers/{customerId}
Version: V1
Security: Bearer

## Path parameters:

  - `customerId` (string, required)
    Specifies the customerId, also known as the customer identifier.

## Response 200 fields (application/json):

  - `id` (string)
    Customer Id

  - `merchantId` (string)
    Indicates the identifier of the merchant.

Example: 46063d32-10fa-44cb-b118-20ddd085ce3f
    Example: 46063d32-10fa-44cb-b118-20ddd085ce3f

  - `firstName` (string)
    Indicates the customer's first name.

Example: Alexandro
    Example: Alexandro

  - `lastName` (string)
    Indicates the customer's last name.

Example: Peppared
    Example: Peppared

  - `companyName` (string)
    Indicates the name of the customer's company or organization.

Example: Peppared Street Cafe
    Example: Peppared Street Cafe

  - `email` (string)
    Indicates the customer's email.
Example: pepparedstreetcafe@example.com
    Example: pepparedstreetcafe@example.com

  - `mobilePhoneNumber` (string)
    Indicates the customer's mobile phone number.
Example: +14155552309
    Example: +14155552309

  - `isMobileNumberSmsNotificationsEnabled` (boolean)
    Indicates the customer's SMS notification is enabled.
If `true`, the customer's SMS notification is enabled.
If `false`, the customer's SMS notification is not enabled.
If missing or omitted, the information is not available.
Example: true

  - `useBillingAsShippingAddress` (boolean)
    Indicates to use the billing address as the shipping address.
If `true`, use the billing address as the shipping address.
If `false`, do not use the billing address as the shipping address.
Instead, use the field `shippingAddress`.
Example: true
    Example: true

  - `defaultPaymentMethodId` (string)
    Default payment method Id

  - `defaultAchPaymentMethodId` (string)
    Default payment method identifier.

  - `createdOn` (string)
    Indicates the date the customer was created on (in an ISO 8601 date-time UTC format).

Examples: 2025-01-27T12:05:54.322587Z
    Example: 2025-01-27T12:05:54.322587Z

  - `modifiedOn` (string)
    Indicates the date the customer information was last modified on (in an ISO 8601 date-time UTC format).

Examples: 2025-01-27T12:05:54.322587Z
    Example: 2025-01-27T12:05:54.322587Z

  - `billingAddress` (object)

  - `billingAddress.addressLine1` (string)
    Indicates the street address.

Example: 21 E. Main Street
    Example: 21 E. Main Street

  - `billingAddress.addressLine2` (string)
    Indicates additional street address information.

Example: Office 3
    Example: Office 3

  - `billingAddress.city` (string)
    Indicates the name of the city.

Example: Chicago
    Example: Chicago

  - `billingAddress.zip` (string)
    Indicates the postal or ZIP code.
Examples:
60612
60612-0001
    Example: 60612

  - `billingAddress.stateName` (string)
    Indicates the full state name.
Examples:
Texas
Washington
Illinois
    Example: Illinois

  - `billingAddress.state` (object)

  - `billingAddress.state.id` (integer)
    Indicates the state identifier.

Example: 13

  - `billingAddress.state.code` (string)
    Indicates the state identifier (in two-letter USPS [United States Postal Service] postal code).
Examples:
IL
TX
MA
    Example: IL

  - `billingAddress.state.name` (string)
    Indicates the name of the state.

Example: Illinois
    Example: Illinois

  - `billingAddress.country` (object)

  - `billingAddress.country.id` (integer)
    Indicates the country identifier.

Example: 1
    Example: 1

  - `billingAddress.country.isoCode` (string)
    Indicates the country identifier (in two letter ISO 3166-1 format).

Example: US
    Example: US

  - `billingAddress.country.name` (string)
    Indicates the name of the country.

Example: United States
    Example: United States

  - `lastTransactionDate` (string)
    Indicates the  the Last transaction date (in an ISO 8601 date-time UTC format).

Examples: 2025-01-27T12:05:54.322587Z
    Example: 2025-01-27T12:05:54.322587Z

  - `transactionsCount` (integer)
    Transactions count

  - `transactionsVolume` (number)
    Transactions volume

  - `lastTransactionAmount` (number)
    Last transaction amount

  - `numberOfSubscriptions` (integer)
    Count of active subscriptions

  - `cards` (array)
    Payment methods

  - `cards.id` (string)
    Indicates the credit card identifier.

Example: db02ec6c-2e5a-4b87-98a0-8dd881707d84
    Example: db02ec6c-2e5a-4b87-98a0-8dd881707d84

  - `cards.name` (string)
    Name

  - `cards.isDefault` (boolean)
    Is payment method default

  - `cards.panMask` (string)
    Indicates the masked PAN (primary account number).
This is a partially obscured representation of a card's PAN.
This value can be  safely displayed to clients without revealing the actual or full account number,
Examples:
4111********1234
************1234
****1234
    Example: 4111********1234

  - `cards.expirationMonth` (integer)
    Indicates the expiration month of the card.

Example: 7
    Example: 7

  - `cards.expirationYear` (integer)
    Indicates the expiration year of the card.

Example: 2032
    Example: 2032

  - `cards.cardTokenType` (integer)
    Identifies the card token type.
Possible values:
| Id | Type | Description |
|  --- | --- | --- |
| 1 | Local | Regular |
| 2 | Network | Network |

Example: 2
    Example: 2

  - `cards.cardType` (integer)
    Identifies available card types (brands).
This is a simplified list.
For example Discover and Diners are the same.
Possible values:
| Id | Card Type |
|  --- | --- |
| 0 | Unknown |
| 1 | Visa |
| 2 | MasterCard |
| 3 | AmericanExpress |
| 4 | DinersClub |
| 5 | Discover |
| 6 | JCB |

Example: 1
    Example: 1

  - `cards.creditDebitType` (integer)
    Possible values:
| Value | Name |
|  --- | --- |
| 1 | Credit |
| 2 | Debit |
| 3 | Unknown |

Example: 1
    Example: 1

  - `achAccounts` (array)

  - `achAccounts.id` (string)
    Indicates the ACH account identifier.

Example: db02ec6c-2e5a-4b87-98a0-8dd881707d84
    Example: db02ec6c-2e5a-4b87-98a0-8dd881707d84

  - `achAccounts.name` (string)
    Name

  - `achAccounts.isDefault` (boolean)
    Is payment method default.

  - `achAccounts.accountNumber` (string)
    Specifies the payment target's bank account number.
We recommend using `paymentMethodId` instead of `accountNumber`.
Example: 5413591081013511
    Example: 5413591081013511

  - `achAccounts.routingNumber` (string)
    Specifies the payment target's bank routing number.

Example: 026009593
    Example: 026009593

  - `achAccounts.accountTypeId` (integer)

  - `achAccounts.accountType` (string)

  - `achAccounts.accountHolderTypeId` (integer)

  - `achAccounts.accountHolderType` (string)

  - `achAccounts.taxId` (string)
    Indicates the customer's TIN (tax identifier number).

Example: 98-7654321
    Example: 98-7654321

## Response 400 fields (application/json):

  - `details` (string)
    Indicates details about the error.

Example: Validation failed: -- Email: 'Email' is not a valid email address. Severity: Error
    Example: Validation failed: -- Email: 'Email' is not a valid email address. Severity: Error

  - `statusCode` (integer)
    Specifies the HTTP response status code.
This is the HTTP status code returned by the attempted delivery.
The following is a list of HTTP response status codes that include but are not limited to:
| HTTP Status | Meaning |
|  --- | --- |
| 200 | Delivery succeeded |
| 400 | Bad request |
| 401 | Unauthorized |
| 404 | Endpoint not found |
| 429 | Rate limited |

Example: 401
    Example: 401

  - `source` (string)
    Indicates the source of the error.
Example: <Service>
    Example: <Service>

  - `exceptionType` (string)
    Indicates the error's exception type.

Example: FluentValidation.ValidationException
    Example: FluentValidation.ValidationException

  - `correlationId` (string)
    Indicates the correlation identifier.

Example: aa6cfcd0-0295-4a4c-b074-8c901f114fef
    Example: aa6cfcd0-0295-4a4c-b074-8c901f114fef

  - `entityId` (string)
    Indicates the entity identifier.
Example:
null

  - `errorCode` (string)
    Indicates the error code.
Example:
null

## Response 404 fields (application/json):

  - `details` (string)

  - `statusCode` (integer)
    Specifies the HTTP response status code.
This is the HTTP status code returned by the attempted delivery.
The following is a list of HTTP response status codes that include but are not limited to:
| HTTP Status | Meaning |
|  --- | --- |
| 200 | Delivery succeeded |
| 400 | Bad request |
| 401 | Unauthorized |
| 404 | Endpoint not found |
| 429 | Rate limited |

Example: 401
    Example: 401

  - `source` (string)

  - `exceptionType` (string)

  - `correlationId` (string)

  - `entityId` (string)

  - `errorCode` (string)

## Response 500 fields (application/json):

  - `details` (string)

  - `statusCode` (integer)
    Specifies the HTTP response status code.
This is the HTTP status code returned by the attempted delivery.
The following is a list of HTTP response status codes that include but are not limited to:
| HTTP Status | Meaning |
|  --- | --- |
| 200 | Delivery succeeded |
| 400 | Bad request |
| 401 | Unauthorized |
| 404 | Endpoint not found |
| 429 | Rate limited |

Example: 401
    Example: 401

  - `source` (string)

  - `exceptionType` (string)

  - `correlationId` (string)

  - `entityId` (string)

  - `errorCode` (string)

