This doc includes Razorpay

Razorpay Checkout Payloads

This document shows the exact payloads passed to RazorpayCheckout.open for:

Runtime values are shown as placeholders like <value>.


0. Example: Import and simple Razorpay call

import RazorpayCheckout from 'react-native-customui';

type BasicRazorpayOptions = {
  readonly key_id: string;
  readonly amount: string; // amount in paise, e.g. "5000" for ₹50.00
  readonly currency: string; // e.g. "INR"
  readonly email: string;
  readonly contact: string;
  readonly method: 'upi' | 'wallet' | 'netbanking' | 'card';
};

const options: BasicRazorpayOptions = {
  key_id: '<razorpay_public_key>',
  amount: '5000',
  currency: 'INR',
  email: '[email protected]',
  contact: '9999999999',
  method: 'upi',
};

RazorpayCheckout.initRazorpay(options.key_id);
RazorpayCheckout.open(options);

1. Subscription Payment

Source: usePaymentMethodsScreen.handlePayment and buildRazorpayOptions.

1.1 Base Razorpay options for subscription

Built in buildRazorpayOptions from the CreateOrderResponse:

{
  "key_id": "<razorpay_public_key>",
  "amount": "<payable_amount_or_amount_in_paise>",
  "currency": "<order.currency>",
  "email": "<order.prefill.email>",
  "contact": "<order.prefill.phone>",
  "subscription_id": "<order.subscription_id>",
  "method": "upi" // default, overridden per payment method
}

1.2 Payment method variations (subscription)

All of these extend the base options above.

1.2.1 UPI Intent

Selected when selection.kind === 'upi-intent':

{
  "key_id": "<razorpay_public_key>",
  "amount": "<amount_in_paise>",
  "currency": "<INR_or_other>",
  "email": "<user_email>",
  "contact": "<user_phone>",
  "subscription_id": "<subscription_id>",
  "method": "upi",
  "upi_app_package_name": "<selection.packageInfo.package_name>",
  "_[flow]": "intent"
}

1.2.2 UPI Collect (VPA)