@beep-it/sdk-core 0.2.0 → 0.3.0
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 +8 -8
- package/dist/index.d.ts +2 -2
- package/dist/index.js +293 -279
- package/dist/index.mjs +284 -278
- package/dist/modules/invoices.d.ts +1 -1
- package/dist/modules/payments.d.ts +9 -34
- package/dist/modules/payments.d.ts.map +1 -1
- package/dist/modules/products.d.ts +2 -2
- package/dist/types/common.d.ts +197 -0
- package/dist/types/common.d.ts.map +1 -0
- package/dist/types/enhanced-payment.d.ts +311 -0
- package/dist/types/enhanced-payment.d.ts.map +1 -0
- package/dist/types/enhanced-product.d.ts +299 -0
- package/dist/types/enhanced-product.d.ts.map +1 -0
- package/dist/types/index.d.ts +2 -9
- package/dist/types/index.d.ts.map +1 -1
- package/dist/types/invoice.d.ts +2 -2
- package/dist/types/invoice.d.ts.map +1 -1
- package/dist/types/payment.d.ts +2 -32
- package/dist/types/payment.d.ts.map +1 -1
- package/dist/types/product.d.ts +3 -3
- package/dist/types/product.d.ts.map +1 -1
- package/dist/types/public.d.ts +1 -1
- package/dist/types/public.d.ts.map +1 -1
- package/dist/types/streaming-payments.d.ts +173 -0
- package/dist/types/streaming-payments.d.ts.map +1 -0
- package/dist/types/token.d.ts +16 -17
- package/dist/types/token.d.ts.map +1 -1
- package/package.json +7 -7
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import { AxiosInstance } from 'axios';
|
|
2
|
-
import { BeepPurchaseAsset, CheckPaymentStatusPayload, CheckPaymentStatusResponse, IssuePaymentPayload, IssuePaymentResponse, PauseStreamingPayload, PauseStreamingResponse, PaymentRequestData, RequestAndPurchaseAssetRequestParams,
|
|
2
|
+
import { BeepPurchaseAsset, CheckPaymentStatusPayload, CheckPaymentStatusResponse, IssuePaymentPayload, IssuePaymentResponse, PauseStreamingPayload, PauseStreamingResponse, PaymentRequestData, RequestAndPurchaseAssetRequestParams, StartStreamingPayload, StartStreamingResponse, StopStreamingPayload, StopStreamingResponse } from '../types';
|
|
3
3
|
/**
|
|
4
|
-
* Module for handling payment operations including asset purchases and
|
|
5
|
-
* Provides methods for creating payment requests and
|
|
4
|
+
* Module for handling payment operations including asset purchases and SUI transactions
|
|
5
|
+
* Provides methods for creating payment requests and processing blockchain transactions
|
|
6
6
|
*/
|
|
7
7
|
export declare class PaymentsModule {
|
|
8
8
|
private client;
|
|
@@ -13,14 +13,16 @@ export declare class PaymentsModule {
|
|
|
13
13
|
*
|
|
14
14
|
* Notes:
|
|
15
15
|
* - Do not pass walletId. The server derives the wallet based on your API key's merchant and requested chain.
|
|
16
|
-
* - amount
|
|
16
|
+
* - amount is a human-readable decimal string (e.g., "1.0" for 1 USDC, "0.5" for 0.5 SUI).
|
|
17
|
+
* The server converts to the token's base units internally.
|
|
18
|
+
* - Minimum: 0.01 per transaction. Maximum: 100,000 per transaction.
|
|
17
19
|
* - This endpoint responds immediately with acceptance/rejection. Actual transfer executes asynchronously after funds are reserved.
|
|
18
20
|
*
|
|
19
21
|
* Example:
|
|
20
22
|
* const res = await beep.payments.createPayout({
|
|
21
|
-
* amount: '
|
|
23
|
+
* amount: '1.50', // 1.50 USDC (human-readable)
|
|
22
24
|
* destinationWalletAddress: 'DEST_ADDRESS',
|
|
23
|
-
* chain: '
|
|
25
|
+
* chain: 'SUI',
|
|
24
26
|
* token: 'USDC',
|
|
25
27
|
* });
|
|
26
28
|
*/
|
|
@@ -61,7 +63,7 @@ export declare class PaymentsModule {
|
|
|
61
63
|
*
|
|
62
64
|
* Phase 1 – Request payment (no paymentReference):
|
|
63
65
|
* - Server responds with HTTP 402 Payment Required and a payload containing:
|
|
64
|
-
* referenceKey, paymentUrl
|
|
66
|
+
* referenceKey, paymentUrl, optional qrCode, amount, expiresAt, status.
|
|
65
67
|
* - The SDK normalizes this by returning the payload (even when status code is 402).
|
|
66
68
|
* - The caller must instruct the user to pay via their wallet using paymentUrl/qrCode.
|
|
67
69
|
*
|
|
@@ -92,33 +94,6 @@ export declare class PaymentsModule {
|
|
|
92
94
|
* const isPaid = !check?.referenceKey; // When no referenceKey is returned, payment is complete
|
|
93
95
|
*/
|
|
94
96
|
requestAndPurchaseAsset(input: RequestAndPurchaseAssetRequestParams): Promise<PaymentRequestData | null>;
|
|
95
|
-
/**
|
|
96
|
-
* Signs a Solana transaction for direct blockchain payment processing
|
|
97
|
-
*
|
|
98
|
-
* @param input - Transaction parameters including addresses, amounts, and token details
|
|
99
|
-
* @returns Promise that resolves to signed transaction data
|
|
100
|
-
* @throws {Error} When transaction signing fails or required fields are missing
|
|
101
|
-
*
|
|
102
|
-
* @example
|
|
103
|
-
* ```typescript
|
|
104
|
-
* try {
|
|
105
|
-
* const signedTx = await beep.payments.signSolanaTransaction({
|
|
106
|
-
* senderAddress: 'sender_wallet_address',
|
|
107
|
-
* recipientAddress: 'recipient_wallet_address',
|
|
108
|
-
* tokenMintAddress: 'EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v',
|
|
109
|
-
* amount: 1000000, // 1.0 USDT in base units
|
|
110
|
-
* decimals: 6
|
|
111
|
-
* });
|
|
112
|
-
*
|
|
113
|
-
* if (signedTx) {
|
|
114
|
-
* console.log('Transaction ready for broadcast:', signedTx.signedTransaction);
|
|
115
|
-
* }
|
|
116
|
-
* } catch (error) {
|
|
117
|
-
* console.error('Transaction signing failed:', error);
|
|
118
|
-
* }
|
|
119
|
-
* ```
|
|
120
|
-
*/
|
|
121
|
-
signSolanaTransaction(input: SignSolanaTransactionParams): Promise<SignSolanaTransactionData | null>;
|
|
122
97
|
/**
|
|
123
98
|
* Issues a payment request for streaming charges with specified asset chunks
|
|
124
99
|
*
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"payments.d.ts","sourceRoot":"","sources":["../../src/modules/payments.ts"],"names":[],"mappings":"AAAA,OAAO,EAAc,aAAa,EAAE,MAAM,OAAO,CAAC;AAClD,OAAO,EACL,iBAAiB,EACjB,yBAAyB,EACzB,0BAA0B,EAC1B,mBAAmB,EACnB,oBAAoB,EACpB,qBAAqB,EACrB,sBAAsB,EACtB,kBAAkB,EAClB,oCAAoC,EAEpC,
|
|
1
|
+
{"version":3,"file":"payments.d.ts","sourceRoot":"","sources":["../../src/modules/payments.ts"],"names":[],"mappings":"AAAA,OAAO,EAAc,aAAa,EAAE,MAAM,OAAO,CAAC;AAClD,OAAO,EACL,iBAAiB,EACjB,yBAAyB,EACzB,0BAA0B,EAC1B,mBAAmB,EACnB,oBAAoB,EACpB,qBAAqB,EACrB,sBAAsB,EACtB,kBAAkB,EAClB,oCAAoC,EAEpC,qBAAqB,EACrB,sBAAsB,EACtB,oBAAoB,EACpB,qBAAqB,EACtB,MAAM,UAAU,CAAC;AAGlB;;;GAGG;AACH,qBAAa,cAAc;IACzB,OAAO,CAAC,MAAM,CAAgB;gBAElB,MAAM,EAAE,aAAa;IAIjC;;;;;;;;;;;;;;;;;;OAkBG;IACU,YAAY,CAAC,MAAM,EAAE;QAChC,MAAM,EAAE,MAAM,CAAC;QACf,wBAAwB,EAAE,MAAM,CAAC;QACjC,KAAK,EAAE,MAAM,CAAC;QACd,KAAK,EAAE,MAAM,CAAC;KACf,GAAG,OAAO,CAAC;QACV,QAAQ,EAAE,MAAM,CAAC;QACjB,MAAM,EAAE,UAAU,GAAG,UAAU,CAAC;QAChC,OAAO,EAAE,MAAM,CAAC;QAChB,iBAAiB,CAAC,EAAE,MAAM,CAAC;QAC3B,eAAe,CAAC,EAAE,MAAM,CAAC;QACzB,cAAc,CAAC,EAAE,MAAM,CAAC;QACxB,SAAS,EAAE,MAAM,CAAC;QAClB,KAAK,CAAC,EAAE,MAAM,CAAC;KAChB,CAAC;IAKF;;;OAGG;IACU,wBAAwB,CAAC,OAAO,EAAE;QAC7C,MAAM,EAAE,iBAAiB,EAAE,CAAC;QAC5B,gBAAgB,EAAE,MAAM,CAAC;QACzB,YAAY,CAAC,EAAE,MAAM,CAAC;QACtB,UAAU,CAAC,EAAE,MAAM,CAAC;QACpB,SAAS,CAAC,EAAE,MAAM,CAAC;QACnB,MAAM,CAAC,EAAE,WAAW,CAAC;QACrB,QAAQ,CAAC,EAAE,CAAC,QAAQ,EAAE,kBAAkB,GAAG,IAAI,KAAK,IAAI,CAAC;QACzD,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,IAAI,CAAC;KACpC,GAAG,OAAO,CAAC;QAAE,IAAI,EAAE,OAAO,CAAC;QAAC,IAAI,CAAC,EAAE,kBAAkB,GAAG,IAAI,CAAA;KAAE,CAAC;IA+DhE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAkCG;IACG,uBAAuB,CAC3B,KAAK,EAAE,oCAAoC,GAC1C,OAAO,CAAC,kBAAkB,GAAG,IAAI,CAAC;IA2BrC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAgCG;IACG,YAAY,CAAC,OAAO,EAAE,mBAAmB,GAAG,OAAO,CAAC,oBAAoB,CAAC;IAQ/E;;;;;;;;;;;;;;;;;;;;;;;;OAwBG;IACG,cAAc,CAAC,OAAO,EAAE,qBAAqB,GAAG,OAAO,CAAC,sBAAsB,CAAC;IAKrF;;;;;;;;;;;;;;;;;;;;;;;;;;OA0BG;IACG,cAAc,CAAC,OAAO,EAAE,qBAAqB,GAAG,OAAO,CAAC,sBAAsB,CAAC;IAKrF;;;;;;;;;;;;;;;;;;;;;;;;;OAyBG;IACG,aAAa,CAAC,OAAO,EAAE,oBAAoB,GAAG,OAAO,CAAC,qBAAqB,CAAC;IAKlF;;;;;OAKG;IAEG,kBAAkB,CAAC,MAAM,EAAE,yBAAyB,GAAG,OAAO,CAAC,0BAA0B,CAAC;CAIjG"}
|
|
@@ -23,7 +23,7 @@ export declare class ProductsModule {
|
|
|
23
23
|
* name: 'Premium License',
|
|
24
24
|
* description: 'Lifetime access to premium features',
|
|
25
25
|
* price: '99.99',
|
|
26
|
-
* token: SupportedToken.
|
|
26
|
+
* token: SupportedToken.USDC,
|
|
27
27
|
* isSubscription: false
|
|
28
28
|
* });
|
|
29
29
|
*
|
|
@@ -32,7 +32,7 @@ export declare class ProductsModule {
|
|
|
32
32
|
* name: 'Monthly Pro Plan',
|
|
33
33
|
* description: 'Monthly subscription with full access',
|
|
34
34
|
* price: '19.99',
|
|
35
|
-
* token: SupportedToken.
|
|
35
|
+
* token: SupportedToken.USDC,
|
|
36
36
|
* isSubscription: true
|
|
37
37
|
* });
|
|
38
38
|
* ```
|
|
@@ -0,0 +1,197 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @fileoverview Common types and utilities used across the BEEP SDK
|
|
3
|
+
*/
|
|
4
|
+
/**
|
|
5
|
+
* Represents a monetary amount as a decimal string
|
|
6
|
+
* @example "10.50" represents $10.50
|
|
7
|
+
* @example "0.99" represents $0.99
|
|
8
|
+
*/
|
|
9
|
+
export type MoneyAmount = string;
|
|
10
|
+
/**
|
|
11
|
+
* UUID v4 string format
|
|
12
|
+
* @pattern ^[0-9a-f]{8}-[0-9a-f]{4}-4[0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$
|
|
13
|
+
* @example "123e4567-e89b-12d3-a456-426614174000"
|
|
14
|
+
*/
|
|
15
|
+
export type UUID = string;
|
|
16
|
+
/**
|
|
17
|
+
* ISO 8601 datetime string
|
|
18
|
+
* @format date-time
|
|
19
|
+
* @example "2023-12-25T10:30:00Z"
|
|
20
|
+
*/
|
|
21
|
+
export type ISODateTime = string;
|
|
22
|
+
/**
|
|
23
|
+
* Blockchain transaction signature
|
|
24
|
+
* @example "5J3mBbAH58CpQ3Y5RNJpUKPE62jPJzqiPbZ4FwFeMr4xdHkfqGoeKv"
|
|
25
|
+
*/
|
|
26
|
+
export type TransactionSignature = string;
|
|
27
|
+
/**
|
|
28
|
+
* Blockchain wallet address
|
|
29
|
+
* @example "0x742d35Cc6634C0532925a3b844Bc9e7595f56789"
|
|
30
|
+
*/
|
|
31
|
+
export type WalletAddress = string;
|
|
32
|
+
/**
|
|
33
|
+
* Supported blockchain networks in BEEP
|
|
34
|
+
*/
|
|
35
|
+
export declare enum BlockchainNetwork {
|
|
36
|
+
/** SUI blockchain network */
|
|
37
|
+
SUI = "SUI",
|
|
38
|
+
/** Solana blockchain network */
|
|
39
|
+
SOLANA = "SOLANA"
|
|
40
|
+
}
|
|
41
|
+
/**
|
|
42
|
+
* Common API response wrapper
|
|
43
|
+
* @template T The type of data contained in the response
|
|
44
|
+
*/
|
|
45
|
+
export interface ApiResponse<T> {
|
|
46
|
+
/** Indicates if the request was successful */
|
|
47
|
+
success: boolean;
|
|
48
|
+
/** Response data when successful */
|
|
49
|
+
data?: T;
|
|
50
|
+
/** Error message when unsuccessful */
|
|
51
|
+
error?: string;
|
|
52
|
+
/** Additional error details */
|
|
53
|
+
details?: Record<string, any>;
|
|
54
|
+
/** Request tracking ID for support */
|
|
55
|
+
requestId?: string;
|
|
56
|
+
}
|
|
57
|
+
/**
|
|
58
|
+
* Pagination parameters for list endpoints
|
|
59
|
+
*/
|
|
60
|
+
export interface PaginationParams {
|
|
61
|
+
/** Maximum number of items to return (1-100) */
|
|
62
|
+
limit?: number;
|
|
63
|
+
/** Number of items to skip */
|
|
64
|
+
offset?: number;
|
|
65
|
+
/** Cursor for pagination */
|
|
66
|
+
cursor?: string;
|
|
67
|
+
}
|
|
68
|
+
/**
|
|
69
|
+
* Paginated response wrapper
|
|
70
|
+
* @template T The type of items in the list
|
|
71
|
+
*/
|
|
72
|
+
export interface PaginatedResponse<T> extends ApiResponse<T[]> {
|
|
73
|
+
/** Total number of items available */
|
|
74
|
+
total?: number;
|
|
75
|
+
/** Pagination metadata */
|
|
76
|
+
pagination?: {
|
|
77
|
+
/** Current page number */
|
|
78
|
+
page: number;
|
|
79
|
+
/** Items per page */
|
|
80
|
+
limit: number;
|
|
81
|
+
/** Total number of pages */
|
|
82
|
+
totalPages: number;
|
|
83
|
+
/** Cursor for next page */
|
|
84
|
+
nextCursor?: string;
|
|
85
|
+
/** Cursor for previous page */
|
|
86
|
+
prevCursor?: string;
|
|
87
|
+
};
|
|
88
|
+
}
|
|
89
|
+
/**
|
|
90
|
+
* Sort order for list endpoints
|
|
91
|
+
*/
|
|
92
|
+
export declare enum SortOrder {
|
|
93
|
+
/** Ascending order (oldest/smallest first) */
|
|
94
|
+
ASC = "asc",
|
|
95
|
+
/** Descending order (newest/largest first) */
|
|
96
|
+
DESC = "desc"
|
|
97
|
+
}
|
|
98
|
+
/**
|
|
99
|
+
* Common sorting parameters
|
|
100
|
+
*/
|
|
101
|
+
export interface SortParams {
|
|
102
|
+
/** Field to sort by */
|
|
103
|
+
sortBy?: string;
|
|
104
|
+
/** Sort order */
|
|
105
|
+
sortOrder?: SortOrder;
|
|
106
|
+
}
|
|
107
|
+
/**
|
|
108
|
+
* Date range filter
|
|
109
|
+
*/
|
|
110
|
+
export interface DateRangeFilter {
|
|
111
|
+
/** Start date (inclusive) */
|
|
112
|
+
from?: ISODateTime;
|
|
113
|
+
/** End date (inclusive) */
|
|
114
|
+
to?: ISODateTime;
|
|
115
|
+
}
|
|
116
|
+
/**
|
|
117
|
+
* Status indicator for various entities
|
|
118
|
+
*/
|
|
119
|
+
export declare enum EntityStatus {
|
|
120
|
+
/** Entity is active and operational */
|
|
121
|
+
ACTIVE = "active",
|
|
122
|
+
/** Entity is temporarily disabled */
|
|
123
|
+
INACTIVE = "inactive",
|
|
124
|
+
/** Entity is pending activation */
|
|
125
|
+
PENDING = "pending",
|
|
126
|
+
/** Entity has been deleted */
|
|
127
|
+
DELETED = "deleted",
|
|
128
|
+
/** Entity is archived */
|
|
129
|
+
ARCHIVED = "archived"
|
|
130
|
+
}
|
|
131
|
+
/**
|
|
132
|
+
* Generic filter parameters for list endpoints
|
|
133
|
+
*/
|
|
134
|
+
export interface FilterParams extends PaginationParams, SortParams {
|
|
135
|
+
/** Filter by status */
|
|
136
|
+
status?: EntityStatus | EntityStatus[];
|
|
137
|
+
/** Date range filter */
|
|
138
|
+
dateRange?: DateRangeFilter;
|
|
139
|
+
/** Search query */
|
|
140
|
+
search?: string;
|
|
141
|
+
/** Additional custom filters */
|
|
142
|
+
filters?: Record<string, any>;
|
|
143
|
+
}
|
|
144
|
+
/**
|
|
145
|
+
* Webhook event types
|
|
146
|
+
*/
|
|
147
|
+
export declare enum WebhookEventType {
|
|
148
|
+
/** Payment completed successfully */
|
|
149
|
+
PAYMENT_COMPLETED = "payment.completed",
|
|
150
|
+
/** Payment failed */
|
|
151
|
+
PAYMENT_FAILED = "payment.failed",
|
|
152
|
+
/** Invoice paid */
|
|
153
|
+
INVOICE_PAID = "invoice.paid",
|
|
154
|
+
/** Invoice expired */
|
|
155
|
+
INVOICE_EXPIRED = "invoice.expired",
|
|
156
|
+
/** Product created */
|
|
157
|
+
PRODUCT_CREATED = "product.created",
|
|
158
|
+
/** Product updated */
|
|
159
|
+
PRODUCT_UPDATED = "product.updated",
|
|
160
|
+
/** Subscription activated */
|
|
161
|
+
SUBSCRIPTION_ACTIVATED = "subscription.activated",
|
|
162
|
+
/** Subscription cancelled */
|
|
163
|
+
SUBSCRIPTION_CANCELLED = "subscription.cancelled"
|
|
164
|
+
}
|
|
165
|
+
/**
|
|
166
|
+
* Webhook payload structure
|
|
167
|
+
* @template T The type of data in the webhook
|
|
168
|
+
*/
|
|
169
|
+
export interface WebhookPayload<T> {
|
|
170
|
+
/** Unique event ID */
|
|
171
|
+
id: UUID;
|
|
172
|
+
/** Event type */
|
|
173
|
+
type: WebhookEventType;
|
|
174
|
+
/** Timestamp of the event */
|
|
175
|
+
timestamp: ISODateTime;
|
|
176
|
+
/** Event data */
|
|
177
|
+
data: T;
|
|
178
|
+
/** HMAC signature for verification */
|
|
179
|
+
signature: string;
|
|
180
|
+
}
|
|
181
|
+
/**
|
|
182
|
+
* Type guard to check if a value is a valid UUID
|
|
183
|
+
*/
|
|
184
|
+
export declare function isUUID(value: any): value is UUID;
|
|
185
|
+
/**
|
|
186
|
+
* Type guard to check if a value is a valid money amount
|
|
187
|
+
*/
|
|
188
|
+
export declare function isMoneyAmount(value: any): value is MoneyAmount;
|
|
189
|
+
/**
|
|
190
|
+
* Format a number as a money amount string
|
|
191
|
+
*/
|
|
192
|
+
export declare function formatMoneyAmount(amount: number, decimals?: number): MoneyAmount;
|
|
193
|
+
/**
|
|
194
|
+
* Parse a money amount string to number
|
|
195
|
+
*/
|
|
196
|
+
export declare function parseMoneyAmount(amount: MoneyAmount): number;
|
|
197
|
+
//# sourceMappingURL=common.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"common.d.ts","sourceRoot":"","sources":["../../src/types/common.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,311 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @fileoverview Enhanced payment types with comprehensive documentation and type safety
|
|
3
|
+
*/
|
|
4
|
+
import { UUID, MoneyAmount, ISODateTime, TransactionSignature, WalletAddress } from './common';
|
|
5
|
+
import { InvoiceStatus } from './invoice';
|
|
6
|
+
import { SupportedToken } from './token';
|
|
7
|
+
/**
|
|
8
|
+
* Asset reference for purchasing existing products
|
|
9
|
+
* @example
|
|
10
|
+
* ```typescript
|
|
11
|
+
* const asset: BeepPurchaseAsset = {
|
|
12
|
+
* assetId: '123e4567-e89b-12d3-a456-426614174000',
|
|
13
|
+
* quantity: 2,
|
|
14
|
+
* name: 'Premium Coffee', // Optional override
|
|
15
|
+
* };
|
|
16
|
+
* ```
|
|
17
|
+
*/
|
|
18
|
+
export interface BeepPurchaseAsset {
|
|
19
|
+
/** UUID of the existing product to purchase */
|
|
20
|
+
assetId: UUID;
|
|
21
|
+
/** Number of units to purchase (must be positive integer) */
|
|
22
|
+
quantity: number;
|
|
23
|
+
/** Optional name override for display purposes */
|
|
24
|
+
name?: string;
|
|
25
|
+
/** Optional description override for display purposes */
|
|
26
|
+
description?: string;
|
|
27
|
+
}
|
|
28
|
+
/**
|
|
29
|
+
* Parameters for requesting and purchasing assets
|
|
30
|
+
* @description Supports the 402 Payment Required flow for agent-compatible payments
|
|
31
|
+
* @example
|
|
32
|
+
* ```typescript
|
|
33
|
+
* // Initial request (no payment reference)
|
|
34
|
+
* const request: RequestAndPurchaseAssetParams = {
|
|
35
|
+
* assets: [{ assetId: 'product-uuid', quantity: 1 }],
|
|
36
|
+
* generateQrCode: true,
|
|
37
|
+
* paymentLabel: 'My Store',
|
|
38
|
+
* };
|
|
39
|
+
*
|
|
40
|
+
* // Polling request (with payment reference)
|
|
41
|
+
* const pollRequest: RequestAndPurchaseAssetParams = {
|
|
42
|
+
* assets: [{ assetId: 'product-uuid', quantity: 1 }],
|
|
43
|
+
* paymentReference: response.referenceKey,
|
|
44
|
+
* };
|
|
45
|
+
* ```
|
|
46
|
+
*/
|
|
47
|
+
export interface RequestAndPurchaseAssetParams {
|
|
48
|
+
/** Array of assets to purchase */
|
|
49
|
+
assets: BeepPurchaseAsset[];
|
|
50
|
+
/**
|
|
51
|
+
* Payment reference from initial 402 response
|
|
52
|
+
* @description Include this when polling for payment completion
|
|
53
|
+
*/
|
|
54
|
+
paymentReference?: string;
|
|
55
|
+
/**
|
|
56
|
+
* Generate QR code for mobile wallet payments
|
|
57
|
+
* @default true
|
|
58
|
+
*/
|
|
59
|
+
generateQrCode?: boolean;
|
|
60
|
+
/**
|
|
61
|
+
* Label displayed in payment wallets
|
|
62
|
+
* @example "Coffee Shop - Downtown"
|
|
63
|
+
* @maxLength 50
|
|
64
|
+
*/
|
|
65
|
+
paymentLabel?: string;
|
|
66
|
+
}
|
|
67
|
+
/**
|
|
68
|
+
* Payment request creation parameters
|
|
69
|
+
* @example
|
|
70
|
+
* ```typescript
|
|
71
|
+
* const payment: RequestPaymentPayload = {
|
|
72
|
+
* amount: 25.50,
|
|
73
|
+
* token: SupportedToken.USDC,
|
|
74
|
+
* description: 'Premium subscription - 1 month',
|
|
75
|
+
* metadata: {
|
|
76
|
+
* userId: 'user-123',
|
|
77
|
+
* plan: 'premium',
|
|
78
|
+
* }
|
|
79
|
+
* };
|
|
80
|
+
* ```
|
|
81
|
+
*/
|
|
82
|
+
export interface RequestPaymentPayload {
|
|
83
|
+
/**
|
|
84
|
+
* Amount to charge in decimal format
|
|
85
|
+
* @min 0.01
|
|
86
|
+
* @example 10.50
|
|
87
|
+
*/
|
|
88
|
+
amount: number;
|
|
89
|
+
/**
|
|
90
|
+
* Token type for payment
|
|
91
|
+
* @description Use either `token` or `splTokenAddress`, not both
|
|
92
|
+
*/
|
|
93
|
+
token?: SupportedToken;
|
|
94
|
+
/**
|
|
95
|
+
* Custom token address
|
|
96
|
+
* @description Alternative to using the token enum
|
|
97
|
+
* @pattern ^[1-9A-HJ-NP-Za-km-z]{32,44}$
|
|
98
|
+
*/
|
|
99
|
+
splTokenAddress?: string;
|
|
100
|
+
/**
|
|
101
|
+
* Human-readable payment description
|
|
102
|
+
* @maxLength 200
|
|
103
|
+
*/
|
|
104
|
+
description?: string;
|
|
105
|
+
/**
|
|
106
|
+
* Custom metadata for your records
|
|
107
|
+
* @description This data is returned in webhooks and payment queries
|
|
108
|
+
*/
|
|
109
|
+
metadata?: Record<string, any>;
|
|
110
|
+
/**
|
|
111
|
+
* Webhook URL for payment notifications
|
|
112
|
+
* @format uri
|
|
113
|
+
* @example "https://api.example.com/webhooks/beep"
|
|
114
|
+
*/
|
|
115
|
+
webhookUrl?: string;
|
|
116
|
+
/**
|
|
117
|
+
* Payment expiration time in minutes
|
|
118
|
+
* @default 15
|
|
119
|
+
* @min 5
|
|
120
|
+
* @max 1440
|
|
121
|
+
*/
|
|
122
|
+
expirationMinutes?: number;
|
|
123
|
+
}
|
|
124
|
+
/**
|
|
125
|
+
* Payment request data structure (402 response)
|
|
126
|
+
* @description Returned when payment is required (HTTP 402)
|
|
127
|
+
*/
|
|
128
|
+
export interface PaymentRequestData {
|
|
129
|
+
/** Unique reference key for this payment request */
|
|
130
|
+
referenceKey: string;
|
|
131
|
+
/**
|
|
132
|
+
* Deep link URL for payment
|
|
133
|
+
* @format uri
|
|
134
|
+
* @example "sui:pay?recipient=..."
|
|
135
|
+
*/
|
|
136
|
+
paymentUrl: string;
|
|
137
|
+
/**
|
|
138
|
+
* Base64-encoded QR code image
|
|
139
|
+
* @description Only present if generateQrCode was true
|
|
140
|
+
* @contentEncoding base64
|
|
141
|
+
* @contentMediaType image/png
|
|
142
|
+
*/
|
|
143
|
+
qrCode?: string;
|
|
144
|
+
/** Total amount to be paid */
|
|
145
|
+
amount: MoneyAmount;
|
|
146
|
+
/** Token used for payment */
|
|
147
|
+
token: SupportedToken;
|
|
148
|
+
/** Recipient wallet address */
|
|
149
|
+
recipientAddress: WalletAddress;
|
|
150
|
+
/** Payment expiration timestamp */
|
|
151
|
+
expiresAt: ISODateTime;
|
|
152
|
+
/** Current payment status */
|
|
153
|
+
status: 'pending' | 'processing' | 'completed' | 'failed' | 'expired';
|
|
154
|
+
}
|
|
155
|
+
/**
|
|
156
|
+
* Successful payment response
|
|
157
|
+
* @description Returned when payment is completed successfully
|
|
158
|
+
*/
|
|
159
|
+
export interface PaymentSuccessResponse {
|
|
160
|
+
/** Payment receipt information */
|
|
161
|
+
receipt: {
|
|
162
|
+
/** Transaction ID on the blockchain */
|
|
163
|
+
transactionId: TransactionSignature;
|
|
164
|
+
/** Amount paid */
|
|
165
|
+
amount: MoneyAmount;
|
|
166
|
+
/** Token used */
|
|
167
|
+
token: SupportedToken;
|
|
168
|
+
/** Payment timestamp */
|
|
169
|
+
timestamp: ISODateTime;
|
|
170
|
+
/** Payer wallet address */
|
|
171
|
+
payerAddress: WalletAddress;
|
|
172
|
+
/** Recipient wallet address */
|
|
173
|
+
recipientAddress: WalletAddress;
|
|
174
|
+
};
|
|
175
|
+
/** Blockchain transaction signature */
|
|
176
|
+
txSignature: TransactionSignature;
|
|
177
|
+
/** Invoice ID if payment was for an invoice */
|
|
178
|
+
invoiceId?: UUID;
|
|
179
|
+
/** Custom metadata passed during payment creation */
|
|
180
|
+
metadata?: Record<string, any>;
|
|
181
|
+
}
|
|
182
|
+
/**
|
|
183
|
+
* Combined response type for request and purchase asset endpoint
|
|
184
|
+
* @description Can be either a payment request (402) or success response (200)
|
|
185
|
+
*/
|
|
186
|
+
export type RequestAndPurchaseAssetResponse = PaymentRequestData | PaymentSuccessResponse;
|
|
187
|
+
/**
|
|
188
|
+
* Type guard to check if response is a payment request (402)
|
|
189
|
+
* @example
|
|
190
|
+
* ```typescript
|
|
191
|
+
* const response = await beep.payments.requestAndPurchaseAsset(params);
|
|
192
|
+
* if (isPaymentRequest(response)) {
|
|
193
|
+
* // Show QR code to user
|
|
194
|
+
* displayQR(response.qrCode);
|
|
195
|
+
* } else {
|
|
196
|
+
* // Payment completed
|
|
197
|
+
* console.log('Transaction:', response.txSignature);
|
|
198
|
+
* }
|
|
199
|
+
* ```
|
|
200
|
+
*/
|
|
201
|
+
export declare function isPaymentRequest(response: RequestAndPurchaseAssetResponse): response is PaymentRequestData;
|
|
202
|
+
/**
|
|
203
|
+
* Type guard to check if response is a payment success
|
|
204
|
+
*/
|
|
205
|
+
export declare function isPaymentSuccess(response: RequestAndPurchaseAssetResponse): response is PaymentSuccessResponse;
|
|
206
|
+
/**
|
|
207
|
+
* Payment status check parameters
|
|
208
|
+
*/
|
|
209
|
+
export interface CheckPaymentStatusPayload {
|
|
210
|
+
/** API key for authentication */
|
|
211
|
+
apiKey: string;
|
|
212
|
+
/**
|
|
213
|
+
* Invoice ID to check
|
|
214
|
+
* @description Provide either invoiceId or transactionReference
|
|
215
|
+
*/
|
|
216
|
+
invoiceId?: UUID;
|
|
217
|
+
/**
|
|
218
|
+
* Transaction reference to check
|
|
219
|
+
* @description Provide either invoiceId or transactionReference
|
|
220
|
+
*/
|
|
221
|
+
transactionReference?: string;
|
|
222
|
+
}
|
|
223
|
+
/**
|
|
224
|
+
* Payment status response
|
|
225
|
+
*/
|
|
226
|
+
export interface CheckPaymentStatusResponse {
|
|
227
|
+
/** Current payment status */
|
|
228
|
+
status: InvoiceStatus;
|
|
229
|
+
/** Transaction signature if payment is completed */
|
|
230
|
+
transactionSignature?: TransactionSignature;
|
|
231
|
+
/** Payment completion timestamp */
|
|
232
|
+
completedAt?: ISODateTime;
|
|
233
|
+
/** Error message if payment failed */
|
|
234
|
+
errorMessage?: string;
|
|
235
|
+
/** Additional status details */
|
|
236
|
+
details?: {
|
|
237
|
+
/** Number of confirmations on blockchain */
|
|
238
|
+
confirmations?: number;
|
|
239
|
+
/** Estimated completion time for pending payments */
|
|
240
|
+
estimatedCompletionTime?: ISODateTime;
|
|
241
|
+
};
|
|
242
|
+
}
|
|
243
|
+
/**
|
|
244
|
+
* Streaming payment session parameters
|
|
245
|
+
* @description Used for pay-as-you-go services and metered billing
|
|
246
|
+
* @example
|
|
247
|
+
* ```typescript
|
|
248
|
+
* const session: IssuePaymentPayload = {
|
|
249
|
+
* apiKey: 'your_api_key',
|
|
250
|
+
* assetChunks: [
|
|
251
|
+
* { assetId: 'api-calls-product', quantity: 100 },
|
|
252
|
+
* { assetId: 'storage-gb-product', quantity: 10 }
|
|
253
|
+
* ],
|
|
254
|
+
* payingMerchantId: 'merchant-uuid'
|
|
255
|
+
* };
|
|
256
|
+
* ```
|
|
257
|
+
*/
|
|
258
|
+
export interface IssuePaymentPayload {
|
|
259
|
+
/** API key for authentication */
|
|
260
|
+
apiKey: string;
|
|
261
|
+
/**
|
|
262
|
+
* Assets to be consumed during streaming session
|
|
263
|
+
* @description Each chunk represents a billable unit
|
|
264
|
+
*/
|
|
265
|
+
assetChunks: BeepPurchaseAsset[];
|
|
266
|
+
/**
|
|
267
|
+
* Merchant ID who will be charged
|
|
268
|
+
* @description Must have sufficient balance or credit
|
|
269
|
+
*/
|
|
270
|
+
payingMerchantId: UUID;
|
|
271
|
+
/**
|
|
272
|
+
* Maximum session duration in minutes
|
|
273
|
+
* @default 60
|
|
274
|
+
* @min 1
|
|
275
|
+
* @max 1440
|
|
276
|
+
*/
|
|
277
|
+
maxDurationMinutes?: number;
|
|
278
|
+
/**
|
|
279
|
+
* Session metadata for tracking
|
|
280
|
+
*/
|
|
281
|
+
metadata?: {
|
|
282
|
+
/** Session purpose or description */
|
|
283
|
+
purpose?: string;
|
|
284
|
+
/** Client application ID */
|
|
285
|
+
clientId?: string;
|
|
286
|
+
/** Additional custom fields */
|
|
287
|
+
[key: string]: any;
|
|
288
|
+
};
|
|
289
|
+
}
|
|
290
|
+
/**
|
|
291
|
+
* Streaming payment session response
|
|
292
|
+
*/
|
|
293
|
+
export interface IssuePaymentResponse {
|
|
294
|
+
/** Unique session ID for streaming payment */
|
|
295
|
+
sessionId: UUID;
|
|
296
|
+
/** Invoice ID for the streaming session */
|
|
297
|
+
invoiceId: UUID;
|
|
298
|
+
/** Session expiration timestamp */
|
|
299
|
+
expiresAt: ISODateTime;
|
|
300
|
+
/** Current session status */
|
|
301
|
+
status: 'active' | 'paused' | 'stopped' | 'expired';
|
|
302
|
+
/** Estimated cost based on asset chunks */
|
|
303
|
+
estimatedCost: {
|
|
304
|
+
/** Minimum cost if session ends immediately */
|
|
305
|
+
minimum: MoneyAmount;
|
|
306
|
+
/** Maximum cost if session runs full duration */
|
|
307
|
+
maximum: MoneyAmount;
|
|
308
|
+
};
|
|
309
|
+
}
|
|
310
|
+
export * from './streaming-payments';
|
|
311
|
+
//# sourceMappingURL=enhanced-payment.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"enhanced-payment.d.ts","sourceRoot":"","sources":["../../src/types/enhanced-payment.ts"],"names":[],"mappings":"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"}
|