@fiatden/openpay 0.0.0-stage → 0.0.2

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.
Files changed (119) hide show
  1. package/README.md +309 -2
  2. package/dist/analytics.test.d.ts +2 -0
  3. package/dist/analytics.test.d.ts.map +1 -0
  4. package/dist/analytics.test.js +184 -0
  5. package/dist/apps.test.d.ts +2 -0
  6. package/dist/apps.test.d.ts.map +1 -0
  7. package/dist/apps.test.js +92 -0
  8. package/dist/http.d.ts +22 -0
  9. package/dist/http.d.ts.map +1 -0
  10. package/dist/http.js +56 -0
  11. package/dist/http.test.d.ts +2 -0
  12. package/dist/http.test.d.ts.map +1 -0
  13. package/dist/http.test.js +47 -0
  14. package/dist/index.d.ts +157 -0
  15. package/dist/index.d.ts.map +1 -0
  16. package/dist/index.js +207 -0
  17. package/dist/index.test.d.ts +2 -0
  18. package/dist/index.test.d.ts.map +1 -0
  19. package/dist/index.test.js +55 -0
  20. package/dist/resources/analytics.d.ts +220 -0
  21. package/dist/resources/analytics.d.ts.map +1 -0
  22. package/dist/resources/analytics.js +70 -0
  23. package/dist/resources/apiKeys.d.ts +22 -0
  24. package/dist/resources/apiKeys.d.ts.map +1 -0
  25. package/dist/resources/apiKeys.js +40 -0
  26. package/dist/resources/apps.d.ts +142 -0
  27. package/dist/resources/apps.d.ts.map +1 -0
  28. package/dist/resources/apps.js +49 -0
  29. package/dist/resources/auth.d.ts +71 -0
  30. package/dist/resources/auth.d.ts.map +1 -0
  31. package/dist/resources/auth.js +71 -0
  32. package/dist/resources/billing.d.ts +148 -0
  33. package/dist/resources/billing.d.ts.map +1 -0
  34. package/dist/resources/billing.js +55 -0
  35. package/dist/resources/charges.d.ts +67 -0
  36. package/dist/resources/charges.d.ts.map +1 -0
  37. package/dist/resources/charges.js +103 -0
  38. package/dist/resources/checkout.d.ts +80 -0
  39. package/dist/resources/checkout.d.ts.map +1 -0
  40. package/dist/resources/checkout.js +36 -0
  41. package/dist/resources/coupons.d.ts +66 -0
  42. package/dist/resources/coupons.d.ts.map +1 -0
  43. package/dist/resources/coupons.js +39 -0
  44. package/dist/resources/currencies.d.ts +45 -0
  45. package/dist/resources/currencies.d.ts.map +1 -0
  46. package/dist/resources/currencies.js +48 -0
  47. package/dist/resources/currencyPortfolio.d.ts +62 -0
  48. package/dist/resources/currencyPortfolio.d.ts.map +1 -0
  49. package/dist/resources/currencyPortfolio.js +34 -0
  50. package/dist/resources/customers.d.ts +171 -0
  51. package/dist/resources/customers.d.ts.map +1 -0
  52. package/dist/resources/customers.js +72 -0
  53. package/dist/resources/disputes.d.ts +48 -0
  54. package/dist/resources/disputes.d.ts.map +1 -0
  55. package/dist/resources/disputes.js +47 -0
  56. package/dist/resources/emailTemplates.d.ts +55 -0
  57. package/dist/resources/emailTemplates.d.ts.map +1 -0
  58. package/dist/resources/emailTemplates.js +49 -0
  59. package/dist/resources/financialAccounts.d.ts +49 -0
  60. package/dist/resources/financialAccounts.d.ts.map +1 -0
  61. package/dist/resources/financialAccounts.js +22 -0
  62. package/dist/resources/fx.d.ts +34 -0
  63. package/dist/resources/fx.d.ts.map +1 -0
  64. package/dist/resources/fx.js +27 -0
  65. package/dist/resources/invoices.d.ts +32 -0
  66. package/dist/resources/invoices.d.ts.map +1 -0
  67. package/dist/resources/invoices.js +36 -0
  68. package/dist/resources/merchants.d.ts +95 -0
  69. package/dist/resources/merchants.d.ts.map +1 -0
  70. package/dist/resources/merchants.js +113 -0
  71. package/dist/resources/metering.d.ts +65 -0
  72. package/dist/resources/metering.d.ts.map +1 -0
  73. package/dist/resources/metering.js +36 -0
  74. package/dist/resources/paymentLinks.d.ts +45 -0
  75. package/dist/resources/paymentLinks.d.ts.map +1 -0
  76. package/dist/resources/paymentLinks.js +32 -0
  77. package/dist/resources/paymentMethods.d.ts +34 -0
  78. package/dist/resources/paymentMethods.d.ts.map +1 -0
  79. package/dist/resources/paymentMethods.js +17 -0
  80. package/dist/resources/payouts.d.ts +51 -0
  81. package/dist/resources/payouts.d.ts.map +1 -0
  82. package/dist/resources/payouts.js +62 -0
  83. package/dist/resources/platform.d.ts +72 -0
  84. package/dist/resources/platform.d.ts.map +1 -0
  85. package/dist/resources/platform.js +42 -0
  86. package/dist/resources/providers.d.ts +61 -0
  87. package/dist/resources/providers.d.ts.map +1 -0
  88. package/dist/resources/providers.js +42 -0
  89. package/dist/resources/reconciliation.d.ts +125 -0
  90. package/dist/resources/reconciliation.d.ts.map +1 -0
  91. package/dist/resources/reconciliation.js +55 -0
  92. package/dist/resources/referrals.d.ts +25 -0
  93. package/dist/resources/referrals.d.ts.map +1 -0
  94. package/dist/resources/referrals.js +16 -0
  95. package/dist/resources/riskReview.d.ts +96 -0
  96. package/dist/resources/riskReview.d.ts.map +1 -0
  97. package/dist/resources/riskReview.js +44 -0
  98. package/dist/resources/roles.d.ts +59 -0
  99. package/dist/resources/roles.d.ts.map +1 -0
  100. package/dist/resources/roles.js +42 -0
  101. package/dist/resources/status.d.ts +20 -0
  102. package/dist/resources/status.d.ts.map +1 -0
  103. package/dist/resources/status.js +14 -0
  104. package/dist/resources/subscriptions.d.ts +46 -0
  105. package/dist/resources/subscriptions.d.ts.map +1 -0
  106. package/dist/resources/subscriptions.js +69 -0
  107. package/dist/resources/totp.d.ts +36 -0
  108. package/dist/resources/totp.d.ts.map +1 -0
  109. package/dist/resources/totp.js +41 -0
  110. package/dist/resources/wallets.d.ts +128 -0
  111. package/dist/resources/wallets.d.ts.map +1 -0
  112. package/dist/resources/wallets.js +74 -0
  113. package/dist/resources/webhooks.d.ts +47 -0
  114. package/dist/resources/webhooks.d.ts.map +1 -0
  115. package/dist/resources/webhooks.js +41 -0
  116. package/dist/types.d.ts +484 -0
  117. package/dist/types.d.ts.map +1 -0
  118. package/dist/types.js +15 -0
  119. package/package.json +46 -4
