Skip to content

Latest commit

 

History

History
343 lines (291 loc) · 10.7 KB

order.md

File metadata and controls

343 lines (291 loc) · 10.7 KB

Orders

Create order

JSONObject orderRequest = new JSONObject();
orderRequest.put("amount",50000);
orderRequest.put("currency","INR");
orderRequest.put("receipt", "receipt#1");
JSONObject notes = new JSONObject();
notes.put("notes_key_1","Tea, Earl Grey, Hot");
notes.put("notes_key_1","Tea, Earl Grey, Hot");
orderRequest.put("notes",notes);

Order order = instance.orders.create(orderRequest);

Parameters:

Name Type Description
amount* integer Amount of the order to be paid
currency* string Currency of the order. Currently only INR is supported.
receipt string Your system order reference id.
notes object A key-value pair
partial_payment boolean Indicates whether customers can make partial payments on the invoice . Possible values: true - Customer can make partial payments. false (default) - Customer cannot make partial payments.

Response:

{
  "id": "order_EKwxwAgItmmXdp",
  "entity": "order",
  "amount": 50000,
  "amount_paid": 0,
  "amount_due": 50000,
  "currency": "INR",
  "receipt": "receipt#1",
  "offer_id": null,
  "status": "created",
  "attempts": 0,
  "notes": [],
  "created_at": 1582628071
}

Create order (Third party validation)

JSONObject orderRequest = new JSONObject();
orderRequest.put("amount",50000);
orderRequest.put("method","netbanking");
orderRequest.put("receipt","BILL13375649");
orderRequest.put("currency","INR");
JSONObject bankAccount = new JSONObject();
bankAccount.put("account_number","765432123456789");
bankAccount.put("name","Gaurav Kumar");
bankAccount.put("ifsc","HDFC0000053");
orderRequest.put("bank_account",bankAccount);

Order order = instance.orders.create(orderRequest);

Parameters:

Name Type Description
amount* integer Amount of the order to be paid
method string The payment method used to make the payment. If this parameter is not passed, customers will be able to make payments using both netbanking and UPI payment methods. Possible values is netbanking or upi
currency* string Currency of the order. Currently only INR is supported.
receipt string Your system order reference id.
bank_account object All keys listed here are supported

Response:

{
  "id": "order_GAWN9beXgaqRyO",
  "entity": "order",
  "amount": 500,
  "amount_paid": 0,
  "amount_due": 500,
  "currency": "INR",
  "receipt": "BILL13375649",
  "offer_id": null,
  "status": "created",
  "attempts": 0,
  "notes": [],
  "created_at": 1573044247
}

Fetch all orders

JSONObject params = new JSONObject();
params.put("count","1");

List<Order> order = instance.orders.fetchAll(params);

Parameters

Name Type Description
from timestamp timestamp after which the orders were created
to timestamp timestamp before which the orders were created
count integer number of orders to fetch (default: 10)
skip integer number of orders to be skipped (default: 0)
authorized boolean Orders for which orders are currently in authorized state.
receipt string Orders with the provided value for receipt.
expand[] string Used to retrieve additional information about the payment.Possible value is payments or payments.card, transfers or virtual_account

Response:

{
  "entity": "collection",
  "count": 1,
  "items": [
    {
      "id": "order_EKzX2WiEWbMxmx",
      "entity": "order",
      "amount": 1234,
      "amount_paid": 0,
      "amount_due": 1234,
      "currency": "INR",
      "receipt": "Receipt No. 1",
      "offer_id": null,
      "status": "created",
      "attempts": 0,
      "notes": [],
      "created_at": 1582637108
    }
  ]
}

Fetch particular order

String orderId = "order_DaaS6LOUAASb7Y";

Order order = instance.orders.fetch(orderId);

Parameters

Name Type Description
orderId* string The id of the order to be fetched

Response:

