// Code generated by protoc-gen-ts_proto. DO NOT EDIT. // versions: // protoc-gen-ts_proto v2.11.4 // protoc v7.34.0 // source: card.proto /* eslint-disable */ import { GrpcMethod, GrpcStreamMethod } from "@nestjs/microservices"; import { Observable } from "rxjs"; export const protobufPackage = "card.v1"; export enum CardStatus { CARD_STATUS_UNSPECIFIED = 0, CARD_STATUS_CREATED = 1, CARD_STATUS_ACTIVE = 2, CARD_STATUS_FROZEN = 3, CARD_STATUS_BLOCKED = 4, CARD_STATUS_DELETED = 5, CARD_STATUS_ERROR = 6, UNRECOGNIZED = -1, } export interface GetCardProvidersInfoRequest { accountId: number; email: string; phone: string; firstName: string; lastName: string; } export interface CardProviderInfo { id: number; cardType: string; currency: string; bin: string; cardFormFactor: string; kycRequired: boolean; initBalance: string; regions: string[]; phonePrefixes: string[]; cardRegion: string; issueFee: string; requiredAmount: string; productId: number; name: string; subtitle: string; topupFeePercent: string; minFirstTopup: string; minRegularTopup: string; monthlyServiceFee: string; validityPeriod: string; mobilePaySupport: string; transactionFee: string; atmWithdrawalFee: string; fxFee: string; limits: { [key: string]: string }; details: { [key: string]: string }; info: { [key: string]: string }; isGift: boolean; pictureId: string; label: string; } export interface CardProviderInfo_LimitsEntry { key: string; value: string; } export interface CardProviderInfo_DetailsEntry { key: string; value: string; } export interface CardProviderInfo_InfoEntry { key: string; value: string; } export interface GetCardProvidersInfoResponse { providers: CardProviderInfo[]; } export interface CreateCardRequest { accountId: number; name: string; currency: string; cardType: string; isVirtual: boolean; bin: string; cardHolderName: string; phone: string; email: string; externalUuid: string; otpCode: string; isAutoTopup: boolean; autoTopAmount: string; autoTopupLimit: string; cardBalanceThreshold: string; requiredAmount: string; kycRequired: boolean; kycApplicantJson: string; kycResourcesJson: string; kycVerifiedResources: KycVerifiedResource[]; productId: number; } export interface KycVerifiedResource { imageId: string; idDocType: string; fileName: string; fileType: string; contentType: string; contentLength: number; fileData: Uint8Array; } export interface CreateCardsBatchRequest { template: CreateCardRequest | undefined; numberOfCards: number; } export interface CreateCardsBatchResponse { cards: CardResponse[]; } export interface TopupCardRequest { accountId: number; cardId: number; amount: string; cardCryptoCurrency: string; otpCode: string; } export interface TopupCardResponse { cardId: number; currencyCredit: string; amountCredit: string; amountDebit: string; currencyDebit: string; fee: string; totalAmount: string; } export interface GetTopupFeeRequest { accountId: number; cardId: number; amount: string; cardCryptoCurrency: string; } export interface GetTopupFeeResponse { cardId: number; amount: string; cardCryptoCurrency: string; feeAmount: string; feeCurrency: string; cardCurrency: string; amountToCard: string; } export interface QuoteTopupByTargetRequest { accountId: number; cardId: number; targetAmount: string; targetCurrency: string; cardCryptoCurrency: string; } export interface QuoteTopupByTargetResponse { targetAmount: string; targetCurrency: string; inputUsdt: string; feeUsdt: string; requiredDebitUsdt: string; amountToCard: string; cardCurrency: string; cardCryptoCurrency: string; } export interface ExecuteTopupWithLedgerRequest { accountId: number; cardId: number; inputUsdt: string; cardCryptoCurrency: string; otpCode: string; idempotencySeed: string; skipBalanceCheck: boolean; previewOnly: boolean; } export interface ExecuteTopupWithLedgerResponse { status: string; flow: string; cardId: number; targetCardAmount: string; targetCardCurrency: string; actualCardAmount: string; actualCardCurrency: string; inputAmount: string; feeAmount: string; requiredDebitAmount: string; cardCryptoCurrency: string; message: string; } export interface ExecuteCreateWithLedgerRequest { accountId: number; currency: string; cardType: string; bin: string; requiredAmount: string; cardHolderName: string; phone: string; email: string; firstName: string; lastName: string; kycRequired: boolean; idempotencySeed: string; skipBalanceCheck: boolean; previewOnly: boolean; productId: number; } export interface ExecuteCreateWithLedgerResponse { status: string; flow: string; requiredDebitAmount: string; currency: string; cardType: string; bin: string; cardId: number; card: CardResponse | undefined; message: string; availableAmount: string; shortfallAmount: string; ledgerConfigured: boolean; sufficientBalance: boolean; } export interface ScanGiftCardQrRequest { accountId: number; uid: number; cardProductId: number; } export interface ScanGiftCardQrResponse { success: boolean; requiredAmount: string; cardId: number; } export interface ListCardsRequest { accountId: number; } export interface ListCardsResponse { cards: CardResponse[]; } export interface ListCardsPaginatedRequest { accountId: number; page: number; size: number; } export interface ListCardsPaginatedResponse { items: CardResponse[]; total: number; page: number; size: number; pages: number; } export interface GetCardRequest { accountId: number; cardId: number; } export interface CardResponse { id: number; name: string; accountId: number; balance: string; currency: string; cardNumber: string; issuerId: number; cardType: string; cvv: string; status: CardStatus; isVirtual: boolean; createdAt: string; expiresAt: string; phone: string; email: string; cardHolderName: string; externalUuid: string; isAutoTopup: boolean; autoTopAmount: string; autoTopupLimit: string; currentAutoTopupAmount: string; cardBalanceThreshold: string; productId: number; isGift: boolean; pictureId: string; label: string; } export interface GetCardBalanceRequest { accountId: number; cardId: number; } export interface GetCardBalanceResponse { cardId: number; balance: string; currency: string; } export interface GetCardTransactionsRequest { accountId: number; cardId: number; pagerOffset: number; pagerSize: number; } export interface CardTransaction { paymentId: number; cardId: number; cardNumber: string; amount: string; cardCurrency: string; operationType: string; status: string; createdAt: string; } export interface Edge { offset: number; size: number; total: number; } export interface GetCardTransactionsResponse { payments: CardTransaction[]; edge: Edge | undefined; } export interface SyncRecentUserCardHistoryRequest { accountId: number; size: number; cooldownSeconds: number; } export interface SyncRecentUserCardHistoryResponse { syncedCards: number; skippedCards: number; failedCards: number; } export interface GetCardAuthTransactionsRequest { accountId: number; cardId: number; pagerOffset: number; pagerSize: number; } export interface CardAuthTransaction { id: number; cardId: number; currency: string; amount: string; authorizedAmount: string; authorizedCurrency: string; merchantName: string; type: string; status: string; description: string; transactionTime: string; settleDate: string; } export interface GetCardAuthTransactionsResponse { transactions: CardAuthTransaction[]; edge: Edge | undefined; } export interface GetCard3dsCodesRequest { accountId: number; cardId: number; pagerOffset: number; pagerSize: number; } export interface Card3dsInfo { id: number; cardId: number; currency: string; amount: string; merchantName: string; type: string; values: string; description: string; transactionTime: string; expirationTime: string; } export interface GetCard3dsCodesResponse { card3dsInfo: Card3dsInfo[]; edge: Edge | undefined; } export interface UpdateCardStatusRequest { accountId: number; cardId: number; status: CardStatus; } export interface CardActionRequest { accountId: number; cardId: number; } export interface DeleteCardResponse { ok: boolean; } export interface GetBinsRequest { accountId: number; } export interface GetBinRequest { accountId: number; bin: string; } export interface GetBinsExistsRequest { accountId: number; } export interface GetAreaCodesRequest { accountId: number; bin: string; } export interface GetRegionsRequest { accountId: number; bin: string; } export interface BinResponse { bin: string; cardType: string; currency: string; provider: string; kycRequired: boolean; } export interface GetBinsResponse { bins: BinResponse[]; } export interface GetBinsExistsResponse { bins: string[]; } export interface GetAreaCodesResponse { areaCodes: string[]; } export interface GetRegionsResponse { regions: string[]; } export interface HandleBincentricWebhookRequest { rawBody: Uint8Array; webhookTimestamp: string; webhookSignature: string; } export interface HandleBincentricWebhookResponse { ok: boolean; handled: boolean; eventType: string; cardId: number; reason: string; } export const CARD_V1_PACKAGE_NAME = "card.v1"; export interface CardServiceClient { getCardProvidersInfo(request: GetCardProvidersInfoRequest): Observable; createCard(request: CreateCardRequest): Observable; createCardsBatch(request: CreateCardsBatchRequest): Observable; topupCard(request: TopupCardRequest): Observable; getTopupFee(request: GetTopupFeeRequest): Observable; quoteTopupByTarget(request: QuoteTopupByTargetRequest): Observable; executeTopupWithLedger(request: ExecuteTopupWithLedgerRequest): Observable; executeCreateWithLedger(request: ExecuteCreateWithLedgerRequest): Observable; scanGiftCardQr(request: ScanGiftCardQrRequest): Observable; listCards(request: ListCardsRequest): Observable; listCardsPaginated(request: ListCardsPaginatedRequest): Observable; getCard(request: GetCardRequest): Observable; getCardBalance(request: GetCardBalanceRequest): Observable; getCardTransactions(request: GetCardTransactionsRequest): Observable; syncRecentUserCardHistory(request: SyncRecentUserCardHistoryRequest): Observable; getCardAuthTransactions(request: GetCardAuthTransactionsRequest): Observable; getCard3DsCodes(request: GetCard3dsCodesRequest): Observable; updateCardStatus(request: UpdateCardStatusRequest): Observable; freezeCard(request: CardActionRequest): Observable; unfreezeCard(request: CardActionRequest): Observable; deleteCard(request: CardActionRequest): Observable; getBins(request: GetBinsRequest): Observable; getBin(request: GetBinRequest): Observable; getBinsExists(request: GetBinsExistsRequest): Observable; getAreaCodes(request: GetAreaCodesRequest): Observable; getRegions(request: GetRegionsRequest): Observable; handleBincentricWebhook(request: HandleBincentricWebhookRequest): Observable; } export interface CardServiceController { getCardProvidersInfo( request: GetCardProvidersInfoRequest, ): Promise | Observable | GetCardProvidersInfoResponse; createCard(request: CreateCardRequest): Promise | Observable | CardResponse; createCardsBatch( request: CreateCardsBatchRequest, ): Promise | Observable | CreateCardsBatchResponse; topupCard(request: TopupCardRequest): Promise | Observable | TopupCardResponse; getTopupFee( request: GetTopupFeeRequest, ): Promise | Observable | GetTopupFeeResponse; quoteTopupByTarget( request: QuoteTopupByTargetRequest, ): Promise | Observable | QuoteTopupByTargetResponse; executeTopupWithLedger( request: ExecuteTopupWithLedgerRequest, ): | Promise | Observable | ExecuteTopupWithLedgerResponse; executeCreateWithLedger( request: ExecuteCreateWithLedgerRequest, ): | Promise | Observable | ExecuteCreateWithLedgerResponse; scanGiftCardQr( request: ScanGiftCardQrRequest, ): Promise | Observable | ScanGiftCardQrResponse; listCards(request: ListCardsRequest): Promise | Observable | ListCardsResponse; listCardsPaginated( request: ListCardsPaginatedRequest, ): Promise | Observable | ListCardsPaginatedResponse; getCard(request: GetCardRequest): Promise | Observable | CardResponse; getCardBalance( request: GetCardBalanceRequest, ): Promise | Observable | GetCardBalanceResponse; getCardTransactions( request: GetCardTransactionsRequest, ): Promise | Observable | GetCardTransactionsResponse; syncRecentUserCardHistory( request: SyncRecentUserCardHistoryRequest, ): | Promise | Observable | SyncRecentUserCardHistoryResponse; getCardAuthTransactions( request: GetCardAuthTransactionsRequest, ): | Promise | Observable | GetCardAuthTransactionsResponse; getCard3DsCodes( request: GetCard3dsCodesRequest, ): Promise | Observable | GetCard3dsCodesResponse; updateCardStatus(request: UpdateCardStatusRequest): Promise | Observable | CardResponse; freezeCard(request: CardActionRequest): Promise | Observable | CardResponse; unfreezeCard(request: CardActionRequest): Promise | Observable | CardResponse; deleteCard( request: CardActionRequest, ): Promise | Observable | DeleteCardResponse; getBins(request: GetBinsRequest): Promise | Observable | GetBinsResponse; getBin(request: GetBinRequest): Promise | Observable | BinResponse; getBinsExists( request: GetBinsExistsRequest, ): Promise | Observable | GetBinsExistsResponse; getAreaCodes( request: GetAreaCodesRequest, ): Promise | Observable | GetAreaCodesResponse; getRegions( request: GetRegionsRequest, ): Promise | Observable | GetRegionsResponse; handleBincentricWebhook( request: HandleBincentricWebhookRequest, ): | Promise | Observable | HandleBincentricWebhookResponse; } export function CardServiceControllerMethods() { return function (constructor: Function) { const grpcMethods: string[] = [ "getCardProvidersInfo", "createCard", "createCardsBatch", "topupCard", "getTopupFee", "quoteTopupByTarget", "executeTopupWithLedger", "executeCreateWithLedger", "scanGiftCardQr", "listCards", "listCardsPaginated", "getCard", "getCardBalance", "getCardTransactions", "syncRecentUserCardHistory", "getCardAuthTransactions", "getCard3DsCodes", "updateCardStatus", "freezeCard", "unfreezeCard", "deleteCard", "getBins", "getBin", "getBinsExists", "getAreaCodes", "getRegions", "handleBincentricWebhook", ]; for (const method of grpcMethods) { const descriptor: any = Reflect.getOwnPropertyDescriptor(constructor.prototype, method); GrpcMethod("CardService", method)(constructor.prototype[method], method, descriptor); } const grpcStreamMethods: string[] = []; for (const method of grpcStreamMethods) { const descriptor: any = Reflect.getOwnPropertyDescriptor(constructor.prototype, method); GrpcStreamMethod("CardService", method)(constructor.prototype[method], method, descriptor); } }; } export const CARD_SERVICE_NAME = "CardService";