Python bindings for interacting with the Razorpay API
This is primarily meant for merchants who wish to perform interactions with the Razorpay API programatically.
$ pip install razorpay
You need to setup your key and secret using the following: You can find your API keys at https://dashboard.razorpay.com/#/app/keys.
import razorpay
client = razorpay.Client(auth=("<YOUR_API_KEY>", "<YOUR_API_SECRET>"))
After setting up client, you can set your app details before making any request to Razorpay using the following:
client.set_app_details({"title" : "<YOUR_APP_TITLE>", "version" : "<YOUR_APP_VERSION>"})
For example, you can set the title to Django
and version to 1.8.17
. Please ensure
that both app title and version are strings.
-
Fetch all payments
client.payment.all()
-
Fetch a particular payment
client.payment.fetch("<PAYMENT_ID>")
-
Capture a payment
client.payment.capture("<PAYMENT_ID>", "<AMOUNT>") Note: <AMOUNT> should be same as the original amount while creating the payment
-
Refund a payment
client.payment.refund("<PAYMENT_ID>", "<AMOUNT>") # for full refund client.payment.refund("<PAYMENT_ID>", "<AMOUNT_TO_BE_REFUNDED>") # for particular amount Note: <AMOUNT_TO_BE_REFUNDED> should be equal/less than the original amount
-
fetch a particular refund
client.refund.fetch("<refund_id>")
-
fetch all refunds
client.refund.all()
-
Create a new order
client.order.create(data=DATA) DATA should contain these keys amount : amount of order currency : currency of order receipt : receipt id of order payment_capture : 1 if capture should be done automatically or else 0 notes(optional) : optional notes for order
-
fetch a particular order
client.order.fetch("<ORDER_ID>")
-
fetch all orders
client.order.all()
-
fetch Payments of order
client.order.payments("<ORDER_ID>")
-
Create a new invoice
client.invoice.create(data=DATA)
For List of params refer to this :- https://docs.razorpay.com/v1/page/invoices#v1invoices
-
fetch a particular invoice
client.invoice.fetch("<INVOICE_ID>")
-
fetch all invoices
client.invoice.all()
-
fetch a particular card data
client.card.fetch(card_id=card_id)
-
fetch a particular customer Info
client.customer.fetch(customer_id=customer_id)
-
Create a customer
client.customer.create(data=data)
-
Edit a customer info
client.customer.edit(customer_id=customer_id, data=data)
-
fetch a token associated with a customer
client.token.fetch(customer_id=customer_id, token_id=token_id)
-
fetch all tokens associated with customer
client.token.all(customer_id=customer_id)
-
Delete a given token assicated with a customer
client.token.delete(customer_id=customer_id, token_id=token_id)
-
Verify Payment Signature
params_dict should have razorpay_order_id, razorpay_payment_id, razorpay_signature which are received with the cord callback client.utility.verify_payment_signature(params_dict)
-
fetch all tokens associated with customer
client.token.all(customer_id=customer_id)
-
Delete a given token assicated with a customer
client.token.delete(customer_id=customer_id, token_id=token_id)
-
Stringify a payment method for an invoice/receipt
client.utility.strf_payment_method(payment_info) # Where payment_info is the dict returned by client.payment.capture and client.payment.fetch # or one of the items in the client.payment.all response
-
All available payment methods
client.utility.payment_methods
All of those are welcome. You can file issues or submit pull requests in this repository.