@tapsilat/tapsilat-js 2026.10.20 → 2026.10.26

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/dist/index.d.ts CHANGED
@@ -1013,18 +1013,6 @@ interface RefundResponse {
1013
1013
  reason?: string;
1014
1014
  createdAt: string;
1015
1015
  }
1016
- /**
1017
- * @category Webhooks
1018
- * @summary Notification data structure for system events
1019
- * @description Event payload sent to webhook endpoints when important events occur in the payment lifecycle
1020
- * @interface WebhookEvent
1021
- */
1022
- interface WebhookEvent {
1023
- id: string;
1024
- type: "payment.completed" | "payment.failed" | "refund.completed";
1025
- data: PaymentResponse | RefundResponse;
1026
- createdAt: string;
1027
- }
1028
1016
  /**
1029
1017
  * @category Error Handling
1030
1018
  * @summary Standardized error format returned by the API
@@ -1043,6 +1031,8 @@ interface APIError {
1043
1031
  apiStatus?: string;
1044
1032
  /** Per-field validation messages from the response body */
1045
1033
  errors?: Record<string, unknown>;
1034
+ /** Whether the error object in the response body says the request can be retried */
1035
+ retryable?: boolean;
1046
1036
  /** Raw response body */
1047
1037
  rawBody?: string;
1048
1038
  }
@@ -1859,7 +1849,7 @@ interface PaymentTermResponse {
1859
1849
  }
1860
1850
  /**
1861
1851
  * @category Payment Terms
1862
- * @summary Protobuf timestamp payload
1852
+ * @summary Seconds-and-nanos timestamp payload
1863
1853
  * @description Timestamp structure used by term APIs (`seconds` + `nanos`)
1864
1854
  * @interface TimestampDTO
1865
1855
  */
@@ -2659,6 +2649,150 @@ declare class ConfigManager {
2659
2649
  getTimeout(): number | undefined;
2660
2650
  }
2661
2651
 