{
  "id":"order_DaaS6LOUAASb7Y",
  "entity":"order",
  "amount":2200,
  "amount_paid":0,
  "amount_due":2200,
  "currency":"INR",
  "receipt":"Receipt #211",
  "status":"attempted",
  "attempts":1,
  "notes":[],
  "created_at":1572505143
}

Fetch payments for an order

String orderId = "order_DaaS6LOUAASb7Y";

List<Payment> payments = instance.orders.fetchPayments(orderId);

Parameters

Name Type Description
orderId* string The id of the order to be retrieve payment info

Response:

{
  "entity":"collection",
  "count":1,
  "items":[
    {
      "id":"pay_DaaSOvhgcOfzgR",
      "entity":"payment",
      "amount":2200,
      "currency":"INR",
      "status":"captured",
      "order_id":"order_DaaS6LOUAASb7Y",
      "invoice_id":null,
      "international":false,
      "method":"card",
      "amount_refunded":0,
      "refund_status":null,
      "captured":true,
      "description":"Beans in every imaginable flavour",
      "card_id":"card_DZon6fd8J3IcA2",
      "bank":null,
      "wallet":null,
      "vpa":null,
      "email":"[email protected]",
      "contact":"+919999999988",
      "notes":[],
      "fee":44,
      "tax":0,
      "error_code":null,
      "error_description":null,
      "created_at":1572505160
    }
  ]
}

Update order

String orderId = "order_DaaS6LOUAASb7Y";

JSONObject orderRequest = new JSONObject();
JSONObject notes = new JSONObject();
notes.put("notes_key_1","Tea, Earl Grey, Hot");
notes.put("notes_key_1","Tea, Earl Grey, Hot");
orderRequest.put("notes",notes);
              
Order order = instance.orders.edit(orderId,orderRequest);

Parameters

Name Type Description
orderId* string The id of the order to be retrieve payment info
notes* object A key-value pair

Response:

{
  "id":"order_DaaS6LOUAASb7Y",
  "entity":"order",
  "amount":2200,
  "amount_paid":0,
  "amount_due":2200,
  "currency":"INR",
  "receipt":"Receipt #211",
  "offer_id":null,
  "status":"attempted",
  "attempts":1,
  "notes":{
    "notes_key_1":"Tea, Earl Grey, Hot",
    "notes_key_2":"Tea, Earl Grey… decaf."
  },
  "created_at":1572505143
}

View RTO/Risk Reasons

String orderId = "order_DaaS6LOUAASb7Y";

Order order = instance.orders.viewRtoReview(orderId);

Parameters

Name Type Description
orderId* string The unique identifier of an order to access the rto_review information.

Response:

{
  "risk_tier": "high",
  "rto_reasons": [
    {
      "reason": "short_shipping_address",
      "description": "Short shipping address",
      "bucket": "address"
    },
    {
      "reason": "address_pincode_state_mismatch",
      "description": "Incorrect pincode state entered",
      "bucket": "address"
    }
  ]
}

Update the Fulfillment Details

String orderId = "order_DaaS6LOUAASb7Y";

JSONObject request = new JSONObject();
JSONObject shipping = new JSONObject();
shipping.put("waybill", "123456789");
shipping.put("status", "rto");
shipping.put("provider", "Bluedart");

request.put("payment_method","upi");
request.put("shipping","shipping");

Order order = instance.orders.editFulfillment(orderId, request);

Parameters

Name Type Description
orderId* string The unique identifier of an order to access the fulfillment information.
payment_method string Payment Method opted by the customer to complete the payment. Possible values is upi, card, wallet, netbanking, cod, emi, cardless_emi, paylater, recurring, other.
shipping object Contains the shipping data. here are supported

Response:

{
  "entity": "order.fulfillment",
  "order_id": "EKwxwAgItXXXX",
  "payment_method": "upi",
  "shipping": {
    "waybill": "123456789",
    "status": "rto",
    "provider": "Bluedart"
  }
}

PN: * indicates mandatory fields

For reference click here