---
title: "Create subscription payment"
method: POST
path: "/subscription"
tags: ["Subscription Payment"]
---

# Create subscription payment

`POST /subscription`

Creates a Subscription.

**Required scope:** <code style="background:#e8f0fe;color:#1a73e8;padding:2px 8px;border-radius:12px;font-size:0.85em">subscription:create</code>

## Request body

- object
  - `frequent_id` string, uuid — Only required to create a subscription from an active Frequent Payment.</br> Some properties like ```customer``` and ```sdd_mandate``` are inherited by the subscriptions.</br> So it's not necessary to send them in the request creation.
  - `capture` object
    - `transaction_key` string — The internal key used to identify this transaction in the merchant's database.
    - `account` object — For multi-account clients.
      - `id` string, uuid — The uuid of the account.
    - `descriptive` string — The description of the capture. Will be displayed in the bank statement or in the MB WAY application.
  - `expiration_time` string, Y-m-d H:i — The last possible time to make the payment.</br> Required only when ```max_captures``` and/or ```unlimited_payments``` are **NOT** set.
  - `currency` string — The currency code in ISO 4217 format (e.g., "EUR" for Euro). This field specifies the type of currency used in financial operation.
  - `customer` Customer — The Customer object contains the necessary details about the customer involved in the transaction. This includes identification information, contact details, and preferences. All fields are optional unless specified otherwise.
    - `id` string, uuid — Unique identifier for the customer. When provided, it links the transaction to an existing customer record.
    - `name` string — Full name of the customer. This is typically displayed on receipts and statements.
    - `email` string, email — Customer's email address. Used for sending receipts, notifications, and payment confirmations.
    - `phone` string — The contact phone number of the customer, excluding the country code indicator (e.g., "+351"). This field is used for communication purposes. If the payment method is MB WAY, the phone_number is required and is used to send the MB WAY push notification.
    - `phone_indicative` string — The country code indicator for the customer's phone number (e.g., "351" for Portugal). This field is used in conjunction with the phone number to ensure proper international dialing and communication.
    - `fiscal_number` string — Customer's tax identification number or fiscal number. Format may vary by country.
    - `key` string — A customizable text field for users to input their own identifier for the customer. This can be any string that helps the user uniquely identify the customer in their own system.
    - `language` 'PT' | 'EN' | 'ES' — Preferred language for customer communications. Uses ISO 639-1 language codes.
  - `key` string — The merchant's key for identifying the payment.
  - `value` number, double, required — The payment value.</br>Will be rounded to 2 decimals.
  - `frequency` '1D' | '1W' | '2W' | '1M' | '2M' | '3M' | '4M' | '6M' | '1Y' | '2Y' | '3Y', required — Defining the frequency that the cycles are charged.
  - `max_captures` integer — Defining the total of cycles that will be charged.</br> Required only when ```expiration_time``` and/or ```unlimited_payments``` are **NOT** set.
  - `unlimited_payments` boolean — When this property is set, unlimited cycles will be charged until the subscription is inactivated or deleted.
  - `start_time` string, Y-m-d H:i, required — Defining the start of billing cycles.
  - `failover` boolean — After all retries failed, the payment cycle can have another try with another single method.
  - `capture_now` boolean — Whether to schedule an immediate capture and schedule the second one for start_time.
  - `retries` integer — Number of tries for every cycle of payments.</br> The maximum number of retries that can occur will be determined by the frequency that is selected.</br> If a capture is unsuccessful for any reason, it will attempt to charge once more until the allotted number of attempts is reached.
  - `method` 'CC' | 'DD', required — The payment methods.
  - `sdd_mandate` SddMandate — The SDD Mandate object contains the necessary fields to create a SEPA Direct Debit mandate. This object ensures that all required information is provided to authorize and process SEPA Direct Debit transactions. Object required when method is Direct Debit.
    - `iban` string, required — The International Bank Account Number (IBAN) of the debtor's account. This field is used to uniquely identify the debtor's bank account across international borders, ensuring accurate and efficient processing of SEPA Direct Debit transactions. The IBAN is a standardized format that includes the country code, check digits, bank code, and account number.
    - `key` string — A customizable text field for users to input their own identifier for the SDD mandate.
    - `name` string, required — Full name of the account holder as it appears on the bank account.
    - `email` string, email, required — Email address of the account holder for mandate-related communications.
    - `phone` string, required — Phone number of the account holder without country code.
    - `account_holder` string, required — The name of the person or entity that holds the bank account. This field is used to identify the owner of the bank account involved in the transaction, ensuring that the correct account is credited or debited.
    - `country_code` string — ISO 3166-1 alpha-2 country code of the customer's country.
    - `max_num_debits` string — Maximum number of debits allowed under this mandate.
    - `billing_entity` string — The entity responsible for billing in the context of the SEPA Direct Debit (SDD) mandate.

## Response `201`

Created

- SubscriptionResponseOnDetail — Subscription object that returns after a success request.
  - `id` string, uuid
  - `status` string
  - `key` string
  - `expiration_time` string, date-time
  - `start_time` string, date-time
  - `frequency` '1D' | '1W' | '2W' | '1M' | '2M' | '3M' | '4M' | '6M' | '1Y' | '2Y' | '3Y'
  - `retries` integer
  - `max_captures` integer
  - `failover` boolean
  - `capture_now` boolean
  - `unlimited_payments` boolean
  - `customer` CustomerResponseOnDetail — The Customer object contains detailed information about the customer involved in the transaction.
    - `id` string, uuid
    - `name` string
    - `email` string, email
    - `phone` string
    - `phone_indicative` string
    - `fiscal_number` string
    - `key` string
    - `language` string
  - `method` SubscriptionMethodResponseOnDetail
    - `type` 'CC' | 'DD'
    - `status` 'active' | 'inactive' | 'waiting'
    - `url` string, uri
    - `last_four` string
    - `card_type` string
    - `expiration_date` string
    - `sdd_mandate` SddMandateResponseOnDetail — SDD Mandate information as returned in detail responses
      - `id` string — Mandate ID
      - `iban` string — International Bank Account Number (IBAN) in standard format
      - `key` string — Mandate key
      - `name` string — Account holder name
      - `email` string, email — Account holder email
      - `phone` string — Account holder phone
      - `account_holder` string — Account holder name as registered with bank
      - `country_code` string — Country code
      - `max_num_debits` string — Maximum number of debits allowed
      - `billing_entity` string — Billing entity identifier
      - `reference_adc` string
  - `transactions` PaymentTransactions[]
    - `id` string, uuid — Unique identifier for the transaction
    - `key` string — Merchant identification key
    - `created_at` string, date-time — When the transaction was created
    - `date` string, date-time — Transaction date
    - `values` object — Transaction value breakdown
      - `requested` number, double — Requested amount
      - `paid` number, double — Amount actually paid
      - `fixed_fee` number, double — Fixed fee charged
      - `variable_fee` number, double — Variable fee charged
      - `tax` number, double — Tax amount
      - `transfer` number, double — Amount transferred to merchant
    - `transfer_date` string, date-time — When the transfer occurred
    - `transfer_batch` string — Transfer batch identifier
    - `method` string — Payment method used
    - `document_number` string — Document number for the transaction
    - `descriptive` string — Transaction description
  - `currency` 'EUR' — ISO 4217 currency code. If not specified, the default currency is set to EUR.
  - `value` number, double
  - `created_at` string, date-time

## Other responses

- `400` — Bad Request
- `403` — Forbidden
- `412` — Pre condition failed
- `429` — Too Many Requests
- `500` — Internal Server Error

---

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