What’s new in v2026-01-01
Cashfree Payments API v2026-01-01 is now available. This release includes the following changes:- A new Order Pay Authorise Only endpoint for authorising card payments without immediate capture.
- A new controlled subscription payment flow for UPI mandates, with six dedicated APIs for pre-debit notification and charge execution.
- New fields and parameters on Create Order, Order Pay, Create Payment Link, and Get All Settlements.
- A restructured Create Subscription request body, two new fields, and one removed field.
- Breaking response schema changes to settlement endpoints and a removed field on Create Order. Review your integration before upgrading.
- A new NuGet package ID for the .NET SDK:
cashfree-dotnet-pgfrom v6.0.7. The previouscashfree_pgpackage is no longer updated.
New: controlled subscription payment flow
New: controlled subscription payment flow
- Send a pre-debit notification: notify your customer of the upcoming charge amount before the debit window opens.
- Execute the charge: trigger the mandate debit after the compliance window elapses. The debit amount must exactly match the notified amount; a mismatch causes the issuing bank to decline the transaction.
New features on existing endpoints
New features on existing endpoints
Offer filters and UPI app priority: Create OrderTwo new optional fields are available on
order_meta in Create Order:offer_filters: explicitly allow or deny specific offers for an order. SetactiontoALLOWorDENYand provide a list of up to 25 offer values.upi_app_priority: control the display order of UPI apps on your checkout page. Accepted values:gpay,phonepe,paytm,navi,cred,supermoney,amazonpay,bhim,mobikwik,airtel,popclub,kiwi.
Settlement status filter: Get All SettlementsGet All Settlements now accepts a new optional filter field
filters.settlement_status. Pass an array of one or more of the following values to retrieve settlements by processing state:SUCCESSPENDINGPENDING_WITH_CASHFREEPENDING_WITH_BANKFAILED
Subscription support: Payment LinksCreate Payment Link now accepts an optional
subscription field to create recurring payment links backed by a plan. The plan is defined inline with the following fields:authorization_amount, authorization_amount_refund (boolean), subscription_expiry_time, and subscription_first_charge_time.PAR field: card payments
PayOrderRequest.payment_method.card now accepts a par field (Payment Account Reference received from the card network). This is relevant for token-based and network-tokenised card flows.Breaking changes: response schema updates
Breaking changes: response schema updates
SettlementEntity object. Now returns OrderSettlementEntity, a nested object structured as follows:cf_payment_id, service_charge, settlement_amount, or other fields directly from the response root.Get All Settlements: paginated responsePreviously returned a single flat settlement record. Now returns a paginated
GetAllSettlementsResponse:data and handle pagination using cursor.Mark Order for Settlement: HTTP status code and response body changedPreviously returned HTTP
202 with an empty {} body. Now returns HTTP 200 with the following body:202 status or expects an empty response body.Get Order Extended:
offer renamed to offers (array)The offer field (a single object of type OfferExtendedDetails) in OrderExtendedDataEntity is now offers (an array of OfferExtendedDetails objects). Update field references from offer to offers and handle the array structure.Removed fields
Removed fields
.NET SDK: new NuGet package
.NET SDK: new NuGet package
cashfree-dotnet-pg. For the full version history, see the .NET SDK changelog.Updates to Subscription APIs
Updates to Subscription APIs
CreateSubscriptionRequest previously used a flat structure where all fields were at the top level. In v2026-01-01, fields are grouped into four nested objects for clarity and consistency:New field:
subscription_tagsCreateSubscriptionRequest now accepts subscription_tags, a free-form object for attaching up to 10 custom key-value string entries to a subscription. A commonly used key is psp_note, which sets the note displayed to the customer in their payment service provider app or on their bank statement. When using psp_note, the value must be between 1 and 255 characters.New field:
subscription_payment_splitsCreateSubscriptionRequest now accepts subscription_payment_splits, an array of vendor split items. Each item specifies a vendor_id and a percentage, allowing subscription charges to be distributed across multiple vendors at the time of collection.Removed field:
customer_bank_account_holder_nameThe customer_bank_account_holder_name field has been removed from CreateSubscriptionRequest. This field is no longer accepted in v2026-01-01.New: webhook signature verificationA dedicated Signature Verification page is now available for subscription webhooks, covering how to validate the
x-webhook-signature header to confirm event authenticity before processing.For the controlled subscription payment flow, see the New: controlled subscription payment flow section above.x-api-version: 2026-01-01 in all request headers. If you are using the previous version, see the v2025-01-01 API reference.- Orders and payments
- Links and refunds
- Vault and offers
- Split and settlements
Orders
Create an order to collect payments from your customers.
Get status and details of an order.
Terminate an order that’s no longer needed.
Fetch extended data for an order.
Update extended data for an order.
Customers
Create a customer for Token Vault and saved instruments.
Payments
Initiate a payment for an order using the chosen payment method.
Submit or resend OTP in the native OTP flow for card payments.
Capture or void a pre-authorised transaction.
Get status and details of a single payment.
Get status and details of all payments for an order.
Testing APIs in Postman
Documentation Walkthrough