---
title: "Activate Subscription"
method: POST
path: "/subscriptions/{id}/activate"
tags: ["Subscriptions"]
---

# Activate Subscription

`POST /subscriptions/{id}/activate`

Activates a subscription by attaching a payment method and initiating the billing cycle.

**Activation Process**:

1. This endpoint transitions a `PENDING` subscription to `ACTIVE` status
2. An initial payment is created to validate the payment method:
   - For regular subscriptions: First billing cycle payment is processed immediately
   - For trial subscriptions: A zero-amount payment is created to verify the payment method

**Payment Method Updates**:
If the subscription is already active, this endpoint can be used to update the payment method.
The update process creates a zero-amount payment to verify the new payment method works correctly.

**Important Notes**:

- Subscription billing begins immediately upon successful activation (unless in trial period)
- The payment method provided will be used for all future recurring charges
- Activation failures (due to invalid payment method) will keep the subscription in `PENDING` status
- You can specify `allowedPaymentMethods` to restrict which payment methods (e.g., `card`, `bizum`) are accepted for the subscription

## Request body

- ActivateSubscriptionRequest
  - `paymentToken` string — A permanent token represents a payment method used in the payment. Pass `generatePaymentToken: true` when you creating a payment to generate it. You can pass it as `paymentToken` parameter to create other payments with the same payment method. This token does not expire, and should only be used server-side.
  - `sessionId` string — A unique identifier within your system that adds security to the payment process. You need to pass the same session ID as the one used on the frontend to initialize MONEI Component (if you needed to). This is required if a payment token (not permanent) was already generated in the frontend.
  - `addAmount` integer — Amount intended to be collected by this payment. A positive integer representing how much to charge in the smallest currency unit (e.g., 100 cents to charge 1.00 USD).
  - `allowedPaymentMethods` string[] — List of payment methods allowed for subscriptions.
  - `sequenceId` string — A permanent identifier that refers to the initial payment of a sequence of payments. This value needs to be sent in the path for `RECURRING` payments.
  - `completeUrl` string — The URL the customer will be directed to after transaction completed (successful or failed - except if `failUrl` is provided).
  - `failUrl` string — The URL the customer will be directed to after transaction has failed, instead of `completeUrl` (used in hosted payment page). This allows to provide two different URLs for successful and failed payments.
  - `cancelUrl` string — The URL the customer will be directed to if they decide to cancel payment and return to your website (used in hosted payment page).
  - `metadata` Metadata — A set of key-value pairs that you can attach to a resource. This can be useful for storing additional information about the resource in a structured format.

## Response `200`

A payment object

