Curlec · Schema
PaymentLink
CompanyPaymentsPayment GatewayRecurring PaymentsSubscriptionDirect DebitFintechMalaysiaDuitNowFPXWebhookRazorpayA2A
Properties
| Name | Type | Description |
|---|---|---|
| id | string | Unique payment link identifier. Prefix: plink_ |
| entity | string | |
| amount | integer | Payment amount in smallest currency unit (paise for INR). Three-decimal currencies (KWD, BHD, OMR): drop last decimal digit (e.g. 295.991 KWD → 295990). Zero-decimal currencies (JPY): pass value as-is |
| amount_paid | integer | Total amount paid by customer. |
| currency | string | ISO 4217 currency code. UPI Payment Links only support INR. |
| accept_partial | boolean | Allow partial payments. Not supported for UPI links. |
| first_min_partial_amount | integer | Minimum amount required for the first partial payment. |
| description | string | Brief description. Max 2048 characters. |
| reference_id | string | Your unique tracking reference. Max 40 characters. Must be unique per link. |
| expire_by | integer | Unix timestamp when link expires. Default: 6 months from creation. Must be at least 15 minutes in the future. |
| expired_at | integer | Unix timestamp when link actually expired. |
| cancelled_at | integer | Unix timestamp when link was cancelled. |
| status | string | created: awaiting payment. partially_paid: one or more partial payments received. expired: past expiry with no full payment. cancelled: manually cancelled. paid: fully paid. |
| upi_link | boolean | true if this is a UPI Payment Link, false for standard. |
| short_url | string | Shareable short URL for the payment link. |
| callback_url | string | Redirect URL after payment completion. |
| callback_method | string | |
| customer | object | Customer contact details. These are not auto-populated on the checkout page — customer must enter them manually. |
| notify | object | |
| reminder_enable | boolean | Send automatic payment reminders. |
| payments | array | Captured payment records. Populated only after successful payment capture. |
| notes | object | |
| order_id | string | |
| user_id | string | Identifier for the user role that created the link. |
| created_at | integer | |
| updated_at | integer |
JSON Schema
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"$id": "https://artifacts.apis.io/curlec/json-schema/curlec-payment-link-schema.json",
"title": "PaymentLink",
"x-generated": "2026-11-04",
"x-method": "derived",
"x-generator": "derive-json-schema.py",
"x-source": "openapi/curlec-payment-links-api-openapi.yml#/components/schemas/PaymentLink",
"type": "object",
"properties": {
"id": {
"type": "string",
"description": "Unique payment link identifier. Prefix: plink_"
},
"entity": {
"type": "string",
"enum": [
"payment_link"
]
},
"amount": {
"type": "integer",
"description": "Payment amount in smallest currency unit (paise for INR). Three-decimal currencies (KWD, BHD, OMR): drop last decimal digit (e.g. 295.991 KWD → 295990). Zero-decimal currencies (JPY): pass value as-is."
},
"amount_paid": {
"type": "integer",
"description": "Total amount paid by customer."
},
"currency": {
"type": "string",
"default": "INR",
"description": "ISO 4217 currency code. UPI Payment Links only support INR."
},
"accept_partial": {
"type": "boolean",
"description": "Allow partial payments. Not supported for UPI links."
},
"first_min_partial_amount": {
"type": "integer",
"description": "Minimum amount required for the first partial payment."
},
"description": {
"type": "string",
"description": "Brief description. Max 2048 characters."
},
"reference_id": {
"type": "string",
"description": "Your unique tracking reference. Max 40 characters. Must be unique per link."
},
"expire_by": {
"type": "integer",
"description": "Unix timestamp when link expires. Default: 6 months from creation. Must be at least 15 minutes in the future."
},
"expired_at": {
"type": "integer",
"description": "Unix timestamp when link actually expired."
},
"cancelled_at": {
"type": "integer",
"description": "Unix timestamp when link was cancelled."
},
"status": {
"type": "string",
"enum": [
"created",
"partially_paid",
"expired",
"cancelled",
"paid"
],
"description": "created: awaiting payment. partially_paid: one or more partial payments received. expired: past expiry with no full payment. cancelled: manually cancelled. paid: fully paid."
},
"upi_link": {
"type": "boolean",
"description": "true if this is a UPI Payment Link, false for standard."
},
"short_url": {
"type": "string",
"description": "Shareable short URL for the payment link."
},
"callback_url": {
"type": "string",
"description": "Redirect URL after payment completion."
},
"callback_method": {
"type": "string",
"enum": [
"get"
]
},
"customer": {
"type": "object",
"description": "Customer contact details. These are not auto-populated on the checkout page — customer must enter them manually.",
"properties": {
"name": {
"type": "string"
},
"email": {
"type": "string"
},
"contact": {
"type": "string"
}
}
},
"notify": {
"type": "object",
"properties": {
"sms": {
"type": "boolean",
"description": "true: Razorpay sends SMS notification. false: merchant handles."
},
"email": {
"type": "boolean",
"description": "true: Razorpay sends email notification. false: merchant handles."
}
}
},
"reminder_enable": {
"type": "boolean",
"description": "Send automatic payment reminders."
},
"payments": {
"type": "array",
"description": "Captured payment records. Populated only after successful payment capture.",
"items": {
"type": "object",
"properties": {
"amount": {
"type": "integer"
},
"payment_id": {
"type": "string"
},
"plink_id": {
"type": "string"
},
"method": {
"type": "string",
"enum": [
"netbanking",
"card",
"wallet",
"upi",
"emi",
"bank_transfer"
]
},
"status": {
"type": "string",
"enum": [
"captured"
]
},
"created_at": {
"type": "integer"
},
"updated_at": {
"type": "integer"
}
}
}
},
"notes": {
"$ref": "#/$defs/Notes"
},
"order_id": {
"type": "string"
},
"user_id": {
"type": "string",
"description": "Identifier for the user role that created the link."
},
"created_at": {
"type": "integer"
},
"updated_at": {
"type": "integer"
}
},
"$defs": {
"Notes": {
"type": "object",
"description": "Key-value pairs for storing custom metadata. Maximum 15 pairs. Each key and value must not exceed 256 characters.",
"additionalProperties": {
"type": "string"
},
"maxProperties": 15
}
}
}
Work with this as data
Every JSON Schema here is available over the APIs.io API and to AI agents over MCP.
MCP server
One button, every client — Claude, Cursor, VS Code and the rest.
https://apis.io/mcp
Tools for schemas
4 MCP tools reach this
find_json_schemasBrowse and filter every JSON Schema in the catalog.apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.resolveTurn a domain, URL or GitHub org into the provider it belongs to.find_cohortsEvery scored population of providers in the catalog.
Call it yourself
curl for this page
This JSON Schema
curl "https://apis.io/api/v1/json-schemas/curlec-payment-link"
All schemas
curl "https://apis.io/api/v1/json-schemas?limit=25"
Calls without X-API-Key need no key. Calls with it need a paid plan — get a key.
Get an API key
Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.
A second provider on the same verified email joins the account you already have.