## Generic Access point ```rb Razorpay.setup('key_id', 'key_secret') ``` ### Method Signature ```rb Razorpay::Generic.new(entity).do(url, method, payload, version) ``` **Parameters:** | Name | Type | Description | |---------------|-------------|---------------------------------------------| | entity* | string | The endpoint to which the request will be made. (e.g., "contacts" or "accounts") | | url* | string | Add params or query or query (e.g., "/order_000000000000001" or "?count=1") | | method* | string | The HTTP method for the request (e.g., 'Get', 'Post', 'Put', 'Patch', 'Delete'). | | payload | object | The data to be sent with the request.| | version | string | Add version (e.g., "v1" or "v2") | ------------------------------------------------------------------------------------------------------- ### Create a contacts using POST ```rb payload = { "name": "Gaurav Kumar", "email": "gaurav.kumar@example.com", "contact": "9123456789", "type": "employee", "reference_id":"Acme Contact ID 12345", "notes": { "notes_key_1":"Tea, Earl Grey, Hot", "notes_key_2":"Tea, Earl Grey… decaf.", }, } Razorpay::Generic.new("contacts").do("/", "Post", payload) ``` **Response:** ```json { "id": "cont_00000000000001", "entity": "contact", "name": "Gaurav Kumar", "contact": "9123456789", "email": "gaurav.kumar@example.com", "type": "employee", "reference_id": "Acme Contact ID 12345", "batch_id": null, "active": true, "notes": { "notes_key_1": "Tea, Earl Grey, Hot", "notes_key_2": "Tea, Earl Grey… decaf." }, "created_at": 1545320320 } ``` ------------------------------------------------------------------------------------------------------- ### Fetch an order using GET ```rb Razorpay::Generic.new("orders").do("/order_00000000000001", "Get", {}) ``` **Response:** ```json { "amount": 307, "amount_due": 0, "amount_paid": 307, "attempts": 1, "created_at": 1695625101, "currency": "INR", "entity": "order", "id": "order_00000000000001", "notes": [], "offer_id": null, "receipt": "851617", "status": "paid" } ``` ------------------------------------------------------------------------------------------------------- ### Fetch payments of a linked account using headers ```rb Razorpay.headers = {"X-Razorpay-Account" => "acc_00000000000001"} Razorpay::Generic.new("payments").do("/pay_00000000000001", "Get", {}) ``` **Response:** ```json { "entity": "collection", "count": 2, "items": [ { "id": "pay_00000000000001", "entity": "payment", "amount": 10000, "currency": "INR", "status": "captured", "order_id": "order_00000000000001", "invoice_id": null, "international": false, "method": "netbanking", "amount_refunded": 0, "refund_status": null, "captured": true, "description": "#JJCqaOhFihfkVE", "card_id": null, "bank": "YESB", "wallet": null, "vpa": null, "email": "john.example@example.com", "contact": "9999999999", "notes": [], "fee": 236, "tax": 36, "error_code": null, "error_description": null, "error_source": null, "error_step": null, "error_reason": null, "acquirer_data": { "bank_transaction_id": "2118867" }, "created_at": 1649932775 } ] } ``` ------------------------------------------------------------------------------------------------------- **PN: * indicates mandatory fields**