@asgcard/sdk 1.1.0 → 1.1.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.
package/README.md CHANGED
@@ -31,7 +31,7 @@ console.log(result.payment.txHash); // Stellar tx hash
31
31
 
32
32
  ## How It Works
33
33
 
34
- 1. SDK calls `POST /cards/create/tier/10`
34
+ 1. SDK calls `POST /cards/create/tier/100`
35
35
  2. API returns `402` with x402 payment challenge
36
36
  3. SDK builds a Soroban USDC transfer, signs it, and retries with `X-PAYMENT` header
37
37
  4. API verifies + settles on Stellar mainnet → returns `201` with card details
@@ -52,7 +52,7 @@ console.log(result.payment.txHash); // Stellar tx hash
52
52
 
53
53
  ```typescript
54
54
  const card = await client.createCard({
55
- amount: 10, // 10, 25, 50, 100, 200, or 500 USD
55
+ amount: 50, // Any amount $5–$5,000
56
56
  nameOnCard: 'MY AGENT',
57
57
  email: 'agent@example.com',
58
58
  });
@@ -67,11 +67,11 @@ const funded = await client.fundCard({
67
67
  });
68
68
  ```
69
69
 
70
- ### `client.getTiers()`
70
+ ### `client.getPricing()`
71
71
 
72
72
  ```typescript
73
- const tiers = await client.getTiers();
74
- // { creation: [...], funding: [...] }
73
+ const pricing = await client.getPricing();
74
+ // { cardFee: 10, topUpPercent: 3.5, minAmount: 5, maxAmount: 5000 }
75
75
  ```
76
76
 
77
77
  ### `client.health()`
@@ -81,6 +81,27 @@ const health = await client.health();
81
81
  // { status: 'ok', version: '0.3.1' }
