Read Instamojo payment requests, payments and refunds; create payment links and refund payments.
Maintain this server? Claim it
Call this server's tools from your browser. Nothing to install.
Requests go through mcptry because browsers can't call most MCP servers directly. Header values are sent to the server for that request only and are never stored or logged.
Tool list from our last check. Connect live to refresh it.
WRITE: create a payment request (a payment link) and return its id and URLs (longurl, shorturl) to share with the buyer. Amount is in INR. The buyer is NOT emailed or texted unless send_email / send_sms is true (they then need email / phone). Nothing is charged; the buyer pays on the link. POST /payment-requests/.
Amount in INR (Instamojo documents a minimum of 9 and a maximum of 200000 per request).
What the payment is for (shown to the buyer). Often used as your own order reference.
Email of the payer (required when send_email is true).
Phone number of the payer (required when send_sms is true).
URL Instamojo POSTs the payment details to after a payment.
true = Instamojo texts the link to the payer (needs phone). Default false: nothing is sent.
Name of the payer.
true = Instamojo emails the link to the payer (needs email). Default false: nothing is sent.
URL the buyer is redirected to after paying (Instamojo appends payment_request_id, payment_status and payment_id).
true = the link accepts several payments (Instamojo's default); false = one payment only.
This tool isn't marked read-only, so it may change something on the server or in an account you connected.
WRITE: create a payment request (a payment link) and return its id and URLs (longurl, shorturl) to share with the buyer. Amount is in INR. The buyer is NOT emailed or texted unless send_email / send_sms is true (they then need email / phone). Nothing is charged; the buyer pays on the link. POST /payment-requests/.
| Argument | Type | Description |
|---|---|---|
| string | Email of the payer (required when send_email is true). | |
| phone | string | Phone number of the payer (required when send_sms is true). |
| amount* | number | Amount in INR (Instamojo documents a minimum of 9 and a maximum of 200000 per request). |
| purpose* | string | What the payment is for (shown to the buyer). Often used as your own order reference. |
| webhook | string | URL Instamojo POSTs the payment details to after a payment. |
| send_sms | boolean | true = Instamojo texts the link to the payer (needs phone). Default false: nothing is sent. |
| buyer_name | string | Name of the payer. |
| send_email | boolean | true = Instamojo emails the link to the payer (needs email). Default false: nothing is sent. |
| redirect_url | string | URL the buyer is redirected to after paying (Instamojo appends payment_request_id, payment_status and payment_id). |
| allow_repeated_payments | boolean | true = the link accepts several payments (Instamojo's default); false = one payment only. |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"amount",
"purpose"
],
"properties": {
"email": {
"type": "string",
"format": "email",
"pattern": "^(?:[A-Za-z0-9_'+\\-]+\\.)*[A-Za-z0-9_'+\\-]*[A-Za-z0-9_+-]@(?:[A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$",
"maxLength": 200,
"description": "Email of the payer (required when send_email is true)."
},
"phone": {
"type": "string",
"maxLength": 20,
"minLength": 5,
"description": "Phone number of the payer (required when send_sms is true)."
},
"amount": {
"type": "number",
"maximum": 10000000,
"description": "Amount in INR (Instamojo documents a minimum of 9 and a maximum of 200000 per request).",
"exclusiveMinimum": 0
},
"purpose": {
"type": "string",
"maxLength": 255,
"minLength": 1,
"description": "What the payment is for (shown to the buyer). Often used as your own order reference."
},
"webhook": {
"type": "string",
"format": "uri",
"maxLength": 500,
"description": "URL Instamojo POSTs the payment details to after a payment."
},
"send_sms": {
"type": "boolean",
"description": "true = Instamojo texts the link to the payer (needs phone). Default false: nothing is sent."
},
"buyer_name": {
"type": "string",
"maxLength": 100,
"minLength": 1,
"description": "Name of the payer."
},
"send_email": {
"type": "boolean",
"description": "true = Instamojo emails the link to the payer (needs email). Default false: nothing is sent."
},
"redirect_url": {
"type": "string",
"format": "uri",
"maxLength": 500,
"description": "URL the buyer is redirected to after paying (Instamojo appends payment_request_id, payment_status and payment_id)."
},
"allow_repeated_payments": {
"type": "boolean",
"description": "true = the link accepts several payments (Instamojo's default); false = one payment only."
}
}
}WRITE (moves money): refund a payment, in full or in part. Instamojo allows only ONE refund per payment, so a partial refund cannot be topped up later. Without confirm: true nothing is sent and the call returns a preview of the refund; ask the user to confirm, then call again with confirm: true. Reason types: RFD = duplicate/delayed payment, TNR = product/service no longer available, QFL = customer not satisfied, QNR = product lost/damaged, EWN = digital download issue, TAN = event was canceled/changed, PTH = problem not described above. POST /refunds/.
| Argument | Type | Description |
|---|---|---|
| body* | string | Text explaining the refund. |
| type* | string | Reason code. RFD = duplicate/delayed payment, TNR = product/service no longer available, QFL = customer not satisfied, QNR = product lost/damaged, EWN = digital download issue, TAN = event was canceled/changed, PTH = problem not described above. |
| confirm | boolean | Must be true to actually create the refund; otherwise only a preview is returned. |
| payment_id* | string | Payment id (MOJO...) of the payment to refund. |
| refund_amount | number | Amount to refund in INR; default the full paid amount. |
| transaction_id | string |
WRITE: disable a payment request so its link no longer accepts payments (instamojo_enable_payment_request undoes it). Existing payments are not touched. POST /payment-requests/{id}/disable/.
| Argument | Type | Description |
|---|---|---|
| payment_request_id* | string | Payment request id. |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"payment_request_id"
],
"properties": {
"payment_request_id": {
"type": "string",
"pattern": "^[A-Za-z0-9_-]{1,64}$",
"description": "Payment request id."
}
}
}WRITE: enable a previously disabled payment request so its link accepts payments again. POST /payment-requests/{id}/enable/.
| Argument | Type | Description |
|---|---|---|
| payment_request_id* | string | Payment request id. |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"payment_request_id"
],
"properties": {
"payment_request_id": {
"type": "string",
"pattern": "^[A-Za-z0-9_-]{1,64}$",
"description": "Payment request id."
}
}
}One payment by its id (MOJO...): status (Credit = paid, Failed), amount, fees, buyer, instrument (card, UPI, netbanking, wallet), failure reason, payout and the payment request it belongs to. GET /payments/{id}/.
| Argument | Type | Description |
|---|---|---|
| payment_id* | string | Payment id, e.g. MOJO5a06005J21512197 (from instamojo_get_payment_request). |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"payment_id"
],
"properties": {
"payment_id": {
"type": "string",
"pattern": "^[A-Za-z0-9_-]{1,64}$",
"description": "Payment id, e.g. MOJO5a06005J21512197 (from instamojo_get_payment_request)."
}
}
}One payment request by id, with its status and the payments made against it (the payment ids go to instamojo_get_payment). GET /payment-requests/{id}/.
| Argument | Type | Description |
|---|---|---|
| payment_request_id* | string | Payment request id (a 32-character hex id from instamojo_list_payment_requests). |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"payment_request_id"
],
"properties": {
"payment_request_id": {
"type": "string",
"pattern": "^[A-Za-z0-9_-]{1,64}$",
"description": "Payment request id (a 32-character hex id from instamojo_list_payment_requests)."
}
}
}One refund by its id (the case id from instamojo_list_refunds, e.g. C5c0751272). GET /refunds/{id}/.
| Argument | Type | Description |
|---|---|---|
| refund_id* | string | Refund id (case id). |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"refund_id"
],
"properties": {
"refund_id": {
"type": "string",
"pattern": "^[A-Za-z0-9_-]{1,64}$",
"description": "Refund id (case id)."
}
}
}List the payment requests (payment links) of the account with id, purpose, amount (INR), buyer, status (Pending, Sent, Failed, Completed), short and long URL and timestamps. Paged: use next_page. GET /payment-requests/.
| Argument | Type | Description |
|---|---|---|
| page | integer | Page number, 1-based (default 1). Use next_page from the previous reply. |
| limit | integer | Rows per page, 1-500 (default 50). |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"page": {
"type": "integer",
"maximum": 100000,
"minimum": 1,
"description": "Page number, 1-based (default 1). Use next_page from the previous reply."
},
"limit": {
"type": "integer",
"maximum": 500,
"minimum": 1,
"description": "Rows per page, 1-500 (default 50)."
}
}
}List refunds with id (case id), payment id, status, reason type, refund and total amount (INR) and date. Paged: use next_page. GET /refunds/.
| Argument | Type | Description |
|---|---|---|
| page | integer | Page number, 1-based (default 1). Use next_page from the previous reply. |
| limit | integer | Rows per page, 1-500 (default 50). |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"properties": {
"page": {
"type": "integer",
"maximum": 100000,
"minimum": 1,
"description": "Page number, 1-based (default 1). Use next_page from the previous reply."
},
"limit": {
"type": "integer",
"maximum": 500,
"minimum": 1,
"description": "Rows per page, 1-500 (default 50)."
}
}
}| Your own unique id for this refund case; Instamojo uses it to refuse a replayed call (mandatory from the second refund case onwards). |
{
"type": "object",
"$schema": "https://json-schema.org/draft/2020-12/schema",
"required": [
"payment_id",
"type",
"body"
],
"properties": {
"body": {
"type": "string",
"maxLength": 500,
"minLength": 1,
"description": "Text explaining the refund."
},
"type": {
"enum": [
"RFD",
"TNR",
"QFL",
"QNR",
"EWN",
"TAN",
"PTH"
],
"type": "string",
"description": "Reason code. RFD = duplicate/delayed payment, TNR = product/service no longer available, QFL = customer not satisfied, QNR = product lost/damaged, EWN = digital download issue, TAN = event was canceled/changed, PTH = problem not described above."
},
"confirm": {
"type": "boolean",
"description": "Must be true to actually create the refund; otherwise only a preview is returned."
},
"payment_id": {
"type": "string",
"pattern": "^[A-Za-z0-9_-]{1,64}$",
"description": "Payment id (MOJO...) of the payment to refund."
},
"refund_amount": {
"type": "number",
"maximum": 10000000,
"description": "Amount to refund in INR; default the full paid amount.",
"exclusiveMinimum": 0
},
"transaction_id": {
"type": "string",
"pattern": "^[A-Za-z0-9_-]+$",
"maxLength": 64,
"minLength": 1,
"description": "Your own unique id for this refund case; Instamojo uses it to refuse a replayed call (mandatory from the second refund case onwards)."
}
}
}