- Payment
  - `id` string, required — Unique identifier for the payment.
  - `amount` integer, required — Amount intended to be collected by this payment. A positive integer representing how much to charge in the smallest currency unit (e.g., 100 cents to charge 1.00 USD).
  - `currency` string, required — Three-letter [ISO currency code](https://en.wikipedia.org/wiki/ISO_4217), in uppercase. Must be a supported currency.
  - `orderId` string — An order ID from your system. A unique identifier that can be used to reconcile the payment with your internal system.
  - `description` string — An arbitrary string attached to the payment. Often useful for displaying to users.
  - `accountId` string, required — MONEI Account identifier.
  - `authorizationCode` string — Unique identifier provided by the bank performing transaction.
  - `livemode` boolean, required — Has the value `true` if the resource exists in live mode or the value `false` if the resource exists in test mode.
  - `status` 'SUCCEEDED' | 'PENDING' | 'FAILED' | 'CANCELED' | 'REFUNDED' | 'PARTIALLY_REFUNDED' | 'AUTHORIZED' | 'EXPIRED' | 'PENDING_PROCESSING' | 'PAID_OUT', required — The status of the payment.
  - `statusCode` string — Payment status code.
  - `statusMessage` string — Human readable status message, can be displayed to a user.
  - `customer` PaymentCustomer
    - `email` string — The customer's email address.
    - `name` string — The customer's full name or business name.
    - `phone` string — The customer's phone number in E.164 format.
  - `shop` PaymentShop — The information about the shop (used in [hosted payment page](https://docs.monei.com/integrations/use-prebuilt-payment-page/)).
    - `name` string — The shop name.
    - `country` string — Two-letter country code ([ISO 3166-1 alpha-2](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2)).
  - `billingDetails` PaymentBillingDetails — Billing information associated with the payment method at the time of the transaction.
    - `name` string — The customer's billing full name.
    - `email` string — The customer's billing email address.
    - `phone` string — The customer's billing phone number in E.164 format.
    - `company` string — Billing company name.
    - `taxId` string — Company tax ID.
    - `address` Address
      - `country` string — Two-letter country code ([ISO 3166-1 alpha-2](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2)).
      - `city` string — City, district, suburb, town, or village.
      - `line1` string — Address line 1 (e.g., street, PO Box, or company name).
      - `line2` string — Address line 2 (e.g., apartment, suite, unit, or building).
      - `zip` string — ZIP or postal code.
      - `state` string — State, county, province, or region.
  - `shippingDetails` PaymentShippingDetails — Shipping information associated with the payment.
    - `name` string — The shipping customer's full name.
    - `email` string — The shipping customer's email address.
    - `phone` string — The shipping customer's phone number in E.164 format.
    - `company` string — Name of the company where the shipment is going.
    - `taxId` string — Company tax ID.
    - `address` Address
      - `country` string — Two-letter country code ([ISO 3166-1 alpha-2](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2)).
      - `city` string — City, district, suburb, town, or village.
      - `line1` string — Address line 1 (e.g., street, PO Box, or company name).
      - `line2` string — Address line 2 (e.g., apartment, suite, unit, or building).
      - `zip` string — ZIP or postal code.
      - `state` string — State, county, province, or region.
  - `refundedAmount` integer — Amount in cents refunded (can be less than the amount attribute on the payment if a partial refund was issued).
  - `lastRefundAmount` integer — Amount in cents refunded in the last transaction.
  - `lastRefundReason` 'duplicated' | 'fraudulent' | 'requested_by_customer' | 'order_canceled' — The reason of the last refund transaction.
  - `cancellationReason` 'duplicated' | 'fraudulent' | 'requested_by_customer' | 'order_canceled' — The reason for canceling the Payment.
  - `sessionDetails` PaymentSessionDetails — Information related to the browsing session of the user who initiated the payment.
    - `ip` string — The IP address where the operation originated.
    - `countryCode` string — Two-letter country code ([ISO 3166-1 alpha-2](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2)).
    - `lang` string — Two-letter language code ([ISO 639-1](https://en.wikipedia.org/wiki/ISO_639-1)).
    - `deviceType` string — Device type, could be `desktop`, `mobile`, `smartTV`, `tablet`.
    - `deviceModel` string — Information about the device used for the browser session (e.g., `iPhone`).
    - `browser` string — The browser used in this browser session (e.g., `Mobile Safari`).
    - `browserVersion` string — The version for the browser session (e.g., `13.1.1`).
    - `os` string — Operation system (e.g., `iOS`).
    - `osVersion` string — Operation system version (e.g., `13.5.1`).
    - `source` string — The source component from where the operation was generated (mostly for our SDK's).
    - `sourceVersion` string — The source component version from where the operation was generated (mostly for our SDK's).
    - `userAgent` string — Full user agent string of the browser session.
    - `browserAccept` string — Browser accept header.
    - `browserColorDepth` string — The color depth of the browser session (e.g., `24`).
    - `browserScreenHeight` string — The screen height of the browser session (e.g., `1152`).
    - `browserScreenWidth` string — The screen width of the browser session (e.g., `2048`).
    - `browserTimezoneOffset` string — The timezone offset of the browser session (e.g., `-120`).
  - `traceDetails` PaymentTraceDetails — Information related to the browsing session of the user who initiated the payment.
    - `ip` string — The IP address where the operation originated.
    - `countryCode` string — Two-letter country code ([ISO 3166-1 alpha-2](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2)).
    - `lang` string — Two-letter language code ([ISO 639-1](https://en.wikipedia.org/wiki/ISO_639-1)).
    - `deviceType` string — Device type, could be `desktop`, `mobile`, `smartTV`, `tablet`.
    - `deviceModel` string — Information about the device used for the browser session (e.g., `iPhone`).
    - `browser` string — The browser used in this browser session (e.g., `Mobile Safari`).
    - `browserVersion` string — The version for the browser session (e.g., `13.1.1`).
    - `os` string — Operation system (e.g., `iOS`).
    - `osVersion` string — Operation system version (e.g., `13.5.1`).
    - `source` string — The source component from where the operation was generated (mostly for our SDK's).
    - `sourceVersion` string — The source component version from where the operation was generated (mostly for our SDK's).
    - `userAgent` string — Full user agent string of the browser session.
    - `browserAccept` string — Browser accept header.
    - `browserColorDepth` string — The color depth of the browser session (e.g., `24`).
    - `browserScreenHeight` string — The screen height of the browser session (e.g., `1152`).
    - `browserScreenWidth` string — The screen width of the browser session (e.g., `2048`).
    - `browserTimezoneOffset` string — The timezone offset of the browser session (e.g., `-120`).
    - `userId` string — The ID of the user that started the operation.
    - `userEmail` string — The email of the user that started the operation.
  - `paymentToken` string — A permanent token represents a payment method used in the payment. Pass `generatePaymentToken: true` when you creating a payment to generate it. You can pass it as `paymentToken` parameter to create other payments with the same payment method. This token does not expire, and should only be used server-side.
  - `paymentMethod` PaymentPaymentMethod — Details about the payment method at the time of the transaction.
    - `method` 'alipay' | 'card' | 'bizum' | 'paypal' | 'mbway' | 'multibanco' | 'iDeal' | 'bancontact' | 'sofort' | 'trustly' | 'sepa' | 'klarna' | 'giropay' | 'eps' | 'blik' — Payment method type.
    - `card` PaymentPaymentMethodCard — Details about the card used as payment method at the time of the transaction.
      - `country` string — Two-letter country code ([ISO 3166-1 alpha-2](https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2)).
      - `brand` 'visa' | 'mastercard' | 'diners' | 'amex' | 'jcb' | 'unionpay' | 'discover' | 'unknown' — Card brand.
      - `type` 'debit' | 'credit' — Card type `debit` or `credit`.
      - `threeDSecure` boolean — Whether this transaction used 3D Secure authentication.
      - `threeDSecureVersion` string — The protocol version of the 3DS challenge.
      - `threeDSecureFlow` 'CHALLENGE' | 'FRICTIONLESS' | 'FRICTIONLESS_CHALLENGE' | 'DIRECT' — The flow used for 3DS authentication.
      - `expiration` integer — Time at which the card will expire. Measured in seconds since the Unix epoch.
      - `last4` string — The last four digits of the card.
      - `fingerprint` string — Unique identifier for the card number. Used to detect duplicate payment methods across customers. Not present for tokenized cards.
      - `tokenizationMethod` 'applePay' | 'googlePay' | 'clickToPay' — The digital wallet used to tokenize the card.
      - `cardholderName` string — The name of the cardholder.
      - `cardholderEmail` string — The email of the cardholder.
    - `bizum` PaymentPaymentMethodBizum — Details about the Bizum account used as payment method at the time of the transaction.
      - `phoneNumber` string — Phone number in E.164 format used to pay with `bizum`.
    - `paypal` PaymentPaymentMethodPaypal — Details from Paypal order used as payment method at the time of the transaction.
      - `orderId` string — The Paypal's order ID.
      - `payerId` string — The Paypal's payer ID.
      - `email` string — The Paypal's payer email.
      - `name` string — The Paypal's payer name.
    - `mbway` PaymentPaymentMethodMbway — Details from MBWay order used as payment method at the time of the transaction.
      - `phoneNumber` string — Phone number in E.164 format used to pay with `mbway`.
    - `trustly` PaymentPaymentMethodTrustly — Details from Trustly order used as payment method at the time of the transaction.
      - `customerId` string — The Trustly's customer ID.
    - `sepa` PaymentPaymentMethodSepa — Details from SEPA order used as payment method at the time of the transaction.
      - `accountholderAddress` string — The address of the account holder.
      - `accountholderEmail` string — The email of the account holder.
      - `accountholderName` string — The name of the account holder.
      - `countryCode` string — The country code of the account holder.
      - `bankAddress` string — The address of the bank.
      - `bankCode` string — The code of the bank.
      - `bankName` string — The name of the bank.
      - `bic` string — The BIC of the bank.
      - `last4` string — The last 4 digits of the IBAN.
      - `fingerprint` string — Unique identifier for the IBAN. Used to detect duplicate payment methods across customers.
    - `klarna` PaymentPaymentMethodKlarna — Details from Klarna order used as payment method at the time of the transaction.
      - `billingCategory` 'PAY_LATER' | 'PAY_NOW' | 'SLICE_IT' | 'SLICE_IT_BY_CARD' | 'PAY_IN_PARTS'
      - `authPaymentMethod` 'invoice' | 'fixed_amount' | 'pix' | 'base_account' | 'deferred_interest' | 'direct_debit' | 'direct_bank_transfer' | 'b2b_invoice' | 'card' | 'slice_it_by_card'
  - `sequence` PaymentSequence — This field needs to be sent in order to mark the beginning of a sequence of payments (recurring/subscriptions, installments, and so). Specific configurations can be set in the inside properties (`recurring`).
    - `type` 'recurring', required
    - `recurring` PaymentSequenceRecurring — Specific configurations for recurring payments. Will only be used when `sequence`.`type` is `recurring`.
      - `expiry` string — Date after which no further recurring payments will be performed. Must be formatted as `YYYYMMDD`.
      - `frequency` integer — The minimum number of **days** between the different recurring payments.
  - `sequenceId` string — A permanent identifier that refers to the initial payment of a sequence of payments. This value needs to be sent in the path for `RECURRING` payments.
  - `storeId` string — A unique identifier of the Store. If specified the payment is attached to this Store.
  - `pointOfSaleId` string — A unique identifier of the Point of Sale. If specified the payment is attached to this Point of Sale. If there is a QR code attached to the same Point of Sale, this payment will be available by scanning the QR code.
  - `metadata` Metadata — A set of key-value pairs that you can attach to a resource. This can be useful for storing additional information about the resource in a structured format.
  - `nextAction` PaymentNextAction — If present, this property tells you what actions you need to take in order for your customer to fulfill a payment using the provided source.
    - `type` 'CONFIRM' | 'CHALLENGE' | 'FRICTIONLESS_CHALLENGE' | 'BIZUM_CHALLENGE' | 'COMPLETE' — - `CONFIRM` - Your customer needs to be redirected to a [hosted payment page](https://docs.monei.com/integrations/use-prebuilt-payment-page/) or confirm payment using [payment token](https://docs.monei.com/integrations/build-custom-checkout/#3-confirm-the-payment-client-side). The **redirectUrl** will point to the hosted payment page. - `FRICTIONLESS_CHALLENGE` - Your customer needs to be redirected to the frictionless 3d secure challenge page provided by the bank. The **redirectUrl** will point to the frictionless 3d secure challenge page provided by the bank. - `CHALLENGE` - Your customer needs to be redirected to the 3d secure challenge page provided by the bank. The **redirectUrl** will point to the 3d secure challenge page provided by the bank. - `COMPLETE` - The payment is completed. The **redirectUrl** will be the **completeUrl** if it was provided when the payment was created. - `BIZUM_CHALLENGE` - Your customer will be redirected to the Bizum hosted payment page.
    - `mustRedirect` boolean — If `true` you have to redirect your customer to the **redirectUrl** to continue payment process.
    - `redirectUrl` string — Redirect your customer to this url to continue payment process.
  - `createdAt` integer — Time at which the resource was created. Measured in seconds since the Unix epoch.
  - `updatedAt` integer — Time at which the resource updated last time. Measured in seconds since the Unix epoch.

## Other responses

- `400` — The request is incorrect or could not be processed
- `401` — Unauthorized error. Please check your auth credentials
- `404` — The specified resource was not found
- `422` — The request was well-formed but could not be processed due to semantic errors
- `500` — Unexpected server error
- `503` — The service is temporarily unavailable

---

[API](https://skmtc.net/monei/apis/monei-api-v1.md) · [All operations](https://skmtc.net/monei/apis/monei-api-v1/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/monei/monei-api-v1/versions/23554d4fb9e5/schema)
