1. Purchase
Freedom Pay
  • Overview
  • Gateway API
    • Overview
    • Sync API
      • Overview
      • Card data encryption
      • Purchase
        • Overview
        • Create payment
          POST
        • Any amount
          POST
        • Pay by card
          POST
        • Pay by card: complete 3DS
          POST
        • Pay by recurring profile
          POST
        • Cancel payment
          POST
        • Capture payment (clearing)
          POST
        • Refund payment
          POST
        • Get payment status
          POST
      • Payout
        • Overview
        • Card
        • IBAN
        • Balance
        • Status
      • Transfer
        • Overview
        • Card
        • 3DSecure
        • Rates
        • Status
      • Card
        • Overview
        • Add
        • 3DSecure
        • List
        • Remove
        • Get payment status
      • Token
        • Overview
        • Token Pay
        • Apple Pay
        • Google Pay
        • Token Payout
        • Get payment status
    • Async API
      • Overview
      • Create
        • Create payment
      • Read
        • Get payment status
        • Get request result
      • Edit
        • Capture payment (clearing)
        • Cancel payment (reverse)
        • Refund payment
  • Merchant API
    • Overview
    • Purchase
      • Overview
      • Checkout
      • Card token
        • Overview
        • Tokenize card
        • Delete token
        • Card token list
        • Create payment (with CVC)
        • Confirm payment (with CVC)
        • Create payment
        • Confirm payment
      • Create payment
      • Any amount
      • Reccuring payment
      • Cancel payment
      • Clearing
      • Refund payment
      • Status
    • Payout
      • Overview
      • Card token
        • Tokenize card
        • Delete token
        • Card token list
        • Create payment
      • Create payment
      • IBAN
      • Balance status
      • Status
    • 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
    • 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. Purchase

Pay by card: complete 3DS

KZ
https://api.freedompay.kz
KZ
https://api.freedompay.kz
POST
https://api.freedompay.kz
/g2g/paymentAcs
Second step of Pay by card: completes the card payment after 3DS authentication and returns the result in the same response.
Call it when POST /g2g/payment returned pg_status = ok and pg_3ds = 1, after the client's browser has sent MD and PaRes to your TermUrl.
Call it once per payment. A call before the client has passed the 3DS page fails the payment.
Test cards: see Gateway API Overview.

Result#

pg_statusMeaningNext step
okThe payment is authorized.One-step payment: nothing else is needed. Two-step payment (pg_auto_clearing = 0): capture the amount with clearing or release it with cancel.
pendingThe payment system has not returned the result yet.Request the status with status_v2 until it is final.
errorThe request is rejected or the payment is declined.See «Errors» below.

Payment completion after 3DS#

The full flow from the payment request to this call is shown in Pay by card.

Errors#

The HTTP status is always 200; the error is returned in pg_error_code and pg_error_description.
pg_error_codeWhenWhat to do
9403A parameter is missing or has an invalid value, or a payment with this pg_payment_id does not exist.Fix the request.
1100The signature is missing or invalid.Check the signature: see Sync API Overview.
1101pg_merchant_id is not found. The response is not signed.Check the merchant ID.
1202The payment belongs to another merchant.Check pg_payment_id and pg_merchant_id.
110691The payment is not waiting for 3DS completion: the method has already been called for it, or the payment was made without 3DS.Do not repeat the call; get the payment status with status_v2.
10004The 3DS result is not available: the method was called before the client passed the 3DS page. The payment fails.Call the method only after the client's browser has returned to TermUrl; for this order create a new payment.
9999Internal error, for example a request for this payment is already being processed.Do not repeat the call at once: wait for the response to the first request or get the payment status with status_v2.
Other codesThe payment is declined by the issuer or the payment system. pg_payment_id is returned.See Error codes.

Request example#

Required fields only. pg_sig is calculated with the secret key test_secret_key.
Line breaks in the body are added for readability: send the body as one line.

Request

Body Params multipart/form-data

Responses

🟢200Success
application/xml
Bodyapplication/xml

Examples
<?xml version="1.0" encoding="utf-8"?>
<response>
    <pg_payment_id>1015054203167</pg_payment_id>
    <pg_status>ok</pg_status>
    <pg_auth_code>793831</pg_auth_code>
    <pg_reference>261015100451</pg_reference>
    <pg_datetime>2026-10-15T10:04:51+00:00</pg_datetime>
    <pg_salt>GGycVetZqzJcdKKd</pg_salt>
    <pg_sig>23144bc3d10f29207e9e04775ecb5b20</pg_sig>
</response>
🟢200Error
Previous
Pay by card
Next
Pay by recurring profile