2652
+ /**
2653
+ * Request and response types for Tapsilat Elements sessions.
2654
+ *
2655
+ * Tapsilat Elements is the native Android and iOS card sheet. Your backend creates a session with
2656
+ * its secret API key and hands only the session's `client_secret` to the app, which opens the sheet
2657
+ * with it. Card data goes from the sheet to Tapsilat encrypted and never reaches your backend.
2658
+ *
2659
+ * Field names match the JSON wire format. Response fields are optional because the server omits
2660
+ * empty values. `purpose`, `status` and `brand` are plain strings so that values added later still
2661
+ * decode; compare them with the constants below.
2662
+ */
2663
+ /**
2664
+ * @category Elements
2665
+ * @summary Purposes of an Elements session
2666
+ */
2667
+ declare const ElementsSessionPurpose: Readonly<{
2668
+ /** Save a card for a user without charging it */
2669
+ readonly TOKENIZE: "tokenize";
2670
+ /** Pay an existing order */
2671
+ readonly PAY: "pay";
2672
+ }>;
2673
+ /**
2674
+ * @category Elements
2675
+ * @summary Statuses of an Elements session
2676
+ */
2677
+ declare const ElementsSessionStatus: Readonly<{
2678
+ readonly REQUIRES_PAYMENT_METHOD: "requires_payment_method";
2679
+ readonly PROCESSING: "processing";
2680
+ readonly REQUIRES_ACTION: "requires_action";
2681
+ readonly SUCCEEDED: "succeeded";
2682
+ readonly FAILED: "failed";
2683
+ readonly EXPIRED: "expired";
2684
+ readonly CANCELED: "canceled";
2685
+ }>;
2686
+ /**
2687
+ * @category Elements
2688
+ * @summary Tokenize modes of an Elements session
2689
+ */
2690
+ declare const ElementsTokenizeMode: Readonly<{
2691
+ /** 3D Secure */
2692
+ readonly SECURE: 1;
2693
+ readonly HALF_SECURE: 2;
2694
+ readonly NON_SECURE: 3;
2695
+ }>;
2696
+ /**
2697
+ * @category Elements
2698
+ * @summary Card brands an Elements session reports
2699
+ */
2700
+ declare const ElementsCardBrand: Readonly<{
2701
+ readonly VISA: "visa";
2702
+ readonly MASTERCARD: "mastercard";
2703
+ readonly AMEX: "amex";
2704
+ readonly TROY: "troy";
2705
+ readonly DISCOVER: "discover";
2706
+ readonly UNIONPAY: "unionpay";
2707
+ readonly UNKNOWN: "unknown";
2708
+ }>;
2709
+ /**
2710
+ * @category Elements
2711
+ * @summary Request to create an Elements session
2712
+ * @description Sent to POST /elements/sessions. Optional fields that are undefined or null are left out of the body.
2713
+ * @interface ElementsSessionCreateRequest
2714
+ */
2715
+ interface ElementsSessionCreateRequest {
2716
+ /** `ElementsSessionPurpose.PAY` or `ElementsSessionPurpose.TOKENIZE` */
2717
+ purpose: string;
2718
+ /** The order to pay; required for a `pay` session */
2719
+ order_reference_id?: string;
2720
+ /** The card owner for a `tokenize` session, scoped to your organization */
2721
+ user_id?: string;
2722
+ user_email?: string;
2723
+ /** Tokenize mode: `ElementsTokenizeMode.SECURE` (3D Secure), `HALF_SECURE` or `NON_SECURE` */
2724
+ mode?: number;
2725
+ /** Lets the buyer save the card on a `pay` session */
2726
+ save_card?: boolean;
2727
+ }
2728
+ /**
2729
+ * @category Elements
2730
+ * @summary The card an Elements session used
2731
+ * @interface ElementsCardSummary
2732
+ */
2733
+ interface ElementsCardSummary {
2734
+ id?: string;
2735
+ /** One of `ElementsCardBrand`, such as "visa" */
2736
+ brand?: string;
2737
+ last4?: string;
2738
+ exp_month?: number;
2739
+ exp_year?: number;
2740
+ }
2741
+ /**
2742
+ * @category Elements
2743
+ * @summary The error of an Elements session's last failed attempt
2744
+ * @interface ElementsSessionError
2745
+ */
2746
+ interface ElementsSessionError {
2747
+ /** Stable error code, such as "card_declined" */
2748
+ code?: string;
2749
+ message?: string;
2750
+ retryable?: boolean;
2751
+ }
2752
+ /**
2753
+ * @category Elements
2754
+ * @summary The authoritative state of an Elements session
2755
+ * @description
2756
+ * Returned by GET /elements/sessions/{id} and POST /elements/sessions/{id}/cancel. Read it on your
2757
+ * backend before fulfilling an order, rather than trusting what the app reports. Timestamps are
2758
+ * RFC 3339 strings.
2759
+ * @interface ElementsSession
2760
+ */
2761
+ interface ElementsSession {
2762
+ /** Session ID, such as "es_test_8Kq2nV0rX4" */
2763
+ id?: string;
2764
+ /** One of `ElementsSessionPurpose` */
2765
+ purpose?: string;
2766
+ /** One of `ElementsSessionStatus` */
2767
+ status?: string;
2768
+ order_reference_id?: string;
2769
+ user_id?: string;
2770
+ attempts?: number;
2771
+ max_attempts?: number;
2772
+ created_at?: string;
2773
+ expires_at?: string;
2774
+ completed_at?: string;
2775
+ /** The card used, once one was entered; absent or null before that */
2776
+ card?: ElementsCardSummary | null;
2777
+ /** The error of the last failed attempt; absent or null when there was none */
2778
+ last_error?: ElementsSessionError | null;
2779
+ }
2780
+ /**
2781
+ * @category Elements
2782
+ * @summary A newly created Elements session with its client secret
2783
+ * @description
2784
+ * Returned only by POST /elements/sessions. Hand `client_secret` to the app that opens the card
2785
+ * sheet, and do not log or store it. In Node.js, `console.log` and `util.inspect` print it as
2786
+ * `[redacted]`; `JSON.stringify` keeps it, so you can still send it to the app.
2787
+ * @interface ElementsSessionCreateResponse
2788
+ */
2789
+ interface ElementsSessionCreateResponse extends ElementsSession {
2790
+ /** The secret the app opens the card sheet with */
2791
+ client_secret: string;
2792
+ /** The base URL the app's card sheet talks to */
2793
+ elements_base_url?: string;
2794
+ }
2795
+
2662
2796
  /**
2663
2797
  * @category HTTP
2664
2798
  * @module Interceptors
@@ -2940,6 +3074,15 @@ declare class HttpClient {
2940
3074
  * @returns Error message if found
2941
3075
  */
2942
3076
  private extractErrorMessage;
3077
+ /**
3078
+ * @category HTTP Client Internals
3079
+ * @summary Returns the error object of a nested error body
3080
+ * @description Elements routes answer with {"error": {"code", "message", "retryable"}} instead of top-level fields
3081
+ *
3082
+ * @param data - The parsed response data
3083
+ * @returns The nested error object, or undefined when `error` is not an object
3084
+ */
3085
+ private nestedError;
2943
3086
  /**
2944
3087
  * @category HTTP Client Internals
2945
3088
  * @summary Extracts validation details from error response
@@ -3216,6 +3359,22 @@ declare class MarketplaceService extends ServiceBase {
3216
3359
  private withResolvedCurrency;
3217
3360
  }
3218
3361
 
3362
+ /** The header that carries the signature of every callback Tapsilat sends */
3363
+ declare const WEBHOOK_SIGNATURE_HEADER = "Tapsilat-Signature";
3364
+ /** How many seconds a callback's signature timestamp may differ from the current time */
3365
+ declare const WEBHOOK_TOLERANCE = 300;
3366
+ /**
3367
+ * @category Webhooks
3368
+ * @summary Options for webhook signature verification
3369
+ * @interface WebhookVerifyOptions
3370
+ */
3371
+ interface WebhookVerifyOptions {
3372
+ /** Seconds the signature timestamp may differ from `now`; 0 disables the check. Defaults to 300 */
3373
+ tolerance?: number;
3374
+ /** Unix time in seconds to compare the signature timestamp with. Defaults to the current time */
3375
+ now?: number;
3376
+ }
3377
+
3219
3378
  /**
3220
3379
  * Main SDK class for Tapsilat payment operations
3221
3380
  *
@@ -3597,18 +3756,27 @@ declare class TapsilatSDK {
3597
3756
  */
