# `PolarExpress.Services.CustomerPortal.CustomersService`
[🔗](https://github.com/jeffhuen/polar_express/blob/main/lib/polar_express/services/customer_portal/customers_service.ex#L2)

Customers

Customers API operations.

# `add_customer_payment_method`

```elixir
@spec add_customer_payment_method(PolarExpress.Client.t(), map(), keyword()) ::
  {:ok, PolarExpress.Schemas.CustomerPaymentMethodCreateResponse.t()}
  | {:error, PolarExpress.Error.t()}
```

Add Customer Payment Method

Add a payment method to the authenticated customer.

See `PolarExpress.Params.CustomerPortal.CustomersAddCustomerPaymentMethodParams` for parameter details.

# `confirm_customer_payment_method`

```elixir
@spec confirm_customer_payment_method(PolarExpress.Client.t(), map(), keyword()) ::
  {:ok, PolarExpress.Schemas.CustomerPaymentMethodCreateResponse.t()}
  | {:error, PolarExpress.Error.t()}
```

Confirm Customer Payment Method

Confirm a payment method for the authenticated customer.

See `PolarExpress.Params.CustomerPortal.CustomersConfirmCustomerPaymentMethodParams` for parameter details.

# `delete_customer_payment_method`

```elixir
@spec delete_customer_payment_method(
  PolarExpress.Client.t(),
  String.t(),
  map(),
  keyword()
) ::
  {:ok, term()} | {:error, PolarExpress.Error.t()}
```

Delete Customer Payment Method

Delete a payment method from the authenticated customer.

See `PolarExpress.Params.CustomerPortal.CustomersDeleteCustomerPaymentMethodParams` for parameter details.

# `get_customer`

```elixir
@spec get_customer(PolarExpress.Client.t(), map(), keyword()) ::
  {:ok, PolarExpress.Schemas.CustomerPortalCustomer.t()}
  | {:error, PolarExpress.Error.t()}
```

Get Customer

Get authenticated customer.

**Scopes**: `customer_portal:read` `customer_portal:write`

See `PolarExpress.Params.CustomerPortal.CustomersGetCustomerParams` for parameter details.

# `list_customer_payment_methods`

```elixir
@spec list_customer_payment_methods(PolarExpress.Client.t(), map(), keyword()) ::
  {:ok, PolarExpress.ListObject.t()} | {:error, PolarExpress.Error.t()}
```

List Customer Payment Methods

Get saved payment methods of the authenticated customer.

See `PolarExpress.Params.CustomerPortal.CustomersListCustomerPaymentMethodsParams` for parameter details.

# `update_customer`

```elixir
@spec update_customer(PolarExpress.Client.t(), map(), keyword()) ::
  {:ok, PolarExpress.Schemas.CustomerPortalCustomer.t()}
  | {:error, PolarExpress.Error.t()}
```

Update Customer

Update authenticated customer.

See `PolarExpress.Params.CustomerPortal.CustomersUpdateCustomerParams` for parameter details.

---

*Consult [api-reference.md](api-reference.md) for complete listing*
