@ekoindia/eps-transact-mcp 0.1.20 → 0.1.22
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/data/eps.json +608 -0
- package/package.json +2 -2
package/data/eps.json
CHANGED
|
@@ -23547,5 +23547,613 @@
|
|
|
23547
23547
|
}
|
|
23548
23548
|
]
|
|
23549
23549
|
}
|
|
23550
|
+
],
|
|
23551
|
+
"sdks": [
|
|
23552
|
+
{
|
|
23553
|
+
"lang": "javascript",
|
|
23554
|
+
"slug": "nodejs",
|
|
23555
|
+
"title": "Node.js SDK",
|
|
23556
|
+
"summary": "Backend-only Node.js client for every EPS API, with HMAC signing, input validation and typed errors built in.",
|
|
23557
|
+
"packageName": "@ekoindia/eps-sdk",
|
|
23558
|
+
"installCommand": "npm i @ekoindia/eps-sdk",
|
|
23559
|
+
"registry": "npm",
|
|
23560
|
+
"registryUrl": "https://www.npmjs.com/package/@ekoindia/eps-sdk",
|
|
23561
|
+
"minRuntime": "Node.js 18 or newer",
|
|
23562
|
+
"dependencies": "None — standard library only (`node:crypto`, global `fetch`).",
|
|
23563
|
+
"sourceUrl": "https://github.com/ekoindia/eps-platform/tree/main/packages/sdk-js",
|
|
23564
|
+
"docsUrl": "https://eps.eko.in/docs/sdk/nodejs",
|
|
23565
|
+
"config": [
|
|
23566
|
+
{
|
|
23567
|
+
"name": "developerKey",
|
|
23568
|
+
"type": "string",
|
|
23569
|
+
"required": true,
|
|
23570
|
+
"description": "Your EPS developer key, sent as the `developer_key` header."
|
|
23571
|
+
},
|
|
23572
|
+
{
|
|
23573
|
+
"name": "accessKey",
|
|
23574
|
+
"type": "string",
|
|
23575
|
+
"required": true,
|
|
23576
|
+
"description": "Server-side secret used to sign every request. Never ships to a browser."
|
|
23577
|
+
},
|
|
23578
|
+
{
|
|
23579
|
+
"name": "environment",
|
|
23580
|
+
"type": "\"sandbox\" | \"production\"",
|
|
23581
|
+
"required": true,
|
|
23582
|
+
"description": "Selects the base URL from the embedded surface."
|
|
23583
|
+
},
|
|
23584
|
+
{
|
|
23585
|
+
"name": "initiatorId",
|
|
23586
|
+
"type": "string",
|
|
23587
|
+
"required": false,
|
|
23588
|
+
"description": "Default `initiator_id` (registered mobile of the API user) injected into every call."
|
|
23589
|
+
},
|
|
23590
|
+
{
|
|
23591
|
+
"name": "userCode",
|
|
23592
|
+
"type": "string",
|
|
23593
|
+
"required": false,
|
|
23594
|
+
"description": "Default `user_code` (retailer/agent code) injected into every call."
|
|
23595
|
+
},
|
|
23596
|
+
{
|
|
23597
|
+
"name": "timeoutMs",
|
|
23598
|
+
"type": "number",
|
|
23599
|
+
"required": false,
|
|
23600
|
+
"units": "milliseconds, default 30_000",
|
|
23601
|
+
"description": "Aborts a request that takes longer. Named for its unit — Python and PHP use seconds."
|
|
23602
|
+
},
|
|
23603
|
+
{
|
|
23604
|
+
"name": "fetch",
|
|
23605
|
+
"type": "typeof fetch",
|
|
23606
|
+
"required": false,
|
|
23607
|
+
"description": "Inject a custom fetch implementation (proxies, tests)."
|
|
23608
|
+
}
|
|
23609
|
+
],
|
|
23610
|
+
"members": [
|
|
23611
|
+
{
|
|
23612
|
+
"kind": "class",
|
|
23613
|
+
"name": "EpsClient",
|
|
23614
|
+
"signature": "new EpsClient(options: EpsClientOptions)",
|
|
23615
|
+
"description": "The client. Throws immediately if constructed where `window` exists — `accessKey` must never reach a browser."
|
|
23616
|
+
},
|
|
23617
|
+
{
|
|
23618
|
+
"kind": "method",
|
|
23619
|
+
"name": "call",
|
|
23620
|
+
"signature": "client.call<T = unknown>(slug: string, params?: Record<string, unknown>): Promise<T>",
|
|
23621
|
+
"description": "Validates, signs and sends one endpoint call; resolves with the decoded envelope."
|
|
23622
|
+
},
|
|
23623
|
+
{
|
|
23624
|
+
"kind": "function",
|
|
23625
|
+
"name": "signSecretKey",
|
|
23626
|
+
"signature": "signSecretKey(accessKey: string, timestamp: string): string",
|
|
23627
|
+
"description": "The raw signing primitive, exported for debugging. `call()` applies it for you."
|
|
23628
|
+
},
|
|
23629
|
+
{
|
|
23630
|
+
"kind": "constant",
|
|
23631
|
+
"name": "MULTIPART_JSON_FIELD",
|
|
23632
|
+
"signature": "MULTIPART_JSON_FIELD = \"form-data\"",
|
|
23633
|
+
"description": "Name of the single form field carrying the JSON envelope on file-upload endpoints."
|
|
23634
|
+
},
|
|
23635
|
+
{
|
|
23636
|
+
"kind": "type",
|
|
23637
|
+
"name": "EpsClientOptions",
|
|
23638
|
+
"signature": "interface EpsClientOptions",
|
|
23639
|
+
"description": "The constructor options above."
|
|
23640
|
+
},
|
|
23641
|
+
{
|
|
23642
|
+
"kind": "type",
|
|
23643
|
+
"name": "SdkEndpoint / SdkParam",
|
|
23644
|
+
"signature": "interface SdkEndpoint, interface SdkParam",
|
|
23645
|
+
"description": "Shape of one endpoint in the embedded surface (slug, method, path, params)."
|
|
23646
|
+
}
|
|
23647
|
+
],
|
|
23648
|
+
"errorTypes": [
|
|
23649
|
+
{
|
|
23650
|
+
"name": "EpsHttpError",
|
|
23651
|
+
"when": "Any non-2xx response.",
|
|
23652
|
+
"fields": "`status`, `url`, `body` (decoded envelope or null), `raw`"
|
|
23653
|
+
},
|
|
23654
|
+
{
|
|
23655
|
+
"name": "EpsError",
|
|
23656
|
+
"when": "Unknown slug, missing required param, wrong param type, bad option, or a 2xx body that is not JSON. `EpsHttpError` extends it."
|
|
23657
|
+
},
|
|
23658
|
+
{
|
|
23659
|
+
"name": "TimeoutError (DOMException)",
|
|
23660
|
+
"when": "The request exceeded `timeoutMs`. Surfaced raw, as Node reports it."
|
|
23661
|
+
}
|
|
23662
|
+
],
|
|
23663
|
+
"fileValues": [
|
|
23664
|
+
"A local file path (read from disk; the filename is the basename)",
|
|
23665
|
+
"A `Blob` or `File` (a `File` keeps its own name)"
|
|
23666
|
+
],
|
|
23667
|
+
"notes": [
|
|
23668
|
+
"ESM only (`\"type\": \"module\"`). Use `import`, or `await import()` from CommonJS.",
|
|
23669
|
+
"A per-call cancellation signal is not supported yet — `timeoutMs` is the only abort source."
|
|
23670
|
+
],
|
|
23671
|
+
"example": "import { EpsClient } from \"@ekoindia/eps-sdk\";\n\nconst client = new EpsClient({\n developerKey: process.env.EPS_DEVELOPER_KEY,\n accessKey: process.env.EPS_ACCESS_KEY,\n initiatorId: \"9962981729\",\n environment: \"sandbox\",\n});\n\nconst result = await client.call(\"pan-lite\", {\n \"pan_number\": \"ABCDE1234F\",\n \"name\": \"Rajesh Kumar\",\n \"dob\": \"1994-08-29\"\n});\nconsole.log(result);"
|
|
23672
|
+
},
|
|
23673
|
+
{
|
|
23674
|
+
"lang": "python",
|
|
23675
|
+
"slug": "python",
|
|
23676
|
+
"title": "Python SDK",
|
|
23677
|
+
"summary": "Backend-only Python client for every EPS API, dependency-free and typed, with HMAC signing built in.",
|
|
23678
|
+
"packageName": "eps-sdk",
|
|
23679
|
+
"installCommand": "pip install eps-sdk",
|
|
23680
|
+
"registry": "PyPI",
|
|
23681
|
+
"registryUrl": "https://pypi.org/project/eps-sdk/",
|
|
23682
|
+
"minRuntime": "Python 3.9 or newer",
|
|
23683
|
+
"dependencies": "None — standard library only (`urllib`, `hmac`, `hashlib`, `mimetypes`).",
|
|
23684
|
+
"sourceUrl": "https://github.com/ekoindia/eps-platform/tree/main/packages/sdk-python",
|
|
23685
|
+
"docsUrl": "https://eps.eko.in/docs/sdk/python",
|
|
23686
|
+
"config": [
|
|
23687
|
+
{
|
|
23688
|
+
"name": "developer_key",
|
|
23689
|
+
"type": "str",
|
|
23690
|
+
"required": true,
|
|
23691
|
+
"description": "Your EPS developer key, sent as the `developer_key` header."
|
|
23692
|
+
},
|
|
23693
|
+
{
|
|
23694
|
+
"name": "access_key",
|
|
23695
|
+
"type": "str",
|
|
23696
|
+
"required": true,
|
|
23697
|
+
"description": "Server-side secret used to sign every request. Never ships to a browser."
|
|
23698
|
+
},
|
|
23699
|
+
{
|
|
23700
|
+
"name": "environment",
|
|
23701
|
+
"type": "\"sandbox\" | \"production\"",
|
|
23702
|
+
"required": true,
|
|
23703
|
+
"description": "Selects the base URL from the embedded surface."
|
|
23704
|
+
},
|
|
23705
|
+
{
|
|
23706
|
+
"name": "initiator_id",
|
|
23707
|
+
"type": "str",
|
|
23708
|
+
"required": false,
|
|
23709
|
+
"description": "Default `initiator_id` (registered mobile of the API user) injected into every call."
|
|
23710
|
+
},
|
|
23711
|
+
{
|
|
23712
|
+
"name": "user_code",
|
|
23713
|
+
"type": "str",
|
|
23714
|
+
"required": false,
|
|
23715
|
+
"description": "Default `user_code` (retailer/agent code) injected into every call."
|
|
23716
|
+
},
|
|
23717
|
+
{
|
|
23718
|
+
"name": "timeout",
|
|
23719
|
+
"type": "float",
|
|
23720
|
+
"required": false,
|
|
23721
|
+
"units": "seconds, default 30.0",
|
|
23722
|
+
"description": "Whole-request budget passed through to `urlopen`."
|
|
23723
|
+
}
|
|
23724
|
+
],
|
|
23725
|
+
"members": [
|
|
23726
|
+
{
|
|
23727
|
+
"kind": "class",
|
|
23728
|
+
"name": "EpsClient",
|
|
23729
|
+
"signature": "EpsClient(developer_key, access_key, environment, initiator_id=None, user_code=None, timeout=30.0)",
|
|
23730
|
+
"description": "The client — a dataclass, so keyword arguments read well."
|
|
23731
|
+
},
|
|
23732
|
+
{
|
|
23733
|
+
"kind": "method",
|
|
23734
|
+
"name": "call",
|
|
23735
|
+
"signature": "client.call(slug: str, params: Mapping[str, Any] | None = None) -> Any",
|
|
23736
|
+
"description": "Validates, signs and sends one endpoint call; returns the decoded envelope."
|
|
23737
|
+
},
|
|
23738
|
+
{
|
|
23739
|
+
"kind": "method",
|
|
23740
|
+
"name": "resolve_target",
|
|
23741
|
+
"signature": "client.resolve_target(slug, params=None) -> Target",
|
|
23742
|
+
"description": "The signed method/url/body/headers for a call, without sending it. Useful for debugging."
|
|
23743
|
+
},
|
|
23744
|
+
{
|
|
23745
|
+
"kind": "method",
|
|
23746
|
+
"name": "build_headers",
|
|
23747
|
+
"signature": "client.build_headers(multipart: bool = False) -> dict[str, str]",
|
|
23748
|
+
"description": "The four auth headers for a single request."
|
|
23749
|
+
},
|
|
23750
|
+
{
|
|
23751
|
+
"kind": "function",
|
|
23752
|
+
"name": "sign_secret_key",
|
|
23753
|
+
"signature": "sign_secret_key(access_key: str, timestamp: str) -> str",
|
|
23754
|
+
"description": "The raw signing primitive, exported for debugging."
|
|
23755
|
+
},
|
|
23756
|
+
{
|
|
23757
|
+
"kind": "constant",
|
|
23758
|
+
"name": "MULTIPART_JSON_FIELD",
|
|
23759
|
+
"signature": "MULTIPART_JSON_FIELD = \"form-data\"",
|
|
23760
|
+
"description": "Name of the single form field carrying the JSON envelope on file-upload endpoints."
|
|
23761
|
+
},
|
|
23762
|
+
{
|
|
23763
|
+
"kind": "type",
|
|
23764
|
+
"name": "Target",
|
|
23765
|
+
"signature": "@dataclass Target(method, url, body, headers, multipart)",
|
|
23766
|
+
"description": "What `resolve_target` returns."
|
|
23767
|
+
}
|
|
23768
|
+
],
|
|
23769
|
+
"errorTypes": [
|
|
23770
|
+
{
|
|
23771
|
+
"name": "EpsHttpError",
|
|
23772
|
+
"when": "Any non-2xx response.",
|
|
23773
|
+
"fields": "`.status`, `.url`, `.body` (decoded envelope or None), `.raw` (bytes)"
|
|
23774
|
+
},
|
|
23775
|
+
{
|
|
23776
|
+
"name": "EpsError",
|
|
23777
|
+
"when": "Unknown slug, missing required param, wrong param type, bad config, or a 2xx body that is not JSON. `EpsHttpError` subclasses it."
|
|
23778
|
+
},
|
|
23779
|
+
{
|
|
23780
|
+
"name": "urllib.error.URLError",
|
|
23781
|
+
"when": "Transport failure or timeout. Surfaced raw."
|
|
23782
|
+
}
|
|
23783
|
+
],
|
|
23784
|
+
"fileValues": [
|
|
23785
|
+
"A path `str` or `os.PathLike` (the MIME type is guessed, falling back to `application/octet-stream`)",
|
|
23786
|
+
"An in-memory `(filename, bytes)` tuple"
|
|
23787
|
+
],
|
|
23788
|
+
"notes": [
|
|
23789
|
+
"Paths are checked for existence during validation, so a typo fails before the request is signed."
|
|
23790
|
+
],
|
|
23791
|
+
"example": "import os\n\nfrom eps_sdk import EpsClient\n\nclient = EpsClient(\n developer_key=os.environ[\"EPS_DEVELOPER_KEY\"],\n access_key=os.environ[\"EPS_ACCESS_KEY\"],\n initiator_id=\"9962981729\",\n environment=\"sandbox\",\n)\n\nresult = client.call(\"pan-lite\", {\n \"pan_number\": \"ABCDE1234F\",\n \"name\": \"Rajesh Kumar\",\n \"dob\": \"1994-08-29\",\n})\nprint(result)"
|
|
23792
|
+
},
|
|
23793
|
+
{
|
|
23794
|
+
"lang": "php",
|
|
23795
|
+
"slug": "php",
|
|
23796
|
+
"title": "PHP SDK",
|
|
23797
|
+
"summary": "Backend-only PHP client for every EPS API, with HMAC signing, input validation and typed errors built in.",
|
|
23798
|
+
"packageName": "ekoindia/eps-sdk",
|
|
23799
|
+
"installCommand": "composer require ekoindia/eps-sdk",
|
|
23800
|
+
"registry": "Packagist",
|
|
23801
|
+
"registryUrl": "https://packagist.org/packages/ekoindia/eps-sdk",
|
|
23802
|
+
"minRuntime": "PHP 8.1 or newer",
|
|
23803
|
+
"dependencies": "None beyond the `curl` and `json` extensions.",
|
|
23804
|
+
"sourceUrl": "https://github.com/ekoindia/eps-platform/tree/main/packages/sdk-php",
|
|
23805
|
+
"docsUrl": "https://eps.eko.in/docs/sdk/php",
|
|
23806
|
+
"installNotes": [
|
|
23807
|
+
"Published from a read-only mirror (`ekoindia/eps-sdk-php`), subtree-split from the monorepo."
|
|
23808
|
+
],
|
|
23809
|
+
"config": [
|
|
23810
|
+
{
|
|
23811
|
+
"name": "$developerKey",
|
|
23812
|
+
"type": "string",
|
|
23813
|
+
"required": true,
|
|
23814
|
+
"description": "Your EPS developer key, sent as the `developer_key` header."
|
|
23815
|
+
},
|
|
23816
|
+
{
|
|
23817
|
+
"name": "$accessKey",
|
|
23818
|
+
"type": "string",
|
|
23819
|
+
"required": true,
|
|
23820
|
+
"description": "Server-side secret used to sign every request. Never ships to a browser."
|
|
23821
|
+
},
|
|
23822
|
+
{
|
|
23823
|
+
"name": "$environment",
|
|
23824
|
+
"type": "\"sandbox\" | \"production\"",
|
|
23825
|
+
"required": true,
|
|
23826
|
+
"description": "Selects the base URL from the embedded surface."
|
|
23827
|
+
},
|
|
23828
|
+
{
|
|
23829
|
+
"name": "$initiatorId",
|
|
23830
|
+
"type": "string",
|
|
23831
|
+
"required": false,
|
|
23832
|
+
"description": "Default `initiator_id` (registered mobile of the API user) injected into every call."
|
|
23833
|
+
},
|
|
23834
|
+
{
|
|
23835
|
+
"name": "$userCode",
|
|
23836
|
+
"type": "string",
|
|
23837
|
+
"required": false,
|
|
23838
|
+
"description": "Default `user_code` (retailer/agent code) injected into every call."
|
|
23839
|
+
},
|
|
23840
|
+
{
|
|
23841
|
+
"name": "$timeout",
|
|
23842
|
+
"type": "float",
|
|
23843
|
+
"required": false,
|
|
23844
|
+
"units": "seconds, default 30.0",
|
|
23845
|
+
"description": "Whole-request budget, applied as `CURLOPT_TIMEOUT_MS` so sub-second values are not truncated."
|
|
23846
|
+
}
|
|
23847
|
+
],
|
|
23848
|
+
"members": [
|
|
23849
|
+
{
|
|
23850
|
+
"kind": "class",
|
|
23851
|
+
"name": "Eko\\Eps\\EpsClient",
|
|
23852
|
+
"signature": "new EpsClient(string $developerKey, string $accessKey, string $environment, ?string $initiatorId = null, ?string $userCode = null, float $timeout = 30.0)",
|
|
23853
|
+
"description": "The client. Use named arguments."
|
|
23854
|
+
},
|
|
23855
|
+
{
|
|
23856
|
+
"kind": "method",
|
|
23857
|
+
"name": "call",
|
|
23858
|
+
"signature": "$client->call(string $slug, array $params = []): array",
|
|
23859
|
+
"description": "Validates, signs and sends one endpoint call; returns the decoded envelope."
|
|
23860
|
+
},
|
|
23861
|
+
{
|
|
23862
|
+
"kind": "method",
|
|
23863
|
+
"name": "resolveTarget",
|
|
23864
|
+
"signature": "$client->resolveTarget(string $slug, array $params = []): array",
|
|
23865
|
+
"description": "The signed url/body/method for a call, without sending it. Exposed for testing."
|
|
23866
|
+
},
|
|
23867
|
+
{
|
|
23868
|
+
"kind": "method",
|
|
23869
|
+
"name": "curlOptions",
|
|
23870
|
+
"signature": "$client->curlOptions(array $target): array",
|
|
23871
|
+
"description": "The cURL option map `call()` uses, including the timeout. Exposed for testing."
|
|
23872
|
+
},
|
|
23873
|
+
{
|
|
23874
|
+
"kind": "method",
|
|
23875
|
+
"name": "decodeResponse",
|
|
23876
|
+
"signature": "EpsClient::decodeResponse(int $status, string $url, string $raw): array",
|
|
23877
|
+
"description": "Static. Applies the shared response contract to one raw response — the seam the conformance tests drive."
|
|
23878
|
+
},
|
|
23879
|
+
{
|
|
23880
|
+
"kind": "method",
|
|
23881
|
+
"name": "signSecretKey",
|
|
23882
|
+
"signature": "EpsClient::signSecretKey(string $accessKey, string $timestamp): string",
|
|
23883
|
+
"description": "Static. The raw signing primitive, exposed for debugging."
|
|
23884
|
+
},
|
|
23885
|
+
{
|
|
23886
|
+
"kind": "constant",
|
|
23887
|
+
"name": "EpsClient::MULTIPART_JSON_FIELD",
|
|
23888
|
+
"signature": "const MULTIPART_JSON_FIELD = 'form-data'",
|
|
23889
|
+
"description": "Name of the single form field carrying the JSON envelope on file-upload endpoints."
|
|
23890
|
+
}
|
|
23891
|
+
],
|
|
23892
|
+
"errorTypes": [
|
|
23893
|
+
{
|
|
23894
|
+
"name": "Eko\\Eps\\EpsHttpException",
|
|
23895
|
+
"when": "Any non-2xx response.",
|
|
23896
|
+
"fields": "`->status`, `->url`, `->body` (decoded envelope or null), `->raw`"
|
|
23897
|
+
},
|
|
23898
|
+
{
|
|
23899
|
+
"name": "Eko\\Eps\\EpsException",
|
|
23900
|
+
"when": "Transport failure, a malformed surface asset, or a 2xx body that is not JSON. Extends `\\RuntimeException`."
|
|
23901
|
+
},
|
|
23902
|
+
{
|
|
23903
|
+
"name": "\\InvalidArgumentException",
|
|
23904
|
+
"when": "Unknown environment or slug, missing required param, wrong param type. SPL already has the right class, and it is a `\\LogicException`, so it cannot share a base with the runtime failures."
|
|
23905
|
+
}
|
|
23906
|
+
],
|
|
23907
|
+
"fileValues": [
|
|
23908
|
+
"A local file path (wrapped in a `CURLFile` for you)",
|
|
23909
|
+
"A `\\CURLFile` you built yourself"
|
|
23910
|
+
],
|
|
23911
|
+
"notes": [
|
|
23912
|
+
"Presence is checked with `isset()`, so a param explicitly set to `null` counts as missing — matching every other SDK."
|
|
23913
|
+
],
|
|
23914
|
+
"example": "<?php\nuse Eko\\Eps\\EpsClient;\n\n$client = new EpsClient(\n developerKey: getenv('EPS_DEVELOPER_KEY'),\n accessKey: getenv('EPS_ACCESS_KEY'),\n initiatorId: '9962981729',\n environment: 'sandbox'\n);\n\n$result = $client->call('pan-lite', [\n 'pan_number' => 'ABCDE1234F',\n 'name' => 'Rajesh Kumar',\n 'dob' => '1994-08-29'\n]);\nprint_r($result);"
|
|
23915
|
+
},
|
|
23916
|
+
{
|
|
23917
|
+
"lang": "go",
|
|
23918
|
+
"slug": "go",
|
|
23919
|
+
"title": "Go SDK",
|
|
23920
|
+
"summary": "Backend-only Go client for every EPS API — standard library only, context-aware, with HMAC signing built in.",
|
|
23921
|
+
"packageName": "github.com/ekoindia/eps-sdk-go",
|
|
23922
|
+
"installCommand": "go get github.com/ekoindia/eps-sdk-go",
|
|
23923
|
+
"registry": "Go modules",
|
|
23924
|
+
"registryUrl": "https://pkg.go.dev/github.com/ekoindia/eps-sdk-go",
|
|
23925
|
+
"minRuntime": "Go 1.22 or newer",
|
|
23926
|
+
"dependencies": "None — `go.mod` has no `require` block and there is no `go.sum`.",
|
|
23927
|
+
"sourceUrl": "https://github.com/ekoindia/eps-platform/tree/main/packages/sdk-go",
|
|
23928
|
+
"docsUrl": "https://eps.eko.in/docs/sdk/go",
|
|
23929
|
+
"installNotes": [
|
|
23930
|
+
"Published from a read-only mirror (`ekoindia/eps-sdk-go`) as a git tag; there is no separate registry."
|
|
23931
|
+
],
|
|
23932
|
+
"config": [
|
|
23933
|
+
{
|
|
23934
|
+
"name": "DeveloperKey",
|
|
23935
|
+
"type": "string",
|
|
23936
|
+
"required": true,
|
|
23937
|
+
"description": "Your EPS developer key, sent as the `developer_key` header."
|
|
23938
|
+
},
|
|
23939
|
+
{
|
|
23940
|
+
"name": "AccessKey",
|
|
23941
|
+
"type": "string",
|
|
23942
|
+
"required": true,
|
|
23943
|
+
"description": "Server-side secret used to sign every request. Never ships to a browser."
|
|
23944
|
+
},
|
|
23945
|
+
{
|
|
23946
|
+
"name": "Environment",
|
|
23947
|
+
"type": "\"sandbox\" | \"production\"",
|
|
23948
|
+
"required": true,
|
|
23949
|
+
"description": "Selects the base URL from the embedded surface."
|
|
23950
|
+
},
|
|
23951
|
+
{
|
|
23952
|
+
"name": "InitiatorID",
|
|
23953
|
+
"type": "string",
|
|
23954
|
+
"required": false,
|
|
23955
|
+
"description": "Default `initiator_id` (registered mobile of the API user) injected into every call."
|
|
23956
|
+
},
|
|
23957
|
+
{
|
|
23958
|
+
"name": "UserCode",
|
|
23959
|
+
"type": "string",
|
|
23960
|
+
"required": false,
|
|
23961
|
+
"description": "Default `user_code` (retailer/agent code) injected into every call."
|
|
23962
|
+
},
|
|
23963
|
+
{
|
|
23964
|
+
"name": "HTTPClient",
|
|
23965
|
+
"type": "*http.Client",
|
|
23966
|
+
"required": false,
|
|
23967
|
+
"units": "default: 30s timeout",
|
|
23968
|
+
"description": "Control timeouts, proxies or retries by supplying your own client."
|
|
23969
|
+
}
|
|
23970
|
+
],
|
|
23971
|
+
"members": [
|
|
23972
|
+
{
|
|
23973
|
+
"kind": "function",
|
|
23974
|
+
"name": "eps.New",
|
|
23975
|
+
"signature": "eps.New(cfg eps.Config) (*eps.Client, error)",
|
|
23976
|
+
"description": "Builds a client. Safe for concurrent use once constructed."
|
|
23977
|
+
},
|
|
23978
|
+
{
|
|
23979
|
+
"kind": "method",
|
|
23980
|
+
"name": "Call",
|
|
23981
|
+
"signature": "client.Call(ctx context.Context, slug string, params map[string]any) (map[string]any, error)",
|
|
23982
|
+
"description": "Validates, signs and sends one endpoint call. The only SDK with per-call cancellation."
|
|
23983
|
+
},
|
|
23984
|
+
{
|
|
23985
|
+
"kind": "method",
|
|
23986
|
+
"name": "ResolveTarget",
|
|
23987
|
+
"signature": "client.ResolveTarget(slug string, params map[string]any) (*eps.Target, error)",
|
|
23988
|
+
"description": "The signed request for a call, without sending it."
|
|
23989
|
+
},
|
|
23990
|
+
{
|
|
23991
|
+
"kind": "method",
|
|
23992
|
+
"name": "BuildHeaders",
|
|
23993
|
+
"signature": "client.BuildHeaders(multipartBody bool) map[string]string",
|
|
23994
|
+
"description": "The four auth headers for a single request."
|
|
23995
|
+
},
|
|
23996
|
+
{
|
|
23997
|
+
"kind": "function",
|
|
23998
|
+
"name": "eps.Sign",
|
|
23999
|
+
"signature": "eps.Sign(accessKey, timestamp string) string",
|
|
24000
|
+
"description": "The raw signing primitive, exported for debugging."
|
|
24001
|
+
},
|
|
24002
|
+
{
|
|
24003
|
+
"kind": "type",
|
|
24004
|
+
"name": "eps.File",
|
|
24005
|
+
"signature": "eps.File{Name string; Content []byte}",
|
|
24006
|
+
"description": "An in-memory upload."
|
|
24007
|
+
},
|
|
24008
|
+
{
|
|
24009
|
+
"kind": "constant",
|
|
24010
|
+
"name": "eps.MultipartJSONField",
|
|
24011
|
+
"signature": "MultipartJSONField = \"form-data\"",
|
|
24012
|
+
"description": "Name of the single form field carrying the JSON envelope on file-upload endpoints."
|
|
24013
|
+
}
|
|
24014
|
+
],
|
|
24015
|
+
"errorTypes": [
|
|
24016
|
+
{
|
|
24017
|
+
"name": "*eps.HTTPError",
|
|
24018
|
+
"when": "Any non-2xx response. Match it with `errors.As`.",
|
|
24019
|
+
"fields": "`StatusCode`, `URL`, `Body` (decoded envelope or nil), `Raw`"
|
|
24020
|
+
},
|
|
24021
|
+
{
|
|
24022
|
+
"name": "error",
|
|
24023
|
+
"when": "Unknown slug, missing required param, wrong param type, a 2xx body that is not JSON, or a transport failure. Messages are lowercase and `eps:`-prefixed, per Go convention."
|
|
24024
|
+
}
|
|
24025
|
+
],
|
|
24026
|
+
"fileValues": [
|
|
24027
|
+
"A local file path `string`",
|
|
24028
|
+
"An `eps.File{Name, Content}` (or `*eps.File`) for an in-memory upload"
|
|
24029
|
+
],
|
|
24030
|
+
"notes": [
|
|
24031
|
+
"Map keys are sorted before encoding, so query strings and multipart bodies are byte-deterministic.",
|
|
24032
|
+
"The surface is embedded with `go:embed`, so the package needs no network call to resolve a slug."
|
|
24033
|
+
],
|
|
24034
|
+
"example": "package main\n\nimport (\n\t\"context\"\n\t\"fmt\"\n\t\"log\"\n\t\"os\"\n\n\teps \"github.com/ekoindia/eps-sdk-go\"\n)\n\nfunc main() {\n\tclient, err := eps.New(eps.Config{\n\t\tDeveloperKey: os.Getenv(\"EPS_DEVELOPER_KEY\"),\n\t\tAccessKey: os.Getenv(\"EPS_ACCESS_KEY\"),\n\t\tInitiatorID: \"9962981729\",\n\t\tEnvironment: \"sandbox\",\n\t})\n\tif err != nil {\n\t\tlog.Fatal(err)\n\t}\n\n\tresult, err := client.Call(context.Background(), \"pan-lite\", map[string]any{\n\t\t\"pan_number\": \"ABCDE1234F\",\n\t\t\"name\": \"Rajesh Kumar\",\n\t\t\"dob\": \"1994-08-29\",\n\t})\n\tif err != nil {\n\t\tlog.Fatal(err)\n\t}\n\tfmt.Println(result)\n}"
|
|
24035
|
+
},
|
|
24036
|
+
{
|
|
24037
|
+
"lang": "java",
|
|
24038
|
+
"slug": "java",
|
|
24039
|
+
"title": "Java SDK",
|
|
24040
|
+
"summary": "Backend-only Java client for every EPS API, published from a git tag via JitPack, with HMAC signing built in.",
|
|
24041
|
+
"packageName": "com.github.ekoindia:eps-sdk-java",
|
|
24042
|
+
"installCommand": "com.github.ekoindia:eps-sdk-java",
|
|
24043
|
+
"registry": "JitPack",
|
|
24044
|
+
"registryUrl": "https://jitpack.io/#ekoindia/eps-sdk-java",
|
|
24045
|
+
"minRuntime": "Java 17 or newer",
|
|
24046
|
+
"dependencies": "One: Gson, because Java has no JSON parser in the standard library. HTTP uses the JDK's own `java.net.http`.",
|
|
24047
|
+
"sourceUrl": "https://github.com/ekoindia/eps-platform/tree/main/packages/sdk-java",
|
|
24048
|
+
"docsUrl": "https://eps.eko.in/docs/sdk/java",
|
|
24049
|
+
"installNotes": [
|
|
24050
|
+
"Published through JitPack from a git tag — add the JitPack repository alongside Maven Central.",
|
|
24051
|
+
"Gradle: `maven { url 'https://jitpack.io' }`, then `implementation 'com.github.ekoindia:eps-sdk-java:<tag>'`.",
|
|
24052
|
+
"Maven: a `<repository>` with id `jitpack.io` and url `https://jitpack.io`, then the `com.github.ekoindia:eps-sdk-java` dependency."
|
|
24053
|
+
],
|
|
24054
|
+
"config": [
|
|
24055
|
+
{
|
|
24056
|
+
"name": ".developerKey(…)",
|
|
24057
|
+
"type": "String",
|
|
24058
|
+
"required": true,
|
|
24059
|
+
"description": "Your EPS developer key, sent as the `developer_key` header."
|
|
24060
|
+
},
|
|
24061
|
+
{
|
|
24062
|
+
"name": ".accessKey(…)",
|
|
24063
|
+
"type": "String",
|
|
24064
|
+
"required": true,
|
|
24065
|
+
"description": "Server-side secret used to sign every request. Never ships to a browser."
|
|
24066
|
+
},
|
|
24067
|
+
{
|
|
24068
|
+
"name": ".environment(…)",
|
|
24069
|
+
"type": "\"sandbox\" | \"production\"",
|
|
24070
|
+
"required": true,
|
|
24071
|
+
"description": "Selects the base URL from the embedded surface."
|
|
24072
|
+
},
|
|
24073
|
+
{
|
|
24074
|
+
"name": ".initiatorId(…)",
|
|
24075
|
+
"type": "String",
|
|
24076
|
+
"required": false,
|
|
24077
|
+
"description": "Default `initiator_id` (registered mobile of the API user) injected into every call."
|
|
24078
|
+
},
|
|
24079
|
+
{
|
|
24080
|
+
"name": ".userCode(…)",
|
|
24081
|
+
"type": "String",
|
|
24082
|
+
"required": false,
|
|
24083
|
+
"description": "Default `user_code` (retailer/agent code) injected into every call."
|
|
24084
|
+
},
|
|
24085
|
+
{
|
|
24086
|
+
"name": ".httpClient(…)",
|
|
24087
|
+
"type": "HttpClient",
|
|
24088
|
+
"required": false,
|
|
24089
|
+
"units": "default: 30s connect + 30s per request",
|
|
24090
|
+
"description": "Control timeouts, proxies or redirects by supplying your own client."
|
|
24091
|
+
}
|
|
24092
|
+
],
|
|
24093
|
+
"members": [
|
|
24094
|
+
{
|
|
24095
|
+
"kind": "class",
|
|
24096
|
+
"name": "in.eko.eps.EpsClient",
|
|
24097
|
+
"signature": "EpsClient.builder()…build()",
|
|
24098
|
+
"description": "The client, built through a fluent builder."
|
|
24099
|
+
},
|
|
24100
|
+
{
|
|
24101
|
+
"kind": "method",
|
|
24102
|
+
"name": "call",
|
|
24103
|
+
"signature": "client.call(String slug, Map<String, Object> params): Map<String, Object>",
|
|
24104
|
+
"description": "Validates, signs and sends one endpoint call; returns the decoded envelope."
|
|
24105
|
+
},
|
|
24106
|
+
{
|
|
24107
|
+
"kind": "method",
|
|
24108
|
+
"name": "resolveTarget",
|
|
24109
|
+
"signature": "client.resolveTarget(String slug, Map<String, Object> params): Target",
|
|
24110
|
+
"description": "The signed request for a call, without sending it."
|
|
24111
|
+
},
|
|
24112
|
+
{
|
|
24113
|
+
"kind": "method",
|
|
24114
|
+
"name": "buildHeaders",
|
|
24115
|
+
"signature": "client.buildHeaders(boolean multipart): Map<String, String>",
|
|
24116
|
+
"description": "The four auth headers for a single request."
|
|
24117
|
+
},
|
|
24118
|
+
{
|
|
24119
|
+
"kind": "method",
|
|
24120
|
+
"name": "sign",
|
|
24121
|
+
"signature": "EpsClient.sign(String accessKey, String timestamp): String",
|
|
24122
|
+
"description": "Static. The raw signing primitive, exposed for debugging."
|
|
24123
|
+
},
|
|
24124
|
+
{
|
|
24125
|
+
"kind": "type",
|
|
24126
|
+
"name": "EpsClient.EpsFile",
|
|
24127
|
+
"signature": "record EpsFile(String name, byte[] content)",
|
|
24128
|
+
"description": "An in-memory upload."
|
|
24129
|
+
},
|
|
24130
|
+
{
|
|
24131
|
+
"kind": "constant",
|
|
24132
|
+
"name": "EpsClient.MULTIPART_JSON_FIELD",
|
|
24133
|
+
"signature": "MULTIPART_JSON_FIELD = \"form-data\"",
|
|
24134
|
+
"description": "Name of the single form field carrying the JSON envelope on file-upload endpoints."
|
|
24135
|
+
}
|
|
24136
|
+
],
|
|
24137
|
+
"errorTypes": [
|
|
24138
|
+
{
|
|
24139
|
+
"name": "EpsClient.EpsHttpException",
|
|
24140
|
+
"when": "Any non-2xx response.",
|
|
24141
|
+
"fields": "`status`, `url`, `body` (decoded envelope or null), `raw`"
|
|
24142
|
+
},
|
|
24143
|
+
{
|
|
24144
|
+
"name": "EpsClient.EpsException",
|
|
24145
|
+
"when": "Unknown slug, missing required param, wrong param type, transport failure, or a 2xx body that is not JSON. Unchecked — it extends `RuntimeException`."
|
|
24146
|
+
}
|
|
24147
|
+
],
|
|
24148
|
+
"fileValues": [
|
|
24149
|
+
"A `String` path, a `java.nio.file.Path`, or a `java.io.File`",
|
|
24150
|
+
"An `EpsClient.EpsFile(name, content)` for an in-memory upload"
|
|
24151
|
+
],
|
|
24152
|
+
"notes": [
|
|
24153
|
+
"Upload parts are sent as `application/octet-stream`; the MIME type is not sniffed.",
|
|
24154
|
+
"Gson is configured with `serializeNulls()` — required for wire conformance, since every other SDK keeps explicit nulls."
|
|
24155
|
+
],
|
|
24156
|
+
"example": "import in.eko.eps.EpsClient;\nimport java.util.Map;\n\nEpsClient client = EpsClient.builder()\n .developerKey(System.getenv(\"EPS_DEVELOPER_KEY\"))\n .accessKey(System.getenv(\"EPS_ACCESS_KEY\"))\n .initiatorId(\"9962981729\")\n .environment(\"sandbox\")\n .build();\n\nMap<String, Object> result = client.call(\"pan-lite\", Map.of(\n \"pan_number\", \"ABCDE1234F\",\n \"name\", \"Rajesh Kumar\",\n \"dob\", \"1994-08-29\"\n ));\nSystem.out.println(result);"
|
|
24157
|
+
}
|
|
23550
24158
|
]
|
|
23551
24159
|
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@ekoindia/eps-transact-mcp",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.22",
|
|
4
4
|
"description": "Transactional MCP server for Eko Platform Services (EPS) verification APIs — remote (streamable HTTP) and local (stdio).",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"type": "module",
|
|
@@ -29,7 +29,7 @@
|
|
|
29
29
|
"prepublishOnly": "npm run bake && npm run build"
|
|
30
30
|
},
|
|
31
31
|
"dependencies": {
|
|
32
|
-
"@ekoindia/eps-sdk": "^0.
|
|
32
|
+
"@ekoindia/eps-sdk": "^1.0.0",
|
|
33
33
|
"@hono/node-server": "^1.0.0",
|
|
34
34
|
"@modelcontextprotocol/sdk": "^1.29.0",
|
|
35
35
|
"hono": "^4.0.0"
|