3598
3757
  getCheckoutUrl(referenceId: string): Promise<string>;
3599
3758
  /**
3600
- * Verifies webhook signature for security
3759
+ * Verifies the Tapsilat-Signature header of a callback against the organization's webhook secret
3601
3760
  *
3602
- * @summary Validate webhook signature for security verification
3603
- * @description Verifies the authenticity of webhook payloads using HMAC signature validation.
3761
+ * @summary Verify the Tapsilat-Signature header of a callback
3762
+ * @description
3763
+ * Tapsilat sends "t=<unix timestamp>,v1=<hex HMAC-SHA256 of '<timestamp>.<raw body>'>". The timestamp
3764
+ * must be within `options.tolerance` seconds (300 by default; 0 disables the check) of `options.now`
3765
+ * (the current time by default) so that a captured callback cannot be replayed. The comparison takes
3766
+ * constant time.
3767
+ *
3768
+ * A bare hex HMAC-SHA256 of the payload, with or without a "sha256=" prefix, is still accepted for
3769
+ * signatures made the way earlier versions of this SDK documented.
3604
3770
  *
3605
- * @param payload - Raw webhook payload string
3606
- * @param signature - Webhook signature from headers
3607
- * @param secret - Your webhook secret key
3608
- * @returns Promise resolving to true if signature is valid
3609
- * @throws {TapsilatValidationError} When input validation fails for payload, signature or secret
3771
+ * @param payload - The raw request body as a string or Buffer, before any JSON decoding
3772
+ * @param signature - The Tapsilat-Signature header
3773
+ * @param secret - The webhook secret from the panel's callback settings
3774
+ * @param options - Timestamp tolerance in seconds and the current Unix time
3775
+ * @returns Promise resolving to true when the signature is valid, and to false when the header or
3776
+ * secret is empty, or the signature is malformed, stale or wrong
3777
+ * @throws {TapsilatValidationError} When payload is not a string or bytes, or an option is not a number
3610
3778
  */
3611
- verifyWebhook(payload: string, signature: string, secret: string): Promise<boolean>;
3779
+ verifyWebhook(payload: string | Uint8Array, signature: string | null | undefined, secret: string, options?: WebhookVerifyOptions): Promise<boolean>;
3612
3780
  /**
3613
3781
  * Checks API service health and availability
3614
3782
  *
@@ -3894,6 +4062,44 @@ declare class TapsilatSDK {
3894
4062
  * Returns installment options grouped by bank card program, with an interest-free flag per row
3895
4063
  */
3896
4064
  getInstallmentTable(request: InstallmentTableRequest): Promise<InstallmentTableResponse>;
4065
+ /**
4066
+ * Creates a Tapsilat Elements session for the native card sheet
4067
+ *
4068
+ * @summary Create an Elements session
4069
+ * @description
4070
+ * Sends POST /elements/sessions. Hand the returned `client_secret` to your app, which opens the card
4071
+ * sheet with it, and do not log or store it. A `pay` session needs `order_reference_id`; a `tokenize`
4072
+ * session saves a card for `user_id` with the given `mode`.
4073
+ *
4074
+ * @param request - The session's purpose and its order or card owner
4075
+ * @returns The new session with its `client_secret` and `elements_base_url`
4076
+ * @throws {TapsilatValidationError} When `purpose` is missing
4077
+ * @throws {TapsilatError} When the API rejects the request; `apiCode` and `retryable` say why
4078
+ */
4079
+ createElementsSession(request: ElementsSessionCreateRequest): Promise<ElementsSessionCreateResponse>;
4080
+ /**
4081
+ * Returns the authoritative state and outcome of an Elements session
4082
+ *
4083
+ * @summary Get an Elements session
4084
+ * @description
4085
+ * Sends GET /elements/sessions/{id}. Read the outcome here on your backend before fulfilling an
4086
+ * order, rather than trusting what the app reports.
4087
+ *
4088
+ * @param id - Session ID, such as "es_test_8Kq2nV0rX4"
4089
+ * @throws {TapsilatError} With `apiCode` "session_not_found" and `statusCode` 404 for an unknown session
4090
+ */
4091
+ getElementsSession(id: string): Promise<ElementsSession>;
4092
+ /**
4093
+ * Cancels an Elements session that is still waiting for a card
4094
+ *
4095
+ * @summary Cancel an Elements session
4096
+ * @description
4097
+ * Sends POST /elements/sessions/{id}/cancel with no body. A session that is confirming or has
4098
+ * completed comes back unchanged, so check `status` in the result.
4099
+ *
4100
+ * @param id - Session ID, such as "es_test_8Kq2nV0rX4"
4101
+ */
4102
+ cancelElementsSession(id: string): Promise<ElementsSession>;
3897
4103
  listOrganizationCurrencyPresets(): Promise<OrganizationCurrencyPresetsResponse>;
