Use the library

Include this javascript bundle in the html

<script src=""></script>



Global cariable used as the entry point of the CPA library, stored in window

init() : Promise

Client is obtained using idzCpa.init that returns a Promise

window.idzCpa.init().then(client => {
    //some code


Returns the client's information in the form of a Context object

 type Context = {
    conversationId: string;
    projectId: string;
    channel: Channel;
    language: string;

conversationId : id of the conversation between the client and the operator

projectId : Id of the project you launch the desk on

channel : Type of channel :

  AppleBusinessChat = 'APPLE_BUSINESS_CHAT',
  Call = 'CALL',
  Chat = 'CHAT',
  Facebook = 'FACEBOOK',
  FacebookBusinessOnMessenger = 'FACEBOOK_BUSINESS_ON_MESSENGER',
  GoogleBusinessMessages = 'GOOGLE_BUSINESS_MESSAGES',
  Instagram = 'INSTAGRAM',
  MobileApp = 'MOBILE_APP',
  Sms = 'SMS',
  Twitter = 'TWITTER',
  Video = 'VIDEO',
  Whatsapp = 'WHATSAPP',

language : language of the client


Insert the text passed in parameters into the compose box


Push the card passed in parameters into the conversation thread

type Action = {
  type: "LINK";
  title: string;
  url: string;

type Card = {
  title?: string;
  text?: string;
  actions: Action[];
  image?: {
      url: string;
      description: string;

Push the card bundle passed in parameters in the conversation thread

type Carousel = {
  cards: Card[]

getJWT() : string

Returns the JWT of the desk


pushApplePayPaymentRequestInConversationThread(ApplePayPaymentRequestType) : Promise

Insert an ApplePay payment request in the conversation, returns a promise. If the payment is successful => execute promise.then(()=>{ }) If there is an error in the payment => execute promise.catch((e : ActionError)=>{ })

type ApplePayPaymentRequestType = {
    requestIdentifier: UUID;
    payment: ApplePayPaymentRequest;
    receivedMessage: ApplePayReceivedMessage;

// Detail for payment field type
type ApplePayPaymentRequest {
  currencyCode: string;
  lineItems: PaymentItem[];
  requiredBillingContactFields: ApplePayContactField[];
  requiredShippingContactFields: ApplePayContactField[];
  shippingMethods: ShippingMethod[];
  total: PaymentItem;

type PaymentItem = {
  amount: string;
  label: string;
  type: ApplePayLineItemType;

enum ApplePayLineItemType {

type ShippingMethod = {
  amount: string;
  detail: string;
  identifier: string;
  label: string;

enum ApplePayContactField {
  email = 'email',
  name = 'name',
  phone = 'phone',
  postalAddress = 'postalAddress',
  phoneticName = 'phoneticName',

// type for receivedMessage field
type ApplePayReceivedMessage {
  type: 'CARD';
  data: CardType;

type CardType = {
  title?: string;
  text?: string;
  image?: CardImage;
  actions: LinkAction[];

type CardImage = {
  url: string;
  description: string;

type LinkAction = {
  type: 'LINK';
  title: string;
  url: string;

// Error
type ActionError = {
    message: string;
    details?: string[];

client.pushApplePayPaymentRequestInConversationThread(applePayPaymentRequest: ApplePayPaymentRequestType): Promise

Last updated