82
82
  ```
83
83
 
84
+ ### `client.listCards()`
85
+
86
+ ```typescript
87
+ const { cards } = await client.listCards();
88
+ // cards: [{ cardId, nameOnCard, lastFour, balance, status, createdAt }]
89
+ ```
90
+
91
+ ### `client.getTransactions(cardId, page?, limit?)`
92
+
93
+ ```typescript
94
+ const result = await client.getTransactions('card_xxxx');
95
+ // { cardId, transactions: [{ id, type, amount, status, merchantName, createdAt }], pagination }
96
+ ```
97
+
98
+ ### `client.getBalance(cardId)`
99
+
100
+ ```typescript
101
+ const result = await client.getBalance('card_xxxx');
102
+ // { cardId, balance: 25.00, currency: 'USD', status: 'active', source: '4payments' }
103
+ ```
104
+
84
105
  ## Low-Level Utilities
85
106
 
86
107
  For custom integrations:
package/dist/client.d.ts CHANGED
@@ -1,4 +1,4 @@
1
- import type { ASGCardClientConfig, CardResult, CreateCardParams, FundCardParams, FundResult, HealthResponse, TierResponse } from "./types";
1
+ import type { ASGCardClientConfig, CardResult, CreateCardParams, FundCardParams, FundResult, HealthResponse, PricingResponse, TransactionListResponse, CardBalanceResponse, CardListEntry } from "./types";
2
2
  export declare class ASGCardClient {
3
3
  private readonly baseUrl;
4
4
  private readonly timeout;
@@ -9,20 +9,32 @@ export declare class ASGCardClient {
9
9
  /** Stellar public key (G...) */
10
10
  get address(): string;
11
11
  /**
12
- * Create a virtual card for a supported tier amount.
12
+ * Create a virtual card.
13
+ * Card issuance $10 + 3.5% top-up fee.
13
14
  * Handles 402 → x402 payment → 201 automatically.
14
15
  */
15
16
  createCard(params: CreateCardParams): Promise<CardResult>;
16
17
  /**
17
- * Fund an existing card by tier amount.
18
+ * Fund an existing card. Top-up fee 3.5%.
18
19
  * Handles 402 → x402 payment → 200 automatically.
19
20
  */
20
21
  fundCard(params: FundCardParams): Promise<FundResult>;
21
- /** Get available create/fund tier amounts and pricing */
22
- getTiers(): Promise<TierResponse>;
22
+ /** Get pricing info */
23
+ getPricing(): Promise<PricingResponse>;
24
+ /** @deprecated Use getPricing() */
25
+ getTiers(): Promise<PricingResponse>;
23
26
  /** Health check */
24
27
  health(): Promise<HealthResponse>;
28
+ /** List all cards for this wallet */
29
+ listCards(): Promise<{
30
+ cards: CardListEntry[];
31
+ }>;
32
+ /** Get transaction history for a card */
33
+ getTransactions(cardId: string, page?: number, limit?: number): Promise<TransactionListResponse>;
34
+ /** Get live balance for a card */
35
+ getBalance(cardId: string): Promise<CardBalanceResponse>;
25
36
  private requestWithX402;
37
+ private requestWithAuth;
26
38
  private request;
27
39
  private rawFetch;
28
40
  private parseResponse;
package/dist/client.js CHANGED
@@ -39,7 +39,8 @@ class ASGCardClient {
39
39
  return this.walletAdapter.publicKey;
40
40
  }
41
41
  /**
42
- * Create a virtual card for a supported tier amount.
42
+ * Create a virtual card.
43
+ * Card issuance $10 + 3.5% top-up fee.
43
44
  * Handles 402 → x402 payment → 201 automatically.
44
45
  */
45
46
  async createCard(params) {
@@ -55,7 +56,7 @@ class ASGCardClient {
55
56
  });
56
57
  }
57
58
  /**
58
- * Fund an existing card by tier amount.
59
+ * Fund an existing card. Top-up fee 3.5%.
59
60
  * Handles 402 → x402 payment → 200 automatically.
60
61
  */
61
62
  async fundCard(params) {
@@ -64,14 +65,30 @@ class ASGCardClient {
64
65
  body: JSON.stringify({ cardId: params.cardId })
65
66
  });
66
67
  }
67
- /** Get available create/fund tier amounts and pricing */
68
- async getTiers() {
68
+ /** Get pricing info */
69
+ async getPricing() {
69
70
  return this.request("/cards/tiers", { method: "GET" });
70
71
  }
72
+ /** @deprecated Use getPricing() */
73
+ async getTiers() {
74
+ return this.getPricing();
75
+ }
71
76
  /** Health check */
72
77
  async health() {
73
78
  return this.request("/health", { method: "GET" });
74
79
  }
80
+ /** List all cards for this wallet */
81
+ async listCards() {
82
+ return this.requestWithAuth("/wallet", { method: "GET" });
83
+ }
84
+ /** Get transaction history for a card */
85
+ async getTransactions(cardId, page = 1, limit = 20) {
86
+ return this.requestWithAuth(`/wallet/${cardId}/transactions?page=${page}&limit=${limit}`, { method: "GET" });
87
+ }
88
+ /** Get live balance for a card */
89
+ async getBalance(cardId) {
90
+ return this.requestWithAuth(`/wallet/${cardId}/balance`, { method: "GET" });
91
+ }
75
92
  // ── x402 payment flow ────────────────────────────────
76
93
  async requestWithX402(path, init) {
77
94
  const first = await this.rawFetch(path, init);
@@ -95,6 +112,24 @@ class ASGCardClient {
95
112
  });
96
113
  return this.parseResponse(retry);
97
114
  }
115
+ // ── Wallet-authenticated requests ────────────────────
116
+ async requestWithAuth(path, init) {
117
+ if (!this.keypair) {
118
+ throw new Error("requestWithAuth requires a keypair (privateKey)");
119
+ }
120
+ const timestamp = Math.floor(Date.now() / 1000).toString();
121
+ const message = Buffer.from(`asgcard-auth:${timestamp}`);
122
+ const signature = this.keypair.sign(message).toString("base64");
123
+ const headers = {
124
+ "Content-Type": "application/json",
125
+ "X-WALLET-ADDRESS": this.keypair.publicKey(),
126
+ "X-WALLET-SIGNATURE": signature,
127
+ "X-WALLET-TIMESTAMP": timestamp,
128
+ ...(init.headers ?? {}),
129
+ };
130
+ const response = await this.rawFetch(path, { ...init, headers });
131
+ return this.parseResponse(response);
132
+ }
98
133
  // ── HTTP primitives ──────────────────────────────────
99
134
  async request(path, init) {
100
135
  const response = await this.rawFetch(path, init);
@@ -1 +1 @@
1
- {"version":3,"file":"client.js","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"client.js","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":";;;AAAA;;;;;GAKG;AACH,sDAAkE;AAClE,qCAAkD;AAclD,uCAAiD;AAEjD,MAAM,gBAAgB,GAAG,yBAAyB,CAAC;AACnD,MAAM,eAAe,GAAG,gCAAgC,CAAC;AACzD,MAAM,eAAe,GAAG,MAAM,CAAC;AAE/B,MAAa,aAAa;IACP,OAAO,CAAS;IAEhB,OAAO,CAAS;IAEhB,SAAS,CAAoB;IAE7B,OAAO,CAAW;IAElB,aAAa,CAAiB;IAE/C,YAAY,MAA2B;QACrC,IAAI,CAAC,MAAM,CAAC,UAAU,IAAI,CAAC,MAAM,CAAC,aAAa,EAAE,CAAC;YAChD,MAAM,IAAI,KAAK,CAAC,4CAA4C,CAAC,CAAC;QAChE,CAAC;QAED,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC,OAAO,IAAI,gBAAgB,CAAC;QAClD,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC,OAAO,IAAI,eAAe,CAAC;QACjD,IAAI,CAAC,SAAS,GAAG,IAAI,iBAAU,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,IAAI,eAAe,CAAC,CAAC;QAEzE,IAAI,MAAM,CAAC,UAAU,EAAE,CAAC;YACtB,IAAI,CAAC,OAAO,GAAG,qBAAO,CAAC,UAAU,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;QACvD,CAAC;QAED,IAAI,CAAC,aAAa,GAAG,MAAM,CAAC,aAAa,CAAC;IAC5C,CAAC;IAED,gCAAgC;IAChC,IAAI,OAAO;QACT,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;YACjB,OAAO,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE,CAAC;QAClC,CAAC;QAED,OAAO,IAAI,CAAC,aAAc,CAAC,SAAS,CAAC;IACvC,CAAC;IAED;;;;OAIG;IACH,KAAK,CAAC,UAAU,CAAC,MAAwB;QACvC,MAAM,IAAI,GAA4B;YACpC,UAAU,EAAE,MAAM,CAAC,UAAU;YAC7B,KAAK,EAAE,MAAM,CAAC,KAAK;SACpB,CAAC;QACF,IAAI,MAAM,CAAC,KAAK;YAAE,IAAI,CAAC,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC;QAE5C,OAAO,IAAI,CAAC,eAAe,CAAa,sBAAsB,MAAM,CAAC,MAAM,EAAE,EAAE;YAC7E,MAAM,EAAE,MAAM;YACd,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC;SAC3B,CAAC,CAAC;IACL,CAAC;IAED;;;OAGG;IACH,KAAK,CAAC,QAAQ,CAAC,MAAsB;QACnC,OAAO,IAAI,CAAC,eAAe,CAAa,oBAAoB,MAAM,CAAC,MAAM,EAAE,EAAE;YAC3E,MAAM,EAAE,MAAM;YACd,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,CAAC;SAChD,CAAC,CAAC;IACL,CAAC;IAED,uBAAuB;IACvB,KAAK,CAAC,UAAU;QACd,OAAO,IAAI,CAAC,OAAO,CAAkB,cAAc,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,CAAC;IAC1E,CAAC;IAED,mCAAmC;IACnC,KAAK,CAAC,QAAQ;QACZ,OAAO,IAAI,CAAC,UAAU,EAAE,CAAC;IAC3B,CAAC;IAED,mBAAmB;IACnB,KAAK,CAAC,MAAM;QACV,OAAO,IAAI,CAAC,OAAO,CAAiB,SAAS,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,CAAC;IACpE,CAAC;IAED,qCAAqC;IACrC,KAAK,CAAC,SAAS;QACb,OAAO,IAAI,CAAC,eAAe,CAA6B,SAAS,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,CAAC;IACxF,CAAC;IAED,yCAAyC;IACzC,KAAK,CAAC,eAAe,CAAC,MAAc,EAAE,IAAI,GAAG,CAAC,EAAE,KAAK,GAAG,EAAE;QACxD,OAAO,IAAI,CAAC,eAAe,CACzB,WAAW,MAAM,sBAAsB,IAAI,UAAU,KAAK,EAAE,EAC5D,EAAE,MAAM,EAAE,KAAK,EAAE,CAClB,CAAC;IACJ,CAAC;IAED,kCAAkC;IAClC,KAAK,CAAC,UAAU,CAAC,MAAc;QAC7B,OAAO,IAAI,CAAC,eAAe,CAAsB,WAAW,MAAM,UAAU,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,CAAC;IACnG,CAAC;IAED,wDAAwD;IAEhD,KAAK,CAAC,eAAe,CAAI,IAAY,EAAE,IAAiB;QAC9D,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;QAE9C,IAAI,KAAK,CAAC,MAAM,KAAK,GAAG,EAAE,CAAC;YACzB,OAAO,IAAI,CAAC,aAAa,CAAI,KAAK,CAAC,CAAC;QACtC,CAAC;QAED,MAAM,gBAAgB,GAAG,MAAM,KAAK,CAAC,IAAI,EAAE,CAAC;QAE5C,MAAM,aAAa,GAAG,MAAM,IAAA,wBAAiB,EAAC;YAC5C,SAAS,EAAE,IAAI,CAAC,SAAS;YACzB,gBAAgB;YAChB,OAAO,EAAE,IAAI,CAAC,OAAO;YACrB,aAAa,EAAE,IAAI,CAAC,aAAa;SAClC,CAAC,CAAC;QAEH,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE;YACtC,GAAG,IAAI;YACP,OAAO,EAAE;gBACP,cAAc,EAAE,kBAAkB;gBAClC,WAAW,EAAE,aAAa;gBAC1B,GAAG,CAAC,IAAI,CAAC,OAAO,IAAI,EAAE,CAAC;aACxB;SACF,CAAC,CAAC;QAEH,OAAO,IAAI,CAAC,aAAa,CAAI,KAAK,CAAC,CAAC;IACtC,CAAC;IAED,wDAAwD;IAEhD,KAAK,CAAC,eAAe,CAAI,IAAY,EAAE,IAAiB;QAC9D,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC;YAClB,MAAM,IAAI,KAAK,CAAC,iDAAiD,CAAC,CAAC;QACrE,CAAC;QAED,MAAM,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,CAAC,QAAQ,EAAE,CAAC;QAC3D,MAAM,OAAO,GAAG,MAAM,CAAC,IAAI,CAAC,gBAAgB,SAAS,EAAE,CAAC,CAAC;QACzD,MAAM,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;QAEhE,MAAM,OAAO,GAA2B;YACtC,cAAc,EAAE,kBAAkB;YAClC,kBAAkB,EAAE,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE;YAC5C,oBAAoB,EAAE,SAAS;YAC/B,oBAAoB,EAAE,SAAS;YAC/B,GAAG,CAAC,IAAI,CAAC,OAAiC,IAAI,EAAE,CAAC;SAClD,CAAC;QAEF,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,EAAE,GAAG,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC;QACjE,OAAO,IAAI,CAAC,aAAa,CAAI,QAAQ,CAAC,CAAC;IACzC,CAAC;IAED,wDAAwD;IAEhD,KAAK,CAAC,OAAO,CAAI,IAAY,EAAE,IAAiB;QACtD,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;QACjD,OAAO,IAAI,CAAC,aAAa,CAAI,QAAQ,CAAC,CAAC;IACzC,CAAC;IAEO,KAAK,CAAC,QAAQ,CAAC,IAAY,EAAE,IAAiB;QACpD,MAAM,UAAU,GAAG,IAAI,eAAe,EAAE,CAAC;QACzC,MAAM,SAAS,GAAG,UAAU,CAAC,GAAG,EAAE,CAAC,UAAU,CAAC,KAAK,EAAE,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;QAErE,IAAI,CAAC;YACH,OAAO,MAAM,KAAK,CAAC,GAAG,IAAI,CAAC,OAAO,GAAG,IAAI,EAAE,EAAE;gBAC3C,GAAG,IAAI;gBACP,OAAO,EAAE;oBACP,cAAc,EAAE,kBAAkB;oBAClC,GAAG,CAAC,IAAI,CAAC,OAAO,IAAI,EAAE,CAAC;iBACxB;gBACD,MAAM,EAAE,UAAU,CAAC,MAAM;aAC1B,CAAC,CAAC;QACL,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,KAAK,YAAY,KAAK,IAAI,KAAK,CAAC,IAAI,KAAK,YAAY,EAAE,CAAC;gBAC1D,MAAM,IAAI,qBAAY,EAAE,CAAC;YAC3B,CAAC;YAED,MAAM,KAAK,CAAC;QACd,CAAC;gBAAS,CAAC;YACT,YAAY,CAAC,SAAS,CAAC,CAAC;QAC1B,CAAC;IACH,CAAC;IAEO,KAAK,CAAC,aAAa,CAAI,QAAkB;QAC/C,MAAM,OAAO,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;QAExD,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;YACjB,MAAM,IAAI,iBAAQ,CAAC,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;QAC/C,CAAC;QAED,OAAO,OAAY,CAAC;IACtB,CAAC;CACF;AA/LD,sCA+LC"}
package/dist/index.d.ts CHANGED
@@ -1,4 +1,4 @@
1
1
  export { ASGCardClient } from "./client";
2
2
  export { ApiError, TimeoutError, PaymentError, InsufficientBalanceError } from "./errors";
3
- export type { ASGCardClientConfig, WalletAdapter, CreateCardParams, FundCardParams, TierResponse, TierEntry, CardResult, FundResult, HealthResponse, BillingAddress, SensitiveCardDetails, X402Challenge, X402Accept, X402PaymentPayload } from "./types";
3
+ export type { ASGCardClientConfig, WalletAdapter, CreateCardParams, FundCardParams, PricingResponse, CardResult, FundResult, HealthResponse, BillingAddress, SensitiveCardDetails, X402Challenge, X402Accept, X402PaymentPayload } from "./types";
4
4
  export { parseChallenge, checkBalance, executePayment, buildPaymentPayload, buildPaymentTransaction, handleX402Payment } from "./utils/x402";
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;AAAA,mCAAyC;AAAhC,uGAAA,aAAa,OAAA;AAEtB,mCAKkB;AAJhB,kGAAA,QAAQ,OAAA;AACR,sGAAA,YAAY,OAAA;AACZ,sGAAA,YAAY,OAAA;AACZ,kHAAA,wBAAwB,OAAA;AAoB1B,qCAOsB;AANpB,sGAAA,cAAc,OAAA;AACd,oGAAA,YAAY,OAAA;AACZ,sGAAA,cAAc,OAAA;AACd,2GAAA,mBAAmB,OAAA;AACnB,+GAAA,uBAAuB,OAAA;AACvB,yGAAA,iBAAiB,OAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;AAAA,mCAAyC;AAAhC,uGAAA,aAAa,OAAA;AAEtB,mCAKkB;AAJhB,kGAAA,QAAQ,OAAA;AACR,sGAAA,YAAY,OAAA;AACZ,sGAAA,YAAY,OAAA;AACZ,kHAAA,wBAAwB,OAAA;AAmB1B,qCAOsB;AANpB,sGAAA,cAAc,OAAA;AACd,oGAAA,YAAY,OAAA;AACZ,sGAAA,cAAc,OAAA;AACd,2GAAA,mBAAmB,OAAA;AACnB,+GAAA,uBAAuB,OAAA;AACvB,yGAAA,iBAAiB,OAAA"}
@@ -24,26 +24,22 @@ export interface ASGCardClientConfig {
24
24
  timeout?: number;
25
25
  }
26
26
  export interface CreateCardParams {
27
- amount: 10 | 25 | 50 | 100 | 200 | 500;
27
+ amount: number;
28
28
  nameOnCard: string;
29
29
  email: string;
30
30
  /** Phone number for cardholder registration (e.g. +1234567890). Required by card issuer. */
31
31
  phone?: string;
32
32
  }
33
33
  export interface FundCardParams {
34
- amount: 10 | 25 | 50 | 100 | 200 | 500;
34
+ amount: number;
35
35
  cardId: string;
36
36
  }
37
- export interface TierEntry {
38
- loadAmount?: number;
39
- fundAmount?: number;
40
- totalCost: number;
41
- endpoint: string;
42
- breakdown?: Record<string, number>;
43
- }
44
- export interface TierResponse {
45
- creation: TierEntry[];
46
- funding: TierEntry[];
37
+ export interface PricingResponse {
38
+ cardFee: number;
39
+ topUpPercent: number;
40
+ minAmount: number;
41
+ maxAmount: number;
42
+ description: string;
47
43
  }
48
44
  export interface BillingAddress {
49
45
  street: string;
@@ -128,3 +124,40 @@ export interface X402PaymentPayload {
128
124
  transaction: string;
129
125
  };
130
126
  }
127
+ export interface TransactionEntry {
128
+ id: string;
129
+ type: string;
130
+ amount: number;
131
+ currency: string;
132
+ status: string;
133
+ description?: string;
134
+ merchantName?: string;
135
+ createdAt: string;
136
+ }
137
+ export interface TransactionListResponse {
138
+ cardId: string;
139
+ lastFour?: string;
140
+ transactions: TransactionEntry[];
141
+ pagination: {
142
+ page: number;
143
+ limit: number;
144
+ total: number;
145
+ pages: number;
146
+ };
147
+ }
148
+ export interface CardBalanceResponse {
149
+ cardId: string;
150
+ lastFour?: string;
151
+ balance: number;
152
+ currency: string;
153
+ status?: string;
154
+ source: "4payments" | "local";
155
+ }
156
+ export interface CardListEntry {
157
+ cardId: string;
158
+ nameOnCard: string;
159
+ lastFour: string;
160
+ balance: number;
161
+ status: string;
162
+ createdAt: string;
163
+ }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@asgcard/sdk",
3
- "version": "1.1.0",
3
+ "version": "1.1.2",
4
4
  "description": "SDK for ASG Card — virtual MasterCard cards for AI agents, paid via x402 on Stellar",
5
5
  "type": "commonjs",
6
6
  "main": "dist/index.js",