1. Recurring profile
Freedom Pay
  • Overview
  • Gateway API
    • Overview
    • Sync API
      • Overview
      • Card data encryption
      • Payments
        • Overview
        • Pay by card
        • Pay by card: complete 3DS
        • Pay with Apple Pay
        • Pay with Google Pay
        • Pay by recurring profile
        • Create payment page
        • Create payment page with any amount
        • Capture payment (clearing)
        • Cancel payment
        • Refund payment
        • Get payment status
      • Payouts
        • Overview
        • Pay out to card
        • Pay out to IBAN
        • Get payout balance
        • Get payout status
      • Transfers
        • Overview
        • Transfer from card to card
        • Transfer from card to card: complete 3DS
        • Get exchange rates
        • Get transfer status
      • Saved cards
        • Overview
        • Save card
        • Save card: complete 3DS
        • List saved cards
        • Remove saved card
        • Pay by card token
        • Pay out to card token
        • Get payment status
    • Async API
      • Overview
      • Create
        • Create payment
        • Save card without a charge
      • Read
        • Get payment status
        • Get request result
      • Edit
        • Capture payment (clearing)
        • Cancel payment (reverse)
        • Refund payment
  • Merchant API
    • Overview
    • Payments
      • Overview
      • Checkout
      • Pay by saved card
        • Overview
        • Create payment
        • Confirm payment with CVC
        • Confirm payment without the client
      • Create payment
      • Create payment with a payment page template
      • Create payment in a payment frame
      • Create payment with any amount
      • Create recurring payment
      • Capture payment (clearing)
      • Cancel payment
      • Refund payment
      • Get payment status
    • Payouts
      • Overview
      • Create payout page
      • Pay out to saved card
      • Pay out to IBAN
      • Get payout status
      • Get payout balance
    • Mobile balance
      • Overview
      • Init
      • Pay
      • Approve
      • Resend code
      • Status
    • Invoice
      • Overview
      • Recurring profile
        • Overview
        • Create
          POST
        • Execute
          POST
        • Cancel
          POST
        • Info
          POST
        • Notify
          POST
      • Tips
        • Overview
        • Create
      • Create
        POST
      • Info
        POST
      • Refund
        POST
      • Status
        POST
      • Cancel
        POST
    • SDK
      • JS SDK
      • Merchant SDK
        • Google Pay
        • Android
        • IOS
    • CMS
      • Overview
      • Get Merchant ID and key
      • WordPress
        • Overview
        • Installation
        • Configuration
        • Test
        • Live payments
        • Update
      • Tilda
        • Overview
        • Installation
        • Configuration
        • Test
        • Live payments
      • InSales
        • Overview
        • Installation
        • Configuration
        • Test
        • Live payments
      • Ecwid
        • Overview
        • Installation
        • Configuration
        • Test
        • Live payments
      • Bitrix
        • Overview
        • Installation
        • Configuration
        • Test
        • Live payments
      • PrestaShop
        • Overview
        • Installation
        • Configuration
        • Test
        • Live payments
      • OpenCart
        • Overview
        • Installation
        • Configuration
        • Test
        • Live payments
    • Installment
      • Overview
      • Status
        • Application Status
        • Application Callback Status
        • Application Change Status
      • Get partners
      • Create application
    • Saved cards
      • Get saved cards
      • Save card
      • Save card for payouts
      • Delete saved card
      • Save card without a charge
    • Redirect back
      POST
    • Result notify
      POST
    • Payout notify
      POST
    • Check request
      POST
  • Partner API
    • Rates
      • Overview
      • Rates
    • Products
      • Overview
      • Dictionaries
      • Add client with product
      • Client request status
      • Create terminal
      • Update terminal limits
      • Product request status
    • E-Money
      • Overview
      • Add
      • Owner identification
      • Info
      • Close
      • Block
      • Balance
      • Statement
      • Request Status
    • Device ID
      • Android SDK
      • iOS SDK
    • Implement SuperApp
      • Overview
      • Pay
      • Refund
      • Status
    • Account
      • Overview
      • Create payment
      • Payment status
      • Batch statuses
      • Statement
      • Statement status
      • Balance
      • Balance status
    • Invoices
      • Info
  1. Recurring profile

Execute

Developing
KZ
https://api.freedompay.kz
KZ
https://api.freedompay.kz
POST
https://api.freedompay.kz
/v5/merchant/invoice/create
Charges the client by an active recurring profile: the client does not take part in the charge.
Create the profile first with Recurring profile: Create: the client confirms it once.
The request goes to the same URL as Create: passing profile_id makes it a charge.
A profile with a schedule cannot be charged with this method.
The charge is created with HTTP 201; a rejected charge comes with status = error and the error block.

Recurring charge flow#

Result#

HTTPstatusMeaningNext step
201successThe amount is charged.—
201processThe charge is in progress.Check it with Status by id.
201errorThe payment system rejected the charge.See error.code and error.description.
400, 401, 422, 500—The request is rejected.See «Errors» below.

Errors#

The error is returned in error_description; error_code is returned for 401, 422 and for the 400 errors that have a code below.
HTTPerror_codeWhenWhat to do
4003001The recurring profile is not found.Check profile_id.
4003004The profile is not active, has a schedule, or its type differs from type.Check the profile with Recurring profile: Info.
400—A charge with this external_id already exists.Use a new external_id.
4019998The signature is invalid.Check the signature: see Overview.
4229403The X-JWS-Signature header is missing.Pass the signature.
500—A field is missing or invalid. error_description names the field.Fix the request.

Request

Header Params

Body Params application/jsonRequired

Example
{
    "profile_id": "9f8e7d6c5b4a39281706f5e4d3c2b1a0",
    "type": "bybit",
    "external_id": "order1002",
    "description": "Subscription for November",
    "amount": 1000,
    "currency": "KZT"
}

Responses

🟢201Created
application/json
Headers

Bodyapplication/json

Example
{
    "id": "01a18c06-d986-714e-b9af-8a421173e4c8",
    "status": "process",
    "created_at": "2026-10-30T13:57:01+05:00"
}
🟠400Bad Request
🟠401Unauthorized
🟠422Unprocessable Entity
🔴500Internal Server Error
Previous
Create
Next
Cancel