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