---
title: "POST /v1/subscription/{handle}/payment-method"
method: POST
path: "/v1/subscription/{handle}/payment-method"
tags: ["subscription"]
---

# POST /v1/subscription/{handle}/payment-method

`POST /v1/subscription/{handle}/payment-method`

## Request

- Base URL: `https://customer-portal-api.frisbii.com`
- URL: `https://customer-portal-api.frisbii.com/v1/subscription/{handle}/payment-method`
- Auth: none declared

## Path parameters

- `handle` string, required

## Request body

- SubscriptionPaymentMethod
  - `source` string, required: The payment method source. Existing payment method for the customer, e.g. existing card id `ca_...`.

## Response `200`

Successful operation

- CustomerPaymentMethodList
  - `size` integer, required: Page size used in paginated list
  - `count` integer, required: Number of elements in current page. If less than page size it is the last page.
  - `to` string, required: Local date and time range used as to (exclusive)
  - `from` string, required: Local date and time range used as from (inclusive)
  - `content` CustomerPaymentMethod[]: List of customer payment methods
    - `id` string, required: Unique id for payment method
    - `state` 'active' | 'inactivated' | 'failed' | 'pending' | 'deleted', required: State of the payment method: `active`, `inactivated`, `failed`, `pending` or `deleted`
    - `iban` string: IBAN for SEPA payment type
    - `created` string, date-time: Date when the payment method was created. In ISO-8601 extended offset date-time format.
    - `card` CardPaymentMethod: Card object in case of Apple Pay payment method
      - `card_type` 'unknown' | 'visa' | 'mc' | 'dankort' | 'visa_dk' | 'ffk' | 'visa_elec' | 'maestro' | 'laser' | 'amex' | 'diners' | 'discover' | 'jcb': Card type: `unknown`, `visa`, `mc`, `dankort`, `visa_dk`, `ffk`, `visa_elec`, `maestro`, `laser`, `amex`, `diners`, `discover` or `jcb`
      - `exp_date` string: Card expire date on form MM-YY
      - `masked_card` string: Masked card number
    - `applepay` CardPaymentMethod: Card object in case of Apple Pay payment method
      - `card_type` 'unknown' | 'visa' | 'mc' | 'dankort' | 'visa_dk' | 'ffk' | 'visa_elec' | 'maestro' | 'laser' | 'amex' | 'diners' | 'discover' | 'jcb': Card type: `unknown`, `visa`, `mc`, `dankort`, `visa_dk`, `ffk`, `visa_elec`, `maestro`, `laser`, `amex`, `diners`, `discover` or `jcb`
      - `exp_date` string: Card expire date on form MM-YY
      - `masked_card` string: Masked card number
    - `logo` string: Optional payment method logo url
    - `payment_type` 'card' | 'emv_token' | 'vipps_recurring' | 'applepay' | 'mobilepay_subscriptions' | 'sepa', required: Payment type for saved payment method, either: `card`, `emv_token`, `vipps_recurring`, `applepay`, `mobilepay_subscriptions` or `sepa`
    - `external_id` string: External id for MPS payment type
    - `offline_mandate` OfflineMandate: Offline mandate object in case of Offline payment method
      - `offline_agreement_handle` string, required: Offline agreement handle
      - `offline_agreement_name` string: Optional offline agreement name
  - `next_page_token` string: Pagination token to use to get the next page. Notice that page size and range should be the same for all page requests. If not present the last page has been reached.

## Other responses

- `400`: Invalid request, see error codes at https://api.frisbii.com/v1/error_codes
- `401`: None or invalid credentials provided in access to secured resource
- `403`: Not authorized to perform resource operation
- `404`: Resource or referenced resource not found, see error codes at https://api.frisbii.com/v1/error_codes
- `429`: Request limiting exceeded, request rate or concurrent requests, see error code 122 and 123
- `500`: Internal service error, error is reported automatically to Frisbii

---

[API](https://skmtc.dev/frisbii/apis/frisbii-customer-portal-api.md) - [All operations](https://skmtc.dev/frisbii/apis/frisbii-customer-portal-api/llms.txt) - [OpenAPI document](https://skmtc.dev/frisbii/apis/frisbii-customer-portal-api/revisions/f0261fb63b1b?raw)
