UNPKG

@adyen/adyen-platform-experience-web

Version:

![Platform Experience header](https://github.com/Adyen/adyen-platform-experience-web/assets/7926613/18094965-9e01-450e-8dc9-ea84e6b22c2b)

1 lines 773 kB
"use strict";const U=require("classnames"),$h={test:"https://platform-components-external-test.adyen.com/platform-components-external/api/",live:"https://platform-components-external-live.adyen.com/platform-components-external/api/"},qh={test:"https://18e8543875.cdn.adyen.com/platform-components/v1-cdn-test",live:"https://bae81f955b.cdn.adyen.com/platform-components/v1-cdn-live"},Xa=Function.prototype.bind.bind(Function.prototype.call),Hh=async()=>{},Za=e=>e,ue=()=>{},Vh=e=>{throw new Error(`Unreachable code with value: ${e}`)},Gh=Xa(Object.prototype.toString),Yh=e=>Gh(e).slice(8,-1),qu=e=>(Object.keys(e).forEach(t=>{const n=e[t];n&&typeof n=="object"&&!Object.isFrozen(n)&&qu(n)}),Object.freeze(e)),Dr=e=>e===!!e,ne=e=>typeof e=="function",Ma=e=>e===null,We=e=>e==null,ia=e=>typeof e=="number",mi=e=>Yh(e)==="Object",Wt=e=>typeof e=="string",zh=e=>typeof e=="symbol",ke=e=>e===void 0,_d="abort",Kh="signal is aborted without reason",qs=(e,t=e)=>Dr(e)?e:!!t,qe=e=>e===!0,gn=e=>e!==!1,jh=e=>!1,Nr=e=>!0,J=(e,t=!1)=>({writable:qe(t),enumerable:!0,value:e}),Ce=(e,t=!0)=>({enumerable:gn(t),get:e}),xt=Xa(Object.prototype.hasOwnProperty),Rs=(e,t)=>e===t||!(e===e||t===t);if(!xt(AbortSignal.prototype,"reason"))try{Object.defineProperty(AbortSignal.prototype,"reason",{...Ce(function(){return this.aborted?xa():void 0},!0),configurable:!0})}catch{}xt(AbortSignal.prototype,"throwIfAborted")||(AbortSignal.prototype.throwIfAborted=function(){if(this.aborted)throw this.reason??xa()});const xa=(e=Kh)=>new DOMException(e,"AbortError"),Hu=(e,t)=>{if(!Rs(e.reason,t))try{Object.defineProperty(e,"reason",J(t))}catch{}return e},Xh=(e=xa())=>{if("abort"in AbortSignal)return AbortSignal.abort(e);const t=new AbortController,n=ke(e)?xa():e,{signal:s}=t;return t.abort(n),Hu(s,n),s},pi=e=>{if("any"in AbortSignal)return AbortSignal.any(e);let t=new Set,n=new AbortController;const{signal:s}=n;let o=function(){t.forEach(r=>r.removeEventListener(_d,o)),t.clear();const i=this?.reason??xa();n.abort(i),Hu(s,i),n=t=o=void 0};e:{const i=Symbol("<NIL_EXCEPTION>");let r=i;t:{try{for(const c of e){if(!Qa(c))throw new TypeError("Failed to convert value to 'AbortSignal'");if(c.aborted)break t;t.add(c)}}catch(c){r=c;break t}t.forEach(c=>c.addEventListener(_d,o));break e}if(o.call(s),r!==i)throw r}return s},Qa=e=>e instanceof AbortSignal,Ie=Object.freeze([]),X=Object.freeze(Object.create(null)),ea=Promise.resolve();Promise.race(Ie);const qn=function(e,...t){return new Promise(n=>n(e.call(this,...t)))},Zh=(e,t,n)=>{let s=t.get(e);return ke(s)&&ne(n)&&(ke(s=n(e,t))||t.set(e,s)),s},Hn=(e,t=Ie)=>{const n=`${e||""}`.trim(),s=n?n.split(/(?:\s*,\s*)+/).filter(Za):Ie;return s.length?s:t},ha=(e,t,n)=>e.includes(t)?t:We(t)?e[0]:e.includes(n)?n:e[0],Rd=Xa(Array.prototype.some),Vu=60*1e3,Gu=60*Vu,Yu=24*Gu,Qh=7*Yu,Ja=((...e)=>{const[t]=e,s=(e.length>=2?new Date(...e):t instanceof Date?t:new Date(Wt(t)||Number.isFinite(t)?t:void 0)).getTime();return Number.isFinite(s)?s:void 0}),Sd=(e,t)=>{switch(e){case"hour":return t*Gu;case"minute":return t*Vu;case"day":return t*Yu;case"week":return t*Qh;default:return console.warn(`Unknown unit: ${e}`),0}},zu=({blob:e,filename:t})=>{const n=document.createElement("a"),s=URL.createObjectURL(e),o=()=>{setTimeout(()=>URL.revokeObjectURL(s),150)};n.href=s,n.download=t||"download",n.addEventListener("click",o,{once:!0}),n.click()},Ut=(e,t,n)=>(Math.min(e,n)!==e&&([e,n]=[n,e]),Math.max(e,Math.min(t,n))),Ua=e=>!zh(e)&&e===~~e,cs=e=>ia(e)&&1/e===0,Ku=(e,t)=>{if(Number.isInteger(e)&&Number.isInteger(t))return e+Math.floor((t-e)/2);throw TypeError(`Expects 2 integer values: [${e}, ${t}]`)},eo=(e,t)=>(e%t+t)%t,Jh=3,eg=e=>e<=1?0:Math.floor(Math.log(e)/Math.log(1024)),tg=e=>{let t=0,n=Math.max(0,Math.round(e));return n>999&&(t=Ut(1,eg(n),Jh),n=Math.round(Number((n/1024**t).toPrecision(3))*10)/10),{scale:t,size:n}},sc=e=>{const{scale:t,size:n}=tg(e);switch(t){case 0:return`${n} byte${n===1?"":"s"}`;case 1:return`${n} KB`;case 2:return`${n} MB`;case 3:return`${n} GB`}},ng=e=>{const t=new Set;if(e?.items)for(const n of e.items){if(n.kind!=="file")continue;const s=n.getAsFile();s&&t.add(s)}return Array.from(t.size===0?new Set(e?.files??t):t)},Me=(()=>{let e=Date.now();return(t="adyen-pe")=>`${t}-${++e}`})(),sg=(()=>{const e="xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx";return()=>{const t=crypto.getRandomValues(new Uint8Array(16));let n=0;return e.replace(/[xy]/g,s=>{const o=t[n>>1],i=(n%2?o>>4:o)&15,r=s=="x"?i:i&3|8;return n++,r.toString(16)})}})(),to=typeof crypto.randomUUID=="function"?()=>crypto.randomUUID():sg,Wa=(e,t=X)=>mi(e)?e:Wa(t,X),ra=Xa(Object.create,void 0),me=Xa(ra,void 0,null),fi=(e=X)=>Object.freeze({...e,defineProperty:Nr,set:Nr}),ag=e=>e&&e?.length>0?`${e[0].toUpperCase()}${e.slice(1)}`:e,Wo=e=>We(e)||Wt(e)&&/^\s*$/.test(e),og="v1";class Er extends Error{type;errorCode;requestId;invalidFields;status;constructor(t,n,s,o,i,r){super(s),this.type=t,this.name=t,this.errorCode=o,this.requestId=n,this.invalidFields=i,this.status=r}}const ig=/^[^]*?filename[^;\n]*=\s*(?:UTF-\d['"]*)?(?:(['"])([^]*?)\1|([^;\n]*))?[^]*?$/;var $a=(e=>(e.HTTP_ERROR="HTTP_ERROR",e.NETWORK_ERROR="NETWORK_ERROR",e.CANCEL="CANCEL",e.IMPLEMENTATION_ERROR="IMPLEMENTATION_ERROR",e.ERROR="ERROR",e.EXPIRED_TOKEN="EXPIRED_TOKEN",e))($a||{});const rg=e=>{switch(e){case 401:return"EXPIRED_TOKEN";default:return"HTTP_ERROR"}},cg=e=>{const[,t]=String(e.apiVersion).match(/^v?([1-9]\d*)$/i)??[];return t?`v${t}`:og},dg=e=>e.headers.get("Content-Type")?.split(";",1)[0],lg=e=>{const n=(e.headers.get("Content-Disposition")??"").replace(ig,"$2$3");return decodeURIComponent(n)},ug=(e,t)=>{switch(t){case"application/json":return JSON.stringify(e);case"multipart/form-data":return e instanceof FormData?e:new FormData;default:return String(e)}},mg=e=>{const{headers:t=[],method:n="GET"}=e,s=!e.versionless&&"1.11.0",o=e.skipContentType?void 0:e.contentType?.toLowerCase()??"application/json";return{method:n,mode:"cors",cache:"default",credentials:"same-origin",headers:{Accept:"application/json, text/plain, */*",...t,...o&&o!=="multipart/form-data"&&{"Content-Type":o},...s&&{"SDK-Version":s}},redirect:"follow",signal:e.signal,keepalive:e.keepalive,referrerPolicy:"no-referrer-when-downgrade",...n==="POST"&&e.body&&{body:ug(e.body,o)}}};function pg({message:e,level:t,errorCode:n,type:s="NETWORK_ERROR",requestId:o,invalidFields:i}){switch(t){case"silent":break;case"info":case"warn":console[t](e);break;case"error":default:throw new Er(s,o,e,n,i)}}function fg(e){return e&&e.errorCode&&e.type&&(e.detail||e.invalidFields)&&e.status}function hg(e){const t=new URLSearchParams;for(const n of Object.keys(e)){const s=e[n];We(s)||(Array.isArray(s)?s.forEach(o=>t.append(n,o)):t.set(n,String(s)))}return t}const zi=(e,t)=>{try{e?.(t)}catch{throw t}};async function ju(e){const{errorLevel:t,loadingContext:n="",path:s}=e,o=e.versionless||!1,i=cg(e),r=mg(e),c=gg(n),d=o?"":i,l=new URL(`${c}${d}${yg(s)}`);return l.pathname=l.pathname.replace(/\/+/g,"/"),e.params&&e.params.forEach((u,m)=>{const p=decodeURIComponent(u);p&&l.searchParams.append(m,p)}),(async()=>{let u=!1;const m={level:t};try{const p=await fetch(l,r);if(p.ok){if(p.status===204)return null;try{switch(dg(p)){case"application/json":return await p.clone().text()?await p.json():null;default:{const f=await p.blob(),y=lg(p);return{blob:f,filename:y}}}}catch(g){throw u=!0,g}}m.type=rg(p.status);const h=await p.json();m.message=e.errorMessage||`Service at ${l} not available`,m.errorCode=h?.status==null?void 0:String(h.status),m.requestId=h?.requestId,fg(h)&&(m.message=h.detail,m.errorCode=h.errorCode,m.status=h.status,m.invalidFields=h.invalidFields),zi(e.errorHandler,m)}catch(p){if(u)throw zi(e.errorHandler,p),p;m.type||(m.type=$a.NETWORK_ERROR),zi(e.errorHandler,p),m.message=e.errorMessage||`Call to ${l} failed. Error: ${p}`}pg(m)})()}function ti(e){return ju({...e,method:"GET"})}const qa="test",Cd="live",gg=e=>e?.replace?.(/([^/])$/,"$1/"),yg=e=>e?.replace(/^([^/])/,"/$1"),vg=(()=>{const e=$h,t=qh;return n=>{const o=t[(n==="test"?"live":n)??Cd]||t[Cd];return{apiUrl:e[n??qa]||e[qa],cdnTranslationsUrl:`${o}/assets/translations`,cdnAssetsUrl:`${o}/assets`,cdnConfigUrl:`${o}/config`}}})(),bg=({url:e})=>async({name:t,extension:n="json",fallback:s,subFolder:o=""})=>{try{return await ti({loadingContext:`${e}${o?`/${o}`:""}`,path:`/${t}.${n}`,versionless:!0,skipContentType:!0,errorLevel:"error"})}catch(i){return console.warn(i),s}},Tg=({url:e})=>async({name:t,extension:n="json",fallback:s,subFolder:o=""})=>{try{return await ti({loadingContext:`${e}${o?`/${o}`:""}`,path:`/${t}.${n}`,versionless:!0,skipContentType:!0,errorLevel:"error"})}catch(i){return console.warn(i),s}},Ag={getTransaction:2,getTransactions:2,getTransactionTotals:2},_g="/setup",Rg=qe(void 0),Dd=(()=>{let e=0;if(Number.isFinite(e)&&(e=Math.max(0,~~e)))return e})(),hi=e=>{let t,n,s;const o=()=>{if(ke(t))return;const d=t.abort.bind(t);t=void 0,d()},i=()=>(s=new Promise((d,l)=>{if(n.addEventListener("abort",function u(){n.removeEventListener("abort",u),l(e)}),n.aborted)throw e}),s.catch(ue),s),r=(d=!1)=>(qe(d)&&o(),ke(t)&&(t=new AbortController,n=t.signal,s=i()),c),c=me({abort:J(o),promise:Ce(()=>s),reason:J(e),refresh:J(r),signal:Ce(()=>n)});return r()},Xu=()=>{let e,t,n;const s=()=>{const i=n??ue,r=new Promise((c,d)=>{n=c,t=d});return i(e=r),o},o=me({promise:Ce(()=>e),refresh:J(s),reject:J(i=>t(i)),resolve:J(i=>n(i))});return s()},no=e=>{const t=hi(),n=Xu();let s;return Object.defineProperties(function(...i){ke(s)?n.refresh():t.abort();const r=qn.call(this,e,t.refresh().signal,...i);return(async()=>{let c=s===(s=r);try{const d=await r.finally(()=>{c=s===r,c&&(s=void 0)});c&&n.resolve(d)}catch(d){c&&n.reject(d)}})(),r},{abort:J(t.abort),promise:Ce(()=>n.promise),refresh:J(()=>{n.refresh()})})};function Sg(e){const t=Array.from(e,n=>String.fromCodePoint(n)).join("");return btoa(t)}const ka=e=>{try{const t=JSON.stringify(e),n=Sg(new TextEncoder().encode(t)),s=new URLSearchParams;return s.set("data",n),s}catch{return null}},$o=()=>to(),qo=e=>{const t=Ja(e)??Date.now();return Math.floor(t/1e3)};class Cg{constructor(t){this._session=t;let n;this.refresh=s=>(this._refreshPromisor(s).catch(ue),n??=this._refreshPromisor.promise.finally(()=>n=void 0).then(({endpoints:o,...i})=>{this._resetEndpoints(),{proxy:this._endpoints,revoke:this._revokeEndpointsProxy}=this._getEndpointsProxy(o),this._extraConfig=qu(i),this.analyticsEnabled&&this._setAnalyticsUserProfile()?.then(()=>{this.setCustomTranslationsAnalytics()})}))}_endpoints=X;_extraConfig=X;_revokeEndpointsProxy=ue;_beforeHttp=async()=>{await this._refreshPromisor.promise.catch(ue)};_refreshPromisor=no((t,n)=>{const s=Qa(n)?pi([n,t]):t;return this._fetchSetupEndpoint(s)});get endpoints(){return this._endpoints}get extraConfig(){return this._extraConfig}_fetchSetupEndpoint(t){return this._session.http(null,{method:"POST",path:_g,errorLevel:"fatal",loadingContext:this.loadingContext,signal:t})}async _setAnalyticsUserProfile(){const t=ka([{}]);if(this._endpoints.sendEngageEvent&&t)return this._endpoints.sendEngageEvent({body:t,contentType:"application/x-www-form-urlencoded",keepalive:!0},X)}async setCustomTranslationsAnalytics(){if(this.analyticsPayload&&this.analyticsPayload?.length>0&&this._endpoints&&this._endpoints.sendTrackEvent){const t=[];Promise.all(this.analyticsPayload.map(n=>this._endpoints.sendTrackEvent({body:n,contentType:"application/x-www-form-urlencoded",keepalive:!0},X).catch(()=>{t.push(n)}))).finally(()=>{this.analyticsPayload=t.length>0?t:void 0})}}_getEndpointsProxy(t){const n=new Set(Object.keys(t)),s=me();let o=!0;const i=()=>{o=!1,n.clear()};return{proxy:new Proxy(X,fi({get:(c,d,l)=>{if(!o||!n.has(d))return Reflect.get(c,d,l);const u=Ag[d],m=u?{apiVersion:u}:X;return s[d]??=(()=>{const{method:p="GET",url:h}=t[d];if(!ke(h||void 0))return((...g)=>{const f={...this._getHttpOptions(p,h,...g),...m};return this._session.http(this._beforeHttp,f)})})(),s[d]}})),revoke:i}}_getHttpOptions(t,n,...s){const{loadingContext:o}=this,[i,r]=s,{path:c,query:d}=Wa(r),l=d&&hg(d);if(mi(c))for(const u of Object.keys(c))n=n.replace(`{${u}}`,c[u]);return{loadingContext:o,...i,method:t,params:l,path:n}}_resetEndpoints(){this._revokeEndpointsProxy(),this._revokeEndpointsProxy=ue,this._endpoints=X}}const Zu=Symbol("Error<SESSION_EXPIRED>"),Dg=Symbol("Error<SESSION_FACTORY_UNAVAILABLE>"),Ng=Symbol("Error<SESSION_HTTP_UNAVAILABLE>"),Eg=Symbol("Error<SESSION_INVALID>"),Qu=Symbol("Error<SESSION_REFRESH_ABORTED>"),gi="_sessionExpired",Ju="_sessionReady",kg="_sessionRefreshed",Ig="_sessionRefreshingEnd",wg="_sessionRefreshingStart",em="_session.deadline",tm="_session.ready",nm="_session.refreshingEnd",sm="_session.refreshingStart",Og=async e=>{const{specification:t}=e.context,n=await qn(async()=>{const s=t.autoRefresh;return ne(s)?s.call(t,e.session):s}).catch(jh);return qe(n)},Lg=e=>{let t=e.context.emitter.on(gi,()=>o(!1)),n,s=no(async(c,d=!1)=>{n=c;const l=qe(d)||await Og(e);n===c&&l&&e.pending&&!e.refreshing&&e.refresh(n).catch(ue)}),o=(c=!1)=>{e.refreshing||s(c)},i=()=>{t(),s.abort(),s=n=t=void 0,o=i=ue};return Object.defineProperties((c=!1)=>o(c),{destruct:Ce(()=>i,!1)})},Nd=1e3,Pg=2147483647,Bg=(e,t=Nd,n=!1)=>{let s=new AbortController,o=Ut(0,~~t,Pg),i=qe(n);Number.isFinite(o)||(o=Nd);const r=document.timeline?.currentTime??performance.now(),c=()=>{s?.abort(),s=void 0},d=u=>{!s||s.signal.aborted||(l(u),e(u))},l=u=>{let m=0;if(!i){const p=u-r,h=Math.round(p/o)*o;m=r+h+o-performance.now()}setTimeout(()=>requestAnimationFrame(d),m)};return l(r),i=!1,me({cancel:J(c),delay:J(t),signal:J(s.signal)})},Fg=e=>{const t={},n=Object.getOwnPropertyDescriptors(e);for(const s of Object.keys(e)){const{get:o,value:i}=n[s];t[s]=Ce(o||(ne(i)?i.bind(e):()=>i))}return me(t)},Mg=()=>{const e={idle:null,resume:null},t={};for(const n of Object.keys(e))t[n]={get:()=>e[n]??ue,set:s=>{We(s)?e[n]=null:ne(s)&&s!==e[n]&&(e[n]=s)}};return me(t)},am=Symbol("<<UNSUBSCRIBE>>"),Ss=e=>e===am,so=e=>{let t;const n=Fg(e),s=Mg(),o=new Map,i=new WeakMap,r=()=>Object.freeze({...n}),c=()=>o.size===0,d=u=>{if(c())return;if(Ss(u)){const p=[];return o.forEach((h,g)=>{p.push(g);const f=i.get(g);for(;h--;)f?.()}),p.forEach(h=>h(u)),!0}const m=t;t=r();for(const p of Object.keys(t))if(!Rs(t[p],m[p]))return o.forEach((h,g)=>g(t)),!0;return!1},l=u=>{if(!ne(u))return ue;const m=Zh(u,i,()=>{let h=()=>{const g=o.get(u)||0;g===1?(h=void 0,o.delete(u),i.delete(u),c()&&(t=void 0,s.idle())):g>1&&o.set(u,g-1)};return()=>{h?.()}}),p=c();return o.set(u,(o.get(u)||0)+1),p&&(t=r(),s.resume()),u(t),m};return me({idle:Ce(c),on:J(s),cancelSubscriptions:J(()=>d(am)),requestNotification:J(()=>d()),snapshot:Ce(()=>t??r()),subscribe:J(l)})},ac=(()=>{let e;const{cancelSubscriptions:t,requestNotification:n,subscribe:s,on:o}=so({now:()=>Date.now()});return o.resume=()=>{e=Bg(n,1e3,!1)},o.idle=()=>{e?.cancel(),e=void 0},me({cancelSubscriptions:J(t),subscribe:J(s)})})(),oc=()=>{const e=new class extends EventTarget{},t=(s,...o)=>{const[i]=o;o.length&&ke(i)&&console.warn("Unexpected value `undefined` provided for event detail.\n Turn off this warning by doing either of the following:\n (1) omit the optional event detail parameter.\n (2) explicitly pass `null` for the event detail parameter (instead of `undefined`).\n");const r=new CustomEvent(s,me({bubbles:J(!1),cancelable:J(!1),detail:J(i??null)}));return e.dispatchEvent(r)},n=(s,o)=>{if(!ne(o))return ue;const i=r=>o.call(null,me({detail:J(r.detail),timeStamp:J(r.timeStamp),type:J(r.type)}));return e.addEventListener(s,i),()=>e.removeEventListener(s,i)};return me({emit:J(t),on:J(n)})},xg=(e,t)=>{let n,s=1/0,o,i;const r=hi(),c=oc(),d=()=>{n?.removeEventListener("abort",d),s=1/0,i?.(),r.refresh(),c.emit(em)},l=no(async(m,p)=>{o=m;const h=await qn(()=>{const f=t.deadline;return ne(f)?f.call(t,p,m):f}).catch(ue);if(o!==m)return;const g=(Array.isArray(h)?h:[h]).filter(f=>f||f===0);if(g.length>0){let f=!1;const y=new Set;for(const v of g)if(Qa(v)){if(f=v.aborted)break;y.add(v)}else if(s=Math.min(s,Ja(v)??1/0),f=s<=Date.now())break;f||=y.size<1&&!Number.isFinite(s),f?n??=Xh():(n=pi([...y,r.signal]),n.addEventListener("abort",d),u()),g.length=0,y.clear()}else n=void 0,r.refresh()}),u=()=>{if(!Number.isFinite(s))return;let m=ac.subscribe(p=>{if(Ss(p))return d();p.now>=s&&r.abort()});i=()=>{m?.(),m=i=void 0}};return me({elapse:J(r.abort),elapsed:Ce(()=>n&&n.aborted),on:J(c.on),refresh:J(l.bind(void 0)),signal:Ce(()=>r.signal)})},Ug=(e,t)=>{let n=!1,s,o,i=!0,r;const c=Symbol("<next_session>"),d=oc();function l(h){try{t.assert?.(h)}catch{throw Eg}}function u(h){if(!ne(h))throw Dg}const m=no((h,g)=>{if(!o)o=h;else return p(Qa(g)?pi([g,h]):h)}),p=async h=>{let g=c;try{n=!1,o=h,i&&await(s??=(async()=>{await ea,i=!1,d.emit(sm)})()),u(t.onRefresh),g=await qn(()=>t.onRefresh(r,h)).finally(()=>{if(h.aborted)throw Qu})}finally{if(o===h)try{g!==c&&(l(g),r=g,d.emit(tm))}finally{s=void 0,i=!0,d.emit(nm)}}};return e.on(gi,()=>n=!s),m(),me({context:J(me({emitter:J(e),specification:J(t)})),on:J(d.on),pending:Ce(()=>n),promise:Ce(()=>m.promise),refresh:J(m.bind(void 0)),refreshing:Ce(()=>!!s),session:Ce(()=>r),signal:Ce(()=>o)})};class Wg{constructor(t){this._specification=t,this._deadline=xg(this._eventEmitter,this._specification),this._refresher=Ug(this._eventEmitter,this._specification),this._autofresh=Lg(this._refresher),this._deadline.on(em,()=>this._eventEmitter.emit(gi)),this._refresher.on(sm,()=>this._eventEmitter.emit(wg)),this._refresher.on(nm,()=>this._eventEmitter.emit(Ig)),this._refresher.on(tm,()=>{this._session=this._refresher.session,this._deadline.refresh(this._session).finally(()=>this._eventEmitter.emit(kg)),this._eventEmitter.emit(Ju)}),this.http=this._sessionHttp.bind(this),this.on=this._eventEmitter.on,this.refresh=this._refresher.refresh}_session;_autofresh;_deadline;_refresher;_eventEmitter=oc();get isExpired(){return this._deadline.elapsed}get refreshing(){return this._refresher.refreshing}_assertSessionHttp(t){if(!ne(t))throw Ng}async _sessionHttp(t,...n){for(this._autofresh(!0);;)try{await this._refresher.promise.catch(ue);const{signal:s}=this._deadline;return await t?.(this._session,s,...n),this._assertSessionHttp(this._specification.http),await this._specification.http(this._session,s,...n)}catch(s){if(s!==Zu)throw s;if(this._refresher.pending)continue;this._deadline.elapse()}}}class $g{constructor(t){this.onSessionCreate=t,this._errorHandler=this._errorHandler.bind(this),Object.defineProperties(this,{autoRefresh:J(Rg),onRefresh:J((n,s)=>this.onSessionCreate(s))})}assert=t=>{if(mi(t)){const n=Wt(t.id)?t.id.trim():void 0,s=Wt(t.token)?t.token.trim():void 0;if(n&&s)return}throw void 0};deadline=t=>{const n=[];let s,o;try{({iat:s,exp:o}=JSON.parse(atob(t.token.split(".")[1]))),n.push(o)}catch{s=Date.now()}if(!ke(Dd)){const i=new Date(s);n.push(i.setMilliseconds(i.getMilliseconds()+Dd))}return n};http=async(t,n,s)=>{const{headers:o,signal:i,...r}=s;try{const c={...r,headers:{...o,...t&&{Authorization:`Bearer ${t.token}`}},errorHandler:this._errorHandler,signal:Qa(i)?pi([n,i]):n};return await ju(c)}catch(c){throw c?.type===$a.EXPIRED_TOKEN?Zu:c}};_errorHandler(t){try{this.errorHandler&&this.errorHandler(t)}catch{}throw t}}const Na=Symbol("<<NO_ERR>>");function qg(e){if(e===Na)throw new TypeError("Illegal error")}const Hg=()=>{let e=Na;const t=()=>{e=Na},n=s=>{qg(s),e=s};return me({error:Ce(()=>e===Na?void 0:e),hasError:Ce(()=>e!==Na),reset:J(t),set:J(n)})};class Vg{_canSkipSessionRefresh=!1;_refreshPromisorSignal;_sessionIsFrozen=!1;_errorContainer=Hg();_specification=new $g;_sessionContext=new Wg(this._specification);_setupContext=new Cg(this._sessionContext);_refreshPromisor=no(async(t,n=!1)=>{let s=!this._refreshPromisorSignal,o=this._refreshPromisorSignal===(this._refreshPromisorSignal=t);const i=qe(n)&&this._canSkipSessionRefresh;s&&(s=!1,this._errorContainer.reset(),this._onAuthStateChanged());try{await(i?this._setupContext:this._sessionContext).refresh(t).finally(()=>o=this._refreshPromisorSignal===t)}catch(r){if(!o)return;!t.aborted&&(i||r!==Qu)&&this._errorContainer.set(r),s=!i}finally{(s||i&&o)&&(this._refreshPromisorSignal=void 0,this._onAuthStateChanged())}});_watchlist=so({endpoints:()=>this._setupContext.endpoints,extraConfig:()=>this._setupContext.extraConfig,hasError:()=>this._errorContainer.hasError,isExpired:()=>this._sessionContext.isExpired,isFrozen:()=>this._sessionIsFrozen,refreshing:()=>!!this._refreshPromisorSignal});freeze=()=>{this._sessionIsFrozen=!0,this._watchlist.on.resume=void 0,this._watchlist.cancelSubscriptions()};http=this._sessionContext.http.bind(this._sessionContext,null);refresh=this._refresh.bind(this);subscribe=this._watchlist.subscribe;constructor(){this._watchlist.on.resume=()=>{const t=[this._sessionContext.on(gi,()=>{this._canSkipSessionRefresh=!1,this._onAuthStateChanged()}),this._sessionContext.on(Ju,()=>{this._refresh(this._canSkipSessionRefresh=!0)})];this._watchlist.on.idle=()=>{this._watchlist.on.idle=void 0,t.forEach(n=>n()),t.length=0},!this.context.refreshing&&gn(this.context.isExpired)&&this._refresh()}}get context(){return this._watchlist.snapshot}set loadingContext(t){this._setupContext.loadingContext=t}set analyticsPayload(t){this._setupContext.analyticsPayload=t}set analyticsEnabled(t){this._setupContext.analyticsEnabled=t}set errorHandler(t){this._specification.errorHandler=t}set onSessionCreate(t){this._specification.onSessionCreate!==t&&(this._specification.onSessionCreate=t,this._refreshPromisorSignal&&ne(this._specification.onSessionCreate)&&(this._canSkipSessionRefresh=!1,this._refresh()))}_onAuthStateChanged(){this._watchlist.requestNotification()}_refresh(t=!1){this._refreshPromisor(t)}}const om={"capital.common.actions.contactSupport":"Contact support","capital.common.actions.goBack":"Go back","capital.common.errors.unsupportedRegion":"Business financing isn’t available in your region yet, but check back here for an offer.","capital.common.errors.unsupportedRegion.title":"Stay tuned!","capital.common.fields.account":"Account","capital.common.fields.accountDescription":"Account description","capital.common.fields.accountID":"Account ID","capital.common.fields.annualPercentageRate":"Annual percentage rate","capital.common.fields.annualPercentageRate.description":"The Annual Percentage Rate (APR) is the cost of borrowing of this loan under Adyen Capital User Terms, expressed as an annual rate.","capital.common.fields.dailyRepaymentRate":"Daily repayment rate","capital.common.fields.expectedRepaymentPeriod":"Expected repayment period","capital.common.fields.fees":"Fees","capital.common.fields.grantID":"Grant ID","capital.common.fields.maximumRepaymentPeriod":"Maximum repayment period","capital.common.fields.remainingAmount":"Remaining amount","capital.common.fields.remainingFees":"Remaining fees","capital.common.fields.repaidAmount":"Repaid amount","capital.common.fields.repaidFees":"Repaid fees","capital.common.fields.repaymentThreshold":"Repayment threshold","capital.common.fields.repaymentThreshold.description":"Minimum repayment every %{days} days to repay the financing on time","capital.common.fields.totalFees":"Total fees","capital.common.fields.totalRepaymentAmount":"Total repayment amount","capital.common.loanProviderInfo.AU":"Adyen Capital is provided by Adyen Australia Pty Limited.","capital.common.loanProviderInfo.CA":"Adyen Capital is provided by Adyen Canada Ltd.","capital.common.loanProviderInfo.EU":"Loans are issued by Adyen N.V.","capital.common.loanProviderInfo.GB":"Loans are issued by Adyen N.V. represented by its London Branch.","capital.common.loanProviderInfo.US":"Loans are issued by Adyen N.V. San Francisco Branch and subject to credit approval.","capital.common.title":"Business financing","capital.common.values.daysWithDaysLeft":"%{days} days (%{daysLeft} days left)","capital.common.values.numberOfDays":"%{days} days","capital.common.values.numberOfMonths":"%{months} months","capital.common.values.oneMonth":"1 month","capital.common.values.percentage":"%{percentage}%","capital.common.values.primaryAccount":"Primary account","capital.offer.common.errors.accountInactive":"Your account is inactive","capital.offer.common.errors.cannotContinue":"We couldn't continue with the offer.","capital.offer.common.errors.cannotContinueSupport":"We couldn't continue with the offer. Contact support for help.","capital.offer.common.errors.noPrimaryAccount":"There is no primary account configured","capital.offer.common.errors.unavailable":"We couldn't load financial offers.","capital.offer.common.fundingRequestInfo":"You’re requesting funding of %{amount}.","capital.offer.common.repaymentInfo":"You will need to repay a minimum of %{amount} every %{days} days to fully pay off the funds by %{date}.","capital.offer.selection.actions.reviewOffer":"Review offer","capital.offer.selection.actions.reviewOffer.states.loading":"Loading","capital.offer.selection.slider.a11y.label":"How much money do you need?","capital.offer.selection.slider.markers.max":"max","capital.offer.selection.slider.markers.min":"min","capital.offer.selection.title":"Business financing offer","capital.offer.summary.actions.requestFunds":"Request funds","capital.offer.summary.actions.requestFunds.states.loading":"Requesting","capital.offer.summary.legalNotice.US.note":"If your application for business credit is denied, you have the right to a written statement of the specific reasons for the denial. To obtain the statement, please contact Adyen's Credit Support Team by emailing %{email} within 60 days from the date you are notified of our decision. We will send you a written statement of reasons for the denial within 30 days of receiving your request for the statement. %{break} The Federal Equal Credit Opportunity Act prohibits creditors from discriminating against credit applicants on the basis of race, color, religion, national origin, sex, marital status, age (provided that the applicant has the legal capacity to enter into a binding contract), because all or part of the applicant's income derives from any public assistance program, or because the applicant has in good faith exercised any right under the Consumer Credit Protection Act. The federal agency that administers compliance with this law concerning this creditor is the Office of the Comptroller of the Currency (OCC), Customer Assistance Group, PO Box 53570, Houston, TX 77052.","capital.offer.summary.legalNotice.US.title":"Creditor: Adyen N.V. – San Francisco Branch %{break} 505 Brannan Street, San Francisco, CA 94107.","capital.offer.summary.title":"Business financing summary","capital.overview.common.titles.qualificationIntro":"Need some extra money?","capital.overview.grants.common.statuses.actionNeeded":"Action needed","capital.overview.grants.common.statuses.failed":"Failed","capital.overview.grants.common.statuses.failed.description":"We couldn't process this request. Try again with a new offer.","capital.overview.grants.common.statuses.fullyRepaid":"Fully repaid","capital.overview.grants.common.statuses.pending":"Pending","capital.overview.grants.common.statuses.pending.description.awaitingFunds":"You should get the funds within one business day","capital.overview.grants.common.statuses.pending.description.signTerms":"Sign the terms to receive your funds","capital.overview.grants.common.statuses.revoked":"Revoked","capital.overview.grants.common.statuses.revoked.description":"You accepted but then returned these funds","capital.overview.grants.common.statuses.writtenOff":"Written off","capital.overview.grants.common.statuses.writtenOff.description":"You accepted these funds but did not repay them","capital.overview.grants.item.actions.copyGrantID":"Copy grant ID","capital.overview.grants.item.actions.sendRepayment":"Send repayment","capital.overview.grants.item.actions.submitInformation":"Submit information","capital.overview.grants.item.actions.submitInformationSuccess":"Information submitted","capital.overview.grants.item.actions.viewTermsAndConditions":"Sign terms & conditions","capital.overview.grants.item.actions.viewTermsAndConditionsSuccess":"Terms signed","capital.overview.grants.item.alerts.actionNeeded":"We need a bit more input from you to process your funds. Please complete this action.","capital.overview.grants.item.alerts.actionNeededBy":"We need a bit more input from you to process your funds. Please complete this action by %{date}.","capital.overview.grants.item.alerts.actionNeededByMany":"We need a bit more input from you to process your funds. Please complete these actions by %{date}.","capital.overview.grants.item.alerts.actionNeededMany":"We need a bit more input from you to process your funds. Please complete these actions.","capital.overview.grants.item.alerts.actionsCompleted":"We received your information and we’re working on your request. Check back soon for the next steps.","capital.overview.grants.item.alerts.offerExpiration":"This offer expires on %{date}.","capital.overview.grants.item.alerts.processingRequest":"We received your request and we’re working on it now. Check back soon for the next steps.","capital.overview.grants.item.alerts.signTermsAndConditions":"Sign the Terms & Conditions to receive your funds.","capital.overview.grants.item.alerts.signTermsAndConditionsBy":"Sign the Terms & Conditions to receive your funds. This offer expires on %{date}.","capital.overview.grants.item.alerts.somethingWentWrong":"Something went wrong. Try refreshing the page or come back later.","capital.overview.grants.item.amounts.remaining":"Remaining","capital.overview.grants.item.amounts.repaid":"Repaid","capital.overview.grants.item.amounts.requestedFunds":"Requested funds","capital.overview.grants.item.details.a11y.label":"Show grant details","capital.overview.grants.item.details.requestedFunds":"Your requested funds were: %{amount}","capital.overview.grants.item.progressBar.a11y.label":"Grant repayment","capital.overview.grants.item.termEnds":"Term ends: %{date}","capital.overview.grants.list.actions.newOffer":"See new offer","capital.overview.grants.list.tabs.a11y.label":"Grants list","capital.overview.grants.list.tabs.labels.closed":"Closed","capital.overview.grants.list.tabs.labels.inProgress":"In progress","capital.overview.prequalified.actions.seeOptions":"See options","capital.overview.prequalified.alreadyQualifyInfo.part1":"You have been pre-qualified for business financing","capital.overview.prequalified.alreadyQualifyInfo.part2":" up to %{amount}.","capital.overview.repayment.accountDetails.fields.accountNumber":"Account number","capital.overview.repayment.accountDetails.fields.beneficiaryName":"Account owned by","capital.overview.repayment.accountDetails.fields.countryOrRegion":"Country/region","capital.overview.repayment.accountDetails.fields.iban":"IBAN","capital.overview.repayment.accountDetails.fields.routingNumber":"Routing number","capital.overview.repayment.accountDetails.fields.sortCode":"Sort code","capital.overview.repayment.accountDetails.title":"Loan repayment bank account","capital.overview.repayment.actions.copyAccountNumber":"Copy account number","capital.overview.repayment.actions.copyBeneficiaryName":"Copy account owner","capital.overview.repayment.actions.copyIban":"Copy IBAN","capital.overview.repayment.actions.copyRoutingNumber":"Copy routing number","capital.overview.repayment.actions.copySortCode":"Copy sort code","capital.overview.repayment.instructions.addingBeneficiary":"Add %{beneficiaryName} as a payee using your bank’s website or app.","capital.overview.repayment.instructions.sendingPayment":"Send your payment.","capital.overview.repayment.instructions.title":"How to send a loan payment","capital.overview.repayment.instructions.verifiedAccount":"Payments made from a verified account are usually applied faster.","capital.overview.repayment.instructions.waiting":"Wait 1-3 business days for the payment to be applied to your loan.","capital.overview.repayment.subtitle":"Pay off your loan faster by making one-time payments.","capital.overview.repayment.title":"Send repayment","capital.overview.repayment.transferInstruments":"Your verified bank accounts","capital.overview.unqualified.soonQualifyInfo":"You will soon qualify for a financial offer!","common.actions.apply.labels.default":"Apply","common.actions.contactSupport.labels.default":"Contact support","common.actions.contactSupport.labels.reachOut":"Reach out to support","common.actions.copy.labels.default":"Copy","common.actions.copy.labels.done":"Copied","common.actions.copy.labels.errorCode":"Copy error code","common.actions.dismiss.labels.close":"Close","common.actions.dismiss.labels.dismiss":"Dismiss","common.actions.download.labels.default":"Download","common.actions.download.labels.inProgress":"Downloading","common.actions.refresh.labels.default":"Refresh","common.actions.reset.labels.default":"Reset","common.errors.accountInvalid":"The selected balance account is incorrect","common.errors.accountUnavailable":"We couldn't load your balance accounts.","common.errors.componentUnavailable":"Something went wrong.","common.errors.contactSupport":"Contact support for help.","common.errors.errorCode":"The error code is %{requestId}","common.errors.errorCodeSupport":"Contact support for help and share error code %{requestId}","common.errors.fieldRequired":"This field is required","common.errors.minLength":"Must be at least %{minLength} characters long.","common.errors.noResults":"There are no results","common.errors.notFound":"Entity was not found","common.errors.requestInvalid":"The request is missing required fields or contains invalid data.","common.errors.retry":"Try refreshing the page or come back later.","common.errors.somethingWentWrong":"Something went wrong.","common.errors.unexpected":"There was an unexpected error","common.errors.updateFilters":"Try a different search or reset your filters, and we’ll try again.","common.filters.controls.resetAll.label":"Clear all","common.filters.label":"Filters","common.filters.mobile.label":"Show filters","common.filters.types.account.label":"Balance account","common.filters.types.account.options.all":"All accounts","common.filters.types.amount.errors.negative":"No negative numbers allowed","common.filters.types.amount.errors.smallerMax":"To value should be equal or greater than the From value","common.filters.types.amount.inputs.max.label":"To","common.filters.types.amount.inputs.min.label":"From","common.filters.types.amount.range.between":"%{minAmount} to %{maxAmount}","common.filters.types.amount.range.max":"Up to %{amount}","common.filters.types.amount.range.min":"From %{amount}","common.filters.types.amount.range.only":"Only %{amount}","common.filters.types.date.calendar.label":"Calendar: %{monthOfYear}","common.filters.types.date.calendar.navigation.label":"Calendar navigation","common.filters.types.date.calendar.navigation.nextMonth":"Next month","common.filters.types.date.calendar.navigation.previousMonth":"Previous month","common.filters.types.date.label":"Date range","common.filters.types.date.range.between":"%{fromDate} - %{toDate}","common.filters.types.date.range.since":"Since %{date}","common.filters.types.date.range.until":"Until %{date}","common.filters.types.date.rangeSelect.label":"Preset range select","common.filters.types.date.rangeSelect.options.custom":"Custom","common.filters.types.date.rangeSelect.options.last180Days":"Last 180 days","common.filters.types.date.rangeSelect.options.last30Days":"Last 30 days","common.filters.types.date.rangeSelect.options.last7Days":"Last 7 days","common.filters.types.date.rangeSelect.options.last90Days":"Last 90 days","common.filters.types.date.rangeSelect.options.lastMonth":"Last month","common.filters.types.date.rangeSelect.options.lastWeek":"Last week","common.filters.types.date.rangeSelect.options.thisMonth":"This month","common.filters.types.date.rangeSelect.options.thisWeek":"This week","common.filters.types.date.rangeSelect.options.yearToDate":"Year to date","common.filters.types.date.timezoneInfo":"Timezone is set on: GMT%{offset} (%{time})","common.inputs.file.actions.delete":"Delete %{filename} file","common.inputs.file.errors.default":"Something went wrong, please check that your documents are meeting requirements.","common.inputs.file.errors.disallowedType":"File type not accepted","common.inputs.file.errors.invalidDimensions":"File dimensions not met with the requirements","common.inputs.file.errors.required":"File required","common.inputs.file.errors.tooLarge":"File size exceeds the maximum file size","common.inputs.file.errors.tooMany":"Too many files","common.inputs.file.labels.default":"Browse files","common.inputs.search.clearSearch":"Clear search","common.inputs.select.errors.noOptions":"No options match this search","common.inputs.select.placeholder":"Select option","common.modal.controls.dismiss.label":"Close modal","common.pagination.controls.limitSelect":"Showing %{pageLimit}","common.pagination.controls.limitSelect.label":"Records per page","common.pagination.controls.nextPage.label":"Next page","common.pagination.controls.previousPage.label":"Previous page","common.pagination.label":"Pagination","common.tags.noData":"No data","common.timeline.timelineItem.showLess":"Show less","common.timeline.timelineItem.showMoreItems":"Show %{items} more","common.timeline.timelineItem.timeGap.a11y.label":"Time gap: %{timeGap}","common.timeline.timelineItem.timeGap.unit.day":"%{value} day","common.timeline.timelineItem.timeGap.unit.day__plural":"%{value} days","disputes.common.reasonCategories.adjustment":"Adjustment","disputes.common.reasonCategories.authorisationError":"Authorisation error","disputes.common.reasonCategories.consumerDispute":"Consumer dispute","disputes.common.reasonCategories.fraud":"Fraud","disputes.common.reasonCategories.other":"Other","disputes.common.reasonCategories.processingError":"Processing error","disputes.common.reasonCategories.requestForInformation":"Request for information","disputes.common.statuses.accepted":"Accepted","disputes.common.statuses.expired":"Expired","disputes.common.statuses.lost":"Lost","disputes.common.statuses.pending":"Pending","disputes.common.statuses.responded":"Responded","disputes.common.statuses.undefended":"Undefended","disputes.common.statuses.unresponded":"Unresponded","disputes.common.statuses.won":"Won","disputes.management.accept.chargeback.accepted":"Chargeback has been accepted","disputes.management.accept.chargeback.actions.accept":"Accept chargeback","disputes.management.accept.chargeback.disclaimer":"By accepting, you agree that the disputed amount will not be returned to your account.","disputes.management.accept.chargeback.title":"Accept chargeback","disputes.management.accept.common.accepted":"Accepted","disputes.management.accept.common.agree":"I agree","disputes.management.accept.requestForInformation.accepted":"Request for information has been accepted","disputes.management.accept.requestForInformation.actions.accept":"Accept","disputes.management.accept.requestForInformation.disclaimer":"Once this request for information is accepted, it will be marked as expired and may lead to a chargeback in the future.","disputes.management.accept.requestForInformation.title":"Accept request for information","disputes.management.common.actions.goBack":"Go back","disputes.management.common.actions.showDetails":"Show details","disputes.management.common.defenseDocuments.acquirerRepresentmentForm":"Acquirer Representment Form","disputes.management.common.defenseDocuments.acquirerRepresentmentFormAutomaticallyGenerated":"The Acquirer Representment Form is an automatically generated document that contains an overview of key dispute details.","disputes.management.common.defenseDocuments.acquirerRetrievalFulfilmentForm":"Acquirer Retrieval Fulfilment Form","disputes.management.common.defenseDocuments.acquirerRetrievalFulfilmentFormAutomaticallyGenerated":"The Acquirer Retrieval Fulfilment Form is an automatically generated document that contains an overview of key dispute details.","disputes.management.common.defenseDocuments.additionalInformation":"Additional Information","disputes.management.common.defenseDocuments.additionalTransactions":"Additional Transactions","disputes.management.common.defenseDocuments.additionalTransactionsConnectedWithDisputedFlight":"Additional transactions connected with the disputed flight, such as upgrades, excess baggage charges, and in-flight purchases","disputes.management.common.defenseDocuments.alternativeDefenseMaterial":"Alternative defense material","disputes.management.common.defenseDocuments.amexFaxCover":"Amex Fax Cover","disputes.management.common.defenseDocuments.appropriateExplanation":"Appropriate explanation","disputes.management.common.defenseDocuments.appropriateExplanationAndDocTwoSeparateTransactions":"An appropriate explanation and documentation showing two separate transactions.","disputes.management.common.defenseDocuments.authorizationNotObtained":"Authorization Not Obtained","disputes.management.common.defenseDocuments.authorizationNotObtainedHelp":"Authorization Not Obtained (Help)","disputes.management.common.defenseDocuments.autoGeneratedDocRetrievalRequestFulfilled":"Automatically generated document showing that the retrieval request was fulfilled","disputes.management.common.defenseDocuments.automaticallyGeneratedTransactionDetails":"Automatically generated transaction details","disputes.management.common.defenseDocuments.avsDocumentation":"AVS Documentation","disputes.management.common.defenseDocuments.cancelledRecurringBilling":"Cancelled recurring billing","disputes.management.common.defenseDocuments.cardholderAgreedToAmountRange":"Documentation supporting the claim that the cardholder agreed to a reasonable amount range.","disputes.management.common.defenseDocuments.cardholderResponsibleForAddendumTransaction":"Documentation to establish the cardholder is responsible for the addendum transaction","disputes.management.common.defenseDocuments.cardholderResponsibleForDisputedAmount":"Documentation to support that the cardholder is responsible for the disputed amount.","disputes.management.common.defenseDocuments.cardRecoveryBulletinOrExceptionFile":"Card Recovery Bulletin or Exception File","disputes.management.common.defenseDocuments.cardRecoveryBulletinOrExceptionFileHelp":"Card Recovery Bulletin or Exception File (Help)","disputes.management.common.defenseDocuments.chargebackRemediedOrInvalid":"Documentation to support that the chargeback is remedied or invalid.","disputes.management.common.defenseDocuments.chargeToWrongAccountNumber":"Charge to Wrong Account Number","disputes.management.common.defenseDocuments.chargeToWrongAccountNumberHelp":"Charge to Wrong Account Number (Help)","disputes.management.common.defenseDocuments.clearingText":"Clearing Text","disputes.management.common.defenseDocuments.compellingEvidence":"Compelling Evidence","disputes.management.common.defenseDocuments.copyOfInvoice":"Copy of the invoice or similar document","disputes.management.common.defenseDocuments.copyOfInvoiceOrOtherRelevantTransactionDetails":"Copy of the invoice, terminal receipt, sales ticket or any other document (Transaction Information Document) that provides the relevant transaction details like transaction amount, delivery address (if applicable) and description of the merchandise.","disputes.management.common.defenseDocuments.CopyOfSalesDraftDetails":"Copy of the invoice, terminal receipt, sales ticket or any other document (transaction information document) that provides the relevant details like transaction amount, delivery address (if applicable) and description of the merchandise","disputes.management.common.defenseDocuments.CopyOfSalesDraftTitle":"Copy of original Sales Draft","disputes.management.common.defenseDocuments.copyOfTid":"A copy of the TID as proof that the transaction involved a retail sale rather than a credit.","disputes.management.common.defenseDocuments.coverPageForAmexDisputes":"A cover page that will be sent for Amex disputes","disputes.management.common.defenseDocuments.creditNotProcessed":"Credit Not Processed","disputes.management.common.defenseDocuments.creditNotProcessedHelp":"Credit Not Processed (Help)","disputes.management.common.defenseDocuments.creditNotProcessedReason":"Credit Not Processed Reason","disputes.management.common.defenseDocuments.creditsOfMilesShowingConnectionToCardholder":"Credits of frequent flyer miles for the flight, showing connection to the cardholder","disputes.management.common.defenseDocuments.customerWrittenConfirmation":"The customer's written confirmation of registration to receive electronic delivery of goods or services.","disputes.management.common.defenseDocuments.defenseMaterial":"Defense Material","disputes.management.common.defenseDocuments.deffectiveMerchandise":"Deffective Merchandise","disputes.management.common.defenseDocuments.deffectiveMerchandiseHelp":"Deffective Merchandise (Help)","disputes.management.common.defenseDocuments.deliveryOfFlightTicketAtAddress":"Proof of delivery of the flight ticket at cardholder's address","disputes.management.common.defenseDocuments.descriptionOfDisputeReason":"A description of the dispute reason","disputes.management.common.defenseDocuments.descriptionOfMerchandiseOrServices":"A description of the merchandise or services. This can be for example the invoice.","disputes.management.common.defenseDocuments.differentSignature":"Different Signature","disputes.management.common.defenseDocuments.differentSignatureHelp":"Different Signature (Help)","disputes.management.common.defenseDocuments.disclosureAtPointOfInteraction":"Disclosure at the Point of Interaction","disputes.management.common.defenseDocuments.docAllOfFollowing":"A merchant statement documenting all of the following:","disputes.management.common.defenseDocuments.docCardholderIssuedPaperAirlineTickets":"Documentation establishing that the cardholder was issued paper airline tickets.","disputes.management.common.defenseDocuments.docChargebackCodeNotApplicable":"Documentation to support that the chargeback code is not applicable","disputes.management.common.defenseDocuments.docCorrectCurrency":"Documentation proving the correct currency was provided or specified","disputes.management.common.defenseDocuments.docIdentifyTransaction":"Documentation that would further identify the transaction","disputes.management.common.defenseDocuments.docMerchandiseNotCounterfeit":"Documentation to support the claim that the merchandise was not counterfeit","disputes.management.common.defenseDocuments.docProvingCardHolderParticipated":"Documentation proving the card holder participated in the transacion. This can be:","disputes.management.common.defenseDocuments.docRemediesChargeback":"Defense Material that remedies the chargeback.","disputes.management.common.defenseDocuments.docsTwoTransactionsWithSameShopper":"Provide copies of two documents (for example terminal receipts or invoices) belonging to two separate transactions with the same shopper.","disputes.management.common.defenseDocuments.docTermsOfSaleNotMisrepresented":"Documentation to prove that the terms of sale of the merchandise or services were not misrepresented","disputes.management.common.defenseDocuments.docTransactionOccurredOnPos":"Documentation that show that the transaction occurred on an attended POS terminal","disputes.management.common.defenseDocuments.docTwoDifferentTransactions":"Documentation showing Two Different Transactions","disputes.management.common.defenseDocuments.documentationOfPositiveAvsResponseXOrY":"Documentation of positive AVS response X or Y","disputes.management.common.defenseDocuments.documentCanBeCreditReasonDue":"A document can be a credit due reason.","disputes.management.common.defenseDocuments.documentCanBeProofOfDelivery":"A document can be a proof of delivery signature or a proof of receipt copy.","disputes.management.common.defenseDocuments.documentCanBeSubscriptionAgreement":"A document can be a subscription agreement.","disputes.management.common.defenseDocuments.documentCanBetUrlReturnPolicy":"A document can be a description, item URL, return policy, or a copy of a contract or an affidavit.","disputes.management.common.defenseDocuments.documentContainingImportantShipmentData":"A document containing important shipment data. It should include at least the shipment date.","disputes.management.common.defenseDocuments.documentShipmentDate":"Document containing Shipment Date","disputes.management.common.defenseDocuments.docViaFraudReporter":"Documentation that supports the second presentment from the Acquirer’s Loss Data File, the Acquirer Loss Data Report or the Acquirer Transaction Data Report via Fraud Reporter.","disputes.management.common.defenseDocuments.duplicateProcessing":"Duplicate Processing","disputes.management.common.defenseDocuments.duplicateProcessingHelp":"Duplicate Processing (Help)","disputes.management.common.defenseDocuments.evidenceCardHolderParticipation":"Compelling Evidence of Card holder Participation","disputes.management.common.defenseDocuments.evidenceProofingParticipationOfCardholder":"Compelling evidence proofing the participation of the cardholder in the transaction.","disputes.management.common.defenseDocuments.evidenceTransactionWasRecurring":"Description of the goods or services being provided with evidence that the transaction was recurring by providing the start date of the recurring transaction and, if used, an indication that SecureCode or CVC2 has been used on the initial transaction.","disputes.management.common.defenseDocuments.expiredCard":"Expired Card","disputes.management.common.defenseDocuments.expiredCardHelp":"Expired Card (Help)","disputes.management.common.defenseDocuments.explanation":"Explanation","disputes.management.common.defenseDocuments.explanationWhyCancellationCodeInvalid":"Explanation why the cancellation code is invalid.","disputes.management.common.defenseDocuments.falseTransactio