3898
4104
  /**
3899
4105
  * Adds a currency to the organization by ISO code, for example "USD"
@@ -4050,6 +4256,159 @@ declare class TapsilatSDK {
4050
4256
  getSystemConfig(): Promise<GetSystemConfigResponse>;
4051
4257
  }
4052
4258
 
4259
+ declare const CODES: {
4260
+ readonly RECEIVED: 1;
4261
+ readonly UNPAID: 2;
4262
+ readonly PAID: 3;
4263
+ readonly PROCESSING: 4;
4264
+ readonly SHIPPED: 5;
4265
+ readonly ON_HOLD: 6;
4266
+ readonly WAITING_FOR_PAYMENT: 7;
4267
+ readonly CANCELLED: 8;
4268
+ readonly COMPLETED: 9;
4269
+ readonly REFUNDED: 10;
4270
+ readonly FRAUD: 11;
4271
+ readonly REJECTED: 12;
4272
+ readonly FAILURE: 13;
4273
+ readonly RETRYING: 14;
4274
+ readonly PARTIALLY_REFUNDED: 15;
4275
+ readonly SUB_MERCHANT_PAYMENT_APPROVED: 16;
4276
+ readonly SUB_MERCHANT_PAYMENT_DISAPPROVED: 17;
4277
+ readonly SUB_MERCHANT_PAYMENT_ERRORED: 18;
4278
+ readonly STILL_HAS_UNPAID_INSTALLMENTS: 19;
4279
+ readonly STILL_HAS_UNPAID_TERMS: 20;
4280
+ readonly EXPIRED: 21;
4281
+ readonly STILL_HAS_UNPAID_SUB_MERCHANT_PAYMENTS: 22;
4282
+ readonly PARTIALLY_PAID: 23;
4283
+ readonly TERMINATED: 24;
4284
+ readonly CARD_TOKENIZATION: 25;
4285
+ readonly PRE_AUTHORIZED: 26;
4286
+ readonly DISPUTED: 27;
4287
+ readonly PARTIALLY_DISPUTED: 28;
4288
+ readonly SUSPECT: 29;
4289
+ };
4290
+ /**
4291
+ * @category Order Management
4292
+ * @summary Numeric order status code, as callbacks and order details carry it
4293
+ */
4294
+ type OrderStatusCode = (typeof CODES)[keyof typeof CODES];
4295
+ /**
4296
+ * @category Order Management
4297
+ * @summary Order status codes, their names and the paid, failed and refunded groups
4298
+ * @description
4299
+ * The numeric codes that callbacks and order details carry, and the names that
4300
+ * GET /order/{reference_id}/status returns for them. Every helper accepts a code, a numeric string or
4301
+ * a name.
4302
+ *
4303
+ * @example
4304
+ * ```typescript
4305
+ * const { status } = await tapsilat.getOrderStatus(referenceId); // e.g. "Waiting for payment"
4306
+ * OrderStatus.isPaid(status); // Paid, Completed, Sub merchant payment approved
4307
+ * OrderStatus.code(status); // 7; also accepts "7" or 7
4308
+ * ```
4309
+ */
4310
+ declare const OrderStatus: Readonly<{
4311
+ readonly NAMES: Readonly<Record<OrderStatusCode, string>>;
4312
+ readonly PAID_STATUSES: readonly OrderStatusCode[];
4313
+ readonly FAILED_STATUSES: readonly OrderStatusCode[];
4314
+ readonly REFUNDED_STATUSES: readonly OrderStatusCode[];
4315
+ /** The code for a code, a numeric string or a name (case-insensitive), or null */
4316
+ readonly code: (status: unknown) => OrderStatusCode | null;
4317
+ /** The status name, such as "Paid", or null */
4318
+ readonly name: (status: unknown) => string | null;
4319
+ /** Paid, Completed or Sub merchant payment approved */
4320
+ readonly isPaid: (status: unknown) => boolean;
4321
+ /** Cancelled, Fraud, Rejected, Failure, Expired or Terminated */
4322
+ readonly isFailed: (status: unknown) => boolean;
4323
+ /** Refunded or Partially refunded */
4324
+ readonly isRefunded: (status: unknown) => boolean;
4325
+ readonly RECEIVED: 1;
4326
+ readonly UNPAID: 2;
4327
+ readonly PAID: 3;
4328
+ readonly PROCESSING: 4;
4329
+ readonly SHIPPED: 5;
4330
+ readonly ON_HOLD: 6;
4331
+ readonly WAITING_FOR_PAYMENT: 7;
4332
+ readonly CANCELLED: 8;
4333
+ readonly COMPLETED: 9;
4334
+ readonly REFUNDED: 10;
4335
+ readonly FRAUD: 11;
4336
+ readonly REJECTED: 12;
4337
+ readonly FAILURE: 13;
4338
+ readonly RETRYING: 14;
4339
+ readonly PARTIALLY_REFUNDED: 15;
4340
+ readonly SUB_MERCHANT_PAYMENT_APPROVED: 16;
4341
+ readonly SUB_MERCHANT_PAYMENT_DISAPPROVED: 17;
4342
+ readonly SUB_MERCHANT_PAYMENT_ERRORED: 18;
4343
+ readonly STILL_HAS_UNPAID_INSTALLMENTS: 19;
4344
+ readonly STILL_HAS_UNPAID_TERMS: 20;
4345
+ readonly EXPIRED: 21;
4346
+ readonly STILL_HAS_UNPAID_SUB_MERCHANT_PAYMENTS: 22;
4347
+ readonly PARTIALLY_PAID: 23;
4348
+ readonly TERMINATED: 24;
4349
+ readonly CARD_TOKENIZATION: 25;
4350
+ readonly PRE_AUTHORIZED: 26;
4351
+ readonly DISPUTED: 27;
4352
+ readonly PARTIALLY_DISPUTED: 28;
4353
+ readonly SUSPECT: 29;
4354
+ }>;
4355
+
4356
+ type JsonObject = Record<string, unknown>;
4357
+ /**
4358
+ * @category Webhooks
4359
+ * @summary A callback Tapsilat posts to an organization's callback URLs
4360
+ * @description
4361
+ * Tapsilat posts {"type": "...", "data": {...}, "token": "<delivery id>"} to the organization's callback
4362
+ * URLs and to an order's payment_success_url and payment_failure_url. The shape of "data" depends on the
4363
+ * type, which each organization chooses in the panel: "order_lite" (the default), "order",
4364
+ * "order_payment_detail", "extended_order" or "payment_facilitator". The getters read the order's
4365
+ * reference ID, conversation ID and status from whichever shape arrived.
4366
+ *
4367
+ * Verify the Tapsilat-Signature header with `verifyWebhook()` before trusting a callback.
4368
+ *
4369
+ * @example
4370
+ * ```typescript
4371
+ * const event = WebhookEvent.fromPayload(rawBody);
4372
+ * if (event.isPaid()) {
4373
+ * await fulfil(event.referenceId);
4374
+ * }
4375
+ * ```
4376
+ */
4377
+ declare class WebhookEvent {
4378
+ static readonly TYPE_ORDER = "order";
4379
+ static readonly TYPE_ORDER_LITE = "order_lite";
4380
+ static readonly TYPE_ORDER_PAYMENT_DETAIL = "order_payment_detail";
4381
+ static readonly TYPE_EXTENDED_ORDER = "extended_order";
4382
+ static readonly TYPE_PAYMENT_FACILITATOR = "payment_facilitator";
4383
+ /** The callback type, such as "order_lite" */
4384
+ readonly type: string | null;
4385
+ /** Unique per delivery */
4386
+ readonly token: string | null;
4387
+ /** The callback's "data" object, or the whole payload when it has none */
4388
+ readonly data: JsonObject;
4389
+ /** The decoded payload */
4390
+ readonly payload: JsonObject;
4391
+ constructor(payload: JsonObject);
4392
+ /**
4393
+ * Decodes a raw callback body
4394
+ *
4395
+ * @param payload - The raw request body
4396
+ * @throws {TapsilatValidationError} When the body is not a JSON object
4397
+ */
4398
+ static fromPayload(payload: string | Uint8Array): WebhookEvent;
4399
+ /** The order's reference ID */
4400
+ get referenceId(): string | null;
4401
+ /** The conversation ID the order was created with */
4402
+ get conversationId(): string | null;
4403
+ /** The order status code (see OrderStatus), or null when this callback type carries none */
4404
+ get statusCode(): OrderStatusCode | null;
4405
+ /** The order status name, such as "Paid" */
4406
+ get status(): string | null;
4407
+ isPaid(): boolean;
4408
+ isFailed(): boolean;
4409
+ isRefunded(): boolean;
4410
+ }
4411
+
4053
4412
  /**
4054
4413
  * @category Errors
4055
4414
  * @module TapsilatError
@@ -4073,6 +4432,8 @@ declare class TapsilatError extends Error {
4073
4432
  apiStatus?: string;
4074
4433
  /** Per-field validation messages from the API response body */
