Available Types and DTOs

You can find typescript definitions here

Import

import {...} from 'nest-iyzipay'

Types

```typescript
export type IyzipayLocale = 'tr' | 'en';
export type IyzipayStatus = 'success' | 'failure';
export type IyzipayCard = 'DEBIT_CARD' | 'CREDIT_CARD';
export type IyzipayBasketItemType = 'PHYSICAL' | 'VIRTUAL';
export type IyzipaySubscriptionInitialStatus = 'ACTIVE' | 'PENDING';
export type IyzipaySubscriptionStatus =
  | 'EXPIRED'
  | 'UNPAID'
  | 'CANCELED'
  | 'ACTIVE'
  | 'PENDING'
  | 'UPGRADED';
export type IyzipayPaymentGroup = 'PRODUCT' | 'LISTING' | 'SUBSCRIPTION';
export type IyzipayCurrency =
  | 'TRY'
  | 'EUR'
  | 'USD'
  | 'IRR'
  | 'GBP'
  | 'NOK'
  | 'RUB'
  | 'CHF';
export type IyzipayPaymentChannel =
  | 'MOBILE'
  | 'WEB'
  | 'MOBILE_WEB'
  | 'MOBILE_IOS'
  | 'MOBILE_ANDROID'
  | 'MOBILE_WINDOWS'
  | 'MOBILE_TABLET'
  | 'MOBILE_PHONE';

export interface IyzipayInstallmentSuccessProps {
  status: IyzipayStatus;
  locale: IyzipayLocale;
  systemTime: number;
  conversationId: string;
  installmentDetails: {
    binNumber: string;
    price: number;
    cardType: IyzipayCard;
    cardAssociation: string;
    cardFamilyName: string;
    force3ds: number;
    bankCode: number;
    bankName: string;
    forceCvc: number;
    commercial: number;
    dccEnabled: number;
    installmentPrices: {
      installmentPrice: number;
      totalPrice: number;
      installmentNumber: number;
    }[];
  }[];
}

export interface IyzipayErrorProps {
  status: IyzipayStatus;
  errorCode: string;
  errorMessage: string;
  locale: IyzipayLocale;
  systemTime: number;
  conversationId: string;
}

export interface IyzipayPaySuccessProps {
  status: IyzipayStatus;
  locale: IyzipayLocale;
  systemTime: number;
  conversationId: string;
  price: number;
  paidPrice: number;
  installment: number;
  paymentId: string;
  fraudStatus: number;
  merchantCommissionRate: number;
  merchantCommissionRateAmount: number;
  iyziCommissionRateAmount: number;
  iyziCommissionFee: number;
  cardType: IyzipayCard;
  cardAssociation: string;
  cardFamily: string;
  binNumber: string;
  lastFourDigits: string;
  basketId: string;
  currency: IyzipayCurrency;
  itemTransactions: {
    itemId: string;
    paymentTransactionId: string;
    transactionStatus: number;
    price: number;
    paidPrice: number;
    merchantCommissionRate: number;
    merchantCommissionRateAmount: number;
    iyziCommissionRateAmount: number;
    iyziCommissionFee: number;
    blockageRate: number;
    blockageRateAmountMerchant: number;
    blockageRateAmountSubMerchant: number;
    blockageResolvedDate: Date;
    subMerchantPrice: number;
    subMerchantPayoutRate: number;
    subMerchantPayoutAmount: number;
    convertedPayout: {
      paidPrice: number;
      iyziCommissionRateAmount: number;
      iyziCommissionFee: number;
      blockageRateAmountMerchant: number;
      blockageRateAmountSubMerchant: number;
      subMerchantPayoutAmount: number;
      merchantPayoutAmount: number;
      iyziConversionRate: number;
      iyziConversionRateAmount: number;
      currency: IyzipayCurrency;
    };
  }[];
  authCode: string;
  phase: string;
  hostReference: string;
}

export interface IyzipaySuccess3DProps {
  status: IyzipayStatus;
  locale: IyzipayLocale;
  systemTime: number;
  conversationId: string;
  threeDSHtmlContent: string;
}

export interface IyzipaySuccess3DConfirmProps {
  status: IyzipayStatus;
  locale: IyzipayLocale;
  conversationData: string;
  conversationId: string;
  mdStatus: '0' | '1' | '2' | '3' | '4' | '5' | '6' | '7' | '8';
}

export interface IyzipaySuccessCancelProps {
  status: IyzipayStatus;
  locale: IyzipayLocale;
  systemTime: number;
  conversationId: string;
  paymentId: string;
  price: string;
  currency: IyzipayCurrency;
  authCode: string;
  hostReference: string;
}

export interface IyzipaySuccessRefundProps {
  status: IyzipayStatus;
  locale: IyzipayLocale;
  systemTime: number;
  conversationId: string;
  paymentId: string;
  price: string;
  paymentTransactionId: string;
  currency: IyzipayCurrency;
  authCode: string;
  hostReference: string;
  retryable: boolean;
}

export interface IyzipayCreateCardProps {
  status: IyzipayStatus;
  locale: IyzipayLocale;
  systemTime: number;
  conversationId: string;
  externalId: string;
  email: string;
  cardUserKey: string;
  cardToken: string;
  cardAlias: string;
  binNumber: string;
  cardType: IyzipayCard;
  cardAssociation: string;
  cardFamily: string;
  cardBankCode: number;
  cardBankName: string;
}

export interface IyzipayCardRetrieveProps {
  status: IyzipayStatus;
  locale: IyzipayLocale;
  systemTime: number;
  conversationId: string;
  cardUserKey: string;
  cardDetails: {
    cardToken: string;
    cardAlias: string;
    binNumber: string;
    cardType: IyzipayCard;
    cardAssociation: string;
    cardFamily: string;
    cardBankCode: string;
    cardBankName: string;
  }[];
}

export interface IyzipayModuleProps {
  apiKey: string;
  secretKeey: string;
}

```

