1. Create
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
          POST
        • Save card without a charge
          POST
      • 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
        • Cancel
        • Info
        • Notify
      • Tips
        • Overview
        • Create
      • Create
      • Execute
      • Info
      • Refund
      • Status
      • Cancel
    • 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. Create

Save card without a charge

KZ
https://api.freedompay.kz
KZ
https://api.freedompay.kz
POST
https://api.freedompay.kz
/v5/g2g/create
Saves a card without a charge: the card is checked with a zero amount, nothing is debited.
The X-Action header must be gateway.card.zero_create.
Sign the request with X-JWS-Signature: see Async API Overview.
The operation is processed asynchronously: the response returns it with status process.
The saved card is bound to user_id: pay with it later in Create payment with from.type = saved and the same user_id.

Card saving flow#

Get the result with Get payment status by id: on approved the card token is in from.card.token.
The 3DS steps are the same as in the 3DS challenge flow of Create payment.
With from.recurrent.lifetime a recurrent profile is also created: from.recurrent.profile_id comes in the status; use it in Create payment with from.type = recurrent.

Result#

ResponseMeaningNext step
status = processThe request is accepted, the card is being checked.Get the final status with gateway.payment.status. If the response is lost, use gateway.request.status with the same X-Request-Id.
status = errorThe request is rejected.See «Errors» below.
{}, X-Request-Status: processThe result is not ready yet.Repeat the request in a few seconds with the same X-Request-Id.
Statuses in Get payment status for this operation:
StatusMeaningNext step
processThe card is being checked.Repeat gateway.payment.status later.
waiting_3dsThe client must pass 3DS.Redirect the client to 3ds.acs_url.
approvedThe card is saved. amount is 0: nothing is debited, there is nothing to capture or cancel.Save from.card.token (and from.recurrent.profile_id, if requested) for future payments.
errorThe card is not saved.See error.code and «Errors» below.

Errors#

A rejected request is returned with HTTP 200, status error and the error object.
The error is returned in error.code and error.description.
HTTPerror.codeWhenWhat to do
200Decline code, for example 99999The payment system declined the card check.Ask the client for another card. Do not repeat the request with the same X-Request-Id: it returns the same result.
2009403from.type is not card or tokenized.Use from.type = card or tokenized.
4009400The body is not valid JSON.Fix the request.
4019998The signature is invalid.Check the signature: see Async API Overview.
4229403A required header or field is missing or invalid, for example user_id is missing. The reason is in error.description.Fix the request.
5009999Internal error at the gateway entry point.Repeat the request later with the same X-Request-Id.
50010000Internal error in processing.Repeat the request later with the same X-Request-Id.

Request

Header Params

Body Params application/json

Examples
{
  "user_id": "user_12345",
  "order_id": "order_1001",
  "from": {
    "type": "card",
    "card": {
      "name": "IVAN IVANOV",
      "pan": "4111111111111111",
      "cvc": "123",
      "year": 30,
      "month": 12
    }
  },
  "device": {
    "user_ip": "203.0.113.10"
  }
}

Responses

🟢200OK
application/json
Headers

Bodyapplication/json

Examples
{
  "id": "01a17c49-a282-71c4-b712-a27fecf54bb9",
  "status": "process",
  "created_at": "2026-10-27T07:36:02.946124613Z"
}
🟠422Unprocessable Entity
🟠400Bad Request
🟠401Unauthorized
🔴500Internal Server Error
Previous
Create payment
Next
Get payment status