4075
4434
  errors?: Record<string, unknown>;
4435
+ /** Whether the API error says the request can be retried, as Elements errors do */
4436
+ retryable?: boolean;
4076
4437
  /** Raw API response body */
4077
4438
  rawBody?: string;
4078
4439
  /**
@@ -4275,5 +4636,5 @@ declare function validateInstallments(installments: string | number | number[]):
4275
4636
  */
4276
4637
  declare function cleanGsmNumber(phone: string): string;
4277
4638
 
4278
- export { BusinessType, ConfigManager, CurrencyResolver, MarketplaceService, SubmerchantService, TapsilatAuthenticationError, TapsilatError, TapsilatNetworkError, TapsilatRateLimitError, TapsilatSDK, TapsilatValidationError, TokenizationService, VposService, cleanGsmNumber, isValidCurrency, isValidPaymentMethod, isValidUrl, sanitizeMetadata, validateEmail, validateGsmNumber, validateInstallments, validatePaymentRequest };
4279
- export type { APIError, APIResponse, AddBasketItemRequest, AddBasketItemResponse, Address, BasketItem, BasketItemDTO, BasketItemPayerDTO, BasketItemPaymentDTO, BillingAddress, BillingAddressDTO, Buyer, BuyerDTO, CallbackURLDTO, CancelOrderRequest, CancelOrderResponse, CancelSubscriptionResponse, CardInstallment, CardInstallmentsRequest, CardInstallmentsResponse, CardScheme, CardSchemeListResponse, CardTokenizeRequest, CardTokenizeResponse, CheckoutDesignDTO, CreateOrganizationCurrencyResponse, Currency, Customer, DeleteSavedCardResponse, GetMetaResponse, GetOrderPaymentDetailsResponse, GetOrderPaymentsRequest, GetOrderPaymentsResponse, GetOrderResponse, GetOrderSubmerchantsRequest, GetOrderSubmerchantsResponse, GetOrderTermResponse, GetOrderTransactionsResponse, GetOrdersListItem, GetOrdersRequest, GetOrdersResponse, GetOrganizationCurrenciesResponse, GetOrganizationLimitsResponse, GetOrganizationScopesResponse, GetSubOrganizationListResponse, GetSubmerchantResponse, GetSuborganizationsRequest, GetSystemOrderStatusesResponse, GetUserLimitRequest, GetUserLimitResponse, GetVposRequest, GetVposResponse, GsmValidationResult, InstallmentTableGroup, InstallmentTableRequest, InstallmentTableResponse, InstallmentTableRow, InstallmentsValidationResult, ListSavedCardsResponse, ListSubmerchantsResponse, ListSubscriptionsRequest, ListSubscriptionsResponse, Locale, MarketplaceAccountAction, MarketplaceAccountTarget, MarketplaceApprovalPolicies, MarketplaceApprovalPolicy, MarketplaceApprovalPolicyInput, MarketplaceApprovalSettings, MarketplaceContractFilter, MarketplaceContracts, MarketplacePayout, MarketplacePayoutAcceptance, MarketplacePayoutApproval, MarketplacePayoutFilter, MarketplacePayoutList, MarketplacePayoutOperation, MarketplacePayoutOperationInput, MarketplaceProfileUpdate, MarketplaceProfileUpdateResponse, MarketplaceReleasePolicies, MarketplaceReleasePolicy, MarketplaceReleasePolicyInput, MarketplaceSeller, MarketplaceSellerAccount, MarketplaceSellerAccounts, MarketplaceSellerContract, MarketplaceSellerList, MarketplaceSellerListParams, MarketplaceSubmerchantCreateRequest, MarketplaceSubmerchantCreateResponse, MarketplaceSubmerchantProvisioning, MarketplaceSynchronization, MetadataDTO, Order, OrderAccountingRequest, OrderAccountingResponse, OrderCardDTO, OrderChargeRequest, OrderChargeResponse, OrderCreateDTO, OrderCreateRequest, OrderCreateResponse, OrderManualCallbackRequest, OrderManualCallbackResponse, OrderOIPDTO, OrderOIPResponse, OrderPFSubMerchantDTO, OrderPayment, OrderPaymentDetail, OrderPaymentDetailDTO, OrderPaymentTermActionResponse, OrderPaymentTermCreateDTO, OrderPaymentTermUpdateDTO, OrderPaymentsRequest, OrderPaymentsResponse, OrderPostAuthRequest, OrderPostAuthResponse, OrderRefundRequest, OrderRefundResponse, OrderRelatedUpdateRequest, OrderRelatedUpdateResponse, OrderResponse, OrderStatusResponse, OrderSubmerchant, OrderSubmerchantListItem, OrderSubmerchantListResponse, OrderTermRefundRequest, OrderTerminateRequest, OrderTerminateResponse, OrderTransaction, OrgCreateBusinessRequest, OrgCreateBusinessResponse, OrgCreateUserReq, OrgCreateUserRequest, OrgCreateUserResponse, OrgUserMobileVerifyReq, OrgUserMobileVerifyRequest, OrgUserMobileVerifyResponse, OrgUserTokenCreateReq, OrgUserTokenCreateRequest, OrgUserTokenCreateResponse, OrgUserVerifyReq, OrgUserVerifyRequest, OrgUserVerifyResponse, OrganizationCurrenciesResponse, OrganizationCurrency$1 as OrganizationCurrency, OrganizationCurrencyPreset, OrganizationCurrencyPresetsResponse, OrganizationResponse, OrganizationSettings, PaginatedResponse, PaginationParams, PaymentMethod, PaymentOption, PaymentRequest, PaymentResponse, PaymentStatus, PaymentTermDTO, PaymentTermDeleteRequest, PaymentTermRefundResponse, PaymentTermResponse, PaymentTermTerminateRequest, RefundAllOrderDTO, RefundOrderDTO, RefundRequest, RefundResponse, RemoveBasketItemRequest, RemoveBasketItemResponse, SavedCard, SetLimitUserRequest, SetLimitUserResponse, ShippingAddressDTO, SubOrganizationDTO, Submerchant, SubmerchantCreateDTO, SubmerchantCreateRequest, SubmerchantDTO, SubmerchantListItem, SubmerchantListResponse, SubmerchantMutationResponse, SubmerchantPaymentAction, SubmerchantPaymentActionResponse, SubmerchantPaymentItemUpdate, SubmerchantPaymentItemUpdateResponse, SubmerchantPayoutEventRequest, SubmerchantPayoutEventResponse, SubmerchantSuborganizationMapping, SubmerchantUpdateDTO, SubmerchantUpdateRequest, SuborganizationDetail, SuborganizationListItem, SuborganizationListResponse, SuborganizationSubmerchantMapping, SubscriptionBilling, SubscriptionCancelRequest, SubscriptionCreateRequest, SubscriptionCreateResponse, SubscriptionDetail, SubscriptionGetRequest, SubscriptionListItem, SubscriptionOrder, SubscriptionRedirectRequest, SubscriptionRedirectResponse, SubscriptionUser, SystemOrderStatus, TapsilatConfig, TimestampDTO, UpdateBasketItemRequest, UpdateBasketItemResponse, Vpos, VposAcquirer, VposAcquirerListResponse, VposAcquirerTemplate, VposAcquirerTemplateDefaults, VposAcquirerTemplateListResponse, VposCreateRequest, VposListItem, VposListParams, VposListResponse, VposMutationResponse, VposSubmerchant, VposSubmerchantCreateRequest, VposSubmerchantListItem, VposSubmerchantListParams, VposSubmerchantListResponse, VposSubmerchantMutationResponse, VposSubmerchantUpdateRequest, VposUpdateRequest, WebhookEvent };
4639
+ export { BusinessType, ConfigManager, CurrencyResolver, ElementsCardBrand, ElementsSessionPurpose, ElementsSessionStatus, ElementsTokenizeMode, MarketplaceService, OrderStatus, SubmerchantService, TapsilatAuthenticationError, TapsilatError, TapsilatNetworkError, TapsilatRateLimitError, TapsilatSDK, TapsilatValidationError, TokenizationService, VposService, WEBHOOK_SIGNATURE_HEADER, WEBHOOK_TOLERANCE, WebhookEvent, cleanGsmNumber, isValidCurrency, isValidPaymentMethod, isValidUrl, sanitizeMetadata, validateEmail, validateGsmNumber, validateInstallments, validatePaymentRequest };
4640
+ export type { APIError, APIResponse, AddBasketItemRequest, AddBasketItemResponse, Address, BasketItem, BasketItemDTO, BasketItemPayerDTO, BasketItemPaymentDTO, BillingAddress, BillingAddressDTO, Buyer, BuyerDTO, CallbackURLDTO, CancelOrderRequest, CancelOrderResponse, CancelSubscriptionResponse, CardInstallment, CardInstallmentsRequest, CardInstallmentsResponse, CardScheme, CardSchemeListResponse, CardTokenizeRequest, CardTokenizeResponse, CheckoutDesignDTO, CreateOrganizationCurrencyResponse, Currency, Customer, DeleteSavedCardResponse, ElementsCardSummary, ElementsSession, ElementsSessionCreateRequest, ElementsSessionCreateResponse, ElementsSessionError, GetMetaResponse, GetOrderPaymentDetailsResponse, GetOrderPaymentsRequest, GetOrderPaymentsResponse, GetOrderResponse, GetOrderSubmerchantsRequest, GetOrderSubmerchantsResponse, GetOrderTermResponse, GetOrderTransactionsResponse, GetOrdersListItem, GetOrdersRequest, GetOrdersResponse, GetOrganizationCurrenciesResponse, GetOrganizationLimitsResponse, GetOrganizationScopesResponse, GetSubOrganizationListResponse, GetSubmerchantResponse, GetSuborganizationsRequest, GetSystemOrderStatusesResponse, GetUserLimitRequest, GetUserLimitResponse, GetVposRequest, GetVposResponse, GsmValidationResult, InstallmentTableGroup, InstallmentTableRequest, InstallmentTableResponse, InstallmentTableRow, InstallmentsValidationResult, ListSavedCardsResponse, ListSubmerchantsResponse, ListSubscriptionsRequest, ListSubscriptionsResponse, Locale, MarketplaceAccountAction, MarketplaceAccountTarget, MarketplaceApprovalPolicies, MarketplaceApprovalPolicy, MarketplaceApprovalPolicyInput, MarketplaceApprovalSettings, MarketplaceContractFilter, MarketplaceContracts, MarketplacePayout, MarketplacePayoutAcceptance, MarketplacePayoutApproval, MarketplacePayoutFilter, MarketplacePayoutList, MarketplacePayoutOperation, MarketplacePayoutOperationInput, MarketplaceProfileUpdate, MarketplaceProfileUpdateResponse, MarketplaceReleasePolicies, MarketplaceReleasePolicy, MarketplaceReleasePolicyInput, MarketplaceSeller, MarketplaceSellerAccount, MarketplaceSellerAccounts, MarketplaceSellerContract, MarketplaceSellerList, MarketplaceSellerListParams, MarketplaceSubmerchantCreateRequest, MarketplaceSubmerchantCreateResponse, MarketplaceSubmerchantProvisioning, MarketplaceSynchronization, MetadataDTO, Order, OrderAccountingRequest, OrderAccountingResponse, OrderCardDTO, OrderChargeRequest, OrderChargeResponse, OrderCreateDTO, OrderCreateRequest, OrderCreateResponse, OrderManualCallbackRequest, OrderManualCallbackResponse, OrderOIPDTO, OrderOIPResponse, OrderPFSubMerchantDTO, OrderPayment, OrderPaymentDetail, OrderPaymentDetailDTO, OrderPaymentTermActionResponse, OrderPaymentTermCreateDTO, OrderPaymentTermUpdateDTO, OrderPaymentsRequest, OrderPaymentsResponse, OrderPostAuthRequest, OrderPostAuthResponse, OrderRefundRequest, OrderRefundResponse, OrderRelatedUpdateRequest, OrderRelatedUpdateResponse, OrderResponse, OrderStatusCode, OrderStatusResponse, OrderSubmerchant, OrderSubmerchantListItem, OrderSubmerchantListResponse, OrderTermRefundRequest, OrderTerminateRequest, OrderTerminateResponse, OrderTransaction, OrgCreateBusinessRequest, OrgCreateBusinessResponse, OrgCreateUserReq, OrgCreateUserRequest, OrgCreateUserResponse, OrgUserMobileVerifyReq, OrgUserMobileVerifyRequest, OrgUserMobileVerifyResponse, OrgUserTokenCreateReq, OrgUserTokenCreateRequest, OrgUserTokenCreateResponse, OrgUserVerifyReq, OrgUserVerifyRequest, OrgUserVerifyResponse, OrganizationCurrenciesResponse, OrganizationCurrency$1 as OrganizationCurrency, OrganizationCurrencyPreset, OrganizationCurrencyPresetsResponse, OrganizationResponse, OrganizationSettings, PaginatedResponse, PaginationParams, PaymentMethod, PaymentOption, PaymentRequest, PaymentResponse, PaymentStatus, PaymentTermDTO, PaymentTermDeleteRequest, PaymentTermRefundResponse, PaymentTermResponse, PaymentTermTerminateRequest, RefundAllOrderDTO, RefundOrderDTO, RefundRequest, RefundResponse, RemoveBasketItemRequest, RemoveBasketItemResponse, SavedCard, SetLimitUserRequest, SetLimitUserResponse, ShippingAddressDTO, SubOrganizationDTO, Submerchant, SubmerchantCreateDTO, SubmerchantCreateRequest, SubmerchantDTO, SubmerchantListItem, SubmerchantListResponse, SubmerchantMutationResponse, SubmerchantPaymentAction, SubmerchantPaymentActionResponse, SubmerchantPaymentItemUpdate, SubmerchantPaymentItemUpdateResponse, SubmerchantPayoutEventRequest, SubmerchantPayoutEventResponse, SubmerchantSuborganizationMapping, SubmerchantUpdateDTO, SubmerchantUpdateRequest, SuborganizationDetail, SuborganizationListItem, SuborganizationListResponse, SuborganizationSubmerchantMapping, SubscriptionBilling, SubscriptionCancelRequest, SubscriptionCreateRequest, SubscriptionCreateResponse, SubscriptionDetail, SubscriptionGetRequest, SubscriptionListItem, SubscriptionOrder, SubscriptionRedirectRequest, SubscriptionRedirectResponse, SubscriptionUser, SystemOrderStatus, TapsilatConfig, TimestampDTO, UpdateBasketItemRequest, UpdateBasketItemResponse, Vpos, VposAcquirer, VposAcquirerListResponse, VposAcquirerTemplate, VposAcquirerTemplateDefaults, VposAcquirerTemplateListResponse, VposCreateRequest, VposListItem, VposListParams, VposListResponse, VposMutationResponse, VposSubmerchant, VposSubmerchantCreateRequest, VposSubmerchantListItem, VposSubmerchantListParams, VposSubmerchantListResponse, VposSubmerchantMutationResponse, VposSubmerchantUpdateRequest, VposUpdateRequest, WebhookVerifyOptions };
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}