@@ -0,0 +1,16 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.ReferralsResource = void 0;
4
+ class ReferralsResource {
5
+ client;
6
+ constructor(client) {
7
+ this.client = client;
8
+ }
9
+ async myReferral() {
10
+ return this.client.request('/v1/merchants/me/referral');
11
+ }
12
+ async commissions() {
13
+ return this.client.request('/v1/merchants/me/referral/commissions');
14
+ }
15
+ }
16
+ exports.ReferralsResource = ReferralsResource;
@@ -0,0 +1,96 @@
1
+ import { HttpClient } from '../http';
2
+ import { Currency, Provider } from '../types';
3
+ export interface RiskReviewTransaction {
4
+ id: string;
5
+ reference: string;
6
+ amount: number;
7
+ currency: Currency;
8
+ provider: Provider;
9
+ status: string;
10
+ customer_email: string;
11
+ customer_name: string | null;
12
+ channel: string | null;
13
+ risk_score: number;
14
+ risk_flags: Record<string, unknown>;
15
+ risk_review_status: 'flagged' | 'reviewing' | 'approved' | 'declined';
16
+ merchant_name: string | null;
17
+ created_at: string;
18
+ }
19
+ export interface RiskReviewDetail {
20
+ transaction: RiskReviewTransaction & {
21
+ merchant_email: string;
22
+ merchant_id: string;
23
+ provider_reference: string | null;
24
+ fee: number;
25
+ net_amount: number;
26
+ };
27
+ reviews: Array<{
28
+ id: string;
29
+ transaction_id: string;
30
+ transaction_reference: string;
31
+ risk_score: number;
32
+ risk_flags: Record<string, unknown>;
33
+ reviewer_email: string;
34
+ action: 'flagged' | 'approved' | 'declined';
35
+ reason: string;
36
+ created_at: string;
37
+ }>;
38
+ }
39
+ export interface RiskReviewStats {
40
+ flagged: number;
41
+ reviewing: number;
42
+ approved_today: number;
43
+ declined_today: number;
44
+ avg_flagged_score: number;
45
+ max_flagged_score: number;
46
+ }
47
+ export interface RiskReviewListParams {
48
+ status?: 'flagged' | 'reviewing' | 'approved' | 'declined';
49
+ min_score?: number;
50
+ limit?: number;
51
+ offset?: number;
52
+ }
53
+ export interface RiskReviewListResponse {
54
+ data: RiskReviewTransaction[];
55
+ total: number;
56
+ has_more: boolean;
57
+ }
58
+ export declare class RiskReviewResource {
59
+ private client;
60
+ constructor(client: HttpClient);
61
+ /** List flagged transactions in the risk review queue (admin-only). */
62
+ list(params?: RiskReviewListParams): Promise<RiskReviewListResponse>;
63
+ /** Get full detail for a transaction, including review history. */
64
+ get(id: string): Promise<RiskReviewDetail>;
65
+ /** Approve a flagged transaction (admin-only). */
66
+ approve(id: string, reason?: string): Promise<{
67
+ transaction_id: string;
68
+ reference: string;
69
+ status: 'approved';
70
+ }>;
71
+ /** Decline a flagged transaction — also marks the transaction as failed. */
72
+ decline(id: string, reason?: string): Promise<{
73
+ transaction_id: string;
74
+ reference: string;
75
+ status: 'declined';
76
+ }>;
77
+ /** Get summary stats for the risk review queue. */
78
+ stats(): Promise<RiskReviewStats>;
79
+ /** Bulk approve up to 100 flagged transactions (admin). */
80
+ bulkApprove(ids: string[], reason?: string): Promise<{
81
+ approved: number;
82
+ results: Array<{
83
+ id: string;
84
+ status: string;
85
+ }>;
86
+ }>;
87
+ /** Bulk decline up to 100 flagged transactions (admin). Marks each as failed. */
88
+ bulkDecline(ids: string[], reason?: string): Promise<{
89
+ declined: number;
90
+ results: Array<{
91
+ id: string;
92
+ status: string;
93
+ }>;
94
+ }>;
95
+ }
96
+ //# sourceMappingURL=riskReview.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"riskReview.d.ts","sourceRoot":"","sources":["../../src/resources/riskReview.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,44 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.RiskReviewResource = void 0;
4
+ class RiskReviewResource {
5
+ client;
6
+ constructor(client) {
7
+ this.client = client;
8
+ }
9
+ /** List flagged transactions in the risk review queue (admin-only). */
10
+ async list(params) {
11
+ return this.client.request('/v1/risk-review', { params });
12
+ }
13
+ /** Get full detail for a transaction, including review history. */
14
+ async get(id) {
15
+ return this.client.request(`/v1/risk-review/${id}`);
16
+ }
17
+ /** Approve a flagged transaction (admin-only). */
18
+ async approve(id, reason) {
19
+ return this.client.request(`/v1/risk-review/${id}/approve`, {
20
+ method: 'POST',
21
+ body: { reason },
22
+ });
23
+ }
24
+ /** Decline a flagged transaction — also marks the transaction as failed. */
25
+ async decline(id, reason) {
26
+ return this.client.request(`/v1/risk-review/${id}/decline`, {
27
+ method: 'POST',
28
+ body: { reason },
29
+ });
30
+ }
31
+ /** Get summary stats for the risk review queue. */
32
+ async stats() {
33
+ return this.client.request('/v1/risk-review/stats');
34
+ }
35
+ /** Bulk approve up to 100 flagged transactions (admin). */
36
+ async bulkApprove(ids, reason) {
37
+ return this.client.request('/v1/risk-review/bulk-approve', { method: 'POST', body: { ids, reason } });
38
+ }
39
+ /** Bulk decline up to 100 flagged transactions (admin). Marks each as failed. */
40
+ async bulkDecline(ids, reason) {
41
+ return this.client.request('/v1/risk-review/bulk-decline', { method: 'POST', body: { ids, reason } });
42
+ }
43
+ }
44
+ exports.RiskReviewResource = RiskReviewResource;
@@ -0,0 +1,59 @@
1
+ import { HttpClient } from '../http';
2
+ export interface PermissionEntry {
3
+ key: string;
4
+ description: string;
5
+ }
6
+ export interface CustomRole {
7
+ id: string;
8
+ merchant_id: string;
9
+ name: string;
10
+ description: string | null;
11
+ permissions: string[];
12
+ created_at: string;
13
+ updated_at: string;
14
+ }
15
+ export interface RoleCreateParams {
16
+ name: string;
17
+ description?: string;
18
+ permissions?: string[];
19
+ merchant_id?: string;
20
+ }
21
+ export interface RoleAssignParams {
22
+ api_key_id?: string;
23
+ apply_to_merchant?: boolean;
24
+ }
25
+ /**
26
+ * 8.4 Custom roles (RBAC). Merchants define named permission sets and bind
27
+ * them to their session or to individual API keys.
28
+ */
29
+ export declare class RolesResource {
30
+ private client;
31
+ constructor(client: HttpClient);
32
+ /** List the assignable permission catalogue. */
33
+ listPermissions(): Promise<{
34
+ data: PermissionEntry[];
35
+ }>;
36
+ /** List the merchant's custom roles. */
37
+ list(params?: {
38
+ merchant_id?: string;
39
+ }): Promise<{
40
+ data: CustomRole[];
41
+ }>;
42
+ /** Create a custom role. */
43
+ create(params: RoleCreateParams): Promise<CustomRole>;
44
+ /** Retrieve a custom role. */
45
+ retrieve(id: string): Promise<CustomRole>;
46
+ /** Update a custom role's name, description or permissions. */
47
+ update(id: string, params: Partial<RoleCreateParams>): Promise<CustomRole>;
48
+ /** Delete a custom role and detach any bindings to it. */
49
+ remove(id: string): Promise<{
50
+ id: string;
51
+ deleted: boolean;
52
+ }>;
53
+ /** Bind a role to the merchant session and/or an API key. */
54
+ assign(id: string, params: RoleAssignParams): Promise<{
55
+ role_id: string;
56
+ applied: Record<string, string>;
57
+ }>;
58
+ }
59
+ //# sourceMappingURL=roles.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"roles.d.ts","sourceRoot":"","sources":["../../src/resources/roles.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AAErC,MAAM,WAAW,eAAe;IAC9B,GAAG,EAAE,MAAM,CAAC;IACZ,WAAW,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,UAAU;IACzB,EAAE,EAAE,MAAM,CAAC;IACX,WAAW,EAAE,MAAM,CAAC;IACpB,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,WAAW,EAAE,MAAM,EAAE,CAAC;IACtB,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,gBAAgB;IAC/B,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,WAAW,CAAC,EAAE,MAAM,EAAE,CAAC;IACvB,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,WAAW,gBAAgB;IAC/B,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,iBAAiB,CAAC,EAAE,OAAO,CAAC;CAC7B;AAED;;;GAGG;AACH,qBAAa,aAAa;IACZ,OAAO,CAAC,MAAM;gBAAN,MAAM,EAAE,UAAU;IAEtC,gDAAgD;IAC1C,eAAe,IAAI,OAAO,CAAC;QAAE,IAAI,EAAE,eAAe,EAAE,CAAA;KAAE,CAAC;IAI7D,wCAAwC;IAClC,IAAI,CAAC,MAAM,CAAC,EAAE;QAAE,WAAW,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO,CAAC;QAAE,IAAI,EAAE,UAAU,EAAE,CAAA;KAAE,CAAC;IAI9E,4BAA4B;IACtB,MAAM,CAAC,MAAM,EAAE,gBAAgB,GAAG,OAAO,CAAC,UAAU,CAAC;IAI3D,8BAA8B;IACxB,QAAQ,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,CAAC;IAI/C,+DAA+D;IACzD,MAAM,CAAC,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,CAAC,gBAAgB,CAAC,GAAG,OAAO,CAAC,UAAU,CAAC;IAIhF,0DAA0D;IACpD,MAAM,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,OAAO,CAAA;KAAE,CAAC;IAInE,6DAA6D;IACvD,MAAM,CAAC,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,gBAAgB,GAAG,OAAO,CAAC;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;KAAE,CAAC;CAGlH"}
@@ -0,0 +1,42 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.RolesResource = void 0;
4
+ /**
5
+ * 8.4 Custom roles (RBAC). Merchants define named permission sets and bind
6
+ * them to their session or to individual API keys.
7
+ */
8
+ class RolesResource {
9
+ client;
10
+ constructor(client) {
11
+ this.client = client;
12
+ }
13
+ /** List the assignable permission catalogue. */
14
+ async listPermissions() {
15
+ return this.client.request('/v1/permissions');
16
+ }
17
+ /** List the merchant's custom roles. */
18
+ async list(params) {
19
+ return this.client.request('/v1/roles', { params });
20
+ }
21
+ /** Create a custom role. */
22
+ async create(params) {
23
+ return this.client.request('/v1/roles', { method: 'POST', body: params });
24
+ }
25
+ /** Retrieve a custom role. */
26
+ async retrieve(id) {
27
+ return this.client.request(`/v1/roles/${id}`);
28
+ }
29
+ /** Update a custom role's name, description or permissions. */
30
+ async update(id, params) {
31
+ return this.client.request(`/v1/roles/${id}`, { method: 'PATCH', body: params });
32
+ }
33
+ /** Delete a custom role and detach any bindings to it. */
34
+ async remove(id) {
35
+ return this.client.request(`/v1/roles/${id}`, { method: 'DELETE' });
36
+ }
37
+ /** Bind a role to the merchant session and/or an API key. */
38
+ async assign(id, params) {
39
+ return this.client.request(`/v1/roles/${id}/assign`, { method: 'POST', body: params });
40
+ }
41
+ }
42
+ exports.RolesResource = RolesResource;
@@ -0,0 +1,20 @@
1
+ import { HttpClient } from '../http';
2
+ export interface PublicStatus {
3
+ status: 'operational' | 'degraded';
4
+ platform: string;
5
+ timestamp: string;
6
+ services: {
7
+ database: 'operational' | 'unavailable';
8
+ redis: 'operational' | 'unavailable';
9
+ providers: Record<string, {
10
+ status: string;
11
+ }>;
12
+ };
13
+ }
14
+ export declare class StatusResource {
15
+ private client;
16
+ constructor(client: HttpClient);
17
+ /** Fetch the public status snapshot as JSON. */
18
+ get(): Promise<PublicStatus>;
19
+ }
20
+ //# sourceMappingURL=status.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"status.d.ts","sourceRoot":"","sources":["../../src/resources/status.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AAErC,MAAM,WAAW,YAAY;IAC3B,MAAM,EAAE,aAAa,GAAG,UAAU,CAAC;IACnC,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE;QACR,QAAQ,EAAE,aAAa,GAAG,aAAa,CAAC;QACxC,KAAK,EAAE,aAAa,GAAG,aAAa,CAAC;QACrC,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE;YAAE,MAAM,EAAE,MAAM,CAAA;SAAE,CAAC,CAAC;KAC/C,CAAC;CACH;AAED,qBAAa,cAAc;IACb,OAAO,CAAC,MAAM;gBAAN,MAAM,EAAE,UAAU;IAEtC,gDAAgD;IAC1C,GAAG,IAAI,OAAO,CAAC,YAAY,CAAC;CAGnC"}
@@ -0,0 +1,14 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.StatusResource = void 0;
4
+ class StatusResource {
5
+ client;
6
+ constructor(client) {
7
+ this.client = client;
8
+ }
9
+ /** Fetch the public status snapshot as JSON. */
10
+ async get() {
11
+ return this.client.request('/status');
12
+ }
13
+ }
14
+ exports.StatusResource = StatusResource;
@@ -0,0 +1,46 @@
1
+ import { HttpClient } from '../http';
2
+ import { PlanCreateParams, Plan, SubscriptionCreateParams, Subscription, ListResponse } from '../types';
3
+ export declare class SubscriptionsResource {
4
+ private client;
5
+ constructor(client: HttpClient);
6
+ /** Create a subscription plan. */
7
+ createPlan(params: PlanCreateParams): Promise<Plan>;
8
+ /** List plans, optionally filtered by merchant. */
9
+ listPlans(merchantId?: string): Promise<ListResponse<Plan>>;
10
+ /** Retrieve a plan by id. */
11
+ getPlan(id: string): Promise<Plan>;
12
+ /** Update a plan's mutable fields (name, amount, interval, active flag). */
13
+ updatePlan(id: string, patch: Partial<Omit<PlanCreateParams, 'merchant_id'>>): Promise<Plan>;
14
+ /** Create a subscription (must tokenize card first via charges.tokenize). */
15
+ create(params: SubscriptionCreateParams): Promise<Subscription>;
16
+ /** List subscriptions, optionally filtered by customer or status. */
17
+ list(params?: {
18
+ customer_id?: string;
19
+ status?: string;
20
+ }): Promise<ListResponse<Subscription>>;
21
+ /** Pause an active subscription (optionally with a scheduled resume date). */
22
+ pause(id: string, body?: {
23
+ resume_at?: string;
24
+ reason?: string;
25
+ }): Promise<Subscription>;
26
+ /** Resume a previously paused subscription. */
27
+ resume(id: string): Promise<Subscription>;
28
+ /** Change plans with a durable proration credit and idempotency key. */
29
+ changePlan(id: string, planId: string, idempotencyKey?: string): Promise<{
30
+ change: Record<string, unknown>;
31
+ idempotent: boolean;
32
+ proration?: {
33
+ unused_credit: number;
34
+ prior_credit_balance: number;
35
+ credit_applied: number;
36
+ charge_due_next_billing: number;
37
+ credit_balance: number;
38
+ };
39
+ subscription?: Subscription & {
40
+ credit_balance?: number;
41
+ };
42
+ }>;
43
+ /** Cancel an active subscription. */
44
+ cancel(id: string): Promise<Subscription>;
45
+ }
46
+ //# sourceMappingURL=subscriptions.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"subscriptions.d.ts","sourceRoot":"","sources":["../../src/resources/subscriptions.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AACrC,OAAO,EACL,gBAAgB,EAAE,IAAI,EACtB,wBAAwB,EAAE,YAAY,EACtC,YAAY,EACb,MAAM,UAAU,CAAC;AAElB,qBAAa,qBAAqB;IACpB,OAAO,CAAC,MAAM;gBAAN,MAAM,EAAE,UAAU;IAEtC,kCAAkC;IAC5B,UAAU,CAAC,MAAM,EAAE,gBAAgB,GAAG,OAAO,CAAC,IAAI,CAAC;IAOzD,mDAAmD;IAC7C,SAAS,CAAC,UAAU,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC;IAMjE,6BAA6B;IACvB,OAAO,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAIxC,4EAA4E;IACtE,UAAU,CAAC,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,CAAC,IAAI,CAAC,gBAAgB,EAAE,aAAa,CAAC,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC;IAIlG,6EAA6E;IACvE,MAAM,CAAC,MAAM,EAAE,wBAAwB,GAAG,OAAO,CAAC,YAAY,CAAC;IAOrE,qEAAqE;IAC/D,IAAI,CAAC,MAAM,CAAC,EAAE;QAAE,WAAW,CAAC,EAAE,MAAM,CAAC;QAAC,MAAM,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO,CAAC,YAAY,CAAC,YAAY,CAAC,CAAC;IAInG,8EAA8E;IACxE,KAAK,CACT,EAAE,EAAE,MAAM,EACV,IAAI,CAAC,EAAE;QAAE,SAAS,CAAC,EAAE,MAAM,CAAC;QAAC,MAAM,CAAC,EAAE,MAAM,CAAA;KAAE,GAC7C,OAAO,CAAC,YAAY,CAAC;IAOxB,+CAA+C;IACzC,MAAM,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,CAAC;IAM/C,wEAAwE;IAClE,UAAU,CACd,EAAE,EAAE,MAAM,EACV,MAAM,EAAE,MAAM,EACd,cAAc,CAAC,EAAE,MAAM,GACtB,OAAO,CAAC;QACT,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;QAChC,UAAU,EAAE,OAAO,CAAC;QACpB,SAAS,CAAC,EAAE;YACV,aAAa,EAAE,MAAM,CAAC;YACtB,oBAAoB,EAAE,MAAM,CAAC;YAC7B,cAAc,EAAE,MAAM,CAAC;YACvB,uBAAuB,EAAE,MAAM,CAAC;YAChC,cAAc,EAAE,MAAM,CAAC;SACxB,CAAC;QACF,YAAY,CAAC,EAAE,YAAY,GAAG;YAAE,cAAc,CAAC,EAAE,MAAM,CAAA;SAAE,CAAC;KAC3D,CAAC;IAQF,qCAAqC;IAC/B,MAAM,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,CAAC;CAKhD"}
@@ -0,0 +1,69 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.SubscriptionsResource = void 0;
4
+ class SubscriptionsResource {
5
+ client;
6
+ constructor(client) {
7
+ this.client = client;
8
+ }
9
+ /** Create a subscription plan. */
10
+ async createPlan(params) {
11
+ return this.client.request('/v1/plans', {
12
+ method: 'POST',
13
+ body: params,
14
+ });
15
+ }
16
+ /** List plans, optionally filtered by merchant. */
17
+ async listPlans(merchantId) {
18
+ return this.client.request('/v1/plans', {
19
+ params: merchantId ? { merchant_id: merchantId } : undefined,
20
+ });
21
+ }
22
+ /** Retrieve a plan by id. */
23
+ async getPlan(id) {
24
+ return this.client.request(`/v1/plans/${id}`);
25
+ }
26
+ /** Update a plan's mutable fields (name, amount, interval, active flag). */
27
+ async updatePlan(id, patch) {
28
+ return this.client.request(`/v1/plans/${id}`, { method: 'PATCH', body: patch });
29
+ }
30
+ /** Create a subscription (must tokenize card first via charges.tokenize). */
31
+ async create(params) {
32
+ return this.client.request('/v1/subscriptions', {
33
+ method: 'POST',
34
+ body: params,
35
+ });
36
+ }
37
+ /** List subscriptions, optionally filtered by customer or status. */
38
+ async list(params) {
39
+ return this.client.request('/v1/subscriptions', { params });
40
+ }
41
+ /** Pause an active subscription (optionally with a scheduled resume date). */
42
+ async pause(id, body) {
43
+ return this.client.request(`/v1/subscriptions/${id}/pause`, {
44
+ method: 'POST',
45
+ body: body || {},
46
+ });
47
+ }
48
+ /** Resume a previously paused subscription. */
49
+ async resume(id) {
50
+ return this.client.request(`/v1/subscriptions/${id}/resume`, {
51
+ method: 'POST',
52
+ });
53
+ }
54
+ /** Change plans with a durable proration credit and idempotency key. */
55
+ async changePlan(id, planId, idempotencyKey) {
56
+ return this.client.request(`/v1/subscriptions/${id}/change-plan`, {
57
+ method: 'POST',
58
+ body: { plan_id: planId },
59
+ idempotencyKey,
60
+ });
61
+ }
62
+ /** Cancel an active subscription. */
63
+ async cancel(id) {
64
+ return this.client.request(`/v1/subscriptions/${id}/cancel`, {
65
+ method: 'POST',
66
+ });
67
+ }
68
+ }
69
+ exports.SubscriptionsResource = SubscriptionsResource;
@@ -0,0 +1,36 @@
1
+ import { HttpClient } from '../http';
2
+ export interface TotpSetup {
3
+ qr_code_data_url: string;
4
+ secret: string;
5
+ setup_instructions: string;
6
+ }
7
+ export interface TotpStatus {
8
+ enabled: boolean;
9
+ }
10
+ export interface TotpChallengeResult {
11
+ token: string;
12
+ refresh_token: string;
13
+ merchant: Record<string, unknown>;
14
+ admin?: boolean;
15
+ }
16
+ export declare class TotpResource {
17
+ private client;
18
+ constructor(client: HttpClient);
19
+ /** Start 2FA setup — returns a QR code and secret to scan into an authenticator app. */
20
+ setup(): Promise<TotpSetup>;
21
+ /** Verify a TOTP code to complete setup and enable 2FA. */
22
+ verify(code: string): Promise<{
23
+ success: boolean;
24
+ message: string;
25
+ }>;
26
+ /** Disable 2FA (requires a valid TOTP code). */
27
+ disable(code: string): Promise<{
28
+ success: boolean;
29
+ message: string;
30
+ }>;
31
+ /** Check whether 2FA is enabled on the account. */
32
+ status(): Promise<TotpStatus>;
33
+ /** Submit a TOTP code during login challenge to complete authentication. */
34
+ submitChallenge(tempToken: string, code: string): Promise<TotpChallengeResult>;
35
+ }
36
+ //# sourceMappingURL=totp.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"totp.d.ts","sourceRoot":"","sources":["../../src/resources/totp.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AAErC,MAAM,WAAW,SAAS;IACxB,gBAAgB,EAAE,MAAM,CAAC;IACzB,MAAM,EAAE,MAAM,CAAC;IACf,kBAAkB,EAAE,MAAM,CAAC;CAC5B;AAED,MAAM,WAAW,UAAU;IACzB,OAAO,EAAE,OAAO,CAAC;CAClB;AAED,MAAM,WAAW,mBAAmB;IAClC,KAAK,EAAE,MAAM,CAAC;IACd,aAAa,EAAE,MAAM,CAAC;IACtB,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAClC,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB;AAED,qBAAa,YAAY;IACX,OAAO,CAAC,MAAM;gBAAN,MAAM,EAAE,UAAU;IAEtC,wFAAwF;IAClF,KAAK,IAAI,OAAO,CAAC,SAAS,CAAC;IAMjC,2DAA2D;IACrD,MAAM,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC;QAAE,OAAO,EAAE,OAAO,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,CAAC;IAO1E,gDAAgD;IAC1C,OAAO,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC;QAAE,OAAO,EAAE,OAAO,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,CAAC;IAO3E,mDAAmD;IAC7C,MAAM,IAAI,OAAO,CAAC,UAAU,CAAC;IAInC,4EAA4E;IACtE,eAAe,CAAC,SAAS,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,mBAAmB,CAAC;CAMrF"}
@@ -0,0 +1,41 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.TotpResource = void 0;
4
+ class TotpResource {
5
+ client;
6
+ constructor(client) {
7
+ this.client = client;
8
+ }
9
+ /** Start 2FA setup — returns a QR code and secret to scan into an authenticator app. */
10
+ async setup() {
11
+ return this.client.request('/v1/auth/2fa/setup', {
12
+ method: 'POST',
13
+ });
14
+ }
15
+ /** Verify a TOTP code to complete setup and enable 2FA. */
16
+ async verify(code) {
17
+ return this.client.request('/v1/auth/2fa/verify', {
18
+ method: 'POST',
19
+ body: { code },
20
+ });
21
+ }
22
+ /** Disable 2FA (requires a valid TOTP code). */
23
+ async disable(code) {
24
+ return this.client.request('/v1/auth/2fa/disable', {
25
+ method: 'POST',
26
+ body: { code },
27
+ });
28
+ }
29
+ /** Check whether 2FA is enabled on the account. */
30
+ async status() {
31
+ return this.client.request('/v1/auth/2fa/status');
32
+ }
33
+ /** Submit a TOTP code during login challenge to complete authentication. */
34
+ async submitChallenge(tempToken, code) {
35
+ return this.client.request('/v1/auth/2fa/challenge', {
36
+ method: 'POST',
37
+ body: { temp_token: tempToken, code },
38
+ });
39
+ }
40
+ }
41
+ exports.TotpResource = TotpResource;
@@ -0,0 +1,128 @@
1
+ import { HttpClient } from '../http';
2
+ export interface CustomerWallet {
3
+ id: string;
4
+ merchant_id: string;
5
+ app_id: string;
6
+ customer_id: string;
7
+ currency: string;
8
+ balance: number;
9
+ paid_credits: number;
10
+ granted_credits: number;
11
+ status: 'active' | 'terminated';
12
+ expires_at: string | null;
13
+ terminated_at: string | null;
14
+ created_at: string;
15
+ updated_at: string;
16
+ }
17
+ export interface CustomerWalletTransaction {
18
+ id: string;
19
+ wallet_id: string;
20
+ merchant_id: string;
21
+ app_id: string;
22
+ customer_id: string;
23
+ source_type: 'api_credit' | 'checkout_topup' | 'usage_deduction' | 'adjustment' | 'refund' | 'expiration';
24
+ transaction_id: string | null;
25
+ billing_event_id: string | null;
26
+ entry_type: 'credit' | 'debit';
27
+ amount: number;
28
+ balance_after: number;
29
+ credit_type: 'paid' | 'granted' | null;
30
+ description: string;
31
+ metadata: Record<string, unknown>;
32
+ created_at: string;
33
+ }
34
+ export interface WalletCheckout {
35
+ session_id: string;
36
+ reference: string;
37
+ checkout_url: string;
38
+ authorization_url: string | null;
39
+ provider: string;
40
+ amount: number;
41
+ currency: string;
42
+ app_id: string;
43
+ expires_at: string;
44
+ }
45
+ export declare class WalletsResource {
46
+ private client;
47
+ constructor(client: HttpClient);
48
+ /** List customer wallets. Filter to a workspace with `app_id`. */
49
+ list(params?: {
50
+ app_id?: string;
51
+ limit?: number;
52
+ offset?: number;
53
+ status?: 'active' | 'terminated';
54
+ }): Promise<{
55
+ data: CustomerWallet[];
56
+ has_more: boolean;
57
+ total: number;
58
+ }>;
59
+ /** Fetch (or auto-create) a customer's wallet in a workspace. */
60
+ get(appId: string, customerId: string): Promise<CustomerWallet>;
61
+ /** Top up via API credit (immediate, source_type=api_credit). */
62
+ topup(appId: string, customerId: string, params: {
63
+ amount: number;
64
+ description?: string;
65
+ credit_type?: 'paid' | 'granted';
66
+ expires_at?: string | null;
67
+ metadata?: Record<string, unknown>;
68
+ }): Promise<{
69
+ wallet: CustomerWallet;
70
+ transaction: CustomerWalletTransaction;
71
+ }>;
72
+ /** Mint a checkout for a wallet top-up. Payment credits the wallet via webhook (source_type=checkout_topup). */
73
+ createCheckout(appId: string, customerId: string, params: {
74
+ amount: number;
75
+ currency?: string;
76
+ success_url?: string;
77
+ cancel_url?: string;
78
+ customer_name?: string;
79
+ }): Promise<{
80
+ wallet: CustomerWallet;
81
+ checkout: WalletCheckout;
82
+ }>;
83
+ /**
84
+ * Debit the wallet to allow a platform action. Returns 402 when balance is
85
+ * insufficient — the caller should surface “top up your wallet”.
86
+ */
87
+ debit(appId: string, customerId: string, params: {
88
+ amount: number;
89
+ description?: string;
90
+ billing_event_id?: string | null;
91
+ metadata?: Record<string, unknown>;
92
+ }): Promise<{
93
+ wallet: CustomerWallet;
94
+ transaction: CustomerWalletTransaction;
95
+ allowed: boolean;
96
+ current_balance: number;
97
+ }>;
98
+ /** Dry-run allowance check without mutating the balance. */
99
+ check(appId: string, customerId: string, params: {
100
+ amount: number;
101
+ }): Promise<{
102
+ allowed: boolean;
103
+ current_balance: number;
104
+ required_amount: number;
105
+ wallet: CustomerWallet | null;
106
+ currency: string | null;
107
+ }>;
108
+ /** Wallet ledger history within a workspace. */
109
+ transactions(appId: string, customerId: string, params?: {
110
+ limit?: number;
111
+ offset?: number;
112
+ }): Promise<{
113
+ data: CustomerWalletTransaction[];
114
+ wallet: CustomerWallet | null;
115
+ has_more: boolean;
116
+ }>;
117
+ /** Export wallets as CSV (tenant-scoped, ≤10k). Filter to a workspace with `app_id`. */
118
+ exportCsv(params?: {
119
+ app_id?: string;
120
+ status?: 'active' | 'terminated';
121
+ search?: string;
122
+ }): Promise<string>;
123
+ /** Export a customer's wallet ledger as CSV (≤10k). */
124
+ exportLedgerCsv(appId: string, customerId: string): Promise<string>;
125
+ /** Terminate the wallet — no further credits or debits. */
126
+ terminate(appId: string, customerId: string): Promise<CustomerWallet>;
127
+ }
128
+ //# sourceMappingURL=wallets.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"wallets.d.ts","sourceRoot":"","sources":["../../src/resources/wallets.ts"],"names":[],"mappings":"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"}