@nokinc-flur/sdk 2.1.0 → 2.2.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/dist/index.cjs +158 -3
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +185 -1
- package/dist/index.d.ts +185 -1
- package/dist/index.js +148 -3
- package/dist/index.js.map +1 -1
- package/package.json +1 -1
package/dist/index.d.cts
CHANGED
|
@@ -4948,6 +4948,7 @@ declare const ARTIFACT_TYPES: {
|
|
|
4948
4948
|
readonly STATEMENT: "statement";
|
|
4949
4949
|
readonly PASS: "pass";
|
|
4950
4950
|
readonly IDENTITY: "identity";
|
|
4951
|
+
readonly PAY_CARD: "pay_card";
|
|
4951
4952
|
};
|
|
4952
4953
|
type ArtifactType = (typeof ARTIFACT_TYPES)[keyof typeof ARTIFACT_TYPES];
|
|
4953
4954
|
declare const OfflinePaymentAuthorizationArtifactSchema: z.ZodObject<{
|
|
@@ -5591,6 +5592,23 @@ declare const IdentityArtifactSchema: z.ZodObject<{
|
|
|
5591
5592
|
claimType: "phone_verified" | "email_verified" | "bvn_verified" | "kyc_tier" | "age_band";
|
|
5592
5593
|
claimValueHash: string;
|
|
5593
5594
|
}>;
|
|
5595
|
+
declare const PayCardArtifactSchema: z.ZodObject<{
|
|
5596
|
+
userId: z.ZodString;
|
|
5597
|
+
phoneE164: z.ZodString;
|
|
5598
|
+
displayName: z.ZodString;
|
|
5599
|
+
devicePubKeySpkiB64: z.ZodString;
|
|
5600
|
+
}, "strip", z.ZodTypeAny, {
|
|
5601
|
+
phoneE164: string;
|
|
5602
|
+
userId: string;
|
|
5603
|
+
displayName: string;
|
|
5604
|
+
devicePubKeySpkiB64: string;
|
|
5605
|
+
}, {
|
|
5606
|
+
phoneE164: string;
|
|
5607
|
+
userId: string;
|
|
5608
|
+
displayName: string;
|
|
5609
|
+
devicePubKeySpkiB64: string;
|
|
5610
|
+
}>;
|
|
5611
|
+
type PayCardArtifact = z.infer<typeof PayCardArtifactSchema>;
|
|
5594
5612
|
declare const ARTIFACT_BODY_SCHEMAS: {
|
|
5595
5613
|
readonly offline_payment_authorization: z.ZodObject<{
|
|
5596
5614
|
authorization: z.ZodObject<{
|
|
@@ -6231,6 +6249,22 @@ declare const ARTIFACT_BODY_SCHEMAS: {
|
|
|
6231
6249
|
claimType: "phone_verified" | "email_verified" | "bvn_verified" | "kyc_tier" | "age_band";
|
|
6232
6250
|
claimValueHash: string;
|
|
6233
6251
|
}>;
|
|
6252
|
+
readonly pay_card: z.ZodObject<{
|
|
6253
|
+
userId: z.ZodString;
|
|
6254
|
+
phoneE164: z.ZodString;
|
|
6255
|
+
displayName: z.ZodString;
|
|
6256
|
+
devicePubKeySpkiB64: z.ZodString;
|
|
6257
|
+
}, "strip", z.ZodTypeAny, {
|
|
6258
|
+
phoneE164: string;
|
|
6259
|
+
userId: string;
|
|
6260
|
+
displayName: string;
|
|
6261
|
+
devicePubKeySpkiB64: string;
|
|
6262
|
+
}, {
|
|
6263
|
+
phoneE164: string;
|
|
6264
|
+
userId: string;
|
|
6265
|
+
displayName: string;
|
|
6266
|
+
devicePubKeySpkiB64: string;
|
|
6267
|
+
}>;
|
|
6234
6268
|
};
|
|
6235
6269
|
/** Artifact types whose body schema is fully specified and safe to dispatch. */
|
|
6236
6270
|
declare const HARDENED_ARTIFACT_TYPES: Set<ArtifactType>;
|
|
@@ -6349,4 +6383,154 @@ declare function createOfflinePaymentAuthorizationArtifactUri(input: {
|
|
|
6349
6383
|
}>;
|
|
6350
6384
|
};
|
|
6351
6385
|
|
|
6352
|
-
export { ACCOUNT_FUNDED_OAC_MAX_TTL_MS, ACCOUNT_STATUSES, ACCOUNT_TYPES, ADDITIONAL_DATA_SUBFIELD, ARTIFACT_BODY_SCHEMAS, ARTIFACT_TYPES, type Account, type AccountActivityItem, type AccountMembership, AccountMembershipSchema, AccountSchema, type AccountStatus, type AccountSummaryResponse, type AccountType, type AccountsClient, type AccountsClientOptions, type AddMemberInput, type AdditionalData, type ApiCredentialPublic, ApiCredentialPublicSchema, type ApiCredentialsAdminClient, type ArtifactBody, type ArtifactHeader, ArtifactHeaderSchema, type ArtifactType, type AtomicRedeemReceiptInput, type AtomicRedeemResponse, type AttestationSecurityLevel, AttestationSecurityLevelSchema, type AuthLogoutInput, type AuthRefreshInput, type AuthRefreshResponse, type AuthorizeSendWithBiometricInput, type AuthorizedOptions, type BiometricSigner, type BuildPassInput, type BuildReceiptInput, type BuildRedemptionInput, CLAIM_DOMAIN_V2, COLLECTION_INTENT_STATUSES, COLLECTION_PAYMENT_STATUSES, CONSUMER_OFFLINE_CLAIM_SUBMIT_GRACE_MS, CONSUMER_PAYMENT_REQUEST_DOMAIN, CONSUMER_SETTLEMENT_DOMAIN, CONSUMER_SETTLEMENT_RECEIPT_QR_PREFIX, CUSTODIAL_MODES, type CanonicalClaimInput, type CashNamespace, type ClaimSignature, type CollectionIntent, CollectionIntentSchema, type CollectionPayment, type CollectionPaymentResult, CollectionPaymentResultSchema, CollectionPaymentSchema, type CollectionReportSummary, CollectionReportSummarySchema, type CollectionStatement, CollectionStatementSchema, type CollectionsClient, type CollectionsClientOptions, type ConsumerCollectionsClient, type ConsumerOAC, type OACRecord as ConsumerOACRecord, OACRecordSchema as ConsumerOACRecordSchema, ConsumerOACSchema, type ConsumerPaymentClaim, ConsumerPaymentClaimSchema, type ConsumerPaymentRequestEnvelope, ConsumerPaymentRequestEnvelopeSchema, type ConsumerSettleResult, ConsumerSettleResultSchema, type ConsumerSettlement, ConsumerSettlementSchema, type ConsumerWithdrawalsClient, type ConsumerWithdrawalsClientOptions, type CreateBusinessAccountInput, type CreateCollectionIntentInput, CreateCollectionIntentInputSchema, type CreatePayLinkResponse, type CreatePayoutDestinationInput, CreatePayoutDestinationInputSchema, type CreatePayoutInput, CreatePayoutInputSchema, type CreateTransferOptions, type CreateWithdrawalInput, CreateWithdrawalInputSchema, type CreateWithdrawalResult, CreateWithdrawalResultSchema, type CustodialMode, type DecodedArtifactUri, type DecodedOfflineSmsSettleToken, type DeviceKeyAlg, DeviceKeyAlgSchema, type DeviceKeyRecord, DeviceKeyRecordSchema, type DeviceTrustState, FIELD, FLUR_ARTIFACT_URI_PREFIX, FLUR_ARTIFACT_URI_SCHEME, FLUR_ARTIFACT_VERSION, FlurApiError, FlurArtifactError, FlurCapExceededError, FlurClient, type FlurClientOptions, FlurError, type FlurErrorCode, FlurExpiredError, type FlurHandle, type FlurInitOptions, type FlurOfflineSettlementsClient, type FlurPartnerClient, type FlurPaymentEvent, FlurReplayError, HARDENED_ARTIFACT_TYPES, type HmacFetchOptions, IdentityArtifactSchema, type IngestFundingResult, IngestFundingResultSchema, type IssueAccountOacInput, IssueAccountOacInputSchema, type IssueOfflineTokenInput, type IssuePassInput, type IssueReceiptInput, LedgerJournalEntryArtifactSchema, type ListPassesInput, type ListPassesResponse, type ListPayoutDestinationsResult, ListPayoutDestinationsResultSchema, type ListReceiptsInput, type ListReceiptsResponse, type ListTransactionsOptions, MEMBERSHIP_ROLES, MERCHANT_PAYOUT_STATUSES, MERCHANT_PROFILE_STATUSES, type MeOfflineClient, type MeOfflineClientOptions, type MembershipRole, type MerchantAccountInfo, type MerchantPayout, MerchantPayoutSchema, type MerchantProfile, MerchantProfileSchema, type MintedApiCredential, MintedApiCredentialSchema, type Money, NGN_CURRENCY_CODE, NG_COUNTRY_CODE, NQRParseError, type NQRPayloadInput, NqrPaymentRequestArtifactSchema, type OAC, OACSchema, OAC_DEFAULT_CUMULATIVE_KOBO, OAC_DEFAULT_PER_TX_KOBO, OAC_DEFAULT_VALIDITY_MS, OFFLINE_CLAIM_SMS_PREFIX, OFFLINE_SMS_SETTLE_DOMAIN, OFFLINE_SMS_SETTLE_HEADER_BYTES, OFFLINE_SMS_SETTLE_PREFIX, OFFLINE_SMS_SETTLE_SIGNATURE_BYTES, OFFLINE_SMS_SETTLE_TOKEN_BYTES, OFFLINE_SMS_SETTLE_VERSION, type OfflineClaimAlgorithm, OfflineClaimArtifactSchema, type OfflineClaimSigner, type OfflinePaymentAuthorization, type OfflinePaymentAuthorizationArtifact, OfflinePaymentAuthorizationArtifactSchema, OfflinePaymentAuthorizationSchema, type OfflinePaymentRequest, OfflinePaymentRequestSchema, type OfflineSmsSettleInput, type OfflineSmsSettleSigner, type OfflineStatusResult, OfflineStatusResultSchema, type OfflineToken, OfflineTokenSchema, type OnboardingCompleteInput, type OnboardingCompleteResponse, type OnboardingFallback, type OnboardingRiskReason, type OnboardingStartInput, type OnboardingStartResponse, type P256EnrollmentChallengeInput, P256EnrollmentChallengeInputSchema, type P256EnrollmentChallengeResult, P256EnrollmentChallengeResultSchema, PARTNER_FUNDING_DIRECTIONS, PARTNER_FUNDING_STATUSES, PARTNER_KINDS, PARTNER_PROFILE_STATUSES, PARTNER_SCOPES, PASS_KINDS, PASS_STATES, PAYLOAD_FORMAT_INDICATOR_VALUE, PAYOUT_DESTINATION_STATUSES, POINT_OF_INITIATION, type ParsedNQR, type PartnerClientOptions, type PartnerCollectionsClient, type PartnerFunding, type PartnerFundingClient, type PartnerFundingDirection, type PartnerFundingEventInput, PartnerFundingEventInputSchema, PartnerFundingSchema, type PartnerFundingStatus, type PartnerKind, type PartnerProfile, type PartnerProfileAdminClient, type PartnerProfileAdminClientOptions, PartnerProfileSchema, type PartnerProfileStatus, type PartnerScope, type PartnerSignResult, type Pass, PassArtifactSchema, type PassKind, type PassMetadata, PassMetadataSchema, PassSchema, type PassState, type PassesClient, type PassesClientOptions, type PayCollectionInput, PayCollectionInputSchema, type PayCollectionOptions, type PayCollectionResponse, type PaymentClaim, PaymentClaimSchema, PaymentIntentArtifactSchema, type PayoutDestination, PayoutDestinationSchema, type PayoutDestinationStatus, type PayoutEventInput, PayoutEventInputSchema, type PinSetInput, type PinVerifyInput, type ProviderEventInput, ProviderEventInputSchema, type ProviderEventRecord, ProviderEventRecordSchema, type PublicCollectionIntent, PublicCollectionIntentSchema, type PushPlatform, type PushRegisterInput, RECEIPT_CHANNELS, RECEIPT_KINDS, REPLAY_WINDOW_MS, type Receipt, type ReceiptArtifact, ReceiptArtifactSchema, type ReceiptChannel, type ReceiptKind, type ReceiptPayload, ReceiptPayloadSchema, ReceiptSchema, type ReceiptsClient, type ReceiptsClientOptions, type RecipientResolveInput, type RecipientResolveResponse, type ReconciliationReport, ReconciliationReportSchema, type RecordPayoutEventResult, RecordPayoutEventResultSchema, type RedeemPassResponse, type Redemption, RedemptionSchema, type RegisterDeviceInput, type RegisterDeviceKeyP256Input, RegisterDeviceKeyP256InputSchema, type RegisterDeviceResponse, type RegisterSendDeviceKeyInput, type ResolveCollectionOptions, type ResolveCollectionResponse, type ResolvePayLinkResponse, ReversalRecordArtifactSchema, RevokeDeviceKeyInputSchema, type RevokePassInput, type RoutingHint, SETTLEMENT_SCHEDULES, type SendChallengeInput, type SendChallengeResponse, type SendMoneyInput, type SendMoneyOptions, type SendVerifyInput, type SendVerifyResponse, type SettleResponse, SettleResponseSchema, type Settlement, SettlementRecordArtifactSchema, SettlementSchema, type SignedArtifact, type SignedConsumerOAC, SignedConsumerOACSchema, type SignerPublicKey, StatementArtifactSchema, type SubscribeOptions, type TLVField, type TransactionDetailResponse, type TransactionDirection, type TransactionsListResponse, type TransferInput, type TransferResponse, type TransferStatus, type UnsignedConsumerPaymentRequest, type UnsignedOAC, type UnsignedOfflinePaymentAuthorization, type UnsignedOfflinePaymentRequest, type UnsignedPass, type UnsignedReceipt, type UnsignedRedemption, type UpsertMerchantProfileInput, UpsertMerchantProfileInputSchema, type UpsertPartnerProfileInput, UpsertPartnerProfileInputSchema, type VerifiedArtifact, type VerifyArtifactOptions, type VerifyClaimSignatureInput, WITHDRAWAL_STATES, type Withdrawal, WithdrawalSchema, type WithdrawalState, base64UrlDecode, base64UrlEncode, bodySha256Hex, buildArtifactBody, buildAuthorization, buildConsumerPaymentRequest, buildOAC, buildPass, buildPaymentRequest, buildReceipt, buildRedemption, buildSmsSettleHeader, domainTag as buildSmsSettleSignedBytes, canonicalClaimSigningBytes, canonicalClaimSigningPayload, canonicalJSONBytes, canonicalJSONStringify, canonicalRequestString, computeConsumerClaimEncounterId, computeEncounterId, constantTimeEqual, consumerPaymentRequestSigningBytes, consumerPaymentRequestSigningPayload, consumerSettlementSigningPayload, crc16ccitt, crc16ccittHex, createAccountsClient, createApiCredentialsAdminClient, createArtifactUri, createCollectionsClient, createConsumerCollectionsClient, createConsumerWithdrawalsClient, createFlurPartnerClient, createHmacFetch, createMeOfflineClient, createOfflinePaymentAuthorizationArtifactUri, createOfflineSettlementsClient, createPartnerCollectionsClient, createPartnerFundingClient, createPartnerProfileAdminClient, createPassesClient, createReceiptArtifactUri, createReceiptsClient, createSoftwareP256Signer, decodeArtifactUri, decodeAuthorizationQR, decodeBase45, decodeConsumerSettlementReceiptQR, decodeOfflineClaimSmsMessage, decodeOfflineSmsSettleToken, decodePaymentRequestQR, decodeUnverifiedConsumerSettlementReceiptQR, derToRawP256Signature, encodeArtifactUri, encodeAuthorizationQR, encodeBase45, encodeConsumerSettlementReceiptQR, encodeNQR, encodeOfflineClaimSmsMessage, encodeOfflineSmsSettleToken, encodePaymentRequestQR, extractOfflineClaimSmsToken, extractOfflineSmsSettleToken, formatAmount, generateDynamicQR, generateStaticQR, init, isConsumerPaymentRequestExpired, isHardenedArtifactType, isKnownArtifactType, isPassWithinValidity, moneyMinorToNumber, normalizeE164, parseAmountInput, parseNQR, parseQR, readTLV, routingHint, signArtifact, signAuthorization, signConsumerPaymentRequest, signOAC, signPartnerRequest, signPass, signPaymentRequest, signReceipt, signRedemption, signRequestHMAC, verifyArtifactSignature, verifyArtifactUri, verifyAuthorization, verifyClaimSignature, verifyConsumerPaymentRequest, verifyConsumerSettlement, verifyConsumerSettlementReceiptQR, verifyOAC, verifyOfflineSmsSettleToken, verifyPass, verifyPaymentRequest, verifyReceipt, verifyRedemption, verifyRequestHMAC, writeTLV };
|
|
6386
|
+
/**
|
|
6387
|
+
* Pay Card — Tier B of the Flur recipient-trust ladder.
|
|
6388
|
+
*
|
|
6389
|
+
* A Pay Card is a holder-signed, expiring identity attestation rendered as a
|
|
6390
|
+
* QR. When a payer scans a Pay Card and verifies its signature against the
|
|
6391
|
+
* holder's registered device-key, they obtain a trusted (userId, phoneE164,
|
|
6392
|
+
* displayName, devicePubKey) tuple they can cache locally and reuse to pay
|
|
6393
|
+
* the holder fully offline thereafter.
|
|
6394
|
+
*
|
|
6395
|
+
* Transport: the standard Flur v1 signed-artifact envelope
|
|
6396
|
+
* `flur://v1/pay_card/<base64url(canonical-json(body))>.<base64url(sig)>`
|
|
6397
|
+
*
|
|
6398
|
+
* Trust model:
|
|
6399
|
+
* - Card is signed by the holder's device key (P-256, ECDSA-SHA256, DER).
|
|
6400
|
+
* - Verifier resolves (issuer=userId, kid) to a SubjectPublicKeyInfo via
|
|
6401
|
+
* Flur's device-key registry — typically online at scan time.
|
|
6402
|
+
* - On successful verify, the scanner upserts the card into its local
|
|
6403
|
+
* verified-contact cache (Tier A) so future pays are offline.
|
|
6404
|
+
*
|
|
6405
|
+
* This module is the canonical implementation. The backend and mobile MUST
|
|
6406
|
+
* use it for build, verify, and freshness checks — no parallel implementations.
|
|
6407
|
+
*
|
|
6408
|
+
* Industry-standard defaults (configurable per call):
|
|
6409
|
+
* - TTL: 90 days from issue.
|
|
6410
|
+
* - Refresh threshold: 30 days remaining triggers a 'refresh_recommended'
|
|
6411
|
+
* freshness state.
|
|
6412
|
+
*
|
|
6413
|
+
* Field policy (enforced by {@link PayCardArtifactSchema}):
|
|
6414
|
+
* - displayName \u2264 64 chars
|
|
6415
|
+
* - phoneE164 must match /^\+[1-9]\d{7,14}$/
|
|
6416
|
+
* - devicePubKeySpkiB64 must be standard base64 (no url-safe variants),
|
|
6417
|
+
* 64..256 chars (covers P-256 SPKI = 91 chars plus forward-compat).
|
|
6418
|
+
*/
|
|
6419
|
+
|
|
6420
|
+
/** Default Pay Card lifetime (ms): 90 days. */
|
|
6421
|
+
declare const PAY_CARD_DEFAULT_TTL_MS: number;
|
|
6422
|
+
/**
|
|
6423
|
+
* When the remaining lifetime drops below this threshold (ms),
|
|
6424
|
+
* {@link inspectPayCardFreshness} returns `'refresh_recommended'`.
|
|
6425
|
+
*
|
|
6426
|
+
* Holders should refresh in the background well before hard-expiry so
|
|
6427
|
+
* a stale-card scan never blocks a payment.
|
|
6428
|
+
*/
|
|
6429
|
+
declare const PAY_CARD_REFRESH_THRESHOLD_MS: number;
|
|
6430
|
+
/** URI prefix for Pay Card artifacts. */
|
|
6431
|
+
declare const PAY_CARD_URI_PREFIX: string;
|
|
6432
|
+
/**
|
|
6433
|
+
* Inputs for {@link createPayCardArtifactUri}. Mirrors the artifact codec
|
|
6434
|
+
* inputs but pins type to `pay_card`, validates the data shape, and applies
|
|
6435
|
+
* the default TTL when `expiresAtSeconds` is omitted.
|
|
6436
|
+
*/
|
|
6437
|
+
interface CreatePayCardArtifactInput {
|
|
6438
|
+
/** Holder Flur userId (also used as the envelope issuer). */
|
|
6439
|
+
issuer: string;
|
|
6440
|
+
/** Holder device key id. */
|
|
6441
|
+
keyId: string;
|
|
6442
|
+
/** Holder device private key (raw 32-byte P-256 scalar). */
|
|
6443
|
+
privateKey: Uint8Array;
|
|
6444
|
+
/** Pay Card business payload. */
|
|
6445
|
+
data: PayCardArtifact;
|
|
6446
|
+
/** URL-safe nonce, 8..64 chars. Required for envelope uniqueness. */
|
|
6447
|
+
nonce: string;
|
|
6448
|
+
/** Override the issued-at (seconds). Defaults to now. */
|
|
6449
|
+
issuedAtSeconds?: number;
|
|
6450
|
+
/**
|
|
6451
|
+
* Override the expiry (seconds). Defaults to `issuedAt + 90 days`.
|
|
6452
|
+
*
|
|
6453
|
+
* SECURITY: a Pay Card is a holder-signed identity attestation, so a
|
|
6454
|
+
* hard expiry is mandatory at the protocol level — there is no opt-out.
|
|
6455
|
+
* Callers may shorten the TTL but cannot remove it; backend verifiers
|
|
6456
|
+
* additionally reject envelopes without `exp` (`PAY_CARD_NO_EXPIRY`).
|
|
6457
|
+
*/
|
|
6458
|
+
expiresAtSeconds?: number;
|
|
6459
|
+
}
|
|
6460
|
+
/**
|
|
6461
|
+
* Build, sign, and encode a Pay Card as a `flur://v1/pay_card/...` URI.
|
|
6462
|
+
*
|
|
6463
|
+
* Defaults the envelope's `exp` to `iat + 90 days` so callers do not need
|
|
6464
|
+
* to compute lifetimes. Refuses to emit a card whose `userId` payload
|
|
6465
|
+
* field disagrees with the envelope `issuer` \u2014 the holder must sign their
|
|
6466
|
+
* own card.
|
|
6467
|
+
*/
|
|
6468
|
+
declare function createPayCardArtifactUri(input: CreatePayCardArtifactInput): {
|
|
6469
|
+
uri: string;
|
|
6470
|
+
signed: SignedArtifact<PayCardArtifact>;
|
|
6471
|
+
};
|
|
6472
|
+
/** True when the URI is shaped as a Pay Card artifact (prefix check only). */
|
|
6473
|
+
declare function isPayCardArtifactUri(uri: string): boolean;
|
|
6474
|
+
interface DecodedPayCard {
|
|
6475
|
+
/** Validated Pay Card body (data + envelope header). */
|
|
6476
|
+
body: ArtifactBody<PayCardArtifact>;
|
|
6477
|
+
/** ASN.1 DER ECDSA P-256 signature, base64 (standard). */
|
|
6478
|
+
sig: string;
|
|
6479
|
+
/** Raw decoded envelope \u2014 useful when re-emitting or relaying. */
|
|
6480
|
+
decoded: DecodedArtifactUri;
|
|
6481
|
+
}
|
|
6482
|
+
/**
|
|
6483
|
+
* Decode a Pay Card URI without verifying its signature. Validates the URI
|
|
6484
|
+
* shape, the envelope header, and the data schema. Use when the caller wants
|
|
6485
|
+
* to inspect the card before deciding whether/how to verify it.
|
|
6486
|
+
*/
|
|
6487
|
+
declare function decodePayCardArtifact(uri: string): DecodedPayCard;
|
|
6488
|
+
/**
|
|
6489
|
+
* Verify a Pay Card URI fully:
|
|
6490
|
+
* 1. URI + envelope + data schema (via {@link decodePayCardArtifact}).
|
|
6491
|
+
* 2. Envelope expiry (unless `options.enforceExpiry === false`).
|
|
6492
|
+
* 3. ECDSA P-256 signature against the supplied holder SPKI public key.
|
|
6493
|
+
*
|
|
6494
|
+
* The caller is responsible for resolving `(issuer, kid)` to the holder's
|
|
6495
|
+
* registered SPKI public key (typically via the backend device-key registry).
|
|
6496
|
+
*/
|
|
6497
|
+
declare function verifyPayCardArtifact(uri: string, publicKeySpkiB64: string, options?: VerifyArtifactOptions): DecodedPayCard;
|
|
6498
|
+
type PayCardFreshness = 'fresh' | 'refresh_recommended' | 'expired' | 'no_expiry';
|
|
6499
|
+
/**
|
|
6500
|
+
* Classify a Pay Card by remaining lifetime. Used by holders to decide when
|
|
6501
|
+
* to re-fetch a freshly-signed card from the backend, and by scanners to
|
|
6502
|
+
* decide whether to prompt the holder to refresh.
|
|
6503
|
+
*
|
|
6504
|
+
* - `'expired'` : envelope.exp \u2264 now
|
|
6505
|
+
* - `'refresh_recommended'` : 0 < remaining \u2264 PAY_CARD_REFRESH_THRESHOLD_MS
|
|
6506
|
+
* - `'fresh'` : remaining > PAY_CARD_REFRESH_THRESHOLD_MS
|
|
6507
|
+
* - `'no_expiry'` : envelope omits `exp` (non-production cards only)
|
|
6508
|
+
*/
|
|
6509
|
+
declare function inspectPayCardFreshness(decoded: DecodedPayCard, nowMs?: number): PayCardFreshness;
|
|
6510
|
+
/**
|
|
6511
|
+
* Compute the canonical body bytes a backend must sign when issuing a
|
|
6512
|
+
* Pay Card on behalf of the holder via a *server-side* signing path.
|
|
6513
|
+
*
|
|
6514
|
+
* This export exists so a backend (which holds neither the holder's private
|
|
6515
|
+
* key nor a parallel envelope implementation) can call into the SDK to
|
|
6516
|
+
* obtain the exact bytes to sign with a hardware-backed device key abstraction.
|
|
6517
|
+
* Mobile clients that sign locally should use {@link createPayCardArtifactUri}
|
|
6518
|
+
* instead.
|
|
6519
|
+
*
|
|
6520
|
+
* Returned bytes are the same input passed to ECDSA P-256(SHA-256). Callers
|
|
6521
|
+
* MUST keep this contract \u2014 changing the signing input is a protocol break.
|
|
6522
|
+
*/
|
|
6523
|
+
declare function buildPayCardSigningInput(input: {
|
|
6524
|
+
issuer: string;
|
|
6525
|
+
keyId: string;
|
|
6526
|
+
data: PayCardArtifact;
|
|
6527
|
+
nonce: string;
|
|
6528
|
+
issuedAtSeconds?: number;
|
|
6529
|
+
/** See {@link CreatePayCardArtifactInput.expiresAtSeconds}. */
|
|
6530
|
+
expiresAtSeconds?: number;
|
|
6531
|
+
}): {
|
|
6532
|
+
body: ArtifactBody<PayCardArtifact>;
|
|
6533
|
+
bodyBytes: Uint8Array;
|
|
6534
|
+
};
|
|
6535
|
+
|
|
6536
|
+
export { ACCOUNT_FUNDED_OAC_MAX_TTL_MS, ACCOUNT_STATUSES, ACCOUNT_TYPES, ADDITIONAL_DATA_SUBFIELD, ARTIFACT_BODY_SCHEMAS, ARTIFACT_TYPES, type Account, type AccountActivityItem, type AccountMembership, AccountMembershipSchema, AccountSchema, type AccountStatus, type AccountSummaryResponse, type AccountType, type AccountsClient, type AccountsClientOptions, type AddMemberInput, type AdditionalData, type ApiCredentialPublic, ApiCredentialPublicSchema, type ApiCredentialsAdminClient, type ArtifactBody, type ArtifactHeader, ArtifactHeaderSchema, type ArtifactType, type AtomicRedeemReceiptInput, type AtomicRedeemResponse, type AttestationSecurityLevel, AttestationSecurityLevelSchema, type AuthLogoutInput, type AuthRefreshInput, type AuthRefreshResponse, type AuthorizeSendWithBiometricInput, type AuthorizedOptions, type BiometricSigner, type BuildPassInput, type BuildReceiptInput, type BuildRedemptionInput, CLAIM_DOMAIN_V2, COLLECTION_INTENT_STATUSES, COLLECTION_PAYMENT_STATUSES, CONSUMER_OFFLINE_CLAIM_SUBMIT_GRACE_MS, CONSUMER_PAYMENT_REQUEST_DOMAIN, CONSUMER_SETTLEMENT_DOMAIN, CONSUMER_SETTLEMENT_RECEIPT_QR_PREFIX, CUSTODIAL_MODES, type CanonicalClaimInput, type CashNamespace, type ClaimSignature, type CollectionIntent, CollectionIntentSchema, type CollectionPayment, type CollectionPaymentResult, CollectionPaymentResultSchema, CollectionPaymentSchema, type CollectionReportSummary, CollectionReportSummarySchema, type CollectionStatement, CollectionStatementSchema, type CollectionsClient, type CollectionsClientOptions, type ConsumerCollectionsClient, type ConsumerOAC, type OACRecord as ConsumerOACRecord, OACRecordSchema as ConsumerOACRecordSchema, ConsumerOACSchema, type ConsumerPaymentClaim, ConsumerPaymentClaimSchema, type ConsumerPaymentRequestEnvelope, ConsumerPaymentRequestEnvelopeSchema, type ConsumerSettleResult, ConsumerSettleResultSchema, type ConsumerSettlement, ConsumerSettlementSchema, type ConsumerWithdrawalsClient, type ConsumerWithdrawalsClientOptions, type CreateBusinessAccountInput, type CreateCollectionIntentInput, CreateCollectionIntentInputSchema, type CreatePayCardArtifactInput, type CreatePayLinkResponse, type CreatePayoutDestinationInput, CreatePayoutDestinationInputSchema, type CreatePayoutInput, CreatePayoutInputSchema, type CreateTransferOptions, type CreateWithdrawalInput, CreateWithdrawalInputSchema, type CreateWithdrawalResult, CreateWithdrawalResultSchema, type CustodialMode, type DecodedArtifactUri, type DecodedOfflineSmsSettleToken, type DecodedPayCard, type DeviceKeyAlg, DeviceKeyAlgSchema, type DeviceKeyRecord, DeviceKeyRecordSchema, type DeviceTrustState, FIELD, FLUR_ARTIFACT_URI_PREFIX, FLUR_ARTIFACT_URI_SCHEME, FLUR_ARTIFACT_VERSION, FlurApiError, FlurArtifactError, FlurCapExceededError, FlurClient, type FlurClientOptions, FlurError, type FlurErrorCode, FlurExpiredError, type FlurHandle, type FlurInitOptions, type FlurOfflineSettlementsClient, type FlurPartnerClient, type FlurPaymentEvent, FlurReplayError, HARDENED_ARTIFACT_TYPES, type HmacFetchOptions, IdentityArtifactSchema, type IngestFundingResult, IngestFundingResultSchema, type IssueAccountOacInput, IssueAccountOacInputSchema, type IssueOfflineTokenInput, type IssuePassInput, type IssueReceiptInput, LedgerJournalEntryArtifactSchema, type ListPassesInput, type ListPassesResponse, type ListPayoutDestinationsResult, ListPayoutDestinationsResultSchema, type ListReceiptsInput, type ListReceiptsResponse, type ListTransactionsOptions, MEMBERSHIP_ROLES, MERCHANT_PAYOUT_STATUSES, MERCHANT_PROFILE_STATUSES, type MeOfflineClient, type MeOfflineClientOptions, type MembershipRole, type MerchantAccountInfo, type MerchantPayout, MerchantPayoutSchema, type MerchantProfile, MerchantProfileSchema, type MintedApiCredential, MintedApiCredentialSchema, type Money, NGN_CURRENCY_CODE, NG_COUNTRY_CODE, NQRParseError, type NQRPayloadInput, NqrPaymentRequestArtifactSchema, type OAC, OACSchema, OAC_DEFAULT_CUMULATIVE_KOBO, OAC_DEFAULT_PER_TX_KOBO, OAC_DEFAULT_VALIDITY_MS, OFFLINE_CLAIM_SMS_PREFIX, OFFLINE_SMS_SETTLE_DOMAIN, OFFLINE_SMS_SETTLE_HEADER_BYTES, OFFLINE_SMS_SETTLE_PREFIX, OFFLINE_SMS_SETTLE_SIGNATURE_BYTES, OFFLINE_SMS_SETTLE_TOKEN_BYTES, OFFLINE_SMS_SETTLE_VERSION, type OfflineClaimAlgorithm, OfflineClaimArtifactSchema, type OfflineClaimSigner, type OfflinePaymentAuthorization, type OfflinePaymentAuthorizationArtifact, OfflinePaymentAuthorizationArtifactSchema, OfflinePaymentAuthorizationSchema, type OfflinePaymentRequest, OfflinePaymentRequestSchema, type OfflineSmsSettleInput, type OfflineSmsSettleSigner, type OfflineStatusResult, OfflineStatusResultSchema, type OfflineToken, OfflineTokenSchema, type OnboardingCompleteInput, type OnboardingCompleteResponse, type OnboardingFallback, type OnboardingRiskReason, type OnboardingStartInput, type OnboardingStartResponse, type P256EnrollmentChallengeInput, P256EnrollmentChallengeInputSchema, type P256EnrollmentChallengeResult, P256EnrollmentChallengeResultSchema, PARTNER_FUNDING_DIRECTIONS, PARTNER_FUNDING_STATUSES, PARTNER_KINDS, PARTNER_PROFILE_STATUSES, PARTNER_SCOPES, PASS_KINDS, PASS_STATES, PAYLOAD_FORMAT_INDICATOR_VALUE, PAYOUT_DESTINATION_STATUSES, PAY_CARD_DEFAULT_TTL_MS, PAY_CARD_REFRESH_THRESHOLD_MS, PAY_CARD_URI_PREFIX, POINT_OF_INITIATION, type ParsedNQR, type PartnerClientOptions, type PartnerCollectionsClient, type PartnerFunding, type PartnerFundingClient, type PartnerFundingDirection, type PartnerFundingEventInput, PartnerFundingEventInputSchema, PartnerFundingSchema, type PartnerFundingStatus, type PartnerKind, type PartnerProfile, type PartnerProfileAdminClient, type PartnerProfileAdminClientOptions, PartnerProfileSchema, type PartnerProfileStatus, type PartnerScope, type PartnerSignResult, type Pass, PassArtifactSchema, type PassKind, type PassMetadata, PassMetadataSchema, PassSchema, type PassState, type PassesClient, type PassesClientOptions, type PayCardArtifact, PayCardArtifactSchema, type PayCardFreshness, type PayCollectionInput, PayCollectionInputSchema, type PayCollectionOptions, type PayCollectionResponse, type PaymentClaim, PaymentClaimSchema, PaymentIntentArtifactSchema, type PayoutDestination, PayoutDestinationSchema, type PayoutDestinationStatus, type PayoutEventInput, PayoutEventInputSchema, type PinSetInput, type PinVerifyInput, type ProviderEventInput, ProviderEventInputSchema, type ProviderEventRecord, ProviderEventRecordSchema, type PublicCollectionIntent, PublicCollectionIntentSchema, type PushPlatform, type PushRegisterInput, RECEIPT_CHANNELS, RECEIPT_KINDS, REPLAY_WINDOW_MS, type Receipt, type ReceiptArtifact, ReceiptArtifactSchema, type ReceiptChannel, type ReceiptKind, type ReceiptPayload, ReceiptPayloadSchema, ReceiptSchema, type ReceiptsClient, type ReceiptsClientOptions, type RecipientResolveInput, type RecipientResolveResponse, type ReconciliationReport, ReconciliationReportSchema, type RecordPayoutEventResult, RecordPayoutEventResultSchema, type RedeemPassResponse, type Redemption, RedemptionSchema, type RegisterDeviceInput, type RegisterDeviceKeyP256Input, RegisterDeviceKeyP256InputSchema, type RegisterDeviceResponse, type RegisterSendDeviceKeyInput, type ResolveCollectionOptions, type ResolveCollectionResponse, type ResolvePayLinkResponse, ReversalRecordArtifactSchema, RevokeDeviceKeyInputSchema, type RevokePassInput, type RoutingHint, SETTLEMENT_SCHEDULES, type SendChallengeInput, type SendChallengeResponse, type SendMoneyInput, type SendMoneyOptions, type SendVerifyInput, type SendVerifyResponse, type SettleResponse, SettleResponseSchema, type Settlement, SettlementRecordArtifactSchema, SettlementSchema, type SignedArtifact, type SignedConsumerOAC, SignedConsumerOACSchema, type SignerPublicKey, StatementArtifactSchema, type SubscribeOptions, type TLVField, type TransactionDetailResponse, type TransactionDirection, type TransactionsListResponse, type TransferInput, type TransferResponse, type TransferStatus, type UnsignedConsumerPaymentRequest, type UnsignedOAC, type UnsignedOfflinePaymentAuthorization, type UnsignedOfflinePaymentRequest, type UnsignedPass, type UnsignedReceipt, type UnsignedRedemption, type UpsertMerchantProfileInput, UpsertMerchantProfileInputSchema, type UpsertPartnerProfileInput, UpsertPartnerProfileInputSchema, type VerifiedArtifact, type VerifyArtifactOptions, type VerifyClaimSignatureInput, WITHDRAWAL_STATES, type Withdrawal, WithdrawalSchema, type WithdrawalState, base64UrlDecode, base64UrlEncode, bodySha256Hex, buildArtifactBody, buildAuthorization, buildConsumerPaymentRequest, buildOAC, buildPass, buildPayCardSigningInput, buildPaymentRequest, buildReceipt, buildRedemption, buildSmsSettleHeader, domainTag as buildSmsSettleSignedBytes, canonicalClaimSigningBytes, canonicalClaimSigningPayload, canonicalJSONBytes, canonicalJSONStringify, canonicalRequestString, computeConsumerClaimEncounterId, computeEncounterId, constantTimeEqual, consumerPaymentRequestSigningBytes, consumerPaymentRequestSigningPayload, consumerSettlementSigningPayload, crc16ccitt, crc16ccittHex, createAccountsClient, createApiCredentialsAdminClient, createArtifactUri, createCollectionsClient, createConsumerCollectionsClient, createConsumerWithdrawalsClient, createFlurPartnerClient, createHmacFetch, createMeOfflineClient, createOfflinePaymentAuthorizationArtifactUri, createOfflineSettlementsClient, createPartnerCollectionsClient, createPartnerFundingClient, createPartnerProfileAdminClient, createPassesClient, createPayCardArtifactUri, createReceiptArtifactUri, createReceiptsClient, createSoftwareP256Signer, decodeArtifactUri, decodeAuthorizationQR, decodeBase45, decodeConsumerSettlementReceiptQR, decodeOfflineClaimSmsMessage, decodeOfflineSmsSettleToken, decodePayCardArtifact, decodePaymentRequestQR, decodeUnverifiedConsumerSettlementReceiptQR, derToRawP256Signature, encodeArtifactUri, encodeAuthorizationQR, encodeBase45, encodeConsumerSettlementReceiptQR, encodeNQR, encodeOfflineClaimSmsMessage, encodeOfflineSmsSettleToken, encodePaymentRequestQR, extractOfflineClaimSmsToken, extractOfflineSmsSettleToken, formatAmount, generateDynamicQR, generateStaticQR, init, inspectPayCardFreshness, isConsumerPaymentRequestExpired, isHardenedArtifactType, isKnownArtifactType, isPassWithinValidity, isPayCardArtifactUri, moneyMinorToNumber, normalizeE164, parseAmountInput, parseNQR, parseQR, readTLV, routingHint, signArtifact, signAuthorization, signConsumerPaymentRequest, signOAC, signPartnerRequest, signPass, signPaymentRequest, signReceipt, signRedemption, signRequestHMAC, verifyArtifactSignature, verifyArtifactUri, verifyAuthorization, verifyClaimSignature, verifyConsumerPaymentRequest, verifyConsumerSettlement, verifyConsumerSettlementReceiptQR, verifyOAC, verifyOfflineSmsSettleToken, verifyPass, verifyPayCardArtifact, verifyPaymentRequest, verifyReceipt, verifyRedemption, verifyRequestHMAC, writeTLV };
|
package/dist/index.d.ts
CHANGED
|
@@ -4948,6 +4948,7 @@ declare const ARTIFACT_TYPES: {
|
|
|
4948
4948
|
readonly STATEMENT: "statement";
|
|
4949
4949
|
readonly PASS: "pass";
|
|
4950
4950
|
readonly IDENTITY: "identity";
|
|
4951
|
+
readonly PAY_CARD: "pay_card";
|
|
4951
4952
|
};
|
|
4952
4953
|
type ArtifactType = (typeof ARTIFACT_TYPES)[keyof typeof ARTIFACT_TYPES];
|
|
4953
4954
|
declare const OfflinePaymentAuthorizationArtifactSchema: z.ZodObject<{
|
|
@@ -5591,6 +5592,23 @@ declare const IdentityArtifactSchema: z.ZodObject<{
|
|
|
5591
5592
|
claimType: "phone_verified" | "email_verified" | "bvn_verified" | "kyc_tier" | "age_band";
|
|
5592
5593
|
claimValueHash: string;
|
|
5593
5594
|
}>;
|
|
5595
|
+
declare const PayCardArtifactSchema: z.ZodObject<{
|
|
5596
|
+
userId: z.ZodString;
|
|
5597
|
+
phoneE164: z.ZodString;
|
|
5598
|
+
displayName: z.ZodString;
|
|
5599
|
+
devicePubKeySpkiB64: z.ZodString;
|
|
5600
|
+
}, "strip", z.ZodTypeAny, {
|
|
5601
|
+
phoneE164: string;
|
|
5602
|
+
userId: string;
|
|
5603
|
+
displayName: string;
|
|
5604
|
+
devicePubKeySpkiB64: string;
|
|
5605
|
+
}, {
|
|
5606
|
+
phoneE164: string;
|
|
5607
|
+
userId: string;
|
|
5608
|
+
displayName: string;
|
|
5609
|
+
devicePubKeySpkiB64: string;
|
|
5610
|
+
}>;
|
|
5611
|
+
type PayCardArtifact = z.infer<typeof PayCardArtifactSchema>;
|
|
5594
5612
|
declare const ARTIFACT_BODY_SCHEMAS: {
|
|
5595
5613
|
readonly offline_payment_authorization: z.ZodObject<{
|
|
5596
5614
|
authorization: z.ZodObject<{
|
|
@@ -6231,6 +6249,22 @@ declare const ARTIFACT_BODY_SCHEMAS: {
|
|
|
6231
6249
|
claimType: "phone_verified" | "email_verified" | "bvn_verified" | "kyc_tier" | "age_band";
|
|
6232
6250
|
claimValueHash: string;
|
|
6233
6251
|
}>;
|
|
6252
|
+
readonly pay_card: z.ZodObject<{
|
|
6253
|
+
userId: z.ZodString;
|
|
6254
|
+
phoneE164: z.ZodString;
|
|
6255
|
+
displayName: z.ZodString;
|
|
6256
|
+
devicePubKeySpkiB64: z.ZodString;
|
|
6257
|
+
}, "strip", z.ZodTypeAny, {
|
|
6258
|
+
phoneE164: string;
|
|
6259
|
+
userId: string;
|
|
6260
|
+
displayName: string;
|
|
6261
|
+
devicePubKeySpkiB64: string;
|
|
6262
|
+
}, {
|
|
6263
|
+
phoneE164: string;
|
|
6264
|
+
userId: string;
|
|
6265
|
+
displayName: string;
|
|
6266
|
+
devicePubKeySpkiB64: string;
|
|
6267
|
+
}>;
|
|
6234
6268
|
};
|
|
6235
6269
|
/** Artifact types whose body schema is fully specified and safe to dispatch. */
|
|
6236
6270
|
declare const HARDENED_ARTIFACT_TYPES: Set<ArtifactType>;
|
|
@@ -6349,4 +6383,154 @@ declare function createOfflinePaymentAuthorizationArtifactUri(input: {
|
|
|
6349
6383
|
}>;
|
|
6350
6384
|
};
|
|
6351
6385
|
|
|
6352
|
-
export { ACCOUNT_FUNDED_OAC_MAX_TTL_MS, ACCOUNT_STATUSES, ACCOUNT_TYPES, ADDITIONAL_DATA_SUBFIELD, ARTIFACT_BODY_SCHEMAS, ARTIFACT_TYPES, type Account, type AccountActivityItem, type AccountMembership, AccountMembershipSchema, AccountSchema, type AccountStatus, type AccountSummaryResponse, type AccountType, type AccountsClient, type AccountsClientOptions, type AddMemberInput, type AdditionalData, type ApiCredentialPublic, ApiCredentialPublicSchema, type ApiCredentialsAdminClient, type ArtifactBody, type ArtifactHeader, ArtifactHeaderSchema, type ArtifactType, type AtomicRedeemReceiptInput, type AtomicRedeemResponse, type AttestationSecurityLevel, AttestationSecurityLevelSchema, type AuthLogoutInput, type AuthRefreshInput, type AuthRefreshResponse, type AuthorizeSendWithBiometricInput, type AuthorizedOptions, type BiometricSigner, type BuildPassInput, type BuildReceiptInput, type BuildRedemptionInput, CLAIM_DOMAIN_V2, COLLECTION_INTENT_STATUSES, COLLECTION_PAYMENT_STATUSES, CONSUMER_OFFLINE_CLAIM_SUBMIT_GRACE_MS, CONSUMER_PAYMENT_REQUEST_DOMAIN, CONSUMER_SETTLEMENT_DOMAIN, CONSUMER_SETTLEMENT_RECEIPT_QR_PREFIX, CUSTODIAL_MODES, type CanonicalClaimInput, type CashNamespace, type ClaimSignature, type CollectionIntent, CollectionIntentSchema, type CollectionPayment, type CollectionPaymentResult, CollectionPaymentResultSchema, CollectionPaymentSchema, type CollectionReportSummary, CollectionReportSummarySchema, type CollectionStatement, CollectionStatementSchema, type CollectionsClient, type CollectionsClientOptions, type ConsumerCollectionsClient, type ConsumerOAC, type OACRecord as ConsumerOACRecord, OACRecordSchema as ConsumerOACRecordSchema, ConsumerOACSchema, type ConsumerPaymentClaim, ConsumerPaymentClaimSchema, type ConsumerPaymentRequestEnvelope, ConsumerPaymentRequestEnvelopeSchema, type ConsumerSettleResult, ConsumerSettleResultSchema, type ConsumerSettlement, ConsumerSettlementSchema, type ConsumerWithdrawalsClient, type ConsumerWithdrawalsClientOptions, type CreateBusinessAccountInput, type CreateCollectionIntentInput, CreateCollectionIntentInputSchema, type CreatePayLinkResponse, type CreatePayoutDestinationInput, CreatePayoutDestinationInputSchema, type CreatePayoutInput, CreatePayoutInputSchema, type CreateTransferOptions, type CreateWithdrawalInput, CreateWithdrawalInputSchema, type CreateWithdrawalResult, CreateWithdrawalResultSchema, type CustodialMode, type DecodedArtifactUri, type DecodedOfflineSmsSettleToken, type DeviceKeyAlg, DeviceKeyAlgSchema, type DeviceKeyRecord, DeviceKeyRecordSchema, type DeviceTrustState, FIELD, FLUR_ARTIFACT_URI_PREFIX, FLUR_ARTIFACT_URI_SCHEME, FLUR_ARTIFACT_VERSION, FlurApiError, FlurArtifactError, FlurCapExceededError, FlurClient, type FlurClientOptions, FlurError, type FlurErrorCode, FlurExpiredError, type FlurHandle, type FlurInitOptions, type FlurOfflineSettlementsClient, type FlurPartnerClient, type FlurPaymentEvent, FlurReplayError, HARDENED_ARTIFACT_TYPES, type HmacFetchOptions, IdentityArtifactSchema, type IngestFundingResult, IngestFundingResultSchema, type IssueAccountOacInput, IssueAccountOacInputSchema, type IssueOfflineTokenInput, type IssuePassInput, type IssueReceiptInput, LedgerJournalEntryArtifactSchema, type ListPassesInput, type ListPassesResponse, type ListPayoutDestinationsResult, ListPayoutDestinationsResultSchema, type ListReceiptsInput, type ListReceiptsResponse, type ListTransactionsOptions, MEMBERSHIP_ROLES, MERCHANT_PAYOUT_STATUSES, MERCHANT_PROFILE_STATUSES, type MeOfflineClient, type MeOfflineClientOptions, type MembershipRole, type MerchantAccountInfo, type MerchantPayout, MerchantPayoutSchema, type MerchantProfile, MerchantProfileSchema, type MintedApiCredential, MintedApiCredentialSchema, type Money, NGN_CURRENCY_CODE, NG_COUNTRY_CODE, NQRParseError, type NQRPayloadInput, NqrPaymentRequestArtifactSchema, type OAC, OACSchema, OAC_DEFAULT_CUMULATIVE_KOBO, OAC_DEFAULT_PER_TX_KOBO, OAC_DEFAULT_VALIDITY_MS, OFFLINE_CLAIM_SMS_PREFIX, OFFLINE_SMS_SETTLE_DOMAIN, OFFLINE_SMS_SETTLE_HEADER_BYTES, OFFLINE_SMS_SETTLE_PREFIX, OFFLINE_SMS_SETTLE_SIGNATURE_BYTES, OFFLINE_SMS_SETTLE_TOKEN_BYTES, OFFLINE_SMS_SETTLE_VERSION, type OfflineClaimAlgorithm, OfflineClaimArtifactSchema, type OfflineClaimSigner, type OfflinePaymentAuthorization, type OfflinePaymentAuthorizationArtifact, OfflinePaymentAuthorizationArtifactSchema, OfflinePaymentAuthorizationSchema, type OfflinePaymentRequest, OfflinePaymentRequestSchema, type OfflineSmsSettleInput, type OfflineSmsSettleSigner, type OfflineStatusResult, OfflineStatusResultSchema, type OfflineToken, OfflineTokenSchema, type OnboardingCompleteInput, type OnboardingCompleteResponse, type OnboardingFallback, type OnboardingRiskReason, type OnboardingStartInput, type OnboardingStartResponse, type P256EnrollmentChallengeInput, P256EnrollmentChallengeInputSchema, type P256EnrollmentChallengeResult, P256EnrollmentChallengeResultSchema, PARTNER_FUNDING_DIRECTIONS, PARTNER_FUNDING_STATUSES, PARTNER_KINDS, PARTNER_PROFILE_STATUSES, PARTNER_SCOPES, PASS_KINDS, PASS_STATES, PAYLOAD_FORMAT_INDICATOR_VALUE, PAYOUT_DESTINATION_STATUSES, POINT_OF_INITIATION, type ParsedNQR, type PartnerClientOptions, type PartnerCollectionsClient, type PartnerFunding, type PartnerFundingClient, type PartnerFundingDirection, type PartnerFundingEventInput, PartnerFundingEventInputSchema, PartnerFundingSchema, type PartnerFundingStatus, type PartnerKind, type PartnerProfile, type PartnerProfileAdminClient, type PartnerProfileAdminClientOptions, PartnerProfileSchema, type PartnerProfileStatus, type PartnerScope, type PartnerSignResult, type Pass, PassArtifactSchema, type PassKind, type PassMetadata, PassMetadataSchema, PassSchema, type PassState, type PassesClient, type PassesClientOptions, type PayCollectionInput, PayCollectionInputSchema, type PayCollectionOptions, type PayCollectionResponse, type PaymentClaim, PaymentClaimSchema, PaymentIntentArtifactSchema, type PayoutDestination, PayoutDestinationSchema, type PayoutDestinationStatus, type PayoutEventInput, PayoutEventInputSchema, type PinSetInput, type PinVerifyInput, type ProviderEventInput, ProviderEventInputSchema, type ProviderEventRecord, ProviderEventRecordSchema, type PublicCollectionIntent, PublicCollectionIntentSchema, type PushPlatform, type PushRegisterInput, RECEIPT_CHANNELS, RECEIPT_KINDS, REPLAY_WINDOW_MS, type Receipt, type ReceiptArtifact, ReceiptArtifactSchema, type ReceiptChannel, type ReceiptKind, type ReceiptPayload, ReceiptPayloadSchema, ReceiptSchema, type ReceiptsClient, type ReceiptsClientOptions, type RecipientResolveInput, type RecipientResolveResponse, type ReconciliationReport, ReconciliationReportSchema, type RecordPayoutEventResult, RecordPayoutEventResultSchema, type RedeemPassResponse, type Redemption, RedemptionSchema, type RegisterDeviceInput, type RegisterDeviceKeyP256Input, RegisterDeviceKeyP256InputSchema, type RegisterDeviceResponse, type RegisterSendDeviceKeyInput, type ResolveCollectionOptions, type ResolveCollectionResponse, type ResolvePayLinkResponse, ReversalRecordArtifactSchema, RevokeDeviceKeyInputSchema, type RevokePassInput, type RoutingHint, SETTLEMENT_SCHEDULES, type SendChallengeInput, type SendChallengeResponse, type SendMoneyInput, type SendMoneyOptions, type SendVerifyInput, type SendVerifyResponse, type SettleResponse, SettleResponseSchema, type Settlement, SettlementRecordArtifactSchema, SettlementSchema, type SignedArtifact, type SignedConsumerOAC, SignedConsumerOACSchema, type SignerPublicKey, StatementArtifactSchema, type SubscribeOptions, type TLVField, type TransactionDetailResponse, type TransactionDirection, type TransactionsListResponse, type TransferInput, type TransferResponse, type TransferStatus, type UnsignedConsumerPaymentRequest, type UnsignedOAC, type UnsignedOfflinePaymentAuthorization, type UnsignedOfflinePaymentRequest, type UnsignedPass, type UnsignedReceipt, type UnsignedRedemption, type UpsertMerchantProfileInput, UpsertMerchantProfileInputSchema, type UpsertPartnerProfileInput, UpsertPartnerProfileInputSchema, type VerifiedArtifact, type VerifyArtifactOptions, type VerifyClaimSignatureInput, WITHDRAWAL_STATES, type Withdrawal, WithdrawalSchema, type WithdrawalState, base64UrlDecode, base64UrlEncode, bodySha256Hex, buildArtifactBody, buildAuthorization, buildConsumerPaymentRequest, buildOAC, buildPass, buildPaymentRequest, buildReceipt, buildRedemption, buildSmsSettleHeader, domainTag as buildSmsSettleSignedBytes, canonicalClaimSigningBytes, canonicalClaimSigningPayload, canonicalJSONBytes, canonicalJSONStringify, canonicalRequestString, computeConsumerClaimEncounterId, computeEncounterId, constantTimeEqual, consumerPaymentRequestSigningBytes, consumerPaymentRequestSigningPayload, consumerSettlementSigningPayload, crc16ccitt, crc16ccittHex, createAccountsClient, createApiCredentialsAdminClient, createArtifactUri, createCollectionsClient, createConsumerCollectionsClient, createConsumerWithdrawalsClient, createFlurPartnerClient, createHmacFetch, createMeOfflineClient, createOfflinePaymentAuthorizationArtifactUri, createOfflineSettlementsClient, createPartnerCollectionsClient, createPartnerFundingClient, createPartnerProfileAdminClient, createPassesClient, createReceiptArtifactUri, createReceiptsClient, createSoftwareP256Signer, decodeArtifactUri, decodeAuthorizationQR, decodeBase45, decodeConsumerSettlementReceiptQR, decodeOfflineClaimSmsMessage, decodeOfflineSmsSettleToken, decodePaymentRequestQR, decodeUnverifiedConsumerSettlementReceiptQR, derToRawP256Signature, encodeArtifactUri, encodeAuthorizationQR, encodeBase45, encodeConsumerSettlementReceiptQR, encodeNQR, encodeOfflineClaimSmsMessage, encodeOfflineSmsSettleToken, encodePaymentRequestQR, extractOfflineClaimSmsToken, extractOfflineSmsSettleToken, formatAmount, generateDynamicQR, generateStaticQR, init, isConsumerPaymentRequestExpired, isHardenedArtifactType, isKnownArtifactType, isPassWithinValidity, moneyMinorToNumber, normalizeE164, parseAmountInput, parseNQR, parseQR, readTLV, routingHint, signArtifact, signAuthorization, signConsumerPaymentRequest, signOAC, signPartnerRequest, signPass, signPaymentRequest, signReceipt, signRedemption, signRequestHMAC, verifyArtifactSignature, verifyArtifactUri, verifyAuthorization, verifyClaimSignature, verifyConsumerPaymentRequest, verifyConsumerSettlement, verifyConsumerSettlementReceiptQR, verifyOAC, verifyOfflineSmsSettleToken, verifyPass, verifyPaymentRequest, verifyReceipt, verifyRedemption, verifyRequestHMAC, writeTLV };
|
|
6386
|
+
/**
|
|
6387
|
+
* Pay Card — Tier B of the Flur recipient-trust ladder.
|
|
6388
|
+
*
|
|
6389
|
+
* A Pay Card is a holder-signed, expiring identity attestation rendered as a
|
|
6390
|
+
* QR. When a payer scans a Pay Card and verifies its signature against the
|
|
6391
|
+
* holder's registered device-key, they obtain a trusted (userId, phoneE164,
|
|
6392
|
+
* displayName, devicePubKey) tuple they can cache locally and reuse to pay
|
|
6393
|
+
* the holder fully offline thereafter.
|
|
6394
|
+
*
|
|
6395
|
+
* Transport: the standard Flur v1 signed-artifact envelope
|
|
6396
|
+
* `flur://v1/pay_card/<base64url(canonical-json(body))>.<base64url(sig)>`
|
|
6397
|
+
*
|
|
6398
|
+
* Trust model:
|
|
6399
|
+
* - Card is signed by the holder's device key (P-256, ECDSA-SHA256, DER).
|
|
6400
|
+
* - Verifier resolves (issuer=userId, kid) to a SubjectPublicKeyInfo via
|
|
6401
|
+
* Flur's device-key registry — typically online at scan time.
|
|
6402
|
+
* - On successful verify, the scanner upserts the card into its local
|
|
6403
|
+
* verified-contact cache (Tier A) so future pays are offline.
|
|
6404
|
+
*
|
|
6405
|
+
* This module is the canonical implementation. The backend and mobile MUST
|
|
6406
|
+
* use it for build, verify, and freshness checks — no parallel implementations.
|
|
6407
|
+
*
|
|
6408
|
+
* Industry-standard defaults (configurable per call):
|
|
6409
|
+
* - TTL: 90 days from issue.
|
|
6410
|
+
* - Refresh threshold: 30 days remaining triggers a 'refresh_recommended'
|
|
6411
|
+
* freshness state.
|
|
6412
|
+
*
|
|
6413
|
+
* Field policy (enforced by {@link PayCardArtifactSchema}):
|
|
6414
|
+
* - displayName \u2264 64 chars
|
|
6415
|
+
* - phoneE164 must match /^\+[1-9]\d{7,14}$/
|
|
6416
|
+
* - devicePubKeySpkiB64 must be standard base64 (no url-safe variants),
|
|
6417
|
+
* 64..256 chars (covers P-256 SPKI = 91 chars plus forward-compat).
|
|
6418
|
+
*/
|
|
6419
|
+
|
|
6420
|
+
/** Default Pay Card lifetime (ms): 90 days. */
|
|
6421
|
+
declare const PAY_CARD_DEFAULT_TTL_MS: number;
|
|
6422
|
+
/**
|
|
6423
|
+
* When the remaining lifetime drops below this threshold (ms),
|
|
6424
|
+
* {@link inspectPayCardFreshness} returns `'refresh_recommended'`.
|
|
6425
|
+
*
|
|
6426
|
+
* Holders should refresh in the background well before hard-expiry so
|
|
6427
|
+
* a stale-card scan never blocks a payment.
|
|
6428
|
+
*/
|
|
6429
|
+
declare const PAY_CARD_REFRESH_THRESHOLD_MS: number;
|
|
6430
|
+
/** URI prefix for Pay Card artifacts. */
|
|
6431
|
+
declare const PAY_CARD_URI_PREFIX: string;
|
|
6432
|
+
/**
|
|
6433
|
+
* Inputs for {@link createPayCardArtifactUri}. Mirrors the artifact codec
|
|
6434
|
+
* inputs but pins type to `pay_card`, validates the data shape, and applies
|
|
6435
|
+
* the default TTL when `expiresAtSeconds` is omitted.
|
|
6436
|
+
*/
|
|
6437
|
+
interface CreatePayCardArtifactInput {
|
|
6438
|
+
/** Holder Flur userId (also used as the envelope issuer). */
|
|
6439
|
+
issuer: string;
|
|
6440
|
+
/** Holder device key id. */
|
|
6441
|
+
keyId: string;
|
|
6442
|
+
/** Holder device private key (raw 32-byte P-256 scalar). */
|
|
6443
|
+
privateKey: Uint8Array;
|
|
6444
|
+
/** Pay Card business payload. */
|
|
6445
|
+
data: PayCardArtifact;
|
|
6446
|
+
/** URL-safe nonce, 8..64 chars. Required for envelope uniqueness. */
|
|
6447
|
+
nonce: string;
|
|
6448
|
+
/** Override the issued-at (seconds). Defaults to now. */
|
|
6449
|
+
issuedAtSeconds?: number;
|
|
6450
|
+
/**
|
|
6451
|
+
* Override the expiry (seconds). Defaults to `issuedAt + 90 days`.
|
|
6452
|
+
*
|
|
6453
|
+
* SECURITY: a Pay Card is a holder-signed identity attestation, so a
|
|
6454
|
+
* hard expiry is mandatory at the protocol level — there is no opt-out.
|
|
6455
|
+
* Callers may shorten the TTL but cannot remove it; backend verifiers
|
|
6456
|
+
* additionally reject envelopes without `exp` (`PAY_CARD_NO_EXPIRY`).
|
|
6457
|
+
*/
|
|
6458
|
+
expiresAtSeconds?: number;
|
|
6459
|
+
}
|
|
6460
|
+
/**
|
|
6461
|
+
* Build, sign, and encode a Pay Card as a `flur://v1/pay_card/...` URI.
|
|
6462
|
+
*
|
|
6463
|
+
* Defaults the envelope's `exp` to `iat + 90 days` so callers do not need
|
|
6464
|
+
* to compute lifetimes. Refuses to emit a card whose `userId` payload
|
|
6465
|
+
* field disagrees with the envelope `issuer` \u2014 the holder must sign their
|
|
6466
|
+
* own card.
|
|
6467
|
+
*/
|
|
6468
|
+
declare function createPayCardArtifactUri(input: CreatePayCardArtifactInput): {
|
|
6469
|
+
uri: string;
|
|
6470
|
+
signed: SignedArtifact<PayCardArtifact>;
|
|
6471
|
+
};
|
|
6472
|
+
/** True when the URI is shaped as a Pay Card artifact (prefix check only). */
|
|
6473
|
+
declare function isPayCardArtifactUri(uri: string): boolean;
|
|
6474
|
+
interface DecodedPayCard {
|
|
6475
|
+
/** Validated Pay Card body (data + envelope header). */
|
|
6476
|
+
body: ArtifactBody<PayCardArtifact>;
|
|
6477
|
+
/** ASN.1 DER ECDSA P-256 signature, base64 (standard). */
|
|
6478
|
+
sig: string;
|
|
6479
|
+
/** Raw decoded envelope \u2014 useful when re-emitting or relaying. */
|
|
6480
|
+
decoded: DecodedArtifactUri;
|
|
6481
|
+
}
|
|
6482
|
+
/**
|
|
6483
|
+
* Decode a Pay Card URI without verifying its signature. Validates the URI
|
|
6484
|
+
* shape, the envelope header, and the data schema. Use when the caller wants
|
|
6485
|
+
* to inspect the card before deciding whether/how to verify it.
|
|
6486
|
+
*/
|
|
6487
|
+
declare function decodePayCardArtifact(uri: string): DecodedPayCard;
|
|
6488
|
+
/**
|
|
6489
|
+
* Verify a Pay Card URI fully:
|
|
6490
|
+
* 1. URI + envelope + data schema (via {@link decodePayCardArtifact}).
|
|
6491
|
+
* 2. Envelope expiry (unless `options.enforceExpiry === false`).
|
|
6492
|
+
* 3. ECDSA P-256 signature against the supplied holder SPKI public key.
|
|
6493
|
+
*
|
|
6494
|
+
* The caller is responsible for resolving `(issuer, kid)` to the holder's
|
|
6495
|
+
* registered SPKI public key (typically via the backend device-key registry).
|
|
6496
|
+
*/
|
|
6497
|
+
declare function verifyPayCardArtifact(uri: string, publicKeySpkiB64: string, options?: VerifyArtifactOptions): DecodedPayCard;
|
|
6498
|
+
type PayCardFreshness = 'fresh' | 'refresh_recommended' | 'expired' | 'no_expiry';
|
|
6499
|
+
/**
|
|
6500
|
+
* Classify a Pay Card by remaining lifetime. Used by holders to decide when
|
|
6501
|
+
* to re-fetch a freshly-signed card from the backend, and by scanners to
|
|
6502
|
+
* decide whether to prompt the holder to refresh.
|
|
6503
|
+
*
|
|
6504
|
+
* - `'expired'` : envelope.exp \u2264 now
|
|
6505
|
+
* - `'refresh_recommended'` : 0 < remaining \u2264 PAY_CARD_REFRESH_THRESHOLD_MS
|
|
6506
|
+
* - `'fresh'` : remaining > PAY_CARD_REFRESH_THRESHOLD_MS
|
|
6507
|
+
* - `'no_expiry'` : envelope omits `exp` (non-production cards only)
|
|
6508
|
+
*/
|
|
6509
|
+
declare function inspectPayCardFreshness(decoded: DecodedPayCard, nowMs?: number): PayCardFreshness;
|
|
6510
|
+
/**
|
|
6511
|
+
* Compute the canonical body bytes a backend must sign when issuing a
|
|
6512
|
+
* Pay Card on behalf of the holder via a *server-side* signing path.
|
|
6513
|
+
*
|
|
6514
|
+
* This export exists so a backend (which holds neither the holder's private
|
|
6515
|
+
* key nor a parallel envelope implementation) can call into the SDK to
|
|
6516
|
+
* obtain the exact bytes to sign with a hardware-backed device key abstraction.
|
|
6517
|
+
* Mobile clients that sign locally should use {@link createPayCardArtifactUri}
|
|
6518
|
+
* instead.
|
|
6519
|
+
*
|
|
6520
|
+
* Returned bytes are the same input passed to ECDSA P-256(SHA-256). Callers
|
|
6521
|
+
* MUST keep this contract \u2014 changing the signing input is a protocol break.
|
|
6522
|
+
*/
|
|
6523
|
+
declare function buildPayCardSigningInput(input: {
|
|
6524
|
+
issuer: string;
|
|
6525
|
+
keyId: string;
|
|
6526
|
+
data: PayCardArtifact;
|
|
6527
|
+
nonce: string;
|
|
6528
|
+
issuedAtSeconds?: number;
|
|
6529
|
+
/** See {@link CreatePayCardArtifactInput.expiresAtSeconds}. */
|
|
6530
|
+
expiresAtSeconds?: number;
|
|
6531
|
+
}): {
|
|
6532
|
+
body: ArtifactBody<PayCardArtifact>;
|
|
6533
|
+
bodyBytes: Uint8Array;
|
|
6534
|
+
};
|
|
6535
|
+
|
|
6536
|
+
export { ACCOUNT_FUNDED_OAC_MAX_TTL_MS, ACCOUNT_STATUSES, ACCOUNT_TYPES, ADDITIONAL_DATA_SUBFIELD, ARTIFACT_BODY_SCHEMAS, ARTIFACT_TYPES, type Account, type AccountActivityItem, type AccountMembership, AccountMembershipSchema, AccountSchema, type AccountStatus, type AccountSummaryResponse, type AccountType, type AccountsClient, type AccountsClientOptions, type AddMemberInput, type AdditionalData, type ApiCredentialPublic, ApiCredentialPublicSchema, type ApiCredentialsAdminClient, type ArtifactBody, type ArtifactHeader, ArtifactHeaderSchema, type ArtifactType, type AtomicRedeemReceiptInput, type AtomicRedeemResponse, type AttestationSecurityLevel, AttestationSecurityLevelSchema, type AuthLogoutInput, type AuthRefreshInput, type AuthRefreshResponse, type AuthorizeSendWithBiometricInput, type AuthorizedOptions, type BiometricSigner, type BuildPassInput, type BuildReceiptInput, type BuildRedemptionInput, CLAIM_DOMAIN_V2, COLLECTION_INTENT_STATUSES, COLLECTION_PAYMENT_STATUSES, CONSUMER_OFFLINE_CLAIM_SUBMIT_GRACE_MS, CONSUMER_PAYMENT_REQUEST_DOMAIN, CONSUMER_SETTLEMENT_DOMAIN, CONSUMER_SETTLEMENT_RECEIPT_QR_PREFIX, CUSTODIAL_MODES, type CanonicalClaimInput, type CashNamespace, type ClaimSignature, type CollectionIntent, CollectionIntentSchema, type CollectionPayment, type CollectionPaymentResult, CollectionPaymentResultSchema, CollectionPaymentSchema, type CollectionReportSummary, CollectionReportSummarySchema, type CollectionStatement, CollectionStatementSchema, type CollectionsClient, type CollectionsClientOptions, type ConsumerCollectionsClient, type ConsumerOAC, type OACRecord as ConsumerOACRecord, OACRecordSchema as ConsumerOACRecordSchema, ConsumerOACSchema, type ConsumerPaymentClaim, ConsumerPaymentClaimSchema, type ConsumerPaymentRequestEnvelope, ConsumerPaymentRequestEnvelopeSchema, type ConsumerSettleResult, ConsumerSettleResultSchema, type ConsumerSettlement, ConsumerSettlementSchema, type ConsumerWithdrawalsClient, type ConsumerWithdrawalsClientOptions, type CreateBusinessAccountInput, type CreateCollectionIntentInput, CreateCollectionIntentInputSchema, type CreatePayCardArtifactInput, type CreatePayLinkResponse, type CreatePayoutDestinationInput, CreatePayoutDestinationInputSchema, type CreatePayoutInput, CreatePayoutInputSchema, type CreateTransferOptions, type CreateWithdrawalInput, CreateWithdrawalInputSchema, type CreateWithdrawalResult, CreateWithdrawalResultSchema, type CustodialMode, type DecodedArtifactUri, type DecodedOfflineSmsSettleToken, type DecodedPayCard, type DeviceKeyAlg, DeviceKeyAlgSchema, type DeviceKeyRecord, DeviceKeyRecordSchema, type DeviceTrustState, FIELD, FLUR_ARTIFACT_URI_PREFIX, FLUR_ARTIFACT_URI_SCHEME, FLUR_ARTIFACT_VERSION, FlurApiError, FlurArtifactError, FlurCapExceededError, FlurClient, type FlurClientOptions, FlurError, type FlurErrorCode, FlurExpiredError, type FlurHandle, type FlurInitOptions, type FlurOfflineSettlementsClient, type FlurPartnerClient, type FlurPaymentEvent, FlurReplayError, HARDENED_ARTIFACT_TYPES, type HmacFetchOptions, IdentityArtifactSchema, type IngestFundingResult, IngestFundingResultSchema, type IssueAccountOacInput, IssueAccountOacInputSchema, type IssueOfflineTokenInput, type IssuePassInput, type IssueReceiptInput, LedgerJournalEntryArtifactSchema, type ListPassesInput, type ListPassesResponse, type ListPayoutDestinationsResult, ListPayoutDestinationsResultSchema, type ListReceiptsInput, type ListReceiptsResponse, type ListTransactionsOptions, MEMBERSHIP_ROLES, MERCHANT_PAYOUT_STATUSES, MERCHANT_PROFILE_STATUSES, type MeOfflineClient, type MeOfflineClientOptions, type MembershipRole, type MerchantAccountInfo, type MerchantPayout, MerchantPayoutSchema, type MerchantProfile, MerchantProfileSchema, type MintedApiCredential, MintedApiCredentialSchema, type Money, NGN_CURRENCY_CODE, NG_COUNTRY_CODE, NQRParseError, type NQRPayloadInput, NqrPaymentRequestArtifactSchema, type OAC, OACSchema, OAC_DEFAULT_CUMULATIVE_KOBO, OAC_DEFAULT_PER_TX_KOBO, OAC_DEFAULT_VALIDITY_MS, OFFLINE_CLAIM_SMS_PREFIX, OFFLINE_SMS_SETTLE_DOMAIN, OFFLINE_SMS_SETTLE_HEADER_BYTES, OFFLINE_SMS_SETTLE_PREFIX, OFFLINE_SMS_SETTLE_SIGNATURE_BYTES, OFFLINE_SMS_SETTLE_TOKEN_BYTES, OFFLINE_SMS_SETTLE_VERSION, type OfflineClaimAlgorithm, OfflineClaimArtifactSchema, type OfflineClaimSigner, type OfflinePaymentAuthorization, type OfflinePaymentAuthorizationArtifact, OfflinePaymentAuthorizationArtifactSchema, OfflinePaymentAuthorizationSchema, type OfflinePaymentRequest, OfflinePaymentRequestSchema, type OfflineSmsSettleInput, type OfflineSmsSettleSigner, type OfflineStatusResult, OfflineStatusResultSchema, type OfflineToken, OfflineTokenSchema, type OnboardingCompleteInput, type OnboardingCompleteResponse, type OnboardingFallback, type OnboardingRiskReason, type OnboardingStartInput, type OnboardingStartResponse, type P256EnrollmentChallengeInput, P256EnrollmentChallengeInputSchema, type P256EnrollmentChallengeResult, P256EnrollmentChallengeResultSchema, PARTNER_FUNDING_DIRECTIONS, PARTNER_FUNDING_STATUSES, PARTNER_KINDS, PARTNER_PROFILE_STATUSES, PARTNER_SCOPES, PASS_KINDS, PASS_STATES, PAYLOAD_FORMAT_INDICATOR_VALUE, PAYOUT_DESTINATION_STATUSES, PAY_CARD_DEFAULT_TTL_MS, PAY_CARD_REFRESH_THRESHOLD_MS, PAY_CARD_URI_PREFIX, POINT_OF_INITIATION, type ParsedNQR, type PartnerClientOptions, type PartnerCollectionsClient, type PartnerFunding, type PartnerFundingClient, type PartnerFundingDirection, type PartnerFundingEventInput, PartnerFundingEventInputSchema, PartnerFundingSchema, type PartnerFundingStatus, type PartnerKind, type PartnerProfile, type PartnerProfileAdminClient, type PartnerProfileAdminClientOptions, PartnerProfileSchema, type PartnerProfileStatus, type PartnerScope, type PartnerSignResult, type Pass, PassArtifactSchema, type PassKind, type PassMetadata, PassMetadataSchema, PassSchema, type PassState, type PassesClient, type PassesClientOptions, type PayCardArtifact, PayCardArtifactSchema, type PayCardFreshness, type PayCollectionInput, PayCollectionInputSchema, type PayCollectionOptions, type PayCollectionResponse, type PaymentClaim, PaymentClaimSchema, PaymentIntentArtifactSchema, type PayoutDestination, PayoutDestinationSchema, type PayoutDestinationStatus, type PayoutEventInput, PayoutEventInputSchema, type PinSetInput, type PinVerifyInput, type ProviderEventInput, ProviderEventInputSchema, type ProviderEventRecord, ProviderEventRecordSchema, type PublicCollectionIntent, PublicCollectionIntentSchema, type PushPlatform, type PushRegisterInput, RECEIPT_CHANNELS, RECEIPT_KINDS, REPLAY_WINDOW_MS, type Receipt, type ReceiptArtifact, ReceiptArtifactSchema, type ReceiptChannel, type ReceiptKind, type ReceiptPayload, ReceiptPayloadSchema, ReceiptSchema, type ReceiptsClient, type ReceiptsClientOptions, type RecipientResolveInput, type RecipientResolveResponse, type ReconciliationReport, ReconciliationReportSchema, type RecordPayoutEventResult, RecordPayoutEventResultSchema, type RedeemPassResponse, type Redemption, RedemptionSchema, type RegisterDeviceInput, type RegisterDeviceKeyP256Input, RegisterDeviceKeyP256InputSchema, type RegisterDeviceResponse, type RegisterSendDeviceKeyInput, type ResolveCollectionOptions, type ResolveCollectionResponse, type ResolvePayLinkResponse, ReversalRecordArtifactSchema, RevokeDeviceKeyInputSchema, type RevokePassInput, type RoutingHint, SETTLEMENT_SCHEDULES, type SendChallengeInput, type SendChallengeResponse, type SendMoneyInput, type SendMoneyOptions, type SendVerifyInput, type SendVerifyResponse, type SettleResponse, SettleResponseSchema, type Settlement, SettlementRecordArtifactSchema, SettlementSchema, type SignedArtifact, type SignedConsumerOAC, SignedConsumerOACSchema, type SignerPublicKey, StatementArtifactSchema, type SubscribeOptions, type TLVField, type TransactionDetailResponse, type TransactionDirection, type TransactionsListResponse, type TransferInput, type TransferResponse, type TransferStatus, type UnsignedConsumerPaymentRequest, type UnsignedOAC, type UnsignedOfflinePaymentAuthorization, type UnsignedOfflinePaymentRequest, type UnsignedPass, type UnsignedReceipt, type UnsignedRedemption, type UpsertMerchantProfileInput, UpsertMerchantProfileInputSchema, type UpsertPartnerProfileInput, UpsertPartnerProfileInputSchema, type VerifiedArtifact, type VerifyArtifactOptions, type VerifyClaimSignatureInput, WITHDRAWAL_STATES, type Withdrawal, WithdrawalSchema, type WithdrawalState, base64UrlDecode, base64UrlEncode, bodySha256Hex, buildArtifactBody, buildAuthorization, buildConsumerPaymentRequest, buildOAC, buildPass, buildPayCardSigningInput, buildPaymentRequest, buildReceipt, buildRedemption, buildSmsSettleHeader, domainTag as buildSmsSettleSignedBytes, canonicalClaimSigningBytes, canonicalClaimSigningPayload, canonicalJSONBytes, canonicalJSONStringify, canonicalRequestString, computeConsumerClaimEncounterId, computeEncounterId, constantTimeEqual, consumerPaymentRequestSigningBytes, consumerPaymentRequestSigningPayload, consumerSettlementSigningPayload, crc16ccitt, crc16ccittHex, createAccountsClient, createApiCredentialsAdminClient, createArtifactUri, createCollectionsClient, createConsumerCollectionsClient, createConsumerWithdrawalsClient, createFlurPartnerClient, createHmacFetch, createMeOfflineClient, createOfflinePaymentAuthorizationArtifactUri, createOfflineSettlementsClient, createPartnerCollectionsClient, createPartnerFundingClient, createPartnerProfileAdminClient, createPassesClient, createPayCardArtifactUri, createReceiptArtifactUri, createReceiptsClient, createSoftwareP256Signer, decodeArtifactUri, decodeAuthorizationQR, decodeBase45, decodeConsumerSettlementReceiptQR, decodeOfflineClaimSmsMessage, decodeOfflineSmsSettleToken, decodePayCardArtifact, decodePaymentRequestQR, decodeUnverifiedConsumerSettlementReceiptQR, derToRawP256Signature, encodeArtifactUri, encodeAuthorizationQR, encodeBase45, encodeConsumerSettlementReceiptQR, encodeNQR, encodeOfflineClaimSmsMessage, encodeOfflineSmsSettleToken, encodePaymentRequestQR, extractOfflineClaimSmsToken, extractOfflineSmsSettleToken, formatAmount, generateDynamicQR, generateStaticQR, init, inspectPayCardFreshness, isConsumerPaymentRequestExpired, isHardenedArtifactType, isKnownArtifactType, isPassWithinValidity, isPayCardArtifactUri, moneyMinorToNumber, normalizeE164, parseAmountInput, parseNQR, parseQR, readTLV, routingHint, signArtifact, signAuthorization, signConsumerPaymentRequest, signOAC, signPartnerRequest, signPass, signPaymentRequest, signReceipt, signRedemption, signRequestHMAC, verifyArtifactSignature, verifyArtifactUri, verifyAuthorization, verifyClaimSignature, verifyConsumerPaymentRequest, verifyConsumerSettlement, verifyConsumerSettlementReceiptQR, verifyOAC, verifyOfflineSmsSettleToken, verifyPass, verifyPayCardArtifact, verifyPaymentRequest, verifyReceipt, verifyRedemption, verifyRequestHMAC, writeTLV };
|