Dtos

  • You can import these DTOs (class validator included)

Base Class

import { IsNotEmpty } from 'class-validator';
import { IyzipayLocale } from '../interface/iyzipay.interface';

export class IyzipayDto {
  @IsNotEmpty()
  locale: IyzipayLocale;

  @IsNotEmpty()
  conversationId: string;
}

IyzipayRefundDto

import { IsIP, IsNotEmpty, IsOptional } from 'class-validator';
import { IyzipayDto } from './iyzipay.dto';
import { IyzipayCurrency } from '../interface/iyzipay.interface';

export class IyzipayRefundDto extends IyzipayDto {
  @IsNotEmpty()
  paymentTransactionId: string;

  @IsNotEmpty()
  price: string;

  @IsNotEmpty()
  currency: IyzipayCurrency;

  @IsOptional()
  @IsIP()
  ip: string;
}

IyzipayRetrieveDto

import { IsNotEmpty } from 'class-validator';
import { IyzipayDto } from './iyzipay.dto';

export class IyzipayRetrieveDto extends IyzipayDto {
  @IsNotEmpty()
  paymentId: string;
  @IsNotEmpty()
  paymentConversationId: string;
}

IyzipayPayDto

import { IsNotEmpty } from 'class-validator';
import {
  IyzipayBasketItemType,
  IyzipayCurrency,
  IyzipayPaymentChannel,
  IyzipayPaymentGroup,
} from '../interface/iyzipay.interface';
import { IyzipayDto } from './iyzipay.dto';

export class IyzipayPayDto extends IyzipayDto {
  @IsNotEmpty()
  price: string;
  @IsNotEmpty()
  paidPrice: string;
  @IsNotEmpty()
  currency: IyzipayCurrency;
  @IsNotEmpty()
  installment: string;
  @IsNotEmpty()
  basketId: string;
  @IsNotEmpty()
  paymentChannel: IyzipayPaymentChannel;
  @IsNotEmpty()
  paymentGroup: IyzipayPaymentGroup;
  @IsNotEmpty()
  paymentCard: {
    cardHolderName: string;
    cardNumber: string;
    expireMonth: string;
    expireYear: string;
    cvc: string;
  };
  @IsNotEmpty()
  buyer: {
    id: string;
    name: string;
    surname: string;
    gsmNumber: string;
    email: string;
    identityNumber?: string;
    lastLoginDate?: string;
    registrationDate?: string;
    registrationAddress: string;
    ip?: string;
    city: string;
    country: string;
    zipCode: string;
  };
  @IsNotEmpty()
  shippingAddress: {
    contactName: string;
    city: string;
    country: string;
    address: string;
    zipCode: string;
  };
  @IsNotEmpty()
  billingAddress: {
    contactName: string;
    city: string;
    country: string;
    address: string;
    zipCode: string;
  };
  @IsNotEmpty()
  basketItems: {
    id: string;
    name: string;
    category1: string;
    category2?: string;
    itemType: IyzipayBasketItemType;
    price: string;
  }[];
}

export class Iyzipay3dPayDto extends IyzipayPayDto {
  @IsNotEmpty()
  callbackUrl: string;
}

Installment Dto

import {
  IsNotEmpty,
  IsNumberString,
  MaxLength,
  MinLength,
} from 'class-validator';
import { IyzipayDto } from './iyzipay.dto';

export class IyzipayInstallmentDto extends IyzipayDto {
  @IsNotEmpty()
  @MinLength(6)
  @MaxLength(6)
  binNumber: string;

  @IsNotEmpty()
  @IsNumberString()
  price: string;
}

IyzipayCreateDto

import { IsEmail, IsNotEmpty, IsOptional, IsString } from 'class-validator';
import { IyzipayDto } from './iyzipay.dto';

export class IyzipayCreateDto extends IyzipayDto {
  @IsNotEmpty()
  @IsEmail()
  email: string;
  @IsNotEmpty()
  externalId: string;
  @IsOptional()
  @IsString()
  cardUserKey?: string;
  @IsNotEmpty()
  card: {
    cardAlias: string;
    cardHolderName: string;
    cardNumber: string;
    expireMonth: string;
    expireYear: string;
  };
}

IyzipayCardRetrieveDto

import { IsEmail, IsNotEmpty, IsOptional, IsString } from 'class-validator';
import { IyzipayDto } from './iyzipay.dto';

export class IyzipayCreateDto extends IyzipayDto {
  @IsNotEmpty()
  @IsEmail()
  email: string;
  @IsNotEmpty()
  externalId: string;
  @IsOptional()
  @IsString()
  cardUserKey?: string;
  @IsNotEmpty()
  card: {
    cardAlias: string;
    cardHolderName: string;
    cardNumber: string;
    expireMonth: string;
    expireYear: string;
  };
}

IyzipayCancelDto

import { IsEmail, IsNotEmpty, IsOptional, IsString } from 'class-validator';
import { IyzipayDto } from './iyzipay.dto';

export class IyzipayCreateDto extends IyzipayDto {
  @IsNotEmpty()
  @IsEmail()
  email: string;
  @IsNotEmpty()
  externalId: string;
  @IsOptional()
  @IsString()
  cardUserKey?: string;
  @IsNotEmpty()
  card: {
    cardAlias: string;
    cardHolderName: string;
    cardNumber: string;
    expireMonth: string;
    expireYear: string;
  };
}

Last updated