---
title: "Payment Simulation"
method: POST
path: "/api/v1/payment/simulation"
tags: ["Payments"]
---

# Payment Simulation

`POST /api/v1/payment/simulation`

Payment simulation api you can check the payment request is processable 
    and which virtual pos will be used

## Request body

- PaymentSimulationRequest
  - `application_key` string, required — It is the key of your application on our environment
  - `campaign_name` string — It is the name of pos campaign you defined in our environment
  - `currency` string — Its default is TRY, if you want to use another currency please send it by ISO Code like USD, EUR
  - `amount` integer, required — It must be send in integer format by multipliying original value with 100. For example 1 must be 100, 3.42 must be 342
  - `installment_count` string — Its default is without installment, if you want to make installment please send the installment count as string
  - `inst_period` integer — Its default is 1, please send the installment period if it is different than 1
  - `card_number` string — Card number that will use in payment. This data never stores at our database, application logs. It is only directed to payment system.
  - `expire_month` string — Expire month of the card. Our api acts like card number.
  - `expire_year` string — Expire year of the card. Please send it in four digits format whole year info not last 2 characters. Our api acts like card number.
  - `card_token` string — Card token that will use in payment.
  - `is_3d` boolean, required — It must be true for 3d payments otherwise non-3d payment. But if you send it false, it doesn't guarantee it will be non-3d. For two reasons, it can be converted to 3d payment. First the card type, debit cards must be 3d. Second case is, if there is no suitable virtual pos to process your non-3d request it will be tried to do as 3d.
  - `hash_data` string, required — This is the calculated hash data for this sample payment request. BASE_64_ENCODE( SHA_256( APPLICATION_KEY + CARD_NUMBER + AMOUNT + SECRET_KEY ) )
  - `customer_id` string — Customer id
  - `is_submerchant_payment` boolean — Is payment for sub merchant ?
  - `is_preauth` boolean — Is payment pre auth?
  - `mode` string — Please send it as 'T' for test purposes, otherwise it will be in production mode.
  - `language` string — Its default value is tr. If you want to get messages in other languages, please send it. You can find supported languages in the api supported_languages.
  - `is_agricultural_payment` boolean — Is payment for agricultural?
  - `agricultural_code` string — Agricultural payment code. It is required when the payment is agricultural payment

## Response `200`

Successful Response

- PaymentSimulationResponse
  - `response_code` string — You will get 00 for successful response, otherwise another response code for the error. You can reach the list of response codes on the Response Codes Api
  - `message` string — Here is the explanation of response code
  - `is_3d` boolean — Specifies the payment will be 3d or none 3d
  - `virtual_pos_name` string — This is the name of virtual pos the payment will be processed
  - `virtual_pos_id` integer — This is the name of virtual pos the payment will be processed
  - `expected_cost_rate` number — Cost rate of payment
  - `expected_cost_amount` number — Cost amount of payment
  - `expected_customer_rate` number — Customer rate of payment

## Other responses

- `422` — Validation Error

---

[API](https://skmtc.dev/jetcheckout/apis/jet-checkout.md) · [All operations](https://skmtc.dev/jetcheckout/apis/jet-checkout/llms.txt) · [OpenAPI document](https://skmtc-service-production.skmtc.workers.dev/v1/apis/jetcheckout/jet-checkout/revisions/b17a3806ccb0/schema)
