POST
/
orders
/
sessions
curl --request POST \
  --url https://sandbox.cashfree.com/pg/orders/sessions \
  --header 'Content-Type: application/json' \
  --header 'x-api-version: <x-api-version>' \
  --data '{
  "payment_method": {
    "card": {
      "card_cvv": "900",
      "card_display": "3243",
      "card_expiry_mm": "03",
      "card_expiry_yy": "26",
      "card_number": "4111111111111111",
      "channel": "link",
      "cryptogram": "AQBBBBBBZatIlaIAmWKSghwBBBB=",
      "token_requestor_id": "22457512314",
      "token_type": "ISSUER_GC_TOKEN"
    }
  },
  "payment_session_id": "session__CvcEmNKDkmERQrxnx39ibhJ3Ii034pjc8ZVxf3qcgEXCWlgDDlHRgz2XYZCqpajDQSXMMtCusPgOIxYP2LZx0-05p39gC2Vgmq1RAj--gcn"
}'

Headers

x-api-version
string
default: 2023-08-01required

API version to be used. Format is in YYYY-MM-DD

x-request-id
string

Request id for the API call. Can be used to resolve tech issues. Communicate this in your tech related queries to cashfree

x-idempotency-key
string

An idempotency key is a unique identifier you include with your API call. If the request fails or times out, you can safely retry it using the same key to avoid duplicate actions.

Body

application/json

Complete object for the pay api that uses payment method objects

payment_session_id
string
required
payment_method
object
required

The card payment object is used to make payment using either plain card number, saved card instrument id or using cryptogram

save_instrument
boolean
offer_id
string

This is required if any offers needs to be applied to the order.

Response

200 - application/json

Order Pay response once you create a transaction for that order

payment_amount
number

total amount payable

cf_payment_id
string

Payment identifier created by Cashfree

payment_method
enum<string>

One of ["upi", "netbanking", "card", "app", "cardless_emi", "paylater", "banktransfer"]

Available options:
netbanking,
card,
upi,
app,
cardless_emi,
paylater,
banktransfer
channel
enum<string>

One of ["link", "collect", "qrcode"]. In an older version we used to support different channels like 'gpay', 'phonepe' etc. However, we now support only the following channels - link, collect and qrcode. To process payments using gpay, you will have to provide channel as 'link' and provider as 'gpay'

Available options:
link,
collect,
qrcode,
post
action
enum<string>

One of ["link", "custom", "form"]

Available options:
link,
custom,
form,
post
data
object

the data object pay api