Official java bindings for the Razorpay API.
Documentation of Razorpay's API and their usage is available at https://docs.razorpay.com
Java 1.8 or later
Mock Tests Support till Java 1.8
Add this dependency to your project's POM:
<dependency>
<groupId>com.razorpay</groupId>
<artifactId>razorpay-java</artifactId>
<version>1.4.10</version>
</dependency>Add this dependency to your project's build file:
implementation "com.razorpay:razorpay-java:1.4.7"RazorpayClient can be instantiated via two ways:
Instantiate RazorpayClient with key_id & key_secret. You can obtain the keys from the dashboard app https://dashboard.razorpay.com/#/app/keys
// Initialize client
RazorpayClient instance = new RazorpayClient("key_id", "key_secret");- Add custom headers to request (optional)
Map<String, String> headers = new HashMap<String, String>();
razorpayClient.addHeaders(headers);Instantiate RazorpayClient with access_token. The access_token can be obtained only in case if you are a platform partner. For more information, refer page - https://razorpay.com/docs/partners/platform/.
// Initialize client
RazorpayClient instance = new RazorpayClient("access_token");- Add custom headers to request (optional)
Map<String, String> headers = new HashMap<String, String>();
razorpayClient.addHeaders(headers);SDK calls throw RazorpayException on API errors. In addition to the message, you can access structured error data returned by the API:
try {
Order order = razorpayClient.orders.create(orderRequest);
} catch (RazorpayException e) {
int httpStatus = e.getStatusCode(); // HTTP status code (e.g. 400)
String code = e.getCode(); // e.g. "BAD_REQUEST_ERROR"
String description = e.getDescription(); // human-readable message
String field = e.getField(); // offending field, if any
String reason = e.getReason();
String source = e.getSource();
String step = e.getStep();
JSONObject metadata = e.getMetadata();
JSONObject raw = e.getErrorResponse(); // full error JSON
}- Make custom requests
You can make custom API requests using clients. For example, here is how to make custom request to /payments/path endpoint.
Entity response = razorpayClient.Payments.post("path", JSONObject requestBody);