diff --git a/404.html b/404.html index cbc833d30..a0d507a46 100644 --- a/404.html +++ b/404.html @@ -12,7 +12,7 @@ r.src=t+h._hjSettings.hjid+j+h._hjSettings.hjsv; a.appendChild(r); })(window,document,'https://static.hotjar.com/c/hotjar-','.js?sv='); - + diff --git a/_astro/tailwind.d17d5de3.css b/_astro/tailwind.5ce24337.css similarity index 56% rename from _astro/tailwind.d17d5de3.css rename to _astro/tailwind.5ce24337.css index bfbc5179a..9b280349d 100644 --- a/_astro/tailwind.d17d5de3.css +++ b/_astro/tailwind.5ce24337.css @@ -1 +1 @@ -*,:before,:after{box-sizing:border-box;border-width:0;border-style:solid;border-color:#e5e7eb}:before,:after{--tw-content: ""}html{line-height:1.5;-webkit-text-size-adjust:100%;-moz-tab-size:4;-o-tab-size:4;tab-size:4;font-family:Inter,Sans-Serif}body{margin:0;line-height:inherit}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;font-size:1em}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}button,input,optgroup,select,textarea{font-family:inherit;font-size:100%;font-weight:inherit;line-height:inherit;color:inherit;margin:0;padding:0}button,select{text-transform:none}button,[type=button],[type=reset],[type=submit]{-webkit-appearance:button;background-color:transparent;background-image:none}:-moz-focusring{outline:auto}:-moz-ui-invalid{box-shadow:none}progress{vertical-align:baseline}::-webkit-inner-spin-button,::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}summary{display:list-item}blockquote,dl,dd,h1,h2,h3,h4,h5,h6,hr,figure,p,pre{margin:0}fieldset{margin:0;padding:0}legend{padding:0}ol,ul,menu{list-style:none;margin:0;padding:0}textarea{resize:vertical}input::-moz-placeholder,textarea::-moz-placeholder{opacity:1;color:#9ca3af}input::placeholder,textarea::placeholder{opacity:1;color:#9ca3af}button,[role=button]{cursor:pointer}:disabled{cursor:default}img,svg,video,canvas,audio,iframe,embed,object{display:block;vertical-align:middle}img,video{max-width:100%;height:auto}*,:before,:after{--tw-border-spacing-x: 0;--tw-border-spacing-y: 0;--tw-translate-x: 0;--tw-translate-y: 0;--tw-rotate: 0;--tw-skew-x: 0;--tw-skew-y: 0;--tw-scale-x: 1;--tw-scale-y: 1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness: proximity;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width: 0px;--tw-ring-offset-color: #fff;--tw-ring-color: rgb(59 130 246 / .5);--tw-ring-offset-shadow: 0 0 #0000;--tw-ring-shadow: 0 0 #0000;--tw-shadow: 0 0 #0000;--tw-shadow-colored: 0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: }::backdrop{--tw-border-spacing-x: 0;--tw-border-spacing-y: 0;--tw-translate-x: 0;--tw-translate-y: 0;--tw-rotate: 0;--tw-skew-x: 0;--tw-skew-y: 0;--tw-scale-x: 1;--tw-scale-y: 1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness: proximity;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width: 0px;--tw-ring-offset-color: #fff;--tw-ring-color: rgb(59 130 246 / .5);--tw-ring-offset-shadow: 0 0 #0000;--tw-ring-shadow: 0 0 #0000;--tw-shadow: 0 0 #0000;--tw-shadow-colored: 0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: }.prose{color:var(--tw-prose-body);max-width:65ch}.prose :where([class~=lead]):not(:where([class~=not-prose] *)){color:var(--tw-prose-lead);font-size:1.25em;line-height:1.6;margin-top:1.2em;margin-bottom:1.2em}.prose :where(a):not(:where([class~=not-prose] *)){color:var(--tw-prose-links);text-decoration:underline;font-weight:500}.prose :where(strong):not(:where([class~=not-prose] *)){color:var(--tw-prose-bold);font-weight:600}.prose :where(a strong):not(:where([class~=not-prose] *)){color:inherit}.prose :where(blockquote strong):not(:where([class~=not-prose] *)){color:inherit}.prose :where(thead th strong):not(:where([class~=not-prose] *)){color:inherit}.prose :where(ol):not(:where([class~=not-prose] *)){list-style-type:decimal;margin-top:1.25em;margin-bottom:1.25em;padding-left:1.625em}.prose :where(ol[type=A]):not(:where([class~=not-prose] *)){list-style-type:upper-alpha}.prose :where(ol[type=a]):not(:where([class~=not-prose] *)){list-style-type:lower-alpha}.prose :where(ol[type=A s]):not(:where([class~=not-prose] *)){list-style-type:upper-alpha}.prose :where(ol[type=a s]):not(:where([class~=not-prose] *)){list-style-type:lower-alpha}.prose :where(ol[type=I]):not(:where([class~=not-prose] *)){list-style-type:upper-roman}.prose :where(ol[type=i]):not(:where([class~=not-prose] *)){list-style-type:lower-roman}.prose :where(ol[type=I s]):not(:where([class~=not-prose] *)){list-style-type:upper-roman}.prose :where(ol[type=i s]):not(:where([class~=not-prose] *)){list-style-type:lower-roman}.prose :where(ol[type="1"]):not(:where([class~=not-prose] *)){list-style-type:decimal}.prose :where(ul):not(:where([class~=not-prose] *)){list-style-type:disc;margin-top:1.25em;margin-bottom:1.25em;padding-left:1.625em}.prose :where(ol>li):not(:where([class~=not-prose] *))::marker{font-weight:400;color:var(--tw-prose-counters)}.prose :where(ul>li):not(:where([class~=not-prose] *))::marker{color:var(--tw-prose-bullets)}.prose :where(hr):not(:where([class~=not-prose] *)){border-color:var(--tw-prose-hr);border-top-width:1px;margin-top:3em;margin-bottom:3em}.prose :where(blockquote):not(:where([class~=not-prose] *)){font-weight:500;font-style:italic;color:var(--tw-prose-quotes);border-left-width:.25rem;border-left-color:var(--tw-prose-quote-borders);quotes:"“""”""‘""’";margin-top:1.6em;margin-bottom:1.6em;padding-left:1em}.prose :where(blockquote p:first-of-type):not(:where([class~=not-prose] *)):before{content:open-quote}.prose :where(blockquote p:last-of-type):not(:where([class~=not-prose] *)):after{content:close-quote}.prose :where(h1):not(:where([class~=not-prose] *)){color:var(--tw-prose-headings);font-weight:800;font-size:2.25em;margin-top:0;margin-bottom:.8888889em;line-height:1.1111111}.prose :where(h1 strong):not(:where([class~=not-prose] *)){font-weight:900;color:inherit}.prose :where(h2):not(:where([class~=not-prose] *)){color:var(--tw-prose-headings);font-weight:700;font-size:1.5em;margin-top:2em;margin-bottom:1em;line-height:1.3333333}.prose :where(h2 strong):not(:where([class~=not-prose] *)){font-weight:800;color:inherit}.prose :where(h3):not(:where([class~=not-prose] *)){color:var(--tw-prose-headings);font-weight:600;font-size:1.25em;margin-top:1.6em;margin-bottom:.6em;line-height:1.6}.prose :where(h3 strong):not(:where([class~=not-prose] *)){font-weight:700;color:inherit}.prose :where(h4):not(:where([class~=not-prose] *)){color:var(--tw-prose-headings);font-weight:600;margin-top:1.5em;margin-bottom:.5em;line-height:1.5}.prose :where(h4 strong):not(:where([class~=not-prose] *)){font-weight:700;color:inherit}.prose :where(img):not(:where([class~=not-prose] *)){margin-top:2em;margin-bottom:2em}.prose :where(figure>*):not(:where([class~=not-prose] *)){margin-top:0;margin-bottom:0}.prose :where(figcaption):not(:where([class~=not-prose] *)){color:var(--tw-prose-captions);font-size:.875em;line-height:1.4285714;margin-top:.8571429em}.prose :where(a code):not(:where([class~=not-prose] *)){color:inherit}.prose :where(h1 code):not(:where([class~=not-prose] *)){color:inherit}.prose :where(h2 code):not(:where([class~=not-prose] *)){color:inherit;font-size:.875em}.prose :where(h3 code):not(:where([class~=not-prose] *)){color:inherit;font-size:.9em}.prose :where(h4 code):not(:where([class~=not-prose] *)){color:inherit}.prose :where(blockquote code):not(:where([class~=not-prose] *)){color:inherit}.prose :where(thead th code):not(:where([class~=not-prose] *)){color:inherit}.prose :where(pre code):not(:where([class~=not-prose] *)):before{content:none}.prose :where(pre code):not(:where([class~=not-prose] *)):after{content:none}.prose :where(table):not(:where([class~=not-prose] *)){width:100%;table-layout:auto;text-align:left;margin-top:2em;margin-bottom:2em;font-size:.875em;line-height:1.7142857}.prose :where(thead):not(:where([class~=not-prose] *)){border-bottom-width:1px;border-bottom-color:var(--tw-prose-th-borders)}.prose :where(thead th):not(:where([class~=not-prose] *)){color:var(--tw-prose-headings);font-weight:600;vertical-align:bottom;padding-right:.5714286em;padding-bottom:.5714286em;padding-left:.5714286em}.prose :where(tbody tr):not(:where([class~=not-prose] *)){border-bottom-width:1px;border-bottom-color:var(--tw-prose-td-borders)}.prose :where(tbody tr:last-child):not(:where([class~=not-prose] *)){border-bottom-width:0}.prose :where(tbody td):not(:where([class~=not-prose] *)){vertical-align:baseline}.prose :where(tfoot):not(:where([class~=not-prose] *)){border-top-width:1px;border-top-color:var(--tw-prose-th-borders)}.prose :where(tfoot td):not(:where([class~=not-prose] *)){vertical-align:top}.prose{--tw-prose-body: #374151;--tw-prose-headings: #111827;--tw-prose-lead: #4b5563;--tw-prose-links: #111827;--tw-prose-bold: #111827;--tw-prose-counters: #6b7280;--tw-prose-bullets: #d1d5db;--tw-prose-hr: #e5e7eb;--tw-prose-quotes: #111827;--tw-prose-quote-borders: #e5e7eb;--tw-prose-captions: #6b7280;--tw-prose-code: #111827;--tw-prose-pre-code: #e5e7eb;--tw-prose-pre-bg: #1f2937;--tw-prose-th-borders: #d1d5db;--tw-prose-td-borders: #e5e7eb;--tw-prose-invert-body: #d1d5db;--tw-prose-invert-headings: #fff;--tw-prose-invert-lead: #9ca3af;--tw-prose-invert-links: #fff;--tw-prose-invert-bold: #fff;--tw-prose-invert-counters: #9ca3af;--tw-prose-invert-bullets: #4b5563;--tw-prose-invert-hr: #374151;--tw-prose-invert-quotes: #f3f4f6;--tw-prose-invert-quote-borders: #374151;--tw-prose-invert-captions: #9ca3af;--tw-prose-invert-code: #fff;--tw-prose-invert-pre-code: #d1d5db;--tw-prose-invert-pre-bg: rgb(0 0 0 / 50%);--tw-prose-invert-th-borders: #4b5563;--tw-prose-invert-td-borders: #374151;font-size:1rem;line-height:1.75}.prose :where(p):not(:where([class~=not-prose] *)){margin-top:1.25em;margin-bottom:1.25em}.prose :where(video):not(:where([class~=not-prose] *)){margin-top:2em;margin-bottom:2em}.prose :where(figure):not(:where([class~=not-prose] *)){margin-top:2em;margin-bottom:2em}.prose :where(li):not(:where([class~=not-prose] *)){margin-top:.5em;margin-bottom:.5em}.prose :where(ol>li):not(:where([class~=not-prose] *)){padding-left:.375em}.prose :where(ul>li):not(:where([class~=not-prose] *)){padding-left:.375em}.prose :where(.prose>ul>li p):not(:where([class~=not-prose] *)){margin-top:.75em;margin-bottom:.75em}.prose :where(.prose>ul>li>*:first-child):not(:where([class~=not-prose] *)){margin-top:1.25em}.prose :where(.prose>ul>li>*:last-child):not(:where([class~=not-prose] *)){margin-bottom:1.25em}.prose :where(.prose>ol>li>*:first-child):not(:where([class~=not-prose] *)){margin-top:1.25em}.prose :where(.prose>ol>li>*:last-child):not(:where([class~=not-prose] *)){margin-bottom:1.25em}.prose :where(ul ul,ul ol,ol ul,ol ol):not(:where([class~=not-prose] *)){margin-top:.75em;margin-bottom:.75em}.prose :where(hr+*):not(:where([class~=not-prose] *)){margin-top:0}.prose :where(h2+*):not(:where([class~=not-prose] *)){margin-top:0}.prose :where(h3+*):not(:where([class~=not-prose] *)){margin-top:0}.prose :where(h4+*):not(:where([class~=not-prose] *)){margin-top:0}.prose :where(thead th:first-child):not(:where([class~=not-prose] *)){padding-left:0}.prose :where(thead th:last-child):not(:where([class~=not-prose] *)){padding-right:0}.prose :where(tbody td,tfoot td):not(:where([class~=not-prose] *)){padding:.5714286em}.prose :where(tbody td:first-child,tfoot td:first-child):not(:where([class~=not-prose] *)){padding-left:0}.prose :where(tbody td:last-child,tfoot td:last-child):not(:where([class~=not-prose] *)){padding-right:0}.prose :where(.prose>:first-child):not(:where([class~=not-prose] *)){margin-top:0}.prose :where(.prose>:last-child):not(:where([class~=not-prose] *)){margin-bottom:0}.prose-slate{--tw-prose-body: #334155;--tw-prose-headings: #0f172a;--tw-prose-lead: #475569;--tw-prose-links: #0f172a;--tw-prose-bold: #0f172a;--tw-prose-counters: #64748b;--tw-prose-bullets: #cbd5e1;--tw-prose-hr: #e2e8f0;--tw-prose-quotes: #0f172a;--tw-prose-quote-borders: #e2e8f0;--tw-prose-captions: #64748b;--tw-prose-code: #0f172a;--tw-prose-pre-code: #e2e8f0;--tw-prose-pre-bg: #1e293b;--tw-prose-th-borders: #cbd5e1;--tw-prose-td-borders: #e2e8f0;--tw-prose-invert-body: #cbd5e1;--tw-prose-invert-headings: #fff;--tw-prose-invert-lead: #94a3b8;--tw-prose-invert-links: #fff;--tw-prose-invert-bold: #fff;--tw-prose-invert-counters: #94a3b8;--tw-prose-invert-bullets: #475569;--tw-prose-invert-hr: #334155;--tw-prose-invert-quotes: #f1f5f9;--tw-prose-invert-quote-borders: #334155;--tw-prose-invert-captions: #94a3b8;--tw-prose-invert-code: #fff;--tw-prose-invert-pre-code: #cbd5e1;--tw-prose-invert-pre-bg: rgb(0 0 0 / 50%);--tw-prose-invert-th-borders: #475569;--tw-prose-invert-td-borders: #334155}.type-display{font-size:2.25rem;line-height:2.5rem;font-weight:300;line-height:1.25;letter-spacing:-.05em;--tw-text-opacity: 1;color:rgb(17 24 39 / var(--tw-text-opacity))}@media (min-width: 768px){.type-display{font-size:3rem;line-height:1}}@media (min-width: 1024px){.type-display{font-size:3.75rem;line-height:1}}.type-headline-2{font-size:1.5rem;line-height:2rem;font-weight:400;line-height:1.25;letter-spacing:-.025em;--tw-text-opacity: 1;color:rgb(17 24 39 / var(--tw-text-opacity))}@media (min-width: 768px){.type-headline-2{font-size:1.875rem;line-height:2.25rem}}@media (min-width: 1024px){.type-headline-2{font-size:2.25rem;line-height:2.5rem}}.type-headline-4{font-size:1.125rem;line-height:1.75rem;font-weight:500;line-height:1.375;letter-spacing:-.025em;--tw-text-opacity: 1;color:rgb(17 24 39 / var(--tw-text-opacity))}@media (min-width: 768px){.type-headline-4{font-size:1.25rem;line-height:1.75rem}}@media (min-width: 1024px){.type-headline-4{font-size:1.5rem;line-height:2rem}}.type-body-1{font-size:1.125rem;line-height:1.75rem;font-weight:400;line-height:1.5;letter-spacing:0em;--tw-text-opacity: 1;color:rgb(31 41 55 / var(--tw-text-opacity))}@media (min-width: 1024px){.type-body-1{font-size:1.25rem;line-height:1.75rem}}.type-body-2{font-size:1rem;line-height:1.5rem;font-weight:400;line-height:1.5;letter-spacing:0em;--tw-text-opacity: 1;color:rgb(107 114 128 / var(--tw-text-opacity))}@media (min-width: 1024px){.type-body-2{font-size:1.125rem;line-height:1.75rem}}.type-body-3{font-size:.875rem;line-height:1.25rem;font-weight:400;line-height:1.5;letter-spacing:0em;--tw-text-opacity: 1;color:rgb(31 41 55 / var(--tw-text-opacity))}@media (min-width: 1024px){.type-body-3{font-size:1rem;line-height:1.5rem}}.type-subtitle-1{font-size:1rem;line-height:1.5rem;font-weight:500;line-height:1.375;letter-spacing:0em;--tw-text-opacity: 1;color:rgb(31 41 55 / var(--tw-text-opacity))}@media (min-width: 1024px){.type-subtitle-1{font-size:1.25rem;line-height:1.75rem}}.type-subtitle-2{font-size:.875rem;line-height:1.25rem;font-weight:500;line-height:1.375;letter-spacing:0em;--tw-text-opacity: 1;color:rgb(31 41 55 / var(--tw-text-opacity))}@media (min-width: 1024px){.type-subtitle-2{font-size:1.125rem;line-height:1.75rem}}.type-caption-2{font-size:.75rem;line-height:1rem;font-weight:400;line-height:1.5;letter-spacing:0em;--tw-text-opacity: 1;color:rgb(107 114 128 / var(--tw-text-opacity))}@media (min-width: 1024px){.type-caption-2{font-size:.875rem;line-height:1.25rem}}.type-overline{font-size:.75rem;line-height:1rem;font-weight:500;text-transform:uppercase;line-height:1.5;letter-spacing:.05em;--tw-text-opacity: 1;color:rgb(31 41 55 / var(--tw-text-opacity))}@media (min-width: 768px){.type-overline{font-size:.875rem;line-height:1.25rem}}@media (min-width: 1024px){.type-overline{font-size:.875rem;line-height:1.25rem}}.type-display b,.type-headline-2 b{font-weight:600}.type-headline-4 b{font-weight:700}.type-body-1 b,.type-body-2 b,.type-body-3 b{font-weight:600}.type-subtitle-1 b{font-weight:700}.type-subtitle-2 b,.type-caption-2 b{font-weight:600}.type-overline b{font-weight:700}.btn,button{display:flex;align-items:center}.btn>:not([hidden])~:not([hidden]),button>:not([hidden])~:not([hidden]){--tw-space-x-reverse: 0;margin-right:calc(.5rem * var(--tw-space-x-reverse));margin-left:calc(.5rem * calc(1 - var(--tw-space-x-reverse)))}.btn,button{border-radius:9999px;--tw-ring-opacity: 1;--tw-ring-color: rgb(255 92 0 / var(--tw-ring-opacity));padding:.5rem 1rem}.btn:focus,button:focus{outline:2px solid transparent;outline-offset:2px;--tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow, 0 0 #0000)}.btn,button{cursor:pointer;background-position:center;transition:background .3s}.btn-tertiary.active,.btn-tertiary:active{--tw-bg-opacity: 1;background-color:rgb(249 250 251 / var(--tw-bg-opacity));--tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow, 0 0 #0000);--tw-ring-opacity: 1;--tw-ring-color: rgb(17 24 39 / var(--tw-ring-opacity))}button .icon{display:inline-block;height:1.25rem;width:1.25rem}.btn-xs .icon{display:inline-block;height:1rem;width:1rem}.btn-xl .icon{display:inline-block;height:1.5rem;width:1.5rem}*:not(pre)>code{border-radius:.375rem;border-width:1px;--tw-border-opacity: 1;border-color:rgb(209 213 219 / var(--tw-border-opacity));--tw-bg-opacity: 1;background-color:rgb(248 248 248 / var(--tw-bg-opacity));padding:1px 3px;font-size:.875rem;line-height:1.25rem;font-weight:400;--tw-text-opacity: 1;color:rgb(17 24 39 / var(--tw-text-opacity))}.icon-sm{display:inline-block;height:1rem;width:1rem}.icon-md{display:inline-block;height:1.25rem;width:1.25rem}.icon-lg{display:inline-block;height:1.5rem;width:1.5rem}.icon-2xl{display:inline-block;height:2rem;width:2rem}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border-width:0}.static{position:static}.fixed{position:fixed}.absolute{position:absolute}.relative{position:relative}.sticky{position:sticky}.inset-0{inset:0}.inset-x-0{left:0;right:0}.inset-y-0{top:0;bottom:0}.left-4{left:1rem}.right-6{right:1.5rem}.bottom-6{bottom:1.5rem}.z-10{z-index:10}.m-0{margin:0}.mx-auto{margin-left:auto;margin-right:auto}.my-4{margin-top:1rem;margin-bottom:1rem}.my-6{margin-top:1.5rem;margin-bottom:1.5rem}.my-0{margin-top:0;margin-bottom:0}.my-5{margin-top:1.25rem;margin-bottom:1.25rem}.my-32{margin-top:8rem;margin-bottom:8rem}.ml-7{margin-left:1.75rem}.mt-16{margin-top:4rem}.mb-8{margin-bottom:2rem}.mt-\[10vh\]{margin-top:10vh}.mt-1{margin-top:.25rem}.mt-2{margin-top:.5rem}.ml-2{margin-left:.5rem}.mr-6{margin-right:1.5rem}.mb-2{margin-bottom:.5rem}.mt-4{margin-top:1rem}.mt-8{margin-top:2rem}.mt-10{margin-top:2.5rem}.mb-4{margin-bottom:1rem}.ml-3{margin-left:.75rem}.mt-6{margin-top:1.5rem}.mt-auto{margin-top:auto}.mb-12{margin-bottom:3rem}.mt-12{margin-top:3rem}.mb-9{margin-bottom:2.25rem}.block{display:block}.flex{display:flex}.inline-flex{display:inline-flex}.grid{display:grid}.hidden{display:none}.aspect-square{aspect-ratio:1 / 1}.h-screen{height:100vh}.h-0{height:0px}.h-16{height:4rem}.h-10{height:2.5rem}.h-6{height:1.5rem}.h-full{height:100%}.h-32{height:8rem}.h-3{height:.75rem}.h-48{height:12rem}.h-24{height:6rem}.max-h-96{max-height:24rem}.max-h-\[65vh\]{max-height:65vh}.max-h-72{max-height:18rem}.min-h-full{min-height:100%}.w-screen{width:100vw}.w-full{width:100%}.w-16{width:4rem}.w-6{width:1.5rem}.w-min{width:-moz-min-content;width:min-content}.w-56{width:14rem}.min-w-0{min-width:0px}.max-w-3xl{max-width:48rem}.max-w-none{max-width:none}.max-w-2xl{max-width:42rem}.max-w-\[720px\]{max-width:720px}.flex-1{flex:1 1 0%}.flex-auto{flex:1 1 auto}.flex-none{flex:none}.flex-shrink-0{flex-shrink:0}.flex-grow{flex-grow:1}.-translate-y-full{--tw-translate-y: -100%;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.translate-y-0{--tw-translate-y: 0px;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.-rotate-90{--tw-rotate: -90deg;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.rotate-90{--tw-rotate: 90deg;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.scale-95{--tw-scale-x: .95;--tw-scale-y: .95;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.scale-100{--tw-scale-x: 1;--tw-scale-y: 1;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.transform{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.cursor-default{cursor:default}.cursor-pointer{cursor:pointer}.select-none{-webkit-user-select:none;-moz-user-select:none;user-select:none}.scroll-mt-32{scroll-margin-top:8rem}.scroll-mt-20{scroll-margin-top:5rem}.list-none{list-style-type:none}.grid-cols-1{grid-template-columns:repeat(1,minmax(0,1fr))}.flex-row{flex-direction:row}.flex-col{flex-direction:column}.flex-wrap{flex-wrap:wrap}.items-start{align-items:flex-start}.items-center{align-items:center}.justify-end{justify-content:flex-end}.justify-center{justify-content:center}.justify-between{justify-content:space-between}.gap-1{gap:.25rem}.gap-4{gap:1rem}.gap-x-3{-moz-column-gap:.75rem;column-gap:.75rem}.gap-x-16{-moz-column-gap:4rem;column-gap:4rem}.gap-y-10{row-gap:2.5rem}.space-x-1>:not([hidden])~:not([hidden]){--tw-space-x-reverse: 0;margin-right:calc(.25rem * var(--tw-space-x-reverse));margin-left:calc(.25rem * calc(1 - var(--tw-space-x-reverse)))}.space-x-3>:not([hidden])~:not([hidden]){--tw-space-x-reverse: 0;margin-right:calc(.75rem * var(--tw-space-x-reverse));margin-left:calc(.75rem * calc(1 - var(--tw-space-x-reverse)))}.space-x-2>:not([hidden])~:not([hidden]){--tw-space-x-reverse: 0;margin-right:calc(.5rem * var(--tw-space-x-reverse));margin-left:calc(.5rem * calc(1 - var(--tw-space-x-reverse)))}.space-x-4>:not([hidden])~:not([hidden]){--tw-space-x-reverse: 0;margin-right:calc(1rem * var(--tw-space-x-reverse));margin-left:calc(1rem * calc(1 - var(--tw-space-x-reverse)))}.space-y-2>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(.5rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.5rem * var(--tw-space-y-reverse))}.space-y-6>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(1.5rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(1.5rem * var(--tw-space-y-reverse))}.space-y-1>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(.25rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.25rem * var(--tw-space-y-reverse))}.space-x-6>:not([hidden])~:not([hidden]){--tw-space-x-reverse: 0;margin-right:calc(1.5rem * var(--tw-space-x-reverse));margin-left:calc(1.5rem * calc(1 - var(--tw-space-x-reverse)))}.space-y-4>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(1rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(1rem * var(--tw-space-y-reverse))}.space-x-5>:not([hidden])~:not([hidden]){--tw-space-x-reverse: 0;margin-right:calc(1.25rem * var(--tw-space-x-reverse));margin-left:calc(1.25rem * calc(1 - var(--tw-space-x-reverse)))}.space-x-0>:not([hidden])~:not([hidden]){--tw-space-x-reverse: 0;margin-right:calc(0px * var(--tw-space-x-reverse));margin-left:calc(0px * calc(1 - var(--tw-space-x-reverse)))}.divide-y>:not([hidden])~:not([hidden]){--tw-divide-y-reverse: 0;border-top-width:calc(1px * calc(1 - var(--tw-divide-y-reverse)));border-bottom-width:calc(1px * var(--tw-divide-y-reverse))}.divide-gray-200>:not([hidden])~:not([hidden]){--tw-divide-opacity: 1;border-color:rgb(229 231 235 / var(--tw-divide-opacity))}.divide-zinc-900\/5>:not([hidden])~:not([hidden]){border-color:#18181b0d}.overflow-auto{overflow:auto}.overflow-hidden{overflow:hidden}.overflow-y-auto{overflow-y:auto}.truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.rounded-lg{border-radius:.5rem}.rounded-none{border-radius:0}.rounded-full{border-radius:9999px}.rounded-md{border-radius:.375rem}.rounded-sm{border-radius:.125rem}.rounded-xl{border-radius:.75rem}.rounded-t-3xl{border-top-left-radius:1.5rem;border-top-right-radius:1.5rem}.rounded-b-none{border-bottom-right-radius:0;border-bottom-left-radius:0}.rounded-b-3xl{border-bottom-right-radius:1.5rem;border-bottom-left-radius:1.5rem}.rounded-t{border-top-left-radius:.25rem;border-top-right-radius:.25rem}.border{border-width:1px}.border-r{border-right-width:1px}.border-b{border-bottom-width:1px}.border-t{border-top-width:1px}.border-l-2{border-left-width:2px}.border-none{border-style:none}.border-gray-300{--tw-border-opacity: 1;border-color:rgb(209 213 219 / var(--tw-border-opacity))}.border-gray-200{--tw-border-opacity: 1;border-color:rgb(229 231 235 / var(--tw-border-opacity))}.border-outline-opaque{--tw-border-opacity: 1;border-color:rgb(209 213 219 / var(--tw-border-opacity))}.border-green-400{--tw-border-opacity: 1;border-color:rgb(74 222 128 / var(--tw-border-opacity))}.border-cyan-400{--tw-border-opacity: 1;border-color:rgb(34 211 238 / var(--tw-border-opacity))}.border-orange-400{--tw-border-opacity: 1;border-color:rgb(251 146 60 / var(--tw-border-opacity))}.border-red-400{--tw-border-opacity: 1;border-color:rgb(248 113 113 / var(--tw-border-opacity))}.border-green-500{--tw-border-opacity: 1;border-color:rgb(34 197 94 / var(--tw-border-opacity))}.border-cyan-500{--tw-border-opacity: 1;border-color:rgb(6 182 212 / var(--tw-border-opacity))}.border-orange-500{--tw-border-opacity: 1;border-color:rgb(249 115 22 / var(--tw-border-opacity))}.border-red-500{--tw-border-opacity: 1;border-color:rgb(239 68 68 / var(--tw-border-opacity))}.border-outline-inverse-opaque{--tw-border-opacity: 1;border-color:rgb(107 114 128 / var(--tw-border-opacity))}.border-brand-accent{--tw-border-opacity: 1;border-color:rgb(255 92 0 / var(--tw-border-opacity))}.border-interactive-tertiary{--tw-border-opacity: 1;border-color:rgb(249 250 251 / var(--tw-border-opacity))}.bg-surface-primary,.bg-white{--tw-bg-opacity: 1;background-color:rgb(255 255 255 / var(--tw-bg-opacity))}.bg-brand-primary{--tw-bg-opacity: 1;background-color:rgb(17 24 39 / var(--tw-bg-opacity))}.bg-gray-100{--tw-bg-opacity: 1;background-color:rgb(243 244 246 / var(--tw-bg-opacity))}.bg-gray-50{--tw-bg-opacity: 1;background-color:rgb(249 250 251 / var(--tw-bg-opacity))}.bg-surface-accent-light{--tw-bg-opacity: 1;background-color:rgb(250 244 231 / var(--tw-bg-opacity))}.bg-surface-accent{--tw-bg-opacity: 1;background-color:rgb(198 68 14 / var(--tw-bg-opacity))}.bg-green-100{--tw-bg-opacity: 1;background-color:rgb(220 252 231 / var(--tw-bg-opacity))}.bg-cyan-100{--tw-bg-opacity: 1;background-color:rgb(207 250 254 / var(--tw-bg-opacity))}.bg-orange-100{--tw-bg-opacity: 1;background-color:rgb(255 237 213 / var(--tw-bg-opacity))}.bg-rose-100{--tw-bg-opacity: 1;background-color:rgb(255 228 230 / var(--tw-bg-opacity))}.bg-surface-tertiary{--tw-bg-opacity: 1;background-color:rgb(243 244 246 / var(--tw-bg-opacity))}.bg-red-800{--tw-bg-opacity: 1;background-color:rgb(153 27 27 / var(--tw-bg-opacity))}.bg-green-800{--tw-bg-opacity: 1;background-color:rgb(22 101 52 / var(--tw-bg-opacity))}.bg-cyan-800{--tw-bg-opacity: 1;background-color:rgb(21 94 117 / var(--tw-bg-opacity))}.bg-orange-800{--tw-bg-opacity: 1;background-color:rgb(154 52 18 / var(--tw-bg-opacity))}.bg-rose-800{--tw-bg-opacity: 1;background-color:rgb(159 18 57 / var(--tw-bg-opacity))}.bg-surface-inverse-secondary{--tw-bg-opacity: 1;background-color:rgb(54 54 54 / var(--tw-bg-opacity))}.bg-surface-inverse-tertiary{--tw-bg-opacity: 1;background-color:rgb(79 79 79 / var(--tw-bg-opacity))}.bg-surface-inverse-primary{--tw-bg-opacity: 1;background-color:rgb(35 35 35 / var(--tw-bg-opacity))}.bg-interactive-secondary{--tw-bg-opacity: 1;background-color:rgb(75 85 99 / var(--tw-bg-opacity))}.bg-interactive-secondary-active{--tw-bg-opacity: 1;background-color:rgb(17 24 39 / var(--tw-bg-opacity))}.bg-black{--tw-bg-opacity: 1;background-color:rgb(0 0 0 / var(--tw-bg-opacity))}.bg-surface-secondary{--tw-bg-opacity: 1;background-color:rgb(248 248 248 / var(--tw-bg-opacity))}.bg-\[\#174B33\]{--tw-bg-opacity: 1;background-color:rgb(23 75 51 / var(--tw-bg-opacity))}.bg-interactive-primary{--tw-bg-opacity: 1;background-color:rgb(17 24 39 / var(--tw-bg-opacity))}.bg-interactive-quaternary{--tw-bg-opacity: 1;background-color:rgb(255 92 0 / var(--tw-bg-opacity))}.bg-interactive-tertiary{--tw-bg-opacity: 1;background-color:rgb(249 250 251 / var(--tw-bg-opacity))}.bg-opacity-50{--tw-bg-opacity: .5}.bg-\[url\(\'\/countryside\.jpg\'\)\]{background-image:url(/countryside.jpg)}.bg-cover{background-size:cover}.bg-bottom{background-position:bottom}.object-cover{-o-object-fit:cover;object-fit:cover}.p-4{padding:1rem}.p-0{padding:0}.p-5{padding:1.25rem}.p-6{padding:1.5rem}.px-3{padding-left:.75rem;padding-right:.75rem}.py-2{padding-top:.5rem;padding-bottom:.5rem}.py-0{padding-top:0;padding-bottom:0}.px-0{padding-left:0;padding-right:0}.py-5{padding-top:1.25rem;padding-bottom:1.25rem}.px-2{padding-left:.5rem;padding-right:.5rem}.py-0\.5{padding-top:.125rem;padding-bottom:.125rem}.px-4{padding-left:1rem;padding-right:1rem}.py-1{padding-top:.25rem;padding-bottom:.25rem}.py-4{padding-top:1rem;padding-bottom:1rem}.px-8{padding-left:2rem;padding-right:2rem}.py-16{padding-top:4rem;padding-bottom:4rem}.px-6{padding-left:1.5rem;padding-right:1.5rem}.py-8{padding-top:2rem;padding-bottom:2rem}.py-3{padding-top:.75rem;padding-bottom:.75rem}.px-16{padding-left:4rem;padding-right:4rem}.pt-16{padding-top:4rem}.pt-5{padding-top:1.25rem}.pb-4{padding-bottom:1rem}.pr-6{padding-right:1.5rem}.pt-4{padding-top:1rem}.pb-16{padding-bottom:4rem}.pl-12{padding-left:3rem}.pr-1{padding-right:.25rem}.pl-16{padding-left:4rem}.pl-4{padding-left:1rem}.pt-8{padding-top:2rem}.text-left{text-align:left}.text-center{text-align:center}.align-text-top{vertical-align:text-top}.font-sans{font-family:Inter,Sans-Serif}.text-sm{font-size:.875rem;line-height:1.25rem}.text-xs{font-size:.75rem;line-height:1rem}.text-\[10px\]{font-size:10px}.text-3xl{font-size:1.875rem;line-height:2.25rem}.font-medium{font-weight:500}.font-normal{font-weight:400}.font-semibold{font-weight:600}.font-bold{font-weight:700}.capitalize{text-transform:capitalize}.leading-5{line-height:1.25rem}.leading-none{line-height:1}.tracking-tight{letter-spacing:-.025em}.text-content-on-color{--tw-text-opacity: 1;color:rgb(255 255 255 / var(--tw-text-opacity))}.text-gray-600{--tw-text-opacity: 1;color:rgb(75 85 99 / var(--tw-text-opacity))}.text-gray-500{--tw-text-opacity: 1;color:rgb(107 114 128 / var(--tw-text-opacity))}.text-gray-700{--tw-text-opacity: 1;color:rgb(55 65 81 / var(--tw-text-opacity))}.text-content-tertiary{--tw-text-opacity: 1;color:rgb(107 114 128 / var(--tw-text-opacity))}.text-content-accent{--tw-text-opacity: 1;color:rgb(198 68 14 / var(--tw-text-opacity))}.text-content-primary{--tw-text-opacity: 1;color:rgb(17 24 39 / var(--tw-text-opacity))}.text-content-inverse-primary{--tw-text-opacity: 1;color:rgb(255 255 255 / var(--tw-text-opacity))}.text-gray-900{--tw-text-opacity: 1;color:rgb(17 24 39 / var(--tw-text-opacity))}.text-content-secondary{--tw-text-opacity: 1;color:rgb(31 41 55 / var(--tw-text-opacity))}.text-zinc-400{--tw-text-opacity: 1;color:rgb(161 161 170 / var(--tw-text-opacity))}.text-content-inverse-secondary{--tw-text-opacity: 1;color:rgb(229 231 235 / var(--tw-text-opacity))}.text-brand-accent{--tw-text-opacity: 1;color:rgb(255 92 0 / var(--tw-text-opacity))}.text-interactive-tertiary{--tw-text-opacity: 1;color:rgb(249 250 251 / var(--tw-text-opacity))}.text-interactive-secondary{--tw-text-opacity: 1;color:rgb(75 85 99 / var(--tw-text-opacity))}.text-black{--tw-text-opacity: 1;color:rgb(0 0 0 / var(--tw-text-opacity))}.text-gray-400{--tw-text-opacity: 1;color:rgb(156 163 175 / var(--tw-text-opacity))}.text-gray-300{--tw-text-opacity: 1;color:rgb(209 213 219 / var(--tw-text-opacity))}.text-slate-900{--tw-text-opacity: 1;color:rgb(15 23 42 / var(--tw-text-opacity))}.underline{text-decoration-line:underline}.no-underline{text-decoration-line:none}.opacity-0{opacity:0}.opacity-100{opacity:1}.bg-blend-overlay{background-blend-mode:overlay}.shadow{--tw-shadow: 0 1px 3px 0 rgb(0 0 0 / .1), 0 1px 2px -1px rgb(0 0 0 / .1);--tw-shadow-colored: 0 1px 3px 0 var(--tw-shadow-color), 0 1px 2px -1px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.shadow-md{--tw-shadow: 0 4px 6px -1px rgb(0 0 0 / .1), 0 2px 4px -2px rgb(0 0 0 / .1);--tw-shadow-colored: 0 4px 6px -1px var(--tw-shadow-color), 0 2px 4px -2px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.shadow-sm{--tw-shadow: 0 1px 2px 0 rgb(0 0 0 / .05);--tw-shadow-colored: 0 1px 2px 0 var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.shadow-lg{--tw-shadow: 0 10px 15px -3px rgb(0 0 0 / .1), 0 4px 6px -4px rgb(0 0 0 / .1);--tw-shadow-colored: 0 10px 15px -3px var(--tw-shadow-color), 0 4px 6px -4px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.shadow-xl{--tw-shadow: 0 20px 25px -5px rgb(0 0 0 / .1), 0 8px 10px -6px rgb(0 0 0 / .1);--tw-shadow-colored: 0 20px 25px -5px var(--tw-shadow-color), 0 8px 10px -6px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.outline-none{outline:2px solid transparent;outline-offset:2px}.ring-0{--tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(0px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow, 0 0 #0000)}.ring-1{--tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow, 0 0 #0000)}.ring-focus-ring{--tw-ring-opacity: 1;--tw-ring-color: rgb(255 92 0 / var(--tw-ring-opacity))}.ring-black{--tw-ring-opacity: 1;--tw-ring-color: rgb(0 0 0 / var(--tw-ring-opacity))}.ring-opacity-5{--tw-ring-opacity: .05}.ring-offset-8{--tw-ring-offset-width: 8px}.filter{filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.backdrop-blur-sm{--tw-backdrop-blur: blur(4px);-webkit-backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia);backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia)}.transition{transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,-webkit-backdrop-filter;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter,-webkit-backdrop-filter;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-transform{transition-property:transform;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-colors{transition-property:color,background-color,border-color,text-decoration-color,fill,stroke;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.delay-150{transition-delay:.15s}.delay-200{transition-delay:.2s}.duration-150{transition-duration:.15s}.duration-300{transition-duration:.3s}.duration-200{transition-duration:.2s}.duration-100{transition-duration:.1s}.duration-75{transition-duration:75ms}.ease-in-out{transition-timing-function:cubic-bezier(.4,0,.2,1)}.ease-out{transition-timing-function:cubic-bezier(0,0,.2,1)}.ease-in{transition-timing-function:cubic-bezier(.4,0,1,1)}.p-squish-2{padding:.5rem 1rem}.desktop-gutters{margin-left:auto;margin-right:auto;width:100%;max-width:72rem}.first\:pt-0:first-child{padding-top:0}.last\:pb-0:last-child{padding-bottom:0}.hover\:scale-105:hover{--tw-scale-x: 1.05;--tw-scale-y: 1.05;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.hover\:border-content-primary:hover{--tw-border-opacity: 1;border-color:rgb(17 24 39 / var(--tw-border-opacity))}.hover\:bg-gray-200:hover{--tw-bg-opacity: 1;background-color:rgb(229 231 235 / var(--tw-bg-opacity))}.hover\:bg-interactive-secondary-hover:hover{--tw-bg-opacity: 1;background-color:rgb(107 114 128 / var(--tw-bg-opacity))}.hover\:bg-interactive-secondary:hover{--tw-bg-opacity: 1;background-color:rgb(75 85 99 / var(--tw-bg-opacity))}.hover\:bg-interactive-quaternary-hover:hover{--tw-bg-opacity: 1;background-color:rgb(241 165 31 / var(--tw-bg-opacity))}.hover\:text-content-primary:hover{--tw-text-opacity: 1;color:rgb(17 24 39 / var(--tw-text-opacity))}.hover\:text-interactive-tertiary-active:hover{--tw-text-opacity: 1;color:rgb(250 235 201 / var(--tw-text-opacity))}.hover\:text-interactive-secondary-hover:hover{--tw-text-opacity: 1;color:rgb(107 114 128 / var(--tw-text-opacity))}.hover\:no-underline:hover{text-decoration-line:none}.focus\:outline-none:focus{outline:2px solid transparent;outline-offset:2px}.focus\:ring-2:focus{--tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow, 0 0 #0000)}.focus\:ring-0:focus{--tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(0px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow, 0 0 #0000)}.focus\:ring-1:focus{--tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow, 0 0 #0000)}.focus\:ring-inset:focus{--tw-ring-inset: inset}.active\:scale-100:active{--tw-scale-x: 1;--tw-scale-y: 1;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.active\:bg-interactive-quaternary-active:active{--tw-bg-opacity: 1;background-color:rgb(17 24 39 / var(--tw-bg-opacity))}.active\:transition-none:active{transition-property:none}.group:hover .group-hover\:bg-interactive-secondary-hover{--tw-bg-opacity: 1;background-color:rgb(107 114 128 / var(--tw-bg-opacity))}.group:hover .group-hover\:text-content-secondary{--tw-text-opacity: 1;color:rgb(31 41 55 / var(--tw-text-opacity))}.group:hover .group-hover\:text-gray-400{--tw-text-opacity: 1;color:rgb(156 163 175 / var(--tw-text-opacity))}.prose-headings\:font-normal :is(:where(h1,h2,h3,h4,h5,h6,th):not(:where([class~=not-prose] *))){font-weight:400}.prose-h2\:mt-8 :is(:where(h2):not(:where([class~=not-prose] *))){margin-top:2rem}.prose-h2\:scroll-mt-16 :is(:where(h2):not(:where([class~=not-prose] *))){scroll-margin-top:4rem}.prose-h2\:border-t :is(:where(h2):not(:where([class~=not-prose] *))){border-top-width:1px}.prose-h2\:pt-8 :is(:where(h2):not(:where([class~=not-prose] *))){padding-top:2rem}.prose-h3\:scroll-mt-20 :is(:where(h3):not(:where([class~=not-prose] *))){scroll-margin-top:5rem}.prose-h4\:scroll-mt-20 :is(:where(h4):not(:where([class~=not-prose] *))){scroll-margin-top:5rem}.prose-a\:text-content-primary :is(:where(a):not(:where([class~=not-prose] *))){--tw-text-opacity: 1;color:rgb(17 24 39 / var(--tw-text-opacity))}.prose-a\:no-underline :is(:where(a):not(:where([class~=not-prose] *))){text-decoration-line:none}.hover\:prose-a\:no-underline :is(:where(a):not(:where([class~=not-prose] *))):hover{text-decoration-line:none}.prose-img\:mx-auto :is(:where(img):not(:where([class~=not-prose] *))){margin-left:auto;margin-right:auto}.prose-img\:mb-8 :is(:where(img):not(:where([class~=not-prose] *))){margin-bottom:2rem}.prose-img\:object-contain :is(:where(img):not(:where([class~=not-prose] *))){-o-object-fit:contain;object-fit:contain}.prose-lead\:text-slate-500 :is(:where([class~=lead]):not(:where([class~=not-prose] *))){--tw-text-opacity: 1;color:rgb(100 116 139 / var(--tw-text-opacity))}@media (min-width: 640px){.sm\:px-8{padding-left:2rem;padding-right:2rem}}@media (min-width: 768px){.md\:fixed{position:fixed}.md\:order-2{order:2}.md\:order-1{order:1}.md\:col-span-2{grid-column:span 2 / span 2}.md\:mr-4{margin-right:1rem}.md\:mt-0{margin-top:0}.md\:flex{display:flex}.md\:hidden{display:none}.md\:h-4{height:1rem}.md\:h-full{height:100%}.md\:w-80{width:20rem}.md\:w-4{width:1rem}.md\:w-64{width:16rem}.md\:grid-cols-1{grid-template-columns:repeat(1,minmax(0,1fr))}.md\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.md\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.md\:grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}.md\:flex-row{flex-direction:row}.md\:flex-col{flex-direction:column}.md\:items-center{align-items:center}.md\:justify-between{justify-content:space-between}.md\:gap-6{gap:1.5rem}.md\:gap-12{gap:3rem}.md\:space-y-0>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(0px * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(0px * var(--tw-space-y-reverse))}.md\:rounded-lg{border-radius:.5rem}.md\:border{border-width:1px}.md\:px-4{padding-left:1rem;padding-right:1rem}.md\:pr-0{padding-right:0}.md\:pl-64{padding-left:16rem}.md\:shadow-sm{--tw-shadow: 0 1px 2px 0 rgb(0 0 0 / .05);--tw-shadow-colored: 0 1px 2px 0 var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}}@media (min-width: 1024px){.lg\:max-w-none{max-width:none}.lg\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.lg\:gap-6{gap:1.5rem}.lg\:px-8{padding-left:2rem;padding-right:2rem}}@media (min-width: 1280px){.xl\:sticky{position:sticky}.xl\:top-24{top:6rem}.xl\:top-\[4\.5rem\]{top:4.5rem}.xl\:block{display:block}.xl\:h-\[calc\(100vh-10rem\)\]{height:calc(100vh - 10rem)}.xl\:w-80{width:20rem}.xl\:max-w-none{max-width:none}.xl\:flex-none{flex:none}.xl\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.xl\:py-16{padding-top:4rem;padding-bottom:4rem}.xl\:pl-80{padding-left:20rem}.xl\:pt-16{padding-top:4rem}.xl\:pr-6{padding-right:1.5rem}}.\[\&\>\:first-child\]\:mt-0>:first-child{margin-top:0}.\[\&\>\:last-child\]\:mb-0>:last-child{margin-bottom:0} +*,:before,:after{box-sizing:border-box;border-width:0;border-style:solid;border-color:#e5e7eb}:before,:after{--tw-content: ""}html{line-height:1.5;-webkit-text-size-adjust:100%;-moz-tab-size:4;-o-tab-size:4;tab-size:4;font-family:Inter,Sans-Serif}body{margin:0;line-height:inherit}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;font-size:1em}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}button,input,optgroup,select,textarea{font-family:inherit;font-size:100%;font-weight:inherit;line-height:inherit;color:inherit;margin:0;padding:0}button,select{text-transform:none}button,[type=button],[type=reset],[type=submit]{-webkit-appearance:button;background-color:transparent;background-image:none}:-moz-focusring{outline:auto}:-moz-ui-invalid{box-shadow:none}progress{vertical-align:baseline}::-webkit-inner-spin-button,::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}summary{display:list-item}blockquote,dl,dd,h1,h2,h3,h4,h5,h6,hr,figure,p,pre{margin:0}fieldset{margin:0;padding:0}legend{padding:0}ol,ul,menu{list-style:none;margin:0;padding:0}textarea{resize:vertical}input::-moz-placeholder,textarea::-moz-placeholder{opacity:1;color:#9ca3af}input::placeholder,textarea::placeholder{opacity:1;color:#9ca3af}button,[role=button]{cursor:pointer}:disabled{cursor:default}img,svg,video,canvas,audio,iframe,embed,object{display:block;vertical-align:middle}img,video{max-width:100%;height:auto}*,:before,:after{--tw-border-spacing-x: 0;--tw-border-spacing-y: 0;--tw-translate-x: 0;--tw-translate-y: 0;--tw-rotate: 0;--tw-skew-x: 0;--tw-skew-y: 0;--tw-scale-x: 1;--tw-scale-y: 1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness: proximity;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width: 0px;--tw-ring-offset-color: #fff;--tw-ring-color: rgb(59 130 246 / .5);--tw-ring-offset-shadow: 0 0 #0000;--tw-ring-shadow: 0 0 #0000;--tw-shadow: 0 0 #0000;--tw-shadow-colored: 0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: }::backdrop{--tw-border-spacing-x: 0;--tw-border-spacing-y: 0;--tw-translate-x: 0;--tw-translate-y: 0;--tw-rotate: 0;--tw-skew-x: 0;--tw-skew-y: 0;--tw-scale-x: 1;--tw-scale-y: 1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness: proximity;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width: 0px;--tw-ring-offset-color: #fff;--tw-ring-color: rgb(59 130 246 / .5);--tw-ring-offset-shadow: 0 0 #0000;--tw-ring-shadow: 0 0 #0000;--tw-shadow: 0 0 #0000;--tw-shadow-colored: 0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: }.prose{color:var(--tw-prose-body);max-width:65ch}.prose :where([class~=lead]):not(:where([class~=not-prose] *)){color:var(--tw-prose-lead);font-size:1.25em;line-height:1.6;margin-top:1.2em;margin-bottom:1.2em}.prose :where(a):not(:where([class~=not-prose] *)){color:var(--tw-prose-links);text-decoration:underline;font-weight:500}.prose :where(strong):not(:where([class~=not-prose] *)){color:var(--tw-prose-bold);font-weight:600}.prose :where(a strong):not(:where([class~=not-prose] *)){color:inherit}.prose :where(blockquote strong):not(:where([class~=not-prose] *)){color:inherit}.prose :where(thead th strong):not(:where([class~=not-prose] *)){color:inherit}.prose :where(ol):not(:where([class~=not-prose] *)){list-style-type:decimal;margin-top:1.25em;margin-bottom:1.25em;padding-left:1.625em}.prose :where(ol[type=A]):not(:where([class~=not-prose] *)){list-style-type:upper-alpha}.prose :where(ol[type=a]):not(:where([class~=not-prose] *)){list-style-type:lower-alpha}.prose :where(ol[type=A s]):not(:where([class~=not-prose] *)){list-style-type:upper-alpha}.prose :where(ol[type=a s]):not(:where([class~=not-prose] *)){list-style-type:lower-alpha}.prose :where(ol[type=I]):not(:where([class~=not-prose] *)){list-style-type:upper-roman}.prose :where(ol[type=i]):not(:where([class~=not-prose] *)){list-style-type:lower-roman}.prose :where(ol[type=I s]):not(:where([class~=not-prose] *)){list-style-type:upper-roman}.prose :where(ol[type=i s]):not(:where([class~=not-prose] *)){list-style-type:lower-roman}.prose :where(ol[type="1"]):not(:where([class~=not-prose] *)){list-style-type:decimal}.prose :where(ul):not(:where([class~=not-prose] *)){list-style-type:disc;margin-top:1.25em;margin-bottom:1.25em;padding-left:1.625em}.prose :where(ol>li):not(:where([class~=not-prose] *))::marker{font-weight:400;color:var(--tw-prose-counters)}.prose :where(ul>li):not(:where([class~=not-prose] *))::marker{color:var(--tw-prose-bullets)}.prose :where(hr):not(:where([class~=not-prose] *)){border-color:var(--tw-prose-hr);border-top-width:1px;margin-top:3em;margin-bottom:3em}.prose :where(blockquote):not(:where([class~=not-prose] *)){font-weight:500;font-style:italic;color:var(--tw-prose-quotes);border-left-width:.25rem;border-left-color:var(--tw-prose-quote-borders);quotes:"“""”""‘""’";margin-top:1.6em;margin-bottom:1.6em;padding-left:1em}.prose :where(blockquote p:first-of-type):not(:where([class~=not-prose] *)):before{content:open-quote}.prose :where(blockquote p:last-of-type):not(:where([class~=not-prose] *)):after{content:close-quote}.prose :where(h1):not(:where([class~=not-prose] *)){color:var(--tw-prose-headings);font-weight:800;font-size:2.25em;margin-top:0;margin-bottom:.8888889em;line-height:1.1111111}.prose :where(h1 strong):not(:where([class~=not-prose] *)){font-weight:900;color:inherit}.prose :where(h2):not(:where([class~=not-prose] *)){color:var(--tw-prose-headings);font-weight:700;font-size:1.5em;margin-top:2em;margin-bottom:1em;line-height:1.3333333}.prose :where(h2 strong):not(:where([class~=not-prose] *)){font-weight:800;color:inherit}.prose :where(h3):not(:where([class~=not-prose] *)){color:var(--tw-prose-headings);font-weight:600;font-size:1.25em;margin-top:1.6em;margin-bottom:.6em;line-height:1.6}.prose :where(h3 strong):not(:where([class~=not-prose] *)){font-weight:700;color:inherit}.prose :where(h4):not(:where([class~=not-prose] *)){color:var(--tw-prose-headings);font-weight:600;margin-top:1.5em;margin-bottom:.5em;line-height:1.5}.prose :where(h4 strong):not(:where([class~=not-prose] *)){font-weight:700;color:inherit}.prose :where(img):not(:where([class~=not-prose] *)){margin-top:2em;margin-bottom:2em}.prose :where(figure>*):not(:where([class~=not-prose] *)){margin-top:0;margin-bottom:0}.prose :where(figcaption):not(:where([class~=not-prose] *)){color:var(--tw-prose-captions);font-size:.875em;line-height:1.4285714;margin-top:.8571429em}.prose :where(a code):not(:where([class~=not-prose] *)){color:inherit}.prose :where(h1 code):not(:where([class~=not-prose] *)){color:inherit}.prose :where(h2 code):not(:where([class~=not-prose] *)){color:inherit;font-size:.875em}.prose :where(h3 code):not(:where([class~=not-prose] *)){color:inherit;font-size:.9em}.prose :where(h4 code):not(:where([class~=not-prose] *)){color:inherit}.prose :where(blockquote code):not(:where([class~=not-prose] *)){color:inherit}.prose :where(thead th code):not(:where([class~=not-prose] *)){color:inherit}.prose :where(pre code):not(:where([class~=not-prose] *)):before{content:none}.prose :where(pre code):not(:where([class~=not-prose] *)):after{content:none}.prose :where(table):not(:where([class~=not-prose] *)){width:100%;table-layout:auto;text-align:left;margin-top:2em;margin-bottom:2em;font-size:.875em;line-height:1.7142857}.prose :where(thead):not(:where([class~=not-prose] *)){border-bottom-width:1px;border-bottom-color:var(--tw-prose-th-borders)}.prose :where(thead th):not(:where([class~=not-prose] *)){color:var(--tw-prose-headings);font-weight:600;vertical-align:bottom;padding-right:.5714286em;padding-bottom:.5714286em;padding-left:.5714286em}.prose :where(tbody tr):not(:where([class~=not-prose] *)){border-bottom-width:1px;border-bottom-color:var(--tw-prose-td-borders)}.prose :where(tbody tr:last-child):not(:where([class~=not-prose] *)){border-bottom-width:0}.prose :where(tbody td):not(:where([class~=not-prose] *)){vertical-align:baseline}.prose :where(tfoot):not(:where([class~=not-prose] *)){border-top-width:1px;border-top-color:var(--tw-prose-th-borders)}.prose :where(tfoot td):not(:where([class~=not-prose] *)){vertical-align:top}.prose{--tw-prose-body: #374151;--tw-prose-headings: #111827;--tw-prose-lead: #4b5563;--tw-prose-links: #111827;--tw-prose-bold: #111827;--tw-prose-counters: #6b7280;--tw-prose-bullets: #d1d5db;--tw-prose-hr: #e5e7eb;--tw-prose-quotes: #111827;--tw-prose-quote-borders: #e5e7eb;--tw-prose-captions: #6b7280;--tw-prose-code: #111827;--tw-prose-pre-code: #e5e7eb;--tw-prose-pre-bg: #1f2937;--tw-prose-th-borders: #d1d5db;--tw-prose-td-borders: #e5e7eb;--tw-prose-invert-body: #d1d5db;--tw-prose-invert-headings: #fff;--tw-prose-invert-lead: #9ca3af;--tw-prose-invert-links: #fff;--tw-prose-invert-bold: #fff;--tw-prose-invert-counters: #9ca3af;--tw-prose-invert-bullets: #4b5563;--tw-prose-invert-hr: #374151;--tw-prose-invert-quotes: #f3f4f6;--tw-prose-invert-quote-borders: #374151;--tw-prose-invert-captions: #9ca3af;--tw-prose-invert-code: #fff;--tw-prose-invert-pre-code: #d1d5db;--tw-prose-invert-pre-bg: rgb(0 0 0 / 50%);--tw-prose-invert-th-borders: #4b5563;--tw-prose-invert-td-borders: #374151;font-size:1rem;line-height:1.75}.prose :where(p):not(:where([class~=not-prose] *)){margin-top:1.25em;margin-bottom:1.25em}.prose :where(video):not(:where([class~=not-prose] *)){margin-top:2em;margin-bottom:2em}.prose :where(figure):not(:where([class~=not-prose] *)){margin-top:2em;margin-bottom:2em}.prose :where(li):not(:where([class~=not-prose] *)){margin-top:.5em;margin-bottom:.5em}.prose :where(ol>li):not(:where([class~=not-prose] *)){padding-left:.375em}.prose :where(ul>li):not(:where([class~=not-prose] *)){padding-left:.375em}.prose :where(.prose>ul>li p):not(:where([class~=not-prose] *)){margin-top:.75em;margin-bottom:.75em}.prose :where(.prose>ul>li>*:first-child):not(:where([class~=not-prose] *)){margin-top:1.25em}.prose :where(.prose>ul>li>*:last-child):not(:where([class~=not-prose] *)){margin-bottom:1.25em}.prose :where(.prose>ol>li>*:first-child):not(:where([class~=not-prose] *)){margin-top:1.25em}.prose :where(.prose>ol>li>*:last-child):not(:where([class~=not-prose] *)){margin-bottom:1.25em}.prose :where(ul ul,ul ol,ol ul,ol ol):not(:where([class~=not-prose] *)){margin-top:.75em;margin-bottom:.75em}.prose :where(hr+*):not(:where([class~=not-prose] *)){margin-top:0}.prose :where(h2+*):not(:where([class~=not-prose] *)){margin-top:0}.prose :where(h3+*):not(:where([class~=not-prose] *)){margin-top:0}.prose :where(h4+*):not(:where([class~=not-prose] *)){margin-top:0}.prose :where(thead th:first-child):not(:where([class~=not-prose] *)){padding-left:0}.prose :where(thead th:last-child):not(:where([class~=not-prose] *)){padding-right:0}.prose :where(tbody td,tfoot td):not(:where([class~=not-prose] *)){padding:.5714286em}.prose :where(tbody td:first-child,tfoot td:first-child):not(:where([class~=not-prose] *)){padding-left:0}.prose :where(tbody td:last-child,tfoot td:last-child):not(:where([class~=not-prose] *)){padding-right:0}.prose :where(.prose>:first-child):not(:where([class~=not-prose] *)){margin-top:0}.prose :where(.prose>:last-child):not(:where([class~=not-prose] *)){margin-bottom:0}.prose-slate{--tw-prose-body: #334155;--tw-prose-headings: #0f172a;--tw-prose-lead: #475569;--tw-prose-links: #0f172a;--tw-prose-bold: #0f172a;--tw-prose-counters: #64748b;--tw-prose-bullets: #cbd5e1;--tw-prose-hr: #e2e8f0;--tw-prose-quotes: #0f172a;--tw-prose-quote-borders: #e2e8f0;--tw-prose-captions: #64748b;--tw-prose-code: #0f172a;--tw-prose-pre-code: #e2e8f0;--tw-prose-pre-bg: #1e293b;--tw-prose-th-borders: #cbd5e1;--tw-prose-td-borders: #e2e8f0;--tw-prose-invert-body: #cbd5e1;--tw-prose-invert-headings: #fff;--tw-prose-invert-lead: #94a3b8;--tw-prose-invert-links: #fff;--tw-prose-invert-bold: #fff;--tw-prose-invert-counters: #94a3b8;--tw-prose-invert-bullets: #475569;--tw-prose-invert-hr: #334155;--tw-prose-invert-quotes: #f1f5f9;--tw-prose-invert-quote-borders: #334155;--tw-prose-invert-captions: #94a3b8;--tw-prose-invert-code: #fff;--tw-prose-invert-pre-code: #cbd5e1;--tw-prose-invert-pre-bg: rgb(0 0 0 / 50%);--tw-prose-invert-th-borders: #475569;--tw-prose-invert-td-borders: #334155}.type-display{font-size:2.25rem;line-height:2.5rem;font-weight:300;line-height:1.25;letter-spacing:-.05em;--tw-text-opacity: 1;color:rgb(17 24 39 / var(--tw-text-opacity))}@media (min-width: 768px){.type-display{font-size:3rem;line-height:1}}@media (min-width: 1024px){.type-display{font-size:3.75rem;line-height:1}}.type-headline-2{font-size:1.5rem;line-height:2rem;font-weight:400;line-height:1.25;letter-spacing:-.025em;--tw-text-opacity: 1;color:rgb(17 24 39 / var(--tw-text-opacity))}@media (min-width: 768px){.type-headline-2{font-size:1.875rem;line-height:2.25rem}}@media (min-width: 1024px){.type-headline-2{font-size:2.25rem;line-height:2.5rem}}.type-headline-4{font-size:1.125rem;line-height:1.75rem;font-weight:500;line-height:1.375;letter-spacing:-.025em;--tw-text-opacity: 1;color:rgb(17 24 39 / var(--tw-text-opacity))}@media (min-width: 768px){.type-headline-4{font-size:1.25rem;line-height:1.75rem}}@media (min-width: 1024px){.type-headline-4{font-size:1.5rem;line-height:2rem}}.type-body-1{font-size:1.125rem;line-height:1.75rem;font-weight:400;line-height:1.5;letter-spacing:0em;--tw-text-opacity: 1;color:rgb(31 41 55 / var(--tw-text-opacity))}@media (min-width: 1024px){.type-body-1{font-size:1.25rem;line-height:1.75rem}}.type-body-2{font-size:1rem;line-height:1.5rem;font-weight:400;line-height:1.5;letter-spacing:0em;--tw-text-opacity: 1;color:rgb(107 114 128 / var(--tw-text-opacity))}@media (min-width: 1024px){.type-body-2{font-size:1.125rem;line-height:1.75rem}}.type-body-3{font-size:.875rem;line-height:1.25rem;font-weight:400;line-height:1.5;letter-spacing:0em;--tw-text-opacity: 1;color:rgb(31 41 55 / var(--tw-text-opacity))}@media (min-width: 1024px){.type-body-3{font-size:1rem;line-height:1.5rem}}.type-subtitle-1{font-size:1rem;line-height:1.5rem;font-weight:500;line-height:1.375;letter-spacing:0em;--tw-text-opacity: 1;color:rgb(31 41 55 / var(--tw-text-opacity))}@media (min-width: 1024px){.type-subtitle-1{font-size:1.25rem;line-height:1.75rem}}.type-subtitle-2{font-size:.875rem;line-height:1.25rem;font-weight:500;line-height:1.375;letter-spacing:0em;--tw-text-opacity: 1;color:rgb(31 41 55 / var(--tw-text-opacity))}@media (min-width: 1024px){.type-subtitle-2{font-size:1.125rem;line-height:1.75rem}}.type-caption-2{font-size:.75rem;line-height:1rem;font-weight:400;line-height:1.5;letter-spacing:0em;--tw-text-opacity: 1;color:rgb(107 114 128 / var(--tw-text-opacity))}@media (min-width: 1024px){.type-caption-2{font-size:.875rem;line-height:1.25rem}}.type-overline{font-size:.75rem;line-height:1rem;font-weight:500;text-transform:uppercase;line-height:1.5;letter-spacing:.05em;--tw-text-opacity: 1;color:rgb(31 41 55 / var(--tw-text-opacity))}@media (min-width: 768px){.type-overline{font-size:.875rem;line-height:1.25rem}}@media (min-width: 1024px){.type-overline{font-size:.875rem;line-height:1.25rem}}.type-display b,.type-headline-2 b{font-weight:600}.type-headline-4 b{font-weight:700}.type-body-1 b,.type-body-2 b,.type-body-3 b{font-weight:600}.type-subtitle-1 b{font-weight:700}.type-subtitle-2 b,.type-caption-2 b{font-weight:600}.type-overline b{font-weight:700}.btn,button{display:flex;align-items:center}.btn>:not([hidden])~:not([hidden]),button>:not([hidden])~:not([hidden]){--tw-space-x-reverse: 0;margin-right:calc(.5rem * var(--tw-space-x-reverse));margin-left:calc(.5rem * calc(1 - var(--tw-space-x-reverse)))}.btn,button{border-radius:9999px;--tw-ring-opacity: 1;--tw-ring-color: rgb(255 92 0 / var(--tw-ring-opacity));padding:.5rem 1rem}.btn:focus,button:focus{outline:2px solid transparent;outline-offset:2px;--tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow, 0 0 #0000)}.btn,button{cursor:pointer;background-position:center;transition:background .3s}.btn-tertiary.active,.btn-tertiary:active{--tw-bg-opacity: 1;background-color:rgb(249 250 251 / var(--tw-bg-opacity));--tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow, 0 0 #0000);--tw-ring-opacity: 1;--tw-ring-color: rgb(17 24 39 / var(--tw-ring-opacity))}button .icon{display:inline-block;height:1.25rem;width:1.25rem}.btn-xs .icon{display:inline-block;height:1rem;width:1rem}.btn-xl .icon{display:inline-block;height:1.5rem;width:1.5rem}*:not(pre)>code{border-radius:.375rem;border-width:1px;--tw-border-opacity: 1;border-color:rgb(209 213 219 / var(--tw-border-opacity));--tw-bg-opacity: 1;background-color:rgb(248 248 248 / var(--tw-bg-opacity));padding:1px 3px;font-size:.875rem;line-height:1.25rem;font-weight:400;--tw-text-opacity: 1;color:rgb(17 24 39 / var(--tw-text-opacity))}.icon-sm{display:inline-block;height:1rem;width:1rem}.icon-md{display:inline-block;height:1.25rem;width:1.25rem}.icon-lg{display:inline-block;height:1.5rem;width:1.5rem}.icon-2xl{display:inline-block;height:2rem;width:2rem}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border-width:0}.static{position:static}.fixed{position:fixed}.absolute{position:absolute}.relative{position:relative}.sticky{position:sticky}.inset-0{inset:0}.inset-x-0{left:0;right:0}.inset-y-0{top:0;bottom:0}.left-4{left:1rem}.right-6{right:1.5rem}.bottom-6{bottom:1.5rem}.z-10{z-index:10}.m-0{margin:0}.mx-auto{margin-left:auto;margin-right:auto}.my-4{margin-top:1rem;margin-bottom:1rem}.my-6{margin-top:1.5rem;margin-bottom:1.5rem}.my-0{margin-top:0;margin-bottom:0}.my-5{margin-top:1.25rem;margin-bottom:1.25rem}.my-32{margin-top:8rem;margin-bottom:8rem}.ml-7{margin-left:1.75rem}.mt-16{margin-top:4rem}.mb-8{margin-bottom:2rem}.mt-\[10vh\]{margin-top:10vh}.mt-1{margin-top:.25rem}.mt-2{margin-top:.5rem}.ml-2{margin-left:.5rem}.mr-6{margin-right:1.5rem}.mb-2{margin-bottom:.5rem}.mt-4{margin-top:1rem}.mt-8{margin-top:2rem}.mt-10{margin-top:2.5rem}.mb-4{margin-bottom:1rem}.ml-3{margin-left:.75rem}.mt-6{margin-top:1.5rem}.mt-auto{margin-top:auto}.mb-12{margin-bottom:3rem}.mt-12{margin-top:3rem}.mb-9{margin-bottom:2.25rem}.block{display:block}.flex{display:flex}.inline-flex{display:inline-flex}.grid{display:grid}.hidden{display:none}.aspect-square{aspect-ratio:1 / 1}.h-screen{height:100vh}.h-0{height:0px}.h-16{height:4rem}.h-10{height:2.5rem}.h-6{height:1.5rem}.h-full{height:100%}.h-32{height:8rem}.h-3{height:.75rem}.h-48{height:12rem}.h-24{height:6rem}.max-h-96{max-height:24rem}.max-h-\[65vh\]{max-height:65vh}.max-h-72{max-height:18rem}.min-h-full{min-height:100%}.w-screen{width:100vw}.w-full{width:100%}.w-16{width:4rem}.w-6{width:1.5rem}.w-min{width:-moz-min-content;width:min-content}.w-56{width:14rem}.min-w-0{min-width:0px}.max-w-3xl{max-width:48rem}.max-w-none{max-width:none}.max-w-2xl{max-width:42rem}.max-w-\[720px\]{max-width:720px}.flex-1{flex:1 1 0%}.flex-auto{flex:1 1 auto}.flex-none{flex:none}.flex-shrink-0{flex-shrink:0}.flex-grow{flex-grow:1}.-translate-y-full{--tw-translate-y: -100%;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.translate-y-0{--tw-translate-y: 0px;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.-rotate-90{--tw-rotate: -90deg;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.rotate-90{--tw-rotate: 90deg;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.scale-95{--tw-scale-x: .95;--tw-scale-y: .95;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.scale-100{--tw-scale-x: 1;--tw-scale-y: 1;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.transform{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.cursor-default{cursor:default}.cursor-pointer{cursor:pointer}.select-none{-webkit-user-select:none;-moz-user-select:none;user-select:none}.scroll-mt-32{scroll-margin-top:8rem}.scroll-mt-20{scroll-margin-top:5rem}.list-none{list-style-type:none}.grid-cols-1{grid-template-columns:repeat(1,minmax(0,1fr))}.flex-row{flex-direction:row}.flex-col{flex-direction:column}.flex-wrap{flex-wrap:wrap}.items-start{align-items:flex-start}.items-center{align-items:center}.justify-end{justify-content:flex-end}.justify-center{justify-content:center}.justify-between{justify-content:space-between}.gap-1{gap:.25rem}.gap-4{gap:1rem}.gap-x-3{-moz-column-gap:.75rem;column-gap:.75rem}.gap-x-16{-moz-column-gap:4rem;column-gap:4rem}.gap-y-10{row-gap:2.5rem}.space-x-1>:not([hidden])~:not([hidden]){--tw-space-x-reverse: 0;margin-right:calc(.25rem * var(--tw-space-x-reverse));margin-left:calc(.25rem * calc(1 - var(--tw-space-x-reverse)))}.space-x-3>:not([hidden])~:not([hidden]){--tw-space-x-reverse: 0;margin-right:calc(.75rem * var(--tw-space-x-reverse));margin-left:calc(.75rem * calc(1 - var(--tw-space-x-reverse)))}.space-x-2>:not([hidden])~:not([hidden]){--tw-space-x-reverse: 0;margin-right:calc(.5rem * var(--tw-space-x-reverse));margin-left:calc(.5rem * calc(1 - var(--tw-space-x-reverse)))}.space-x-4>:not([hidden])~:not([hidden]){--tw-space-x-reverse: 0;margin-right:calc(1rem * var(--tw-space-x-reverse));margin-left:calc(1rem * calc(1 - var(--tw-space-x-reverse)))}.space-y-2>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(.5rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.5rem * var(--tw-space-y-reverse))}.space-y-6>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(1.5rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(1.5rem * var(--tw-space-y-reverse))}.space-y-1>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(.25rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.25rem * var(--tw-space-y-reverse))}.space-x-6>:not([hidden])~:not([hidden]){--tw-space-x-reverse: 0;margin-right:calc(1.5rem * var(--tw-space-x-reverse));margin-left:calc(1.5rem * calc(1 - var(--tw-space-x-reverse)))}.space-y-4>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(1rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(1rem * var(--tw-space-y-reverse))}.space-x-5>:not([hidden])~:not([hidden]){--tw-space-x-reverse: 0;margin-right:calc(1.25rem * var(--tw-space-x-reverse));margin-left:calc(1.25rem * calc(1 - var(--tw-space-x-reverse)))}.space-x-0>:not([hidden])~:not([hidden]){--tw-space-x-reverse: 0;margin-right:calc(0px * var(--tw-space-x-reverse));margin-left:calc(0px * calc(1 - var(--tw-space-x-reverse)))}.divide-y>:not([hidden])~:not([hidden]){--tw-divide-y-reverse: 0;border-top-width:calc(1px * calc(1 - var(--tw-divide-y-reverse)));border-bottom-width:calc(1px * var(--tw-divide-y-reverse))}.divide-gray-200>:not([hidden])~:not([hidden]){--tw-divide-opacity: 1;border-color:rgb(229 231 235 / var(--tw-divide-opacity))}.divide-zinc-900\/5>:not([hidden])~:not([hidden]){border-color:#18181b0d}.self-center{align-self:center}.overflow-auto{overflow:auto}.overflow-hidden{overflow:hidden}.overflow-y-auto{overflow-y:auto}.truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.rounded-lg{border-radius:.5rem}.rounded-none{border-radius:0}.rounded-full{border-radius:9999px}.rounded-md{border-radius:.375rem}.rounded-sm{border-radius:.125rem}.rounded-xl{border-radius:.75rem}.rounded-t-3xl{border-top-left-radius:1.5rem;border-top-right-radius:1.5rem}.rounded-b-none{border-bottom-right-radius:0;border-bottom-left-radius:0}.rounded-b-3xl{border-bottom-right-radius:1.5rem;border-bottom-left-radius:1.5rem}.rounded-t{border-top-left-radius:.25rem;border-top-right-radius:.25rem}.border{border-width:1px}.border-r{border-right-width:1px}.border-b{border-bottom-width:1px}.border-t{border-top-width:1px}.border-l-2{border-left-width:2px}.border-none{border-style:none}.border-gray-300{--tw-border-opacity: 1;border-color:rgb(209 213 219 / var(--tw-border-opacity))}.border-gray-200{--tw-border-opacity: 1;border-color:rgb(229 231 235 / var(--tw-border-opacity))}.border-outline-opaque{--tw-border-opacity: 1;border-color:rgb(209 213 219 / var(--tw-border-opacity))}.border-green-400{--tw-border-opacity: 1;border-color:rgb(74 222 128 / var(--tw-border-opacity))}.border-cyan-400{--tw-border-opacity: 1;border-color:rgb(34 211 238 / var(--tw-border-opacity))}.border-orange-400{--tw-border-opacity: 1;border-color:rgb(251 146 60 / var(--tw-border-opacity))}.border-red-400{--tw-border-opacity: 1;border-color:rgb(248 113 113 / var(--tw-border-opacity))}.border-green-500{--tw-border-opacity: 1;border-color:rgb(34 197 94 / var(--tw-border-opacity))}.border-cyan-500{--tw-border-opacity: 1;border-color:rgb(6 182 212 / var(--tw-border-opacity))}.border-orange-500{--tw-border-opacity: 1;border-color:rgb(249 115 22 / var(--tw-border-opacity))}.border-red-500{--tw-border-opacity: 1;border-color:rgb(239 68 68 / var(--tw-border-opacity))}.border-outline-inverse-opaque{--tw-border-opacity: 1;border-color:rgb(107 114 128 / var(--tw-border-opacity))}.border-brand-accent{--tw-border-opacity: 1;border-color:rgb(255 92 0 / var(--tw-border-opacity))}.border-interactive-tertiary{--tw-border-opacity: 1;border-color:rgb(249 250 251 / var(--tw-border-opacity))}.bg-surface-primary,.bg-white{--tw-bg-opacity: 1;background-color:rgb(255 255 255 / var(--tw-bg-opacity))}.bg-brand-primary{--tw-bg-opacity: 1;background-color:rgb(17 24 39 / var(--tw-bg-opacity))}.bg-gray-100{--tw-bg-opacity: 1;background-color:rgb(243 244 246 / var(--tw-bg-opacity))}.bg-gray-50{--tw-bg-opacity: 1;background-color:rgb(249 250 251 / var(--tw-bg-opacity))}.bg-surface-accent-light{--tw-bg-opacity: 1;background-color:rgb(250 244 231 / var(--tw-bg-opacity))}.bg-surface-accent{--tw-bg-opacity: 1;background-color:rgb(198 68 14 / var(--tw-bg-opacity))}.bg-green-100{--tw-bg-opacity: 1;background-color:rgb(220 252 231 / var(--tw-bg-opacity))}.bg-cyan-100{--tw-bg-opacity: 1;background-color:rgb(207 250 254 / var(--tw-bg-opacity))}.bg-orange-100{--tw-bg-opacity: 1;background-color:rgb(255 237 213 / var(--tw-bg-opacity))}.bg-rose-100{--tw-bg-opacity: 1;background-color:rgb(255 228 230 / var(--tw-bg-opacity))}.bg-surface-tertiary{--tw-bg-opacity: 1;background-color:rgb(243 244 246 / var(--tw-bg-opacity))}.bg-red-800{--tw-bg-opacity: 1;background-color:rgb(153 27 27 / var(--tw-bg-opacity))}.bg-green-800{--tw-bg-opacity: 1;background-color:rgb(22 101 52 / var(--tw-bg-opacity))}.bg-cyan-800{--tw-bg-opacity: 1;background-color:rgb(21 94 117 / var(--tw-bg-opacity))}.bg-orange-800{--tw-bg-opacity: 1;background-color:rgb(154 52 18 / var(--tw-bg-opacity))}.bg-rose-800{--tw-bg-opacity: 1;background-color:rgb(159 18 57 / var(--tw-bg-opacity))}.bg-surface-inverse-secondary{--tw-bg-opacity: 1;background-color:rgb(54 54 54 / var(--tw-bg-opacity))}.bg-surface-inverse-tertiary{--tw-bg-opacity: 1;background-color:rgb(79 79 79 / var(--tw-bg-opacity))}.bg-surface-inverse-primary{--tw-bg-opacity: 1;background-color:rgb(35 35 35 / var(--tw-bg-opacity))}.bg-interactive-secondary{--tw-bg-opacity: 1;background-color:rgb(75 85 99 / var(--tw-bg-opacity))}.bg-interactive-secondary-active{--tw-bg-opacity: 1;background-color:rgb(17 24 39 / var(--tw-bg-opacity))}.bg-black{--tw-bg-opacity: 1;background-color:rgb(0 0 0 / var(--tw-bg-opacity))}.bg-surface-secondary{--tw-bg-opacity: 1;background-color:rgb(248 248 248 / var(--tw-bg-opacity))}.bg-\[\#174B33\]{--tw-bg-opacity: 1;background-color:rgb(23 75 51 / var(--tw-bg-opacity))}.bg-interactive-primary{--tw-bg-opacity: 1;background-color:rgb(17 24 39 / var(--tw-bg-opacity))}.bg-interactive-quaternary{--tw-bg-opacity: 1;background-color:rgb(255 92 0 / var(--tw-bg-opacity))}.bg-interactive-tertiary{--tw-bg-opacity: 1;background-color:rgb(249 250 251 / var(--tw-bg-opacity))}.bg-opacity-50{--tw-bg-opacity: .5}.bg-\[url\(\'\/countryside\.jpg\'\)\]{background-image:url(/countryside.jpg)}.bg-cover{background-size:cover}.bg-bottom{background-position:bottom}.object-cover{-o-object-fit:cover;object-fit:cover}.p-4{padding:1rem}.p-0{padding:0}.p-5{padding:1.25rem}.p-6{padding:1.5rem}.px-3{padding-left:.75rem;padding-right:.75rem}.py-2{padding-top:.5rem;padding-bottom:.5rem}.py-0{padding-top:0;padding-bottom:0}.px-0{padding-left:0;padding-right:0}.py-5{padding-top:1.25rem;padding-bottom:1.25rem}.px-2{padding-left:.5rem;padding-right:.5rem}.py-0\.5{padding-top:.125rem;padding-bottom:.125rem}.px-4{padding-left:1rem;padding-right:1rem}.py-1{padding-top:.25rem;padding-bottom:.25rem}.py-4{padding-top:1rem;padding-bottom:1rem}.px-8{padding-left:2rem;padding-right:2rem}.py-16{padding-top:4rem;padding-bottom:4rem}.px-6{padding-left:1.5rem;padding-right:1.5rem}.py-8{padding-top:2rem;padding-bottom:2rem}.py-3{padding-top:.75rem;padding-bottom:.75rem}.px-16{padding-left:4rem;padding-right:4rem}.pt-16{padding-top:4rem}.pt-5{padding-top:1.25rem}.pb-4{padding-bottom:1rem}.pr-6{padding-right:1.5rem}.pt-4{padding-top:1rem}.pb-16{padding-bottom:4rem}.pl-12{padding-left:3rem}.pr-1{padding-right:.25rem}.pl-16{padding-left:4rem}.pl-4{padding-left:1rem}.pt-8{padding-top:2rem}.text-left{text-align:left}.text-center{text-align:center}.font-sans{font-family:Inter,Sans-Serif}.text-sm{font-size:.875rem;line-height:1.25rem}.text-xs{font-size:.75rem;line-height:1rem}.text-\[10px\]{font-size:10px}.text-3xl{font-size:1.875rem;line-height:2.25rem}.font-medium{font-weight:500}.font-normal{font-weight:400}.font-semibold{font-weight:600}.font-bold{font-weight:700}.capitalize{text-transform:capitalize}.leading-5{line-height:1.25rem}.leading-none{line-height:1}.tracking-tight{letter-spacing:-.025em}.text-content-on-color{--tw-text-opacity: 1;color:rgb(255 255 255 / var(--tw-text-opacity))}.text-gray-600{--tw-text-opacity: 1;color:rgb(75 85 99 / var(--tw-text-opacity))}.text-gray-500{--tw-text-opacity: 1;color:rgb(107 114 128 / var(--tw-text-opacity))}.text-gray-700{--tw-text-opacity: 1;color:rgb(55 65 81 / var(--tw-text-opacity))}.text-content-tertiary{--tw-text-opacity: 1;color:rgb(107 114 128 / var(--tw-text-opacity))}.text-content-accent{--tw-text-opacity: 1;color:rgb(198 68 14 / var(--tw-text-opacity))}.text-content-primary{--tw-text-opacity: 1;color:rgb(17 24 39 / var(--tw-text-opacity))}.text-content-inverse-primary{--tw-text-opacity: 1;color:rgb(255 255 255 / var(--tw-text-opacity))}.text-gray-900{--tw-text-opacity: 1;color:rgb(17 24 39 / var(--tw-text-opacity))}.text-content-secondary{--tw-text-opacity: 1;color:rgb(31 41 55 / var(--tw-text-opacity))}.text-zinc-400{--tw-text-opacity: 1;color:rgb(161 161 170 / var(--tw-text-opacity))}.text-content-inverse-secondary{--tw-text-opacity: 1;color:rgb(229 231 235 / var(--tw-text-opacity))}.text-brand-accent{--tw-text-opacity: 1;color:rgb(255 92 0 / var(--tw-text-opacity))}.text-interactive-tertiary{--tw-text-opacity: 1;color:rgb(249 250 251 / var(--tw-text-opacity))}.text-interactive-secondary{--tw-text-opacity: 1;color:rgb(75 85 99 / var(--tw-text-opacity))}.text-black{--tw-text-opacity: 1;color:rgb(0 0 0 / var(--tw-text-opacity))}.text-gray-400{--tw-text-opacity: 1;color:rgb(156 163 175 / var(--tw-text-opacity))}.text-gray-300{--tw-text-opacity: 1;color:rgb(209 213 219 / var(--tw-text-opacity))}.text-slate-900{--tw-text-opacity: 1;color:rgb(15 23 42 / var(--tw-text-opacity))}.underline{text-decoration-line:underline}.no-underline{text-decoration-line:none}.opacity-0{opacity:0}.opacity-100{opacity:1}.bg-blend-overlay{background-blend-mode:overlay}.shadow{--tw-shadow: 0 1px 3px 0 rgb(0 0 0 / .1), 0 1px 2px -1px rgb(0 0 0 / .1);--tw-shadow-colored: 0 1px 3px 0 var(--tw-shadow-color), 0 1px 2px -1px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.shadow-md{--tw-shadow: 0 4px 6px -1px rgb(0 0 0 / .1), 0 2px 4px -2px rgb(0 0 0 / .1);--tw-shadow-colored: 0 4px 6px -1px var(--tw-shadow-color), 0 2px 4px -2px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.shadow-sm{--tw-shadow: 0 1px 2px 0 rgb(0 0 0 / .05);--tw-shadow-colored: 0 1px 2px 0 var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.shadow-lg{--tw-shadow: 0 10px 15px -3px rgb(0 0 0 / .1), 0 4px 6px -4px rgb(0 0 0 / .1);--tw-shadow-colored: 0 10px 15px -3px var(--tw-shadow-color), 0 4px 6px -4px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.shadow-xl{--tw-shadow: 0 20px 25px -5px rgb(0 0 0 / .1), 0 8px 10px -6px rgb(0 0 0 / .1);--tw-shadow-colored: 0 20px 25px -5px var(--tw-shadow-color), 0 8px 10px -6px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.outline-none{outline:2px solid transparent;outline-offset:2px}.ring-0{--tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(0px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow, 0 0 #0000)}.ring-1{--tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow, 0 0 #0000)}.ring-focus-ring{--tw-ring-opacity: 1;--tw-ring-color: rgb(255 92 0 / var(--tw-ring-opacity))}.ring-black{--tw-ring-opacity: 1;--tw-ring-color: rgb(0 0 0 / var(--tw-ring-opacity))}.ring-opacity-5{--tw-ring-opacity: .05}.ring-offset-8{--tw-ring-offset-width: 8px}.filter{filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.backdrop-blur-sm{--tw-backdrop-blur: blur(4px);-webkit-backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia);backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia)}.transition{transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,-webkit-backdrop-filter;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter,-webkit-backdrop-filter;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-transform{transition-property:transform;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-colors{transition-property:color,background-color,border-color,text-decoration-color,fill,stroke;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.delay-150{transition-delay:.15s}.delay-200{transition-delay:.2s}.duration-150{transition-duration:.15s}.duration-300{transition-duration:.3s}.duration-200{transition-duration:.2s}.duration-100{transition-duration:.1s}.duration-75{transition-duration:75ms}.ease-in-out{transition-timing-function:cubic-bezier(.4,0,.2,1)}.ease-out{transition-timing-function:cubic-bezier(0,0,.2,1)}.ease-in{transition-timing-function:cubic-bezier(.4,0,1,1)}.p-squish-2{padding:.5rem 1rem}.desktop-gutters{margin-left:auto;margin-right:auto;width:100%;max-width:72rem}.first\:pt-0:first-child{padding-top:0}.last\:pb-0:last-child{padding-bottom:0}.hover\:scale-105:hover{--tw-scale-x: 1.05;--tw-scale-y: 1.05;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.hover\:border-content-primary:hover{--tw-border-opacity: 1;border-color:rgb(17 24 39 / var(--tw-border-opacity))}.hover\:bg-gray-200:hover{--tw-bg-opacity: 1;background-color:rgb(229 231 235 / var(--tw-bg-opacity))}.hover\:bg-interactive-secondary-hover:hover{--tw-bg-opacity: 1;background-color:rgb(107 114 128 / var(--tw-bg-opacity))}.hover\:bg-interactive-secondary:hover{--tw-bg-opacity: 1;background-color:rgb(75 85 99 / var(--tw-bg-opacity))}.hover\:bg-interactive-quaternary-hover:hover{--tw-bg-opacity: 1;background-color:rgb(241 165 31 / var(--tw-bg-opacity))}.hover\:text-content-primary:hover{--tw-text-opacity: 1;color:rgb(17 24 39 / var(--tw-text-opacity))}.hover\:text-interactive-tertiary-active:hover{--tw-text-opacity: 1;color:rgb(250 235 201 / var(--tw-text-opacity))}.hover\:text-interactive-secondary-hover:hover{--tw-text-opacity: 1;color:rgb(107 114 128 / var(--tw-text-opacity))}.hover\:no-underline:hover{text-decoration-line:none}.focus\:outline-none:focus{outline:2px solid transparent;outline-offset:2px}.focus\:ring-2:focus{--tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow, 0 0 #0000)}.focus\:ring-0:focus{--tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(0px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow, 0 0 #0000)}.focus\:ring-1:focus{--tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow, 0 0 #0000)}.focus\:ring-inset:focus{--tw-ring-inset: inset}.active\:scale-100:active{--tw-scale-x: 1;--tw-scale-y: 1;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.active\:bg-interactive-quaternary-active:active{--tw-bg-opacity: 1;background-color:rgb(17 24 39 / var(--tw-bg-opacity))}.active\:transition-none:active{transition-property:none}.group:hover .group-hover\:bg-interactive-secondary-hover{--tw-bg-opacity: 1;background-color:rgb(107 114 128 / var(--tw-bg-opacity))}.group:hover .group-hover\:text-content-secondary{--tw-text-opacity: 1;color:rgb(31 41 55 / var(--tw-text-opacity))}.group:hover .group-hover\:text-gray-400{--tw-text-opacity: 1;color:rgb(156 163 175 / var(--tw-text-opacity))}.prose-headings\:font-normal :is(:where(h1,h2,h3,h4,h5,h6,th):not(:where([class~=not-prose] *))){font-weight:400}.prose-h2\:mt-8 :is(:where(h2):not(:where([class~=not-prose] *))){margin-top:2rem}.prose-h2\:scroll-mt-16 :is(:where(h2):not(:where([class~=not-prose] *))){scroll-margin-top:4rem}.prose-h2\:border-t :is(:where(h2):not(:where([class~=not-prose] *))){border-top-width:1px}.prose-h2\:pt-8 :is(:where(h2):not(:where([class~=not-prose] *))){padding-top:2rem}.prose-h3\:scroll-mt-20 :is(:where(h3):not(:where([class~=not-prose] *))){scroll-margin-top:5rem}.prose-h4\:scroll-mt-20 :is(:where(h4):not(:where([class~=not-prose] *))){scroll-margin-top:5rem}.prose-a\:text-content-primary :is(:where(a):not(:where([class~=not-prose] *))){--tw-text-opacity: 1;color:rgb(17 24 39 / var(--tw-text-opacity))}.prose-a\:no-underline :is(:where(a):not(:where([class~=not-prose] *))){text-decoration-line:none}.hover\:prose-a\:no-underline :is(:where(a):not(:where([class~=not-prose] *))):hover{text-decoration-line:none}.prose-img\:mx-auto :is(:where(img):not(:where([class~=not-prose] *))){margin-left:auto;margin-right:auto}.prose-img\:mb-8 :is(:where(img):not(:where([class~=not-prose] *))){margin-bottom:2rem}.prose-img\:object-contain :is(:where(img):not(:where([class~=not-prose] *))){-o-object-fit:contain;object-fit:contain}.prose-lead\:text-slate-500 :is(:where([class~=lead]):not(:where([class~=not-prose] *))){--tw-text-opacity: 1;color:rgb(100 116 139 / var(--tw-text-opacity))}@media (min-width: 640px){.sm\:px-8{padding-left:2rem;padding-right:2rem}}@media (min-width: 768px){.md\:fixed{position:fixed}.md\:order-2{order:2}.md\:order-1{order:1}.md\:col-span-2{grid-column:span 2 / span 2}.md\:mr-4{margin-right:1rem}.md\:mt-0{margin-top:0}.md\:flex{display:flex}.md\:hidden{display:none}.md\:h-4{height:1rem}.md\:h-full{height:100%}.md\:w-80{width:20rem}.md\:w-4{width:1rem}.md\:w-64{width:16rem}.md\:grid-cols-1{grid-template-columns:repeat(1,minmax(0,1fr))}.md\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.md\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.md\:grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}.md\:flex-row{flex-direction:row}.md\:flex-col{flex-direction:column}.md\:items-center{align-items:center}.md\:justify-between{justify-content:space-between}.md\:gap-6{gap:1.5rem}.md\:gap-12{gap:3rem}.md\:space-y-0>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(0px * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(0px * var(--tw-space-y-reverse))}.md\:rounded-lg{border-radius:.5rem}.md\:border{border-width:1px}.md\:px-4{padding-left:1rem;padding-right:1rem}.md\:pr-0{padding-right:0}.md\:pl-64{padding-left:16rem}.md\:shadow-sm{--tw-shadow: 0 1px 2px 0 rgb(0 0 0 / .05);--tw-shadow-colored: 0 1px 2px 0 var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}}@media (min-width: 1024px){.lg\:max-w-none{max-width:none}.lg\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.lg\:gap-6{gap:1.5rem}.lg\:px-8{padding-left:2rem;padding-right:2rem}}@media (min-width: 1280px){.xl\:sticky{position:sticky}.xl\:top-24{top:6rem}.xl\:top-\[4\.5rem\]{top:4.5rem}.xl\:block{display:block}.xl\:h-\[calc\(100vh-10rem\)\]{height:calc(100vh - 10rem)}.xl\:w-80{width:20rem}.xl\:max-w-none{max-width:none}.xl\:flex-none{flex:none}.xl\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.xl\:py-16{padding-top:4rem;padding-bottom:4rem}.xl\:pl-80{padding-left:20rem}.xl\:pt-16{padding-top:4rem}.xl\:pr-6{padding-right:1.5rem}}.\[\&\>\:first-child\]\:mt-0>:first-child{margin-top:0}.\[\&\>\:last-child\]\:mb-0>:last-child{margin-bottom:0} diff --git a/api/account-memberships/index.html b/api/account-memberships/index.html index f1eb2fbbb..1338beb33 100644 --- a/api/account-memberships/index.html +++ b/api/account-memberships/index.html @@ -12,21 +12,21 @@ r.src=t+h._hjSettings.hjid+j+h._hjSettings.hjsv; a.appendChild(r); })(window,document,'https://static.hotjar.com/c/hotjar-','.js?sv='); - +

Account Memberships

An Account Membership represents a user having access to a Centrapay +

Account Memberships

An Account Membership represents a user having access to a Centrapay Account  API . An Account Membership has a role which grants the user access to some or all of the operations and resources within the account.

Account Membership Model

A Member contains extended information about a user’s access to an account.

Attributes

-
  • accountId

    string

    The id of the Account  API  the Membership is scoped to.

  • accountType

    string

    The type of the Account  API  the Membership is scoped to.

  • accountName

    string

    The name of the Account  API  the Membership is scoped to.

  • userId

    string

    The id of the user the Membership belongs to.

  • role

    string

    The role governing Membership permissions.

  • subject

    crn

    User or API key resource name for the membership.

  • createdAt

    timestamp

    When the Membership was created.

  • createdBy

    crn

    Resource that created the member.

  • modifiedAt

    timestamp

    When the Membership was last modified.

  • modifiedBy

    crn

    Resource that last modified the account member.

  • testAccount

    boolean

    A flag which is present if the Account  API  is test.

  • firstName

    string

    First name of the user the membership belongs to.

  • lastName

    string

    Last name of the user the membership belongs to.

  • email

    string

    Email of the user the membership belongs to.

+
  • accountId

    string

    The id of the Account  API  the Membership is scoped to.

  • accountType

    string

    The type of the Account  API  the Membership is scoped to.

  • accountName

    string

    The name of the Account  API  the Membership is scoped to.

  • userId

    string

    The id of the user the Membership belongs to.

  • role

    string

    The role governing Membership permissions.

  • subject

    crn

    User or API key resource name for the membership.

  • createdAt

    timestamp

    When the Membership was created.

  • createdBy

    crn

    Resource that created the member.

  • modifiedAt

    timestamp

    When the Membership was last modified.

  • modifiedBy

    crn

    Resource that last modified the account member.

  • testAccount

    boolean

    A flag which is present if the Account  API  is test.

  • firstName

    string

    First name of the user the membership belongs to.

  • lastName

    string

    Last name of the user the membership belongs to.

  • email

    string

    Email of the user the membership belongs to.


-
POST/api/accounts/{accountId}/members

Add Member experimental

This endpoint allows you to add or update the membership of a user to an account.

Attributes

  • userId

    stringrequired

    The id of the user the Membership belongs to.

  • role

    stringrequired

    The role governing Membership permissions.

Request
POST/api/accounts/{accountId}/members
    curl -X POST https://service.centrapay.com/api/accounts/Jaim1Cu1Q55uooxSens6yk/members \
+
POST/api/accounts/{accountId}/members

Add Member experimental

This endpoint allows you to add or update the membership of a user to an account.

Attributes

  • userId

    stringrequired

    The id of the user the Membership belongs to.

  • role

    stringrequired

    The role governing Membership permissions.

Request
POST/api/accounts/{accountId}/members
    curl -X POST https://service.centrapay.com/api/accounts/Jaim1Cu1Q55uooxSens6yk/members \
   -H "X-Api-Key: $api_key" \
   -H "Content-Type: application/json" \
   -d '{
@@ -49,7 +49,7 @@
 Copy
 

-
GET/api/accounts/{accountId}/members

List members

This endpoint allows you to retrieve the list memberships to an account.

Attributes

No attributes.

Request
GET/api/accounts/{accountId}/members
    curl https://service.centrapay.com/api/accounts/Jaim1Cu1Q55uooxSens6yk/members \
+
GET/api/accounts/{accountId}/members

List members

This endpoint allows you to retrieve the list memberships to an account.

Attributes

No attributes.

Request
GET/api/accounts/{accountId}/members
    curl https://service.centrapay.com/api/accounts/Jaim1Cu1Q55uooxSens6yk/members \
   -H "X-Api-Key: $api_key"
   

-
DELETE/api/accounts/{accountId}/members/{userId}

Revoke Member

This endpoint allows you to revoke a users membership to an account.

Attributes

No attributes.

Errors

  • LAST_OWNER_NOT_REVOKABLE

    403

    The last remaining membership to an account cannot be revoked.

Request
DELETE/api/accounts/{accountId}/members/{userId}
    curl -X DELETE https://service.centrapay.com/api/accounts/Jaim1Cu1Q55uooxSens6yk/members/45dwes-rf4h55-tyf45s-6st4gd \
+
DELETE/api/accounts/{accountId}/members/{userId}

Revoke Member

This endpoint allows you to revoke a users membership to an account.

Attributes

No attributes.

Errors

  • LAST_OWNER_NOT_REVOKABLE

    403

    The last remaining membership to an account cannot be revoked.

Request
DELETE/api/accounts/{accountId}/members/{userId}
    curl -X DELETE https://service.centrapay.com/api/accounts/Jaim1Cu1Q55uooxSens6yk/members/45dwes-rf4h55-tyf45s-6st4gd \
   -H "X-Api-Key: $api_key"
   

-
GET/api/account-memberships

List Account Memberships for Authenticated Subject

This endpoint allows you to retrieve the accounts that the authenticated subject is a member of.

Attributes

No attributes.

Request
GET/api/account-memberships
    curl https://service.centrapay.com/api/account-memberships \
+
GET/api/account-memberships

List Account Memberships for Authenticated Subject

This endpoint allows you to retrieve the accounts that the authenticated subject is a member of.

Attributes

No attributes.

Request
GET/api/account-memberships
    curl https://service.centrapay.com/api/account-memberships \
   -H "X-Api-Key: $api_key"
   

-
GET/api/users/{userId}/account-memberships

List Account Memberships for a User

This endpoint allows you to retrieve the accounts that a user is a member of.

Attributes

No attributes.

Request
GET/api/users/{userId}/account-memberships
    curl https://service.centrapay.com/api/users/1234/account-memberships \
+
GET/api/users/{userId}/account-memberships

List Account Memberships for a User

This endpoint allows you to retrieve the accounts that a user is a member of.

Attributes

No attributes.

Request
GET/api/users/{userId}/account-memberships
    curl https://service.centrapay.com/api/users/1234/account-memberships \
   -H "X-Api-Key: $api_key"
   

Accounts

An Account represents a permission boundary around Centrapay resources. +

Accounts

An Account represents a permission boundary around Centrapay resources. Accounts can have API Keys  API  and Account Memberships  API  which grant access to the resources.

Accounts are classified as either “individual” or “org”. Individual accounts can only have a single member and Centrapay users can only be a member of a single individual account.

Account Model

Attributes

-
  • id

    string

    The unique identifier.

  • type

    string

    Account type, must be either ‘org’ or ‘individual’.

  • name

    string

    The display name of the Account.

  • region

    string

    The region that the Account will operate in.

  • test

    boolean

    A flag which is only present if the Account is for testing.

  • createdAt

    timestamp

    When the Account was created.

  • modifiedAt

    timestamp

    When the Account was updated.

  • createdBy

    crn

    The User or API Key that created the Account.

  • modifiedBy

    crn

    The User or API Key that updated the Account.

  • subscriptions

    array

    A list of Subscriptions on the Account.

+
  • id

    string

    The unique identifier.

  • type

    string

    Account type, must be either ‘org’ or ‘individual’.

  • name

    string

    The display name of the Account.

  • region

    string

    The region that the Account will operate in.

  • test

    boolean

    A flag which is only present if the Account is for testing.

  • createdAt

    timestamp

    When the Account was created.

  • modifiedAt

    timestamp

    When the Account was updated.

  • createdBy

    crn

    The User or API Key that created the Account.

  • modifiedBy

    crn

    The User or API Key that updated the Account.

  • subscriptions

    array

    A list of Subscriptions on the Account.

Subscription Model

Attributes

-
  • name

    string

    The name of the Subscription.

+
  • name

    string

    The name of the Subscription.


-
POST/api/accounts

Create an Account

This endpoint allows you to create an Account.

Attributes

  • name

    stringrequired

    The name of the Account.

  • type

    stringrequired

    Account type, must be either “org” or “individual”.

  • owner

    string

    Id of user to add as member with “account-owner” role.

  • test

    boolean

    A flag indicating if the Account is for testing.

  • region

    string

    The region that the Account will operate in. Required for ‘org’ Accounts, not allowed for ‘individual’ Accounts. Can be “NZ”, “AU”, or “US”.

Request
POST/api/accounts
    curl -X POST https://service.centrapay.com/api/accounts \
+
POST/api/accounts

Create an Account

This endpoint allows you to create an Account.

Attributes

  • name

    stringrequired

    The name of the Account.

  • type

    stringrequired

    Account type, must be either “org” or “individual”.

  • owner

    string

    Id of user to add as member with “account-owner” role.

  • test

    boolean

    A flag indicating if the Account is for testing.

  • region

    string

    The region that the Account will operate in. Required for ‘org’ Accounts, not allowed for ‘individual’ Accounts. Can be “NZ”, “AU”, or “US”.

Request
POST/api/accounts
    curl -X POST https://service.centrapay.com/api/accounts \
   -H "X-Api-Key: $api_key" \
   -H "Content-Type: application/json" \
   -d '{
@@ -55,7 +55,7 @@
 Copy
 

-
GET/api/accounts/{accountId}

Get an Account

This endpoint allows you to retrieve an Account.

Attributes

No attributes.

Request
GET/api/accounts/{accountId}
    curl https://service.centrapay.com/api/accounts/Jaim1Cu1Q55uooxSens6yk \
+
GET/api/accounts/{accountId}

Get an Account

This endpoint allows you to retrieve an Account.

Attributes

No attributes.

Request
GET/api/accounts/{accountId}
    curl https://service.centrapay.com/api/accounts/Jaim1Cu1Q55uooxSens6yk \
   -H "X-Api-Key: $api_key"
   

-
PUT/api/accounts/{accountId}

Update an Account

This endpoint allows you to update an account.

Attributes

  • name

    stringrequired

    The name of the Account.

Request
PUT/api/accounts/{accountId}
    curl -X PUT https://service.centrapay.com/api/accounts/Jaim1Cu1Q55uooxSens6yk \
+
PUT/api/accounts/{accountId}

Update an Account

This endpoint allows you to update an account.

Attributes

  • name

    stringrequired

    The name of the Account.

Request
PUT/api/accounts/{accountId}
    curl -X PUT https://service.centrapay.com/api/accounts/Jaim1Cu1Q55uooxSens6yk \
   -H "X-Api-Key: $api_key" \
   -H "Content-Type: application/json" \
   -d '{
@@ -99,7 +99,7 @@
 Copy
 

-
PUT/api/accounts/{accountId}/subscriptions

Update Subscriptions

This endpoint allows you to update the subscriptions on an account.

Attributes

  • subscriptions

    arrayrequired

    The list of subscriptions to assign to the account.

Errors

  • INVALID_ACCOUNT_ID

    403

    The account does not exist.

  • INVALID_SUBSCRIPTION

    403

    One of the subscriptions in the list is not valid.

Request
PUT/api/accounts/{accountId}/subscriptions
    curl -X PUT https://service.centrapay.com/api/accounts/Jaim1Cu1Q55uooxSens6yk/subscriptions \
+
PUT/api/accounts/{accountId}/subscriptions

Update Subscriptions

This endpoint allows you to update the subscriptions on an account.

Attributes

  • subscriptions

    arrayrequired

    The list of subscriptions to assign to the account.

Errors

  • INVALID_ACCOUNT_ID

    403

    The account does not exist.

  • INVALID_SUBSCRIPTION

    403

    One of the subscriptions in the list is not valid.

Request
PUT/api/accounts/{accountId}/subscriptions
    curl -X PUT https://service.centrapay.com/api/accounts/Jaim1Cu1Q55uooxSens6yk/subscriptions \
   -H "X-Api-Key: $api_key" \
   -H "Content-Type: application/json" \
   -d '{
diff --git a/api/api-keys/index.html b/api/api-keys/index.html
index b31b45b60..04e1b7d94 100644
--- a/api/api-keys/index.html
+++ b/api/api-keys/index.html
@@ -12,18 +12,18 @@
         r.src=t+h._hjSettings.hjid+j+h._hjSettings.hjsv;
         a.appendChild(r);
       })(window,document,'https://static.hotjar.com/c/hotjar-','.js?sv=');
-    
+    
 
 
 
 
 

API Keys

API keys provide enduring access to a single Centrapay Account  API .

+

API Keys

API keys provide enduring access to a single Centrapay Account  API .

API Key Model

Attributes

-
  • accountId

    string

    The id of the Centrapay Account  API  the API Key is scoped to.

  • name

    string

    The alphanumeric name of the API key, must be unique within the account.

  • role

    string

    Supported roles are: “account-owner” and “merchant-terminal”. See Auth Permissions  API  for role details.

  • enabled

    boolean

    Flag indicating the API Key is usable for authentication.

  • createdAt

    timestamp

    When the API Key was created.

  • createdBy

    crn

    The User or API Key that created the API Key.

  • modifiedAt

    timestamp

    When the API Key was modified.

  • modifiedBy

    crn

    The User or API Key that modified the API Key.

  • version

    string

    An API Key version that is incremented when the API Key is updated.

+
  • accountId

    string

    The id of the Centrapay Account  API  the API Key is scoped to.

  • name

    string

    The alphanumeric name of the API key, must be unique within the account.

  • role

    string

    Supported roles are: “account-owner” and “merchant-terminal”. See Auth Permissions  API  for role details.

  • enabled

    boolean

    Flag indicating the API Key is usable for authentication.

  • createdAt

    timestamp

    When the API Key was created.

  • createdBy

    crn

    The User or API Key that created the API Key.

  • modifiedAt

    timestamp

    When the API Key was modified.

  • modifiedBy

    crn

    The User or API Key that modified the API Key.

  • version

    string

    An API Key version that is incremented when the API Key is updated.


-
POST/api/accounts/{accountId}/api-keys

Create an API Key

This endpoint allows you to create an API key.

Attributes

  • name

    stringrequired

    The alphanumeric name of the API key, must be unique within the account.

  • role

    stringrequired

    Supported roles are: “account-owner” and “merchant-terminal”. See Auth Permissions  API  for role details.

Request
POST/api/accounts/{accountId}/api-keys
    curl -X POST https://service.centrapay.com/api/accounts/Jaim1Cu1Q55uooxSens6yk/api-keys \
+
POST/api/accounts/{accountId}/api-keys

Create an API Key

This endpoint allows you to create an API key.

Attributes

  • name

    stringrequired

    The alphanumeric name of the API key, must be unique within the account.

  • role

    stringrequired

    Supported roles are: “account-owner” and “merchant-terminal”. See Auth Permissions  API  for role details.

Request
POST/api/accounts/{accountId}/api-keys
    curl -X POST https://service.centrapay.com/api/accounts/Jaim1Cu1Q55uooxSens6yk/api-keys \
   -H "X-Api-Key: $api_key" \
   -H "Content-Type: application/json" \
   -d '{
@@ -48,7 +48,7 @@
 Copy
 

-
GET/api/accounts/{accountId}/api-keys

List API Keys

This endpoint allows you to list all API Keys for an Account.

Attributes

No attributes.

Request
GET/api/accounts/{accountId}/api-keys
    curl -X GET https://service.centrapay.com/api/accounts/Jaim1Cu1Q55uooxSens6yk/api-keys \
+
GET/api/accounts/{accountId}/api-keys

List API Keys

This endpoint allows you to list all API Keys for an Account.

Attributes

No attributes.

Request
GET/api/accounts/{accountId}/api-keys
    curl -X GET https://service.centrapay.com/api/accounts/Jaim1Cu1Q55uooxSens6yk/api-keys \
   -H "X-Api-Key: $api_key"
   

-
PUT/api/accounts/{accountId}/api-keys/{apiKeyName}

Update an API Key

This endpoint allows you to enable or disable an API key.

Attributes

  • enabled

    booleanrequired

    Flag indicating the API Key is usable for authentication.

Request
PUT/api/accounts/{accountId}/api-keys/{apiKeyName}
    curl -X PUT https://service.centrapay.com/api/accounts/Jaim1Cu1Q55uooxSens6yk/api-keys/MyAPIkey \
+
PUT/api/accounts/{accountId}/api-keys/{apiKeyName}

Update an API Key

This endpoint allows you to enable or disable an API key.

Attributes

  • enabled

    booleanrequired

    Flag indicating the API Key is usable for authentication.

Request
PUT/api/accounts/{accountId}/api-keys/{apiKeyName}
    curl -X PUT https://service.centrapay.com/api/accounts/Jaim1Cu1Q55uooxSens6yk/api-keys/MyAPIkey \
   -H "X-Api-Key: $api_key" \
   -H "Content-Type: application/json" \
   -d '{
diff --git a/api/asset-transfers/index.html b/api/asset-transfers/index.html
index 5c8c0f2f3..d73df35c2 100644
--- a/api/asset-transfers/index.html
+++ b/api/asset-transfers/index.html
@@ -12,20 +12,20 @@
         r.src=t+h._hjSettings.hjid+j+h._hjSettings.hjsv;
         a.appendChild(r);
       })(window,document,'https://static.hotjar.com/c/hotjar-','.js?sv=');
-    
+    
 
 
 
 
 

Asset Transfers

An asset transfer is an asynchronous exchange of an asset or an amount to a recipient.

+

Asset Transfers

An asset transfer is an asynchronous exchange of an asset or an amount to a recipient.

A recipient is an existing Centrapay user or someone who can create an account to claim the asset transfer by verifying their phone number.

After an asset transfer is completed the recipientAlias, lastSentTo and message fields are scrubbed to avoid storing PII.

Asset Transfer Model

Attributes

-
  • id

    string

    The unique identifier.

  • status

    string

    The status of the Asset Transfer. See Asset Transfer lifecycle for possible values.

  • Amount to send. Required for money transfers. Units depend on the asset type.

  • assetId

    string

    Id of a discrete asset to transfer or wallet to draw from.

  • assetType

    string

    The Asset Type  API  being transferred.

  • description

    string

    Shows up in transaction history against the transfer. 200 character limit.

  • message

    string

    Shows up in transaction history against the transfer. 100 character limit.

  • lastSentTo

    string

    The phone number or email address of the last recipient.

  • senderAlias

    string

    Phone number, email or handle of sender.

  • senderName

    string

    Human readable name for the sender. 30 character limit.

  • recipientAccountId

    string

    The Centrapay Account id of the recipient.

  • senderAccountId

    string

    The Centrapay Account id of the sender.

  • claimedByAccountId

    string

    The Centrapay Account that claimed the Asset Transfer.

  • recipientAlias

    string

    Phone number, email or handle of receiver.

  • createdAt

    timestamp

    When the Asset Transfer was created.

  • updatedAt

    timestamp

    When the Asset Transfer was updated.

  • suppressNotification

    boolean

    Suppress notifications from Centrapay (SMS/Email).

  • url

    string

    A URL where the asset can be claimed if a recipient is not supplied.

+
  • id

    string

    The unique identifier.

  • status

    string

    The status of the Asset Transfer. See Asset Transfer lifecycle for possible values.

  • Amount to send. Required for money transfers. Units depend on the asset type.

  • assetId

    string

    Id of a discrete asset to transfer or wallet to draw from.

  • assetType

    string

    The Asset Type  API  being transferred.

  • description

    string

    Shows up in transaction history against the transfer. 200 character limit.

  • message

    string

    Shows up in transaction history against the transfer. 100 character limit.

  • lastSentTo

    string

    The phone number or email address of the last recipient.

  • senderAlias

    string

    Phone number, email or handle of sender.

  • senderName

    string

    Human readable name for the sender. 30 character limit.

  • recipientAccountId

    string

    The Centrapay Account id of the recipient.

  • senderAccountId

    string

    The Centrapay Account id of the sender.

  • claimedByAccountId

    string

    The Centrapay Account that claimed the Asset Transfer.

  • recipientAlias

    string

    Phone number, email or handle of receiver.

  • createdAt

    timestamp

    When the Asset Transfer was created.

  • updatedAt

    timestamp

    When the Asset Transfer was updated.

  • suppressNotification

    boolean

    Suppress notifications from Centrapay (SMS/Email).

  • url

    string

    A URL where the asset can be claimed if a recipient is not supplied.


Asset Transfer lifecycle

Asset Transfer goes through different lifecycle stages.

@@ -65,9 +65,9 @@
StateDescription
createdAsset transfer successfully created
sentAsset transfer notification (sms, email) was sent to a new user
expiredAsset transfer expired as new user didn’t create his account and claimed the asset. This is very short lived state
returnedAsset transfer expired and was returned to original owner
claimedAsset transfer was successfully completed
cancelledAsset transfer was cancelled.

-
POST/api/asset-transfers

Create an Asset Transfer

Transfer an asset to a recipient. Some assets can be transfered only in whole +

POST/api/asset-transfers

Create an Asset Transfer

Transfer an asset to a recipient. Some assets can be transfered only in whole (eg giftcards or tokens) while others can be transfered only in part (eg money).

Some assets can be transferred without supplying a recipient. A url field will be -returned in these cases. The url will link to a page to claim the asset.

Attributes

  • assetId

    stringrequired

    Id of a discrete asset to transfer or wallet to draw from.

  • recipientAlias

    string

    Phone number, email or handle of receiver.

  • description

    string

    Shows up in transaction history against the transfer. 200 character limit.

  • message

    string

    Shows up in transaction history against the transfer. 100 character limit.

  • Amount to send. Required for money transfers. Units depend on the asset type.

  • senderName

    string

    Human readable name for the sender. 30 character limit.

  • suppressNotification

    boolean

    Suppress notifications from Centrapay (SMS/Email).

Errors

  • INSUFFICIENT_WALLET_BALANCE

    403

    The value of the asset-transfer exceeds the balance on the wallet.

  • QUOTA_EXCEEDED

    403

    The transfer exceeds one or more spend quota limits. See Quota Error Response  API .

  • ASSET_NOT_ACTIVE

    403

    The asset is not active and cannot be transferred.

  • RECIPIENT_MISSING

    403

    The asset must be transferred with a recipient supplied.

Request
POST/api/assets/asset-transfers
    curl -X POST https://service.centrapay.com/api/asset-transfers \
+returned in these cases. The url will link to a page to claim the asset.

Attributes

  • assetId

    stringrequired

    Id of a discrete asset to transfer or wallet to draw from.

  • recipientAlias

    string

    Phone number, email or handle of receiver.

  • description

    string

    Shows up in transaction history against the transfer. 200 character limit.

  • message

    string

    Shows up in transaction history against the transfer. 100 character limit.

  • Amount to send. Required for money transfers. Units depend on the asset type.

  • senderName

    string

    Human readable name for the sender. 30 character limit.

  • suppressNotification

    boolean

    Suppress notifications from Centrapay (SMS/Email).

Errors

  • INSUFFICIENT_WALLET_BALANCE

    403

    The value of the asset-transfer exceeds the balance on the wallet.

  • QUOTA_EXCEEDED

    403

    The transfer exceeds one or more spend quota limits. See Quota Error Response  API .

  • ASSET_NOT_ACTIVE

    403

    The asset is not active and cannot be transferred.

  • RECIPIENT_MISSING

    403

    The asset must be transferred with a recipient supplied.

Request
POST/api/assets/asset-transfers
    curl -X POST https://service.centrapay.com/api/asset-transfers \
   -H "X-Api-Key: $api_key" \
   -H "Content-Type: application/json" \
   -d '{
@@ -96,7 +96,7 @@
 Copy
 

-
GET/api/asset-transfers/{assetTransferId}

Get an Asset Transfer

Attributes

No Attributes.

Request
GET/api/assets/asset-transfers/{assetTransferId}
    curl https://service.centrapay.com/api/asset-transfers/M7Kn2stAxNa6ri7h \
+
GET/api/asset-transfers/{assetTransferId}

Get an Asset Transfer

Attributes

No Attributes.

Request
GET/api/assets/asset-transfers/{assetTransferId}
    curl https://service.centrapay.com/api/asset-transfers/M7Kn2stAxNa6ri7h \
   -H "X-Api-Key: $api_key"
   

-
GET/api/asset-transfers/{assetTransferId}/summary

Get Asset Transfer Summary

Attributes

No Attributes.

Request
GET/api/assets/asset-transfers/{assetTransferId}/summary
    curl https://service.centrapay.com/api/asset-transfers/M7Kn2stAxNa6ri7h/summary
+
GET/api/asset-transfers/{assetTransferId}/summary

Get Asset Transfer Summary

Attributes

No Attributes.

Request
GET/api/assets/asset-transfers/{assetTransferId}/summary
    curl https://service.centrapay.com/api/asset-transfers/M7Kn2stAxNa6ri7h/summary
   
Response
    {
@@ -135,7 +135,7 @@
 Copy
 

-
POST/api/asset-transfers/{assetTransferId}/claim

Claim Asset Transfer experimental

Claim the asset transfer for the caller’s authorised account.

Attributes

No Attributes.

Errors

  • ASSET_TRANSFER_INVALID_RECIPIENT

    403

    The asset transfer already has a recipient defined through the recipientAlias field and cannot be claimed with this API.

Request
POST/api/asset-transfers/{assetTransferId}/claim
    curl https://service.centrapay.com/api/asset-transfers/M7Kn2stAxNa6ri7h/claim
+
POST/api/asset-transfers/{assetTransferId}/claim

Claim Asset Transfer experimental

Claim the asset transfer for the caller’s authorised account.

Attributes

No Attributes.

Errors

  • ASSET_TRANSFER_INVALID_RECIPIENT

    403

    The asset transfer already has a recipient defined through the recipientAlias field and cannot be claimed with this API.

Request
POST/api/asset-transfers/{assetTransferId}/claim
    curl https://service.centrapay.com/api/asset-transfers/M7Kn2stAxNa6ri7h/claim
   
Response
    {
@@ -157,8 +157,8 @@
 Copy
 

-
POST/api/me/resolve-claimable-assets

Resolve Claimable Assets experimental

When you send another centrapay user cash or assets, they’re automatically assigned to them. -However, if they’re not signed up yet then these assets are not immediately assigned.

If unclaimed, asset transfers are returned after 2 weeks.

New accounts should call this endpoint to allocate assets that you’ve been sent.

Attributes

No Attributes.

Request
POST/api/me/resolve-claimable-assets
    curl -X POST https://service.centrapay.com/api/me/resolve-claimable-assets \
+
POST/api/me/resolve-claimable-assets

Resolve Claimable Assets experimental

When you send another centrapay user cash or assets, they’re automatically assigned to them. +However, if they’re not signed up yet then these assets are not immediately assigned.

If unclaimed, asset transfers are returned after 2 weeks.

New accounts should call this endpoint to allocate assets that you’ve been sent.

Attributes

No Attributes.

Request
POST/api/me/resolve-claimable-assets
    curl -X POST https://service.centrapay.com/api/me/resolve-claimable-assets \
   -H "X-Api-Key: $api_key"
   

-
GET/api/asset-transfers

List Asset Transfers experimental

Returns a paginated  API  list of Asset Transfers.

Attributes

  • recipientAccountId

    string

    The Centrapay Account id of the recipient.

  • senderAccountId

    string

    The Centrapay Account id of the sender.

Request
GET/api/asset-transfers
    curl -G https://service.centrapay.com/api/asset-transfers \
+
GET/api/asset-transfers

List Asset Transfers experimental

Returns a paginated  API  list of Asset Transfers.

Attributes

  • recipientAccountId

    string

    The Centrapay Account id of the recipient.

  • senderAccountId

    string

    The Centrapay Account id of the sender.

Request
GET/api/asset-transfers
    curl -G https://service.centrapay.com/api/asset-transfers \
   -H "X-Api-Key: $api_key" \
   -d recipientAccountId=oS3Xom2au3Ooy9aihai
   

-
POST/api/asset-transfers/{assetTransferId}/cancel

Cancel an Asset Transfer

Attributes

No attributes

Errors

  • INVALID_ASSET_TRANSFER_STATUS

    403

    The asset transfer status is invalid and cannot be cancelled.

Request
POST/api/asset-transfers/{assetTransferId}/cancel
    curl -X POST https://service.centrapay.com/api/asset-transfers/M7Kn2stAxNa6ri7h/cancel \
+
POST/api/asset-transfers/{assetTransferId}/cancel

Cancel an Asset Transfer

Attributes

No attributes

Errors

  • INVALID_ASSET_TRANSFER_STATUS

    403

    The asset transfer status is invalid and cannot be cancelled.

Request
POST/api/asset-transfers/{assetTransferId}/cancel
    curl -X POST https://service.centrapay.com/api/asset-transfers/M7Kn2stAxNa6ri7h/cancel \
   -H "X-Api-Key: $api_key"
   

Assets

Centrapay digital assets are resources that represent the ability for a +

Assets

Centrapay digital assets are resources that represent the ability for a Centrapay account to perform transactions where value is exchanged. Assets can be spent to satisfy Payment Requests  API , withdrawn to a bank account via Funds Transfers  API  and sent to other Centrapay users via Asset Transfers  API .

@@ -27,10 +27,10 @@ rules governing how it can be obtained, shared or spent.

Asset Model

All assets have the following fields along with the additional fields that are -specific to its category. Assets which don’t have a category are considered experimental +specific to its category. Assets which don’t have a category are considered experimental and the model may change.

Attributes

-
  • id

    string

    The Asset’s unique identifier.

  • accountId

    string

    The Asset’s owning Centrapay Account id.

  • category

    string

    Asset category (“money”, “giftcard”, “token”).

  • type

    string

    Asset Type  API  id used by payment option asset types.

  • liveness

    string

    Either “main” (live payments allowed) or “test”.

  • description

    string

    Displayable asset description.

  • createdAt

    timestamp

    Date when the asset was created or issued.

  • status

    string

    “active” if the asset can be used for payments.

  • meta

    objectexperimental

    Additional data that may only appear in the Get Asset response.

+
  • id

    string

    The Asset’s unique identifier.

  • accountId

    string

    The Asset’s owning Centrapay Account id.

  • category

    string

    Asset category (“money”, “giftcard”, “token”).

  • type

    string

    Asset Type  API  id used by payment option asset types.

  • liveness

    string

    Either “main” (live payments allowed) or “test”.

  • description

    string

    Displayable asset description.

  • createdAt

    timestamp

    Date when the asset was created or issued.

  • status

    string

    “active” if the asset can be used for payments.

  • meta

    objectexperimental

    Additional data that may only appear in the Get Asset response.


Money Model

Money assets, being backed by real currency, are the most flexible asset types. @@ -38,7 +38,7 @@ and does not expire.

Money assets have the following attributes along with the base asset fields.

Attributes

-
  • currency

    string

    Currency code, eg “NZD”.

  • balance

    bignumber

    Current balance in the currency’s smallest denomination (ie. cents).

  • availableBalance

    bignumber

    The balance of the asset that is available for transfers or purchases.

  • settlement

    booleanexperimental

    The asset is configured for Settlements  API .

+
  • currency

    string

    Currency code, eg “NZD”.

  • balance

    bignumber

    Current balance in the currency’s smallest denomination (ie. cents).

  • availableBalance

    bignumber

    The balance of the asset that is available for transfers or purchases.

  • settlement

    booleanexperimental

    The asset is configured for Settlements  API .


Gift Card Model

Gift cards are similar to money but have greater spending restrictions and are @@ -47,13 +47,13 @@ entirety.

Gift cards have the following attributes along with the base asset fields.

Attributes

-
  • issuer

    string

    The identifier for the issuer of the gift card.

  • currency

    string

    Currency code, eg “NZD”

  • balance

    bignumber

    Current balance in the currency’s smallest denomination (ie. cents).

  • availableBalance

    bignumber

    The balance of the asset that is available for transfers or purchases.

  • initialBalance

    bignumber

    The balance when the asset was created.

  • externalId

    string

    The asset identifier from the issuing system.

  • expiresAt

    timestamp

    The date when the asset expires.

  • balanceUpdatedAt

    timestamp

    The date when the balance was last observed to be updated.

  • productCode

    stringexperimental

    The unique code which must match a merchant’s payment option for redemption.

  • img

    stringexperimental

    The img URL of the gift card.

  • brandName

    stringexperimental

    The name of the brand that the gift card belongs to.

  • brandImg

    stringexperimental

    The img URL of the brand that the gift card belongs to.

  • brandWebsite

    stringexperimental

    The URL of the brand that the gift card belongs to.

  • issuerWebsite

    stringexperimental

    The URL of the issuer of the gift card.

+
  • issuer

    string

    The identifier for the issuer of the gift card.

  • currency

    string

    Currency code, eg “NZD”

  • balance

    bignumber

    Current balance in the currency’s smallest denomination (ie. cents).

  • availableBalance

    bignumber

    The balance of the asset that is available for transfers or purchases.

  • initialBalance

    bignumber

    The balance when the asset was created.

  • externalId

    string

    The asset identifier from the issuing system.

  • expiresAt

    timestamp

    The date when the asset expires.

  • balanceUpdatedAt

    timestamp

    The date when the balance was last observed to be updated.

  • productCode

    stringexperimental

    The unique code which must match a merchant’s payment option for redemption.

  • img

    stringexperimental

    The img URL of the gift card.

  • brandName

    stringexperimental

    The name of the brand that the gift card belongs to.

  • brandImg

    stringexperimental

    The img URL of the brand that the gift card belongs to.

  • brandWebsite

    stringexperimental

    The URL of the brand that the gift card belongs to.

  • issuerWebsite

    stringexperimental

    The URL of the issuer of the gift card.


-

Token Model experimental

+

Token Model experimental

Tokens are assets which can only be spent in full. Every token is associated with a collection, which defines the branding and general rules for the tokens, such as active duration.

Tokens have the following attributes along with the base asset fields.

Attributes

-
  • collectionId

    string

    The token collection  API  that will govern the branding and redemption rules for the token.

  • createdBy

    crn

    The identity that created the activity.

  • activeFrom

    timestamp

    The date when the asset becomes spendable.

  • expiresAt

    timestamp

    The date when the asset expires.

  • img

    string

    The img URL of the token.

  • issuer

    string

    The name of the Business  API  that issued the token.

  • issuerWebsite

    string

    The URL of the issuer of the gift card.

  • issuerImg

    string

    The img URL of the issuer that the token belongs to.

  • externalId

    string

    The asset identifier from the issuing system.

+
  • collectionId

    string

    The token collection  API  that will govern the branding and redemption rules for the token.

  • createdBy

    crn

    The identity that created the activity.

  • activeFrom

    timestamp

    The date when the asset becomes spendable.

  • expiresAt

    timestamp

    The date when the asset expires.

  • img

    string

    The img URL of the token.

  • issuer

    string

    The name of the Business  API  that issued the token.

  • issuerWebsite

    string

    The URL of the issuer of the gift card.

  • issuerImg

    string

    The img URL of the issuer that the token belongs to.

  • externalId

    string

    The asset identifier from the issuing system.


Asset Transaction Model

The destParty and srcParty are optionally provided only on transactions of @@ -63,9 +63,9 @@ increment-balance and decrement-balance. Values may include bank account number.

Attributes

-
  • ref

    string

    ID of the Centrapay resource that initiated the transaction.

  • refType

    string

    Name of the Centrapay resource that initiated the transaction.

  • type

    string

    Type of the Asset Transaction. Supported values are increment-balance, decrement-balance and transfer.

  • kind

    string

    Human readable value indicating the reason for the transaction.

  • srcAssetId

    string

    ID of the source asset.

  • destAssetId

    string

    ID of the destination asset.

  • srcParty

    string

    Display value for party providing funds.

  • destParty

    string

    Display value for party receiving funds.

  • otherParty

    string

    Display value for party providing or receiving funds.

  • amount

    string

    Amount of transaction in cents.

  • activityType

    string

    Indicating whether the asset gained or lost value. Supported types are value-in and value-out.

  • activityNumber

    string

    Unique sequential Asset transaction number.

+
  • ref

    string

    ID of the Centrapay resource that initiated the transaction.

  • refType

    string

    Name of the Centrapay resource that initiated the transaction.

  • type

    string

    Type of the Asset Transaction. Supported values are increment-balance, decrement-balance and transfer.

  • kind

    string

    Human readable value indicating the reason for the transaction.

  • srcAssetId

    string

    ID of the source asset.

  • destAssetId

    string

    ID of the destination asset.

  • srcParty

    string

    Display value for party providing funds.

  • destParty

    string

    Display value for party receiving funds.

  • otherParty

    string

    Display value for party providing or receiving funds.

  • amount

    string

    Amount of transaction in cents.

  • activityType

    string

    Indicating whether the asset gained or lost value. Supported types are value-in and value-out.

  • activityNumber

    string

    Unique sequential Asset transaction number.


-
GET/api/assets/{assetId}

Get Asset

Attributes

No attributes.

Request
GET/api/assets/{assetId}
    curl https://service.centrapay.com/api/assets/L75M3L56N2PtBSt8g7uXLU \
+
GET/api/assets/{assetId}

Get Asset

Attributes

No attributes.

Request
GET/api/assets/{assetId}
    curl https://service.centrapay.com/api/assets/L75M3L56N2PtBSt8g7uXLU \
   -H "X-Api-Key: $api_key"
   

-
GET/api/assets/{assetId}/summary

Get Asset Summary

Attributes

No attributes.

Request
GET/api/assets/{assetId}/summary
    curl https://service.centrapay.com/api/assets/L75M3L56N2PtBSt8g7uXLU/summary
+
GET/api/assets/{assetId}/summary

Get Asset Summary

Attributes

No attributes.

Request
GET/api/assets/{assetId}/summary
    curl https://service.centrapay.com/api/assets/L75M3L56N2PtBSt8g7uXLU/summary
   
Response
    {
@@ -104,7 +104,7 @@
 Copy
 

-
GET/api/accounts/{accountId}/assets

List Assets for Account

Returns a paginated  API  list of Assets for an account. This will not return archived assets.

Attributes

  • externalId

    string

    The asset identifier from the issuing system.

Request
GET/api/accounts/{accountId}/assets
    curl https://service.centrapay.com/api/accounts/Te2uDM7xhDLWGVJU3nzwnh/assets \
+
GET/api/accounts/{accountId}/assets

List Assets for Account

Returns a paginated  API  list of Assets for an account. This will not return archived assets.

Attributes

  • externalId

    string

    The asset identifier from the issuing system.

Request
GET/api/accounts/{accountId}/assets
    curl https://service.centrapay.com/api/accounts/Te2uDM7xhDLWGVJU3nzwnh/assets \
   -H "X-Api-Key: $api_key"
   

-
GET/api/assets/{assetId}/transactions

List Asset Transactions experimental

Returns a paginated  API  list of Asset Transactions. This endpoint is currently only supported for quartz asset types.

Attributes

No Attributes.

Request
GET/api/assets/{assetId}/transactions
    curl https://service.centrapay.com/api/assets/WRhAxxWpTKb5U7pXyxQjjY/transactions \
+
GET/api/assets/{assetId}/transactions

List Asset Transactions experimental

Returns a paginated  API  list of Asset Transactions. This endpoint is currently only supported for quartz asset types.

Attributes

No Attributes.

Request
GET/api/assets/{assetId}/transactions
    curl https://service.centrapay.com/api/assets/WRhAxxWpTKb5U7pXyxQjjY/transactions \
   -H "X-Api-Key: $api_key"
   

-
POST/api/assets/{assetId}/archive

Archive Asset

Archive supported asset types by asset id. Currently only gift cards may be archived.

Attributes

No Attributes.

Errors

  • UNSUPPORTED_ASSET_TYPE

    403

    Asset type can not be archived

Request
POST/api/assets/{assetId}/archive
    curl -X POST https://service.centrapay.com/api/assets/L75M3L56N2PtBSt8g7uXLU/archive \
+
POST/api/assets/{assetId}/archive

Archive Asset

Archive supported asset types by asset id. Currently only gift cards may be archived.

Attributes

No Attributes.

Errors

  • UNSUPPORTED_ASSET_TYPE

    403

    Asset type can not be archived

Request
POST/api/assets/{assetId}/archive
    curl -X POST https://service.centrapay.com/api/assets/L75M3L56N2PtBSt8g7uXLU/archive \
   -H "X-Api-Key: $api_key"
   

Auth

Authenticating API Calls

+

Auth

Authenticating API Calls

API calls can be authenticated by either providing an API key in the “X-Api-Key” header or by providing a user access token in the “Authorization” header.

Org Accounts  API  accessed with a user access token require the “X-Centrapay-Account” header to be provided. The “X-Centrapay-Account” header specifies the unique identifier of the Centrapay Org Account.

-
Authenticate with API key
GET/api/account-memberships
    curl -X GET https://service.centrapay.com/api/account-memberships \
+
Authenticate with API key
GET/api/account-memberships
    curl -X GET https://service.centrapay.com/api/account-memberships \
   -H "X-Api-Key: $api_key"
   
-
Authenticate with user access token
GET/api/account-memberships
    curl -X GET https://service.centrapay.com/api/account-memberships \
+
Authenticate with user access token
GET/api/account-memberships
    curl -X GET https://service.centrapay.com/api/account-memberships \
   -H "Authorization: $jwt"
   
-
Authenticate org account with user access token
GET/api/account-memberships
    curl -X GET https://service.centrapay.com/api/account-memberships \
+
Authenticate org account with user access token
GET/api/account-memberships
    curl -X GET https://service.centrapay.com/api/account-memberships \
   -H "Authorization: $jwt" \
   -H "X-Centrapay-Account: Jaim1Cu1Q55uooxSens6yk"
   

Bank Account Approvals

A Bank Account Approval represents any added authorization on a Bank Account  API . +

Bank Account Approvals

A Bank Account Approval represents any added authorization on a Bank Account  API . This may be an approval from Centrapay or a consent from a Centrapay Account  API  owner that allows access to a third-party system. See Bank Account Approval Types.


Bank Account Approval Model

Attributes

-
  • id

    string

    The Bank Account Approval’s unique identifier.

  • bankAccountId

    string

    The id of the associated Bank Account  API .

  • accountId

    string

    The id of the owning Centrapay Account  API .

  • type

    string

    The type of Bank Account Approval. See Bank Account Approval Types.

  • status

    string

    The current status of the Bank Account Approval. Supported values are created, pending, approved, declined and done.

  • createdAt

    timestamp

    When the Bank Account Approval was created.

  • createdBy

    crn

    The User or API Key that created the Bank Account Approval.

  • modifiedAt

    timestamp

    When the Bank Account Approval was updated.

  • modifiedBy

    crn

    The User or API Key that updated the Bank Account Approval.

  • approvalActivities

    array

    An array of Bank Account Approval Activities associated with the Bank Account Approval.

  • mediaUploadId

    string

    The id of the associated Media Upload  API . Required for type settlement.

  • refreshToken

    string

    A long lived access token for access to a third-party system. Required for type account-consent and payment-consent.

  • consentId

    string

    A unique identifier for an authorization in a third-party system.

+
  • id

    string

    The Bank Account Approval’s unique identifier.

  • bankAccountId

    string

    The id of the associated Bank Account  API .

  • accountId

    string

    The id of the owning Centrapay Account  API .

  • type

    string

    The type of Bank Account Approval. See Bank Account Approval Types.

  • status

    string

    The current status of the Bank Account Approval. Supported values are created, pending, approved, declined and done.

  • createdAt

    timestamp

    When the Bank Account Approval was created.

  • createdBy

    crn

    The User or API Key that created the Bank Account Approval.

  • modifiedAt

    timestamp

    When the Bank Account Approval was updated.

  • modifiedBy

    crn

    The User or API Key that updated the Bank Account Approval.

  • approvalActivities

    array

    An array of Bank Account Approval Activities associated with the Bank Account Approval.

  • mediaUploadId

    string

    The id of the associated Media Upload  API . Required for type settlement.

  • refreshToken

    string

    A long lived access token for access to a third-party system. Required for type account-consent and payment-consent.

  • consentId

    string

    A unique identifier for an authorization in a third-party system.

Bank Account Approval Types

@@ -51,9 +51,9 @@

Bank Account Approval Activity Model

Attributes

-
  • activityNumber

    number

    Unique sequential Bank Account Approval Activity number.

  • approvalId

    string

    The id of the associated Bank Account Approval.

  • activityType

    string

    The type of the Bank Account Approval Activity.

  • createdAt

    timestamp

    When the Bank Account Approval Activity was created.

  • createdBy

    crn

    The User or API Key that created the Bank Account Approval Activity.

+
  • activityNumber

    number

    Unique sequential Bank Account Approval Activity number.

  • approvalId

    string

    The id of the associated Bank Account Approval.

  • activityType

    string

    The type of the Bank Account Approval Activity.

  • createdAt

    timestamp

    When the Bank Account Approval Activity was created.

  • createdBy

    crn

    The User or API Key that created the Bank Account Approval Activity.


-
POST/api/bank-account-approvals

Request Bank Account Approval experimental

This endpoint allows you to request a Bank Account Approval.

Attributes

Errors

  • APPROVAL_ALREADY_IN_PROGRESS

    403

    There is already a Bank Account Approval in progress that is awaiting review from Centrapay.

Request
POST/api/bank-account-approvals
    curl -X POST https://service.centrapay.com/api/bank-account-approvals \
+
POST/api/bank-account-approvals

Request Bank Account Approval experimental

This endpoint allows you to request a Bank Account Approval.

Attributes

Errors

  • APPROVAL_ALREADY_IN_PROGRESS

    403

    There is already a Bank Account Approval in progress that is awaiting review from Centrapay.

Request
POST/api/bank-account-approvals
    curl -X POST https://service.centrapay.com/api/bank-account-approvals \
   -H "X-Api-Key: $api_key" \
   -H "Content-Type: application/json" \
   -d '{
@@ -79,7 +79,7 @@
 Copy
 

-
GET/api/bank-account-approvals/{bankAccountApprovalId}

Get Bank Account Approval experimental

This endpoint allows you to retrieve a Bank Account Approval.

Attributes

No attributes.

Request
GET/api/bank-account-approvals/{bankAccountApprovalId}
    curl https://service.centrapay.com/api/bank-account-approvals/bbab9a768921019cb856 \
+
GET/api/bank-account-approvals/{bankAccountApprovalId}

Get Bank Account Approval experimental

This endpoint allows you to retrieve a Bank Account Approval.

Attributes

No attributes.

Request
GET/api/bank-account-approvals/{bankAccountApprovalId}
    curl https://service.centrapay.com/api/bank-account-approvals/bbab9a768921019cb856 \
   -H "X-Api-Key: $api_key"
   

-
POST/api/bank-account-approvals/{bankAccountApprovalId}/accept

Accept Bank Account Approval experimental

This endpoint allows you to accept a Bank Account Approval.

Attributes

  • reason

    string

    The reason for accepting the Bank Account Approval.

Errors

  • APPROVAL_ALREADY_REVIEWED

    403

    The Bank Account Approval has already been accepted or declined.

Request
POST/api/bank-account-approvals/{bankAccountApprovalId}/accept
    curl -X POST https://service.centrapay.com/api/bank-account-approvals/DcTs3U38HdhfEqwF1GKoT3/accept \
+
POST/api/bank-account-approvals/{bankAccountApprovalId}/accept

Accept Bank Account Approval experimental

This endpoint allows you to accept a Bank Account Approval.

Attributes

  • reason

    string

    The reason for accepting the Bank Account Approval.

Errors

  • APPROVAL_ALREADY_REVIEWED

    403

    The Bank Account Approval has already been accepted or declined.

Request
POST/api/bank-account-approvals/{bankAccountApprovalId}/accept
    curl -X POST https://service.centrapay.com/api/bank-account-approvals/DcTs3U38HdhfEqwF1GKoT3/accept \
   -H "X-Api-Key: $api_key" \
   -H "Content-Type: application/json" \
   -d '{
@@ -113,7 +113,7 @@
 Copy
 

-
POST/api/bank-account-approvals/{bankAccountApprovalId}/decline

Decline Bank Account Approval experimental

This endpoint allows you to decline a Bank Account Approval.

Attributes

  • reason

    stringrequired

    The reason for declining the Bank Account Approval.

Errors

  • APPROVAL_ALREADY_REVIEWED

    403

    The Bank Account Approval has already been accepted or declined.

Request
POST/api/bank-account-approvals/{bankAccountApprovalId}/decline
    curl -X POST https://service.centrapay.com/api/bank-account-approvals/DcTs3U38HdhfEqwF1GKoT3/decline \
+
POST/api/bank-account-approvals/{bankAccountApprovalId}/decline

Decline Bank Account Approval experimental

This endpoint allows you to decline a Bank Account Approval.

Attributes

  • reason

    stringrequired

    The reason for declining the Bank Account Approval.

Errors

  • APPROVAL_ALREADY_REVIEWED

    403

    The Bank Account Approval has already been accepted or declined.

Request
POST/api/bank-account-approvals/{bankAccountApprovalId}/decline
    curl -X POST https://service.centrapay.com/api/bank-account-approvals/DcTs3U38HdhfEqwF1GKoT3/decline \
   -H "X-Api-Key: $api_key" \
   -H "Content-Type: application/json" \
   -d '{
@@ -126,7 +126,7 @@
 Copy
 

-
GET/api/bank-accounts/{bankAccountId}/approvals

List Bank Account Approvals experimental

This endpoint allows you to list the Bank Account Approvals for a Bank Account.

Attributes

No attributes.

Request
GET/api/bank-accounts/{bankAccountId}/approvals
    curl https://service.centrapay.com/api/bank-accounts/5vpkxjn6z787LiAKCqwuf9/approvals \
+
GET/api/bank-accounts/{bankAccountId}/approvals

List Bank Account Approvals experimental

This endpoint allows you to list the Bank Account Approvals for a Bank Account.

Attributes

No attributes.

Request
GET/api/bank-accounts/{bankAccountId}/approvals
    curl https://service.centrapay.com/api/bank-accounts/5vpkxjn6z787LiAKCqwuf9/approvals \
   -H "X-Api-Key: $api_key"
   

Bank Account Connection Intents

A Bank Account Connection Intent facilitates user authorization of access to Bank Accounts, for example, using Open Banking flows. Typically the authorization will follow an OAuth flow where the user is redirected to a third-party system to authenticate and select one or more bank accounts.

+

Bank Account Connection Intents

A Bank Account Connection Intent facilitates user authorization of access to Bank Accounts, for example, using Open Banking flows. Typically the authorization will follow an OAuth flow where the user is redirected to a third-party system to authenticate and select one or more bank accounts.


Bank Account Connection Intent Model

-
  • id

    string

    The Bank Account Connection Intent’s unique identifier.

  • accountId

    string

    The id of the owning Centrapay Account  API .

  • type

    string

    The type of Bank Account Connection Intent. See Bank Account Connection Intent Types.

  • status

    string

    The current status of the Bank Account Connection Intent. Supported values are created, authorized and failed.

  • createdAt

    timestamp

    When the Bank Account Connection Intent was created.

  • createdBy

    crn

    The User or API Key that created the Bank Account Connection Intent.

  • updatedAt

    timestamp

    When the Bank Account Connection Intent was updated.

  • updatedBy

    crn

    The User or API Key that updated the Bank Account Connection Intent.

  • authorizationUrl

    string

    A URL to the third-party beginning the authorization flow.

  • test

    boolean

    A flag which is present if the intention is to connect with a Bank Account  API  used for testing.

+
  • id

    string

    The Bank Account Connection Intent’s unique identifier.

  • accountId

    string

    The id of the owning Centrapay Account  API .

  • type

    string

    The type of Bank Account Connection Intent. See Bank Account Connection Intent Types.

  • status

    string

    The current status of the Bank Account Connection Intent. Supported values are created, authorized and failed.

  • createdAt

    timestamp

    When the Bank Account Connection Intent was created.

  • createdBy

    crn

    The User or API Key that created the Bank Account Connection Intent.

  • updatedAt

    timestamp

    When the Bank Account Connection Intent was updated.

  • updatedBy

    crn

    The User or API Key that updated the Bank Account Connection Intent.

  • authorizationUrl

    string

    A URL to the third-party beginning the authorization flow.

  • test

    boolean

    A flag which is present if the intention is to connect with a Bank Account  API  used for testing.

Bank Account Connection Intent Types

@@ -42,7 +42,7 @@
Namedescription
quartz-accountsInitiates an authorization flow for authorizing access to bank account details. After a Bank Account Connection Intent has been authorized, one or more Centrapay Bank Account resources may be created.
quartz-paymentInitiates an authorization flow for authorizing access to create payments.

-
POST/api/bank-account-connection-intents

Create Bank Account Connection Intent experimental

This endpoint allows you to create a Bank Account Connection Intent.

Attributes

  • accountId

    stringrequired

    The id of the owning Account  API .

  • type

    stringrequired

    The type of Bank Account Connection Intent.

  • bankAccountId

    string

    The id of the associated Bank Account  API . Required if type is quartz-payment.

  • test

    boolean

    A flag which is present if the intention is to connect with a Bank Account  API  used for testing.

Errors

  • LIVENESS_MISMATCH

    403

    Only Bank Account Connection Intents with the test flag can be associated with test Bank Accounts  API , and vice versa.

Request
POST/api/bank-account-connection-intents
    curl -X POST https://service.centrapay.com/api/bank-account-connection-intents \
+
POST/api/bank-account-connection-intents

Create Bank Account Connection Intent experimental

This endpoint allows you to create a Bank Account Connection Intent.

Attributes

  • accountId

    stringrequired

    The id of the owning Account  API .

  • type

    stringrequired

    The type of Bank Account Connection Intent.

  • bankAccountId

    string

    The id of the associated Bank Account  API . Required if type is quartz-payment.

  • test

    boolean

    A flag which is present if the intention is to connect with a Bank Account  API  used for testing.

Errors

  • LIVENESS_MISMATCH

    403

    Only Bank Account Connection Intents with the test flag can be associated with test Bank Accounts  API , and vice versa.

Request
POST/api/bank-account-connection-intents
    curl -X POST https://service.centrapay.com/api/bank-account-connection-intents \
   -H "X-Api-Key: $api_key" \
   -H "Content-Type: application/json" \
   -d '{
@@ -68,7 +68,7 @@
 Copy
 

-
POST/api/bank-account-connection-intents/{bankAccountConnectionIntentId}/authorize

Authorize Bank Account Connection Intent experimental

This endpoint allows you to authorize a Bank Account Connection Intent.

Attributes

  • code

    stringrequired

    Authorization code returned from third-party.

Request
POST/api/bank-account-connection-intents
    curl -X POST https://service.centrapay.com/api/bank-account-connection-intents/3KVjuKW2CZCJeJVqPxwkX7/authorize \
+
POST/api/bank-account-connection-intents/{bankAccountConnectionIntentId}/authorize

Authorize Bank Account Connection Intent experimental

This endpoint allows you to authorize a Bank Account Connection Intent.

Attributes

  • code

    stringrequired

    Authorization code returned from third-party.

Request
POST/api/bank-account-connection-intents
    curl -X POST https://service.centrapay.com/api/bank-account-connection-intents/3KVjuKW2CZCJeJVqPxwkX7/authorize \
   -H "X-Api-Key: $api_key" \
   -H "Content-Type: application/json" \
   -d '{
diff --git a/api/bank-accounts/index.html b/api/bank-accounts/index.html
index 95ba9d3a0..57480dad6 100644
--- a/api/bank-accounts/index.html
+++ b/api/bank-accounts/index.html
@@ -12,13 +12,13 @@
         r.src=t+h._hjSettings.hjid+j+h._hjSettings.hjsv;
         a.appendChild(r);
       })(window,document,'https://static.hotjar.com/c/hotjar-','.js?sv=');
-    
+    
 
 
 
 
 

Bank Accounts

Bank Accounts are used to get money in and out of a Centrapay Account. Money is +

Bank Accounts

Bank Accounts are used to get money in and out of a Centrapay Account. Money is moved by creating “Top Up” or “Withdrawal” Funds Transfers  API .

Bank Accounts must be “direct debit authorized” before they can be used for a Top Up and they must be “verified” before top up funds are released. Bank @@ -27,8 +27,8 @@ bank transaction can be used to verify a bank account.

Bank Account Model

Attributes

-
  • id

    string

    The Bank Account’s unique identifier.

  • bankAccountNumber

    string

    The user’s Bank Account number.

  • bankAccountName

    string

    The name on the Bank Account provided by the user.

  • accountId

    string

    The id of the owning Centrapay Account  API .

  • status

    string

    The current status of the Bank Account.

  • verified

    boolean

    Flag indicating the Bank Account is verified, allowing it to be used to Top Up.

  • type

    string

    The Bank Account Type of the bank, defaults to centrapay.

  • directDebitAuthorized

    boolean

    Flag indicating the user accepts our Direct Debit terms and has authority to operate this account.

  • approvals

    array
  • createdAt

    timestamp

    When the Bank Account was created.

  • modifiedAt

    timestamp

    When the Bank Account was updated.

  • createdBy

    crn

    The User or API Key that created the Bank Account.

  • modifiedBy

    crn

    The User or API Key that updated the Bank Account.

  • phoneNumber

    string

    The user’s phone number.

  • fullName

    string

    The first and last name of the user.

  • emailAddress

    string

    The user’s email address.

  • test

    boolean

    A flag which is present if the Bank Account is for testing.

-

Bank Account Type experimental

+
  • id

    string

    The Bank Account’s unique identifier.

  • bankAccountNumber

    string

    The user’s Bank Account number.

  • bankAccountName

    string

    The name on the Bank Account provided by the user.

  • accountId

    string

    The id of the owning Centrapay Account  API .

  • status

    string

    The current status of the Bank Account.

  • verified

    boolean

    Flag indicating the Bank Account is verified, allowing it to be used to Top Up.

  • type

    string

    The Bank Account Type of the bank, defaults to centrapay.

  • directDebitAuthorized

    boolean

    Flag indicating the user accepts our Direct Debit terms and has authority to operate this account.

  • approvals

    array
  • createdAt

    timestamp

    When the Bank Account was created.

  • modifiedAt

    timestamp

    When the Bank Account was updated.

  • createdBy

    crn

    The User or API Key that created the Bank Account.

  • modifiedBy

    crn

    The User or API Key that updated the Bank Account.

  • phoneNumber

    string

    The user’s phone number.

  • fullName

    string

    The first and last name of the user.

  • emailAddress

    string

    The user’s email address.

  • test

    boolean

    A flag which is present if the Bank Account is for testing.

+

Bank Account Type experimental

Types of bank accounts to allow access to different Asset Types  API .

@@ -49,20 +49,20 @@
TypeDescription
centrapayAllows topup and withdrawal of the centrapay.nzd asset type.
quartzAllows usage of the quartz.nzd asset type.

-

Bank Account Approval Type Summary Model experimental

+

Bank Account Approval Type Summary Model experimental

A summary of the Bank Account Approvals  API  for a Bank Account. There is one object per type of Bank Account Approval, which provides a summary of the approval status.

Attributes

-
  • type

    string

    The type of Bank Account Approval Summary.

  • status

    string

    The summarized status of the Bank Account Approvals. Supported values are pending, approved and declined.

  • updatedAt

    timestamp

    When the Bank Account Approval Summary was updated.

+
  • type

    string

    The type of Bank Account Approval Summary.

  • status

    string

    The summarized status of the Bank Account Approvals. Supported values are pending, approved and declined.

  • updatedAt

    timestamp

    When the Bank Account Approval Summary was updated.


-

Bank Account Balance Model experimental

+

Bank Account Balance Model experimental

The Bank Account balance, retrieved using Open Banking flows. The supported Bank Account type is quartz.

Attributes

-
  • bankAccountId

    string

    The unique identifier of the Centrapay Bank Account.

  • balance

    bignumber

    The Open Banking Bank Account balance.

  • currency

    string

    Currency code (eg. “NZD”).

+
  • bankAccountId

    string

    The unique identifier of the Centrapay Bank Account.

  • balance

    bignumber

    The Open Banking Bank Account balance.

  • currency

    string

    Currency code (eg. “NZD”).


-
POST/api/bank-accounts

Create Bank Account

A Bank Account can be created with or without direct debit authorized. By including +

POST/api/bank-accounts

Create Bank Account

A Bank Account can be created with or without direct debit authorized. By including directDebitAuthority, the user accepts our Direct Debit terms -and has authority to operate this account.

phone, fullName and emailAddress are all required to create a direct-debit authority. This is required to be able to Top Up a Bank Account.

Attributes

  • accountId

    stringrequired

    The id of the owning Centrapay Account  API .

  • bankAccountNumber

    stringrequired

    The user’s Bank Account number.

  • bankAccountName

    stringrequired

    The name on the Bank Account provided by the user.

  • phoneNumber

    string

    The user’s phone number.

  • fullName

    string

    The first and last name of the user.

  • emailAddress

    string

    The user’s email address.

  • type

    string

    The Bank Account Type of the bank, defaults to centrapay.

  • test

    boolean

    A flag which is present if the Bank Account is for testing.

Errors

  • BANK_ACCOUNT_LIMIT_EXCEEDED

    403

    The Centrapay account already has the max amount of directDebitAuthorized enabled Bank Accounts.

  • BANK_ACCOUNT_HOLDER_LIMIT_EXCEEDED

    403

    The global maximum Bank Accounts for the provided Bank Account number has been reached.

  • DUPLICATE_BANK_ACCOUNT

    403

    The Centrapay account already holds this Bank Account.

Request
POST/api/bank-accounts
    curl -X POST https://service.centrapay.com/api/bank-accounts \
+and has authority to operate this account.

phone, fullName and emailAddress are all required to create a direct-debit authority. This is required to be able to Top Up a Bank Account.

Attributes

  • accountId

    stringrequired

    The id of the owning Centrapay Account  API .

  • bankAccountNumber

    stringrequired

    The user’s Bank Account number.

  • bankAccountName

    stringrequired

    The name on the Bank Account provided by the user.

  • phoneNumber

    string

    The user’s phone number.

  • fullName

    string

    The first and last name of the user.

  • emailAddress

    string

    The user’s email address.

  • type

    string

    The Bank Account Type of the bank, defaults to centrapay.

  • test

    boolean

    A flag which is present if the Bank Account is for testing.

Errors

  • BANK_ACCOUNT_LIMIT_EXCEEDED

    403

    The Centrapay account already has the max amount of directDebitAuthorized enabled Bank Accounts.

  • BANK_ACCOUNT_HOLDER_LIMIT_EXCEEDED

    403

    The global maximum Bank Accounts for the provided Bank Account number has been reached.

  • DUPLICATE_BANK_ACCOUNT

    403

    The Centrapay account already holds this Bank Account.

Request
POST/api/bank-accounts
    curl -X POST https://service.centrapay.com/api/bank-accounts \
   -H "X-Api-Key: $api_key" \
   -H "Content-Type: application/json" \
   -d '{
@@ -96,7 +96,7 @@
 Copy
 

-
POST/api/bank-accounts/{bankAccountId}/direct-debit-authorities

Add Direct Debit Authority to a Bank Account

By using this endpoint, the user accepts our Direct Debit terms and has authority to operate this account.

Attributes

  • phoneNumber

    stringrequired

    The user’s phone number.

  • fullName

    stringrequired

    The first and last name of the user.

  • emailAddress

    stringrequired

    The user’s email address.

Errors

  • DIRECT_DEBIT_ALREADY_AUTHORIZED

    403

    This bank authority cannot be changed as all fields have been set.

  • DIRECT_DEBIT_LIMIT_EXCEEDED

    403

    The Centrapay account already has the max amount of directDebitAuthorized enabled Bank Accounts.

Request
POST/api/bank-accounts/{bankAccountId}/direct-debit-authorities
    curl -X POST https://service.centrapay.com/api/bank-accounts/WRhAxxWpTKb5U7pXyxQjjY/direct-debit-authorities \
+
POST/api/bank-accounts/{bankAccountId}/direct-debit-authorities

Add Direct Debit Authority to a Bank Account

By using this endpoint, the user accepts our Direct Debit terms and has authority to operate this account.

Attributes

  • phoneNumber

    stringrequired

    The user’s phone number.

  • fullName

    stringrequired

    The first and last name of the user.

  • emailAddress

    stringrequired

    The user’s email address.

Errors

  • DIRECT_DEBIT_ALREADY_AUTHORIZED

    403

    This bank authority cannot be changed as all fields have been set.

  • DIRECT_DEBIT_LIMIT_EXCEEDED

    403

    The Centrapay account already has the max amount of directDebitAuthorized enabled Bank Accounts.

Request
POST/api/bank-accounts/{bankAccountId}/direct-debit-authorities
    curl -X POST https://service.centrapay.com/api/bank-accounts/WRhAxxWpTKb5U7pXyxQjjY/direct-debit-authorities \
   -H "X-Api-Key: $api_key" \
   -H "Content-Type: application/json" \
   -d '{
@@ -125,7 +125,7 @@
 Copy
 

-
GET/api/bank-accounts/{bankAccountId}

Get Bank Account

This endpoint allows you to retrieve information about a Bank Account.

Attributes

No attributes.

Request
GET/api/bank-accounts/{bankAccountId}
    curl https://service.centrapay.com/api/bank-accounts/d4a7cbd6818a87c51b97 \
+
GET/api/bank-accounts/{bankAccountId}

Get Bank Account

This endpoint allows you to retrieve information about a Bank Account.

Attributes

No attributes.

Request
GET/api/bank-accounts/{bankAccountId}
    curl https://service.centrapay.com/api/bank-accounts/d4a7cbd6818a87c51b97 \
   -H "X-Api-Key: $api_key"
   

-
GET/api/bank-accounts/{bankAccountId}/balance

Get Bank Account Balance experimental

This endpoint allows you to retrieve the balance of a Bank Account.

Attributes

No attributes.

Errors

  • BANK_BALANCE_NOT_SUPPORTED

    403

    The Bank Account Type does not support retrieval of a balance using Open Banking flows.

  • BANK_AUTHORIZATION_INVALID

    403

    The access token to retrieve the Bank Account Balance is no longer valid.

Request
GET/api/bank-accounts/{bankAccountId}/balance
    curl https://service.centrapay.com/api/bank-accounts/d4a7cbd6818a87c51b97/balance \
+
GET/api/bank-accounts/{bankAccountId}/balance

Get Bank Account Balance experimental

This endpoint allows you to retrieve the balance of a Bank Account.

Attributes

No attributes.

Errors

  • BANK_BALANCE_NOT_SUPPORTED

    403

    The Bank Account Type does not support retrieval of a balance using Open Banking flows.

  • BANK_AUTHORIZATION_INVALID

    403

    The access token to retrieve the Bank Account Balance is no longer valid.

Request
GET/api/bank-accounts/{bankAccountId}/balance
    curl https://service.centrapay.com/api/bank-accounts/d4a7cbd6818a87c51b97/balance \
   -H "X-Api-Key: $api_key"
   

-
POST/api/bank-accounts/{bankAccountId}/verify

Verify Bank Account

Verification codes show up on statements when a user makes withdrawals and deposits. To verify an account, you need to direct the user to make a Top Up or Withdrawal and then check their statement.

Attributes

  • verificationCode

    stringrequired

    The code on the user’s bank statement.

Errors

  • BANK_ACCOUNT_ALREADY_VERIFIED

    403

    The bank account is already verified.

  • VERIFICATION_CODE_INVALID

    403

    The verification code is incorrect.

  • BANK_ACCOUNT_VERIFICATION_ATTEMPTS_EXCEEDED

    403

    The bank account’s maximum failed verification attempts has been reached.

  • ACCOUNT_MISMATCH

    403

    The top up / withdrawal and the bank account do not belong to the same account.

Request
POST/api/bank-accounts/{bankAccountId}/verify
    curl -X POST https://service.centrapay.com/api/bank-accounts/WRhAxxWpTKb5U7pXyxQjjY/verify \
+
POST/api/bank-accounts/{bankAccountId}/verify

Verify Bank Account

Verification codes show up on statements when a user makes withdrawals and deposits. To verify an account, you need to direct the user to make a Top Up or Withdrawal and then check their statement.

Attributes

  • verificationCode

    stringrequired

    The code on the user’s bank statement.

Errors

  • BANK_ACCOUNT_ALREADY_VERIFIED

    403

    The bank account is already verified.

  • VERIFICATION_CODE_INVALID

    403

    The verification code is incorrect.

  • BANK_ACCOUNT_VERIFICATION_ATTEMPTS_EXCEEDED

    403

    The bank account’s maximum failed verification attempts has been reached.

  • ACCOUNT_MISMATCH

    403

    The top up / withdrawal and the bank account do not belong to the same account.

Request
POST/api/bank-accounts/{bankAccountId}/verify
    curl -X POST https://service.centrapay.com/api/bank-accounts/WRhAxxWpTKb5U7pXyxQjjY/verify \
   -H "X-Api-Key: $api_key" \
   -H "Content-Type: application/json" \
   -d '{
@@ -184,7 +184,7 @@
 Copy
 

-
POST/api/bank-authorities/{bankAccountId}/verify

Verify Bank Authority deprecated

If you’re creating new interfaces, please work with Verify Bank Account.

Attributes

  • verificationCode

    stringrequired

    The code on the user’s bank statement.

Errors

  • BANK_ACCOUNT_ALREADY_VERIFIED

    403

    The bank account is already verified.

  • VERIFICATION_CODE_INVALID

    403

    The verification code is incorrect.

  • BANK_ACCOUNT_VERIFICATION_ATTEMPTS_EXCEEDED

    403

    The bank account’s maximum failed verification attempts has been reached.

  • ACCOUNT_MISMATCH

    403

    The top up / withdrawal and the bank account do not belong to the same account.

Request
POST/api/bank-authorities/{bankAccountId}/verify
    curl -X POST https://service.centrapay.com/api/bank-authorities/WRhAxxWpTKb5U7pXyxQjjY/verify \
+
POST/api/bank-authorities/{bankAccountId}/verify

Verify Bank Authority deprecated

If you’re creating new interfaces, please work with Verify Bank Account.

Attributes

  • verificationCode

    stringrequired

    The code on the user’s bank statement.

Errors

  • BANK_ACCOUNT_ALREADY_VERIFIED

    403

    The bank account is already verified.

  • VERIFICATION_CODE_INVALID

    403

    The verification code is incorrect.

  • BANK_ACCOUNT_VERIFICATION_ATTEMPTS_EXCEEDED

    403

    The bank account’s maximum failed verification attempts has been reached.

  • ACCOUNT_MISMATCH

    403

    The top up / withdrawal and the bank account do not belong to the same account.

Request
POST/api/bank-authorities/{bankAccountId}/verify
    curl -X POST https://service.centrapay.com/api/bank-authorities/WRhAxxWpTKb5U7pXyxQjjY/verify \
   -H "X-Api-Key: $api_key" \
   -H "Content-Type: application/json" \
   -d '{
@@ -199,7 +199,7 @@
 Copy
 

-
GET/api/accounts/{accountId}/bank-accounts

List Bank Accounts

This endpoint allows you to list the Bank Accounts for an account.

Attributes

No attributes.

Request
GET/api/accounts/{accountId}/bank-accounts
    curl https://service.centrapay.com/api/accounts/Jaim1Cu1Q55uooxSens6yk/bank-accounts \
+
GET/api/accounts/{accountId}/bank-accounts

List Bank Accounts

This endpoint allows you to list the Bank Accounts for an account.

Attributes

No attributes.

Request
GET/api/accounts/{accountId}/bank-accounts
    curl https://service.centrapay.com/api/accounts/Jaim1Cu1Q55uooxSens6yk/bank-accounts \
   -H "X-Api-Key: $api_key"
   

-
GET/api/bank-authorities

List Bank Authorities deprecated

If you’re creating new interfaces, please work with List Bank Accounts.

Attributes

No attributes.

Request
GET/api/bank-authorities
    curl https://service.centrapay.com/api/bank-authorities \
+
GET/api/bank-authorities

List Bank Authorities deprecated

If you’re creating new interfaces, please work with List Bank Accounts.

Attributes

No attributes.

Request
GET/api/bank-authorities
    curl https://service.centrapay.com/api/bank-authorities \
   -H "X-Api-Key: $api_key"
   

-
POST/api/bank-authorities

Create Bank Authority deprecated

If you’re creating new interfaces, please work with Create Bank Account.

Creating a Bank Authority both creates a new Bank Account and a direct debit authority. By using this endpoint, the user accepts our Direct Debit terms and has authority to operate this account.

Attributes

  • accountId

    stringrequired

    The id of the owning Centrapay Account  API .

  • fullName

    stringrequired

    The first and last name of the user.

  • phoneNumber

    stringrequired

    The user’s phone number.

  • emailAddress

    stringrequired

    The user’s email address.

  • bankAccountNumber

    stringrequired

    The user’s Bank Account number.

  • bankAccountName

    stringrequired

    The name on the Bank Account provided by the user.

Errors

  • BANK_AUTHORITY_LIMIT_EXCEEDED

    403

    The account already has the max amount of bank accounts.

  • BANK_AUTHORITIES_FOR_BANK_ACCOUNT_EXCEEDED

    403

    There are already two bank accounts for the provided bank account number, which is the maximum allowed.

Request
POST/api/bank-authorities
    curl -X POST https://service.centrapay.com/api/bank-authorities \
+
POST/api/bank-authorities

Create Bank Authority deprecated

If you’re creating new interfaces, please work with Create Bank Account.

Creating a Bank Authority both creates a new Bank Account and a direct debit authority. By using this endpoint, the user accepts our Direct Debit terms and has authority to operate this account.

Attributes

  • accountId

    stringrequired

    The id of the owning Centrapay Account  API .

  • fullName

    stringrequired

    The first and last name of the user.

  • phoneNumber

    stringrequired

    The user’s phone number.

  • emailAddress

    stringrequired

    The user’s email address.

  • bankAccountNumber

    stringrequired

    The user’s Bank Account number.

  • bankAccountName

    stringrequired

    The name on the Bank Account provided by the user.

Errors

  • BANK_AUTHORITY_LIMIT_EXCEEDED

    403

    The account already has the max amount of bank accounts.

  • BANK_AUTHORITIES_FOR_BANK_ACCOUNT_EXCEEDED

    403

    There are already two bank accounts for the provided bank account number, which is the maximum allowed.

Request
POST/api/bank-authorities
    curl -X POST https://service.centrapay.com/api/bank-authorities \
   -H "X-Api-Key: $api_key" \
   -H "Content-Type: application/json" \
   -d '{
@@ -321,7 +321,7 @@
 Copy
 

-
GET/api/bank-authorities/{bankAccountId}

Get Bank Authority deprecated

If you’re creating new interfaces, please work with Get Bank Account.

Attributes

No attributes.

Errors

  • BANK_AUTHORITY_LIMIT_EXCEEDED

    403

    The account already has the max amount of bank accounts.

  • BANK_AUTHORITIES_FOR_BANK_ACCOUNT_EXCEEDED

    403

    There are already two bank accounts for the provided bank account number, which is the maximum allowed.

Request
GET/api/bank-authorities/{bankAccountId}
    curl https://service.centrapay.com/api/bank-authorities/WRhAxxWpTKb5U7pXyxQjjY \
+
GET/api/bank-authorities/{bankAccountId}

Get Bank Authority deprecated

If you’re creating new interfaces, please work with Get Bank Account.

Attributes

No attributes.

Errors

  • BANK_AUTHORITY_LIMIT_EXCEEDED

    403

    The account already has the max amount of bank accounts.

  • BANK_AUTHORITIES_FOR_BANK_ACCOUNT_EXCEEDED

    403

    There are already two bank accounts for the provided bank account number, which is the maximum allowed.

Request
GET/api/bank-authorities/{bankAccountId}
    curl https://service.centrapay.com/api/bank-authorities/WRhAxxWpTKb5U7pXyxQjjY \
   -H "X-Api-Key: $api_key"
   

Farmlands External Asset Batch

Loads Farmlands Card data into Centrapay as external assets.

+

Farmlands External Asset Batch

Loads Farmlands Card data into Centrapay as external assets.

@@ -38,17 +38,17 @@

Account Model

Exported Farmlands Account used for importing and updating of a Centrapay Asset  API .

Attributes

-
  • externalId

    string

    Id used for keeping imported Centrapay Asset up to date.

  • accountNumber

    string

    Farmlands account identifier attached to the Centrapay Asset.

  • availableBalance

    bignumber

    Current spendable balance of Centrapay Asset in cents. When not specified, defaults to 0.

  • contacts

    array

    Contact List for the imported Centrapay Asset. When empty all Contacts are removed.

+
  • externalId

    string

    Id used for keeping imported Centrapay Asset up to date.

  • accountNumber

    string

    Farmlands account identifier attached to the Centrapay Asset.

  • availableBalance

    bignumber

    Current spendable balance of Centrapay Asset in cents. When not specified, defaults to 0.

  • contacts

    array

    Contact List for the imported Centrapay Asset. When empty all Contacts are removed.


Contact Model

Exported Farmlands Contact and Card information used for authentication, correspondence and payment.

Attributes

-
  • externalId

    string

    Id used for keeping imported Centrapay Contact details up to date.

  • name

    string

    The full name used to address the individual.

  • Mobile number used for authentication and correspondence, must start with +64.

  • email

    string

    Email address used for authentication and correspondence.

  • primary

    boolean

    true if the Contact is the owner of the Farmlands Account.

  • cards

    array

    Card list used for payment for the authenticated subject. When empty all Cards are removed.

+
  • externalId

    string

    Id used for keeping imported Centrapay Contact details up to date.

  • name

    string

    The full name used to address the individual.

  • Mobile number used for authentication and correspondence, must start with +64.

  • email

    string

    Email address used for authentication and correspondence.

  • primary

    boolean

    true if the Contact is the owner of the Farmlands Account.

  • cards

    array

    Card list used for payment for the authenticated subject. When empty all Cards are removed.


Card Model

Exported Farmlands Credit Card information used for importing and updating of a Patron Code  API .

Attributes

-
  • externalId

    string

    Farmlands unique identifier for the card.

  • barcode

    bignumber

    Unique 9 digit field to display in barcode format to pay by Patron Code  API .

  • status

    string

    Current state of the Card. Valid values are “active”, “inactive” and “archived”.

  • expiry

    timestamp

    Payments will be accepted until this time.

  • farmlandsStatus

    string

    Private field used in all Farmlands payment transaction notifications.

+
  • externalId

    string

    Farmlands unique identifier for the card.

  • barcode

    bignumber

    Unique 9 digit field to display in barcode format to pay by Patron Code  API .

  • status

    string

    Current state of the Card. Valid values are “active”, “inactive” and “archived”.

  • expiry

    timestamp

    Payments will be accepted until this time.

  • farmlandsStatus

    string

    Private field used in all Farmlands payment transaction notifications.


Example JSONL File

A complete batch example with all batch types included. For more legible examples please refer to Example Models.

diff --git a/api/batch-types/verifone-terminal-status/index.html b/api/batch-types/verifone-terminal-status/index.html index 89fb1d1f8..439da7e18 100644 --- a/api/batch-types/verifone-terminal-status/index.html +++ b/api/batch-types/verifone-terminal-status/index.html @@ -12,13 +12,13 @@ r.src=t+h._hjSettings.hjid+j+h._hjSettings.hjsv; a.appendChild(r); })(window,document,'https://static.hotjar.com/c/hotjar-','.js?sv='); - +

Verifone Terminal Status Batch

Performs a bulk update to the current status for connected Verifone NZ payment terminals. See the Batch  API  resource for how to submit an instance of this batch.

+

Verifone Terminal Status Batch

Performs a bulk update to the current status for connected Verifone NZ payment terminals. See the Batch  API  resource for how to submit an instance of this batch.

@@ -37,7 +37,7 @@
Type NameFile FormatRecord Type
verifone-terminal-statusJSONLTerminal Status

Terminal Status

Attributes

-
  • status

    string

    Current terminal status: “active” or “inactive”.

  • statusMessage

    string

    Reason for status. Eg: “config update required”.

  • terminalId

    string

    Logical terminal id. Eg: “325-136-329”.

  • deviceId

    string

    Hardware serial number. Eg: “T404395000002”.

  • merchantId

    string

    Centrapay Merchant  API  id.

  • merchantConfigId

    string
  • merchantName

    string

    Name of merchant. Eg: “Centra Café”.

  • description

    string

    Description of the device. Eg “Front Till”.

  • model

    string

    Hardware model. Eg: “VX820”.

  • firstSeen

    timestamp

    Date when terminal status was first observed.

  • lastSeen

    timestamp

    Date when terminal status was last observed.

  • configVersion

    string

    Version of loaded terminal configuration. Eg: “20220214.1”.

  • configUpdatedAt

    timestamp

    Date when terminal configuration was loaded.

  • softwareVersion

    string

    Version of terminal software. Eg: “1.7.134”.

  • softwareUpdatedAt

    timestamp

    Date when terminal software was updated.

+
  • status

    string

    Current terminal status: “active” or “inactive”.

  • statusMessage

    string

    Reason for status. Eg: “config update required”.

  • terminalId

    string

    Logical terminal id. Eg: “325-136-329”.

  • deviceId

    string

    Hardware serial number. Eg: “T404395000002”.

  • merchantId

    string

    Centrapay Merchant  API  id.

  • merchantConfigId

    string
  • merchantName

    string

    Name of merchant. Eg: “Centra Café”.

  • description

    string

    Description of the device. Eg “Front Till”.

  • model

    string

    Hardware model. Eg: “VX820”.

  • firstSeen

    timestamp

    Date when terminal status was first observed.

  • lastSeen

    timestamp

    Date when terminal status was last observed.

  • configVersion

    string

    Version of loaded terminal configuration. Eg: “20220214.1”.

  • configUpdatedAt

    timestamp

    Date when terminal configuration was loaded.

  • softwareVersion

    string

    Version of terminal software. Eg: “1.7.134”.

  • softwareUpdatedAt

    timestamp

    Date when terminal software was updated.


Example JSONL File

A complete batch example with all batch types included. For more legible examples please refer to Example Models.

diff --git a/api/batches/index.html b/api/batches/index.html index 08e551c51..38995ac7e 100644 --- a/api/batches/index.html +++ b/api/batches/index.html @@ -12,16 +12,16 @@ r.src=t+h._hjSettings.hjid+j+h._hjSettings.hjsv; a.appendChild(r); })(window,document,'https://static.hotjar.com/c/hotjar-','.js?sv='); - +

Batches

Batches enable bulk loading of resource onto the Centrapay platform.

+

Batches

Batches enable bulk loading of resource onto the Centrapay platform.

Batch Model

Attributes

-
  • id

    string

    The Batch’s unique identifier.

  • status

    string

    The current Lifecycle Stage of the batch.

  • type

    string

    Batch Type id used to describe the batch content.

  • totalCount

    bignumber

    The number of items processed.

  • errorCount

    bignumber

    Total Error counted.

  • errors

    array

    Error list for the batch.

  • test

    boolean

    true if the batch is for testing purposes only.

+
  • id

    string

    The Batch’s unique identifier.

  • status

    string

    The current Lifecycle Stage of the batch.

  • type

    string

    Batch Type id used to describe the batch content.

  • totalCount

    bignumber

    The number of items processed.

  • errorCount

    bignumber

    Total Error counted.

  • errors

    array

    Error list for the batch.

  • test

    boolean

    true if the batch is for testing purposes only.

Batch Lifecycle

Different stages of a Batch’s lifecycle.

Batch Lifecycle

@@ -103,7 +103,7 @@
FieldTypeDescription
messageStringA description of what caused the Error.
externalIdStringField used in debugging in reference to an id from the file.
indexBigNumberItem offset where the Error was identified in the file.

-
POST/api/batches

Create Batch

Initialize loading of entities from a batch file.

Attributes

  • type

    stringrequired

    Batch Type used to describe the batch content.

  • url

    stringrequired

    The url where the file is located.

  • accountId

    stringrequired

    Centrapay Account Id that submitted the Batch.

  • test

    boolean

    true if the batch is for testing purposes only.

Errors

  • LIVENESS_MISMATCH

    403

    accountId test flag is not the same as submitted Batch’s test flag.

Request
POST/api/batches
    curl -X POST https://service.centrapay.com/api/batches \
+
POST/api/batches

Create Batch

Initialize loading of entities from a batch file.

Attributes

  • type

    stringrequired

    Batch Type used to describe the batch content.

  • url

    stringrequired

    The url where the file is located.

  • accountId

    stringrequired

    Centrapay Account Id that submitted the Batch.

  • test

    boolean

    true if the batch is for testing purposes only.

Errors

  • LIVENESS_MISMATCH

    403

    accountId test flag is not the same as submitted Batch’s test flag.

Request
POST/api/batches
    curl -X POST https://service.centrapay.com/api/batches \
   -H "X-Api-Key: $api_key" \
   -H "Content-Type: application/json" \
   -d '{
@@ -131,7 +131,7 @@
 Copy
 

-
GET/api/batches/{batchId}

Get Batch

This endpoint allows you to retrieve a Batch by id.

Attributes

No attributes.

Request
GET/api/batches/{batchId}
    curl https://service.centrapay.com/api/batches/AVH5uG4gRLYK6YR8JyrViN \
+
GET/api/batches/{batchId}

Get Batch

This endpoint allows you to retrieve a Batch by id.

Attributes

No attributes.

Request
GET/api/batches/{batchId}
    curl https://service.centrapay.com/api/batches/AVH5uG4gRLYK6YR8JyrViN \
   -H "X-Api-Key: $api_key"
   

Businesses

A Business represents a company registered with the New Zealand Companies Office. It is associated with a single Account  API .

+

Businesses

A Business represents a company registered with the New Zealand Companies Office. It is associated with a single Account  API .

Business Model

Attributes

-
  • id

    string

    The unique identifier.

  • accountId

    string

    The Centrapay accountId for an org account.

  • accountName

    string

    The Centrapay account name for an org account.

  • nzbn

    string

    The unique NZBN identifier.

  • name

    string

    Legal name recorded in the Companies Register.

  • tradingName

    string

    Trading name recorded in the Companies Register.

  • companyNumber

    string

    Company number recorded in the Companies Register.

  • createdAt

    timestamp

    When the Business was created.

  • updatedAt

    timestamp

    When the Business was updated.

  • createdBy

    crn

    The User or API Key that created the Business.

  • updatedBy

    crn

    The User or API Key that updated the Business.

  • taxNumber

    object

    The value-added tax configuration for the Business. See Tax Number Model.

  • onboardingStatus

    crn

    The onboarding status of the Business. See Onboarding Statuses for possible values.

  • onboardingStatusReason

    string

    The reason associated with the Onboarding Status. See Onboarding Status Reasons for possible values.

+
  • id

    string

    The unique identifier.

  • accountId

    string

    The Centrapay accountId for an org account.

  • accountName

    string

    The Centrapay account name for an org account.

  • nzbn

    string

    The unique NZBN identifier.

  • name

    string

    Legal name recorded in the Companies Register.

  • tradingName

    string

    Trading name recorded in the Companies Register.

  • companyNumber

    string

    Company number recorded in the Companies Register.

  • createdAt

    timestamp

    When the Business was created.

  • updatedAt

    timestamp

    When the Business was updated.

  • createdBy

    crn

    The User or API Key that created the Business.

  • updatedBy

    crn

    The User or API Key that updated the Business.

  • taxNumber

    object

    The value-added tax configuration for the Business. See Tax Number Model.

  • onboardingStatus

    crn

    The onboarding status of the Business. See Onboarding Statuses for possible values.

  • onboardingStatusReason

    string

    The reason associated with the Onboarding Status. See Onboarding Status Reasons for possible values.

Onboarding Statuses

@@ -97,9 +97,9 @@

Tax Number Model

Attributes

-
  • value

    string

    The tax number.

  • type

    string

    Type of value-added tax. Can be nz-gst.

+
  • value

    string

    The tax number.

  • type

    string

    Type of value-added tax. Can be nz-gst.


-
POST/api/businesses

Create Business experimental

This endpoint allows you to create a new Business. If accountId is not provided when creating a Business, then a new org account will be created and associated to the Business.

Attributes

  • nzbn

    stringrequired

    The unique NZBN identifier.

  • accountId

    string

    The Centrapay accountId.

  • test

    string

    The created Centrapay org account will have the test flag.

  • taxNumber

    object

    The value-added tax configuration.

Errors

  • INVALID_ACCOUNT

    403

    Account does not exist, is not authorized, is of the wrong type, or is not in the NZ region.

  • INVALID_NZBN

    403

    The NZBN provided does not match any NZ business.

Request
POST/api/businesses
    curl -X POST https://service.centrapay.com/api/businesses \
+
POST/api/businesses

Create Business experimental

This endpoint allows you to create a new Business. If accountId is not provided when creating a Business, then a new org account will be created and associated to the Business.

Attributes

  • nzbn

    stringrequired

    The unique NZBN identifier.

  • accountId

    string

    The Centrapay accountId.

  • test

    string

    The created Centrapay org account will have the test flag.

  • taxNumber

    object

    The value-added tax configuration.

Errors

  • INVALID_ACCOUNT

    403

    Account does not exist, is not authorized, is of the wrong type, or is not in the NZ region.

  • INVALID_NZBN

    403

    The NZBN provided does not match any NZ business.

Request
POST/api/businesses
    curl -X POST https://service.centrapay.com/api/businesses \
   -H "X-Api-Key: $api_key" \
   -H "Content-Type: application/json" \
   -d '{
@@ -133,7 +133,7 @@
 Copy
 

-
PUT/api/businesses/{businessId}

Update Business experimental

This endpoint allows you to update a Business.

Attributes

  • taxNumber

    object

    The value-added tax configuration.

  • farmlandsBusinessNumber

    string

    The number associated with your Farmlands business.

Errors

  • INVALID_ACCOUNT

    403

    Account does not exist, is not authorized, is of the wrong type, or is not in the NZ region.

  • INVALID_NZBN

    403

    The NZBN provided does not match any NZ business.

Request
PUT/api/businesses/{businessId}
    curl -X PUT https://service.centrapay.com/api/businesses/DKTs3U38hdhfEqwF1JKoT2 \
+
PUT/api/businesses/{businessId}

Update Business experimental

This endpoint allows you to update a Business.

Attributes

  • taxNumber

    object

    The value-added tax configuration.

  • farmlandsBusinessNumber

    string

    The number associated with your Farmlands business.

Errors

  • INVALID_ACCOUNT

    403

    Account does not exist, is not authorized, is of the wrong type, or is not in the NZ region.

  • INVALID_NZBN

    403

    The NZBN provided does not match any NZ business.

Request
PUT/api/businesses/{businessId}
    curl -X PUT https://service.centrapay.com/api/businesses/DKTs3U38hdhfEqwF1JKoT2 \
   -H "X-Api-Key: $api_key" \
   -H "Content-Type: application/json" \
   -d '{
@@ -168,7 +168,7 @@
 Copy
 

-
GET/api/accounts/{accountId}/business

Get Business by Account Id experimental

This endpoint allows you to retrieve a Business by account id.

Attributes

No attributes.

Request
GET/api/accounts/{accountId}/business
    curl https://service.centrapay.com/api/accounts/Jaim1Cu1Q55uooxSens6yk/business \
+
GET/api/accounts/{accountId}/business

Get Business by Account Id experimental

This endpoint allows you to retrieve a Business by account id.

Attributes

No attributes.

Request
GET/api/accounts/{accountId}/business
    curl https://service.centrapay.com/api/accounts/Jaim1Cu1Q55uooxSens6yk/business \
   -H "X-Api-Key: $api_key"
   

-
GET/api/nzbn-search

Search NZ Company Register experimental

This endpoint returns a list of companies that match the queried param on company name, nzbn number or company number. Results are paginated  API  and ordered by relevance.

Attributes

No attributes.

Request
GET/api/nzbn-search
    curl -G https://service.centrapay.com/api/nzbn-search \
+
GET/api/nzbn-search

Search NZ Company Register experimental

This endpoint returns a list of companies that match the queried param on company name, nzbn number or company number. Results are paginated  API  and ordered by relevance.

Attributes

No attributes.

Request
GET/api/nzbn-search
    curl -G https://service.centrapay.com/api/nzbn-search \
   -H "X-Api-Key: $api_key" \
   -d q=centrapay
   

-
GET/api/nzbn/{nzbn}

Get Business Details from NZ Company Register experimental

This endpoint allows you to retrieve a Business by account id.

Attributes

No attributes.

Request
GET/api/nzbn/{nzbn}
    curl https://service.centrapay.com/api/nzbn/9429046246448 \
+
GET/api/nzbn/{nzbn}

Get Business Details from NZ Company Register experimental

This endpoint allows you to retrieve a Business by account id.

Attributes

No attributes.

Request
GET/api/nzbn/{nzbn}
    curl https://service.centrapay.com/api/nzbn/9429046246448 \
   -H "X-Api-Key: $api_key"
   

-
POST/api/businesses/{businessId}/set-onboarding-status

Set Business Onboarding Status

This endpoint returns allows you to set the onboarding status of a Business.

Attributes

Request
POST/api/businesses/{businessId}/set-onboarding-status
    curl -X POST https://service.centrapay.com/api/businesses/DKTs3U38hdhfEqwF1JKoT2/set-onboarding-status \
+
POST/api/businesses/{businessId}/set-onboarding-status

Set Business Onboarding Status

This endpoint returns allows you to set the onboarding status of a Business.

Attributes

Request
POST/api/businesses/{businessId}/set-onboarding-status
    curl -X POST https://service.centrapay.com/api/businesses/DKTs3U38hdhfEqwF1JKoT2/set-onboarding-status \
   -H "X-Api-Key: $api_key" \
   -H "Content-Type: application/json" \
   -d '{
diff --git a/api/data-types/index.html b/api/data-types/index.html
index cfec83e79..6669580c8 100644
--- a/api/data-types/index.html
+++ b/api/data-types/index.html
@@ -12,7 +12,7 @@
         r.src=t+h._hjSettings.hjid+j+h._hjSettings.hjsv;
         a.appendChild(r);
       })(window,document,'https://static.hotjar.com/c/hotjar-','.js?sv=');
-    
+    
 
 
 
diff --git a/api/external-assets/index.html b/api/external-assets/index.html
index 626652471..2dcc67b5d 100644
--- a/api/external-assets/index.html
+++ b/api/external-assets/index.html
@@ -12,15 +12,15 @@
         r.src=t+h._hjSettings.hjid+j+h._hjSettings.hjsv;
         a.appendChild(r);
       })(window,document,'https://static.hotjar.com/c/hotjar-','.js?sv=');
-    
+    
 
 
 
 
 

External Assets

External assets are Assets  API  which are issued by a third-party.

+

External Assets

External assets are Assets  API  which are issued by a third-party.


-
POST/api/external-assets

Load an External Asset

Load an asset from a supported third-party issuer. Asset details will be obtained from the issuer.

Attributes

  • accountId

    stringrequired

    The Centrapay account which will own the asset.

  • category

    stringrequired

    The category an asset will be grouped by. Valid values: “giftcard”.

  • type

    stringrequired

    The Centrapay ledger corresponding to the asset. Valid values: “epay.nzd.main”, “epay.nzd.test”.

  • issuer

    stringrequired

    The asset issuer. Valid values: “ezipay”.

  • externalId

    stringrequired

    The issuer’s asset id such as card number.

  • pin

    string

    Additional secret required by the issuer for loading or redeeming the asset.

  • description

    string

    Description of the asset, eg: “$60 Acme Giftcard”.

Errors

  • UNKNOWN_ASSET

    403

    Asset id or PIN is incorrect.

  • DUPLICATE_ASSET

    403

    Asset already claimed by another account.

  • UNSUPPORTED_ASSET_TYPE

    403

    Unsupported asset type, origin, or issuer.

  • DENIED_BY_ASSET_PROVIDER

    403

    Asset exists, but is not enabled for use through Centrapay.

  • EXPIRED_BY_ASSET_PROVIDER

    403

    Asset exists, but it’s expired.

Request
POST/api/external-assets
    curl -X POST https://service.centrapay.com/api/external-assets \
+
POST/api/external-assets

Load an External Asset

Load an asset from a supported third-party issuer. Asset details will be obtained from the issuer.

Attributes

  • accountId

    stringrequired

    The Centrapay account which will own the asset.

  • category

    stringrequired

    The category an asset will be grouped by. Valid values: “giftcard”.

  • type

    stringrequired

    The Centrapay ledger corresponding to the asset. Valid values: “epay.nzd.main”, “epay.nzd.test”.

  • issuer

    stringrequired

    The asset issuer. Valid values: “ezipay”.

  • externalId

    stringrequired

    The issuer’s asset id such as card number.

  • pin

    string

    Additional secret required by the issuer for loading or redeeming the asset.

  • description

    string

    Description of the asset, eg: “$60 Acme Giftcard”.

Errors

  • UNKNOWN_ASSET

    403

    Asset id or PIN is incorrect.

  • DUPLICATE_ASSET

    403

    Asset already claimed by another account.

  • UNSUPPORTED_ASSET_TYPE

    403

    Unsupported asset type, origin, or issuer.

  • DENIED_BY_ASSET_PROVIDER

    403

    Asset exists, but is not enabled for use through Centrapay.

  • EXPIRED_BY_ASSET_PROVIDER

    403

    Asset exists, but it’s expired.

Request
POST/api/external-assets
    curl -X POST https://service.centrapay.com/api/external-assets \
   -H "X-Api-Key: $api_key" \
   -H "Content-Type: application/json" \
   -d '{
diff --git a/api/funds-transfers/index.html b/api/funds-transfers/index.html
index 8d67c1658..c3e285b8f 100644
--- a/api/funds-transfers/index.html
+++ b/api/funds-transfers/index.html
@@ -12,15 +12,15 @@
         r.src=t+h._hjSettings.hjid+j+h._hjSettings.hjsv;
         a.appendChild(r);
       })(window,document,'https://static.hotjar.com/c/hotjar-','.js?sv=');
-    
+    
 
 
 
 
 

Funds Transfers

A funds transfer represents either a top up to or a withdrawal from a Centrapay wallet. Topping up a wallet consists of making a bank transfer from the user’s bank account to Centrapay. Once Centrapay has verified the transfer was successful a user will be given credit on their Centrapay wallet equal to the amount of the bank transfer.

+

Funds Transfers

A funds transfer represents either a top up to or a withdrawal from a Centrapay wallet. Topping up a wallet consists of making a bank transfer from the user’s bank account to Centrapay. Once Centrapay has verified the transfer was successful a user will be given credit on their Centrapay wallet equal to the amount of the bank transfer.


-
POST/api/topups

Create a Top Up

This endpoint allows you to create a topup.

Attributes

  • amount

    bignumberrequired

    Total amount of the transaction in cents

  • assetId

    stringrequired

    The id of the asset

  • bankAccountId

    stringrequired

    The id of the bank account

Errors

  • BANK_AUTHORITY_WALLET_MISMATCH

    403

    The wallet and the bank account for the top up request do not belong to the same account.

  • MAX_INFLIGHT_TOPUPS_EXCEEDED

    403

    The bank account already has ten pending top ups, which is the maximum a bank authority can have at any one time.

  • MAX_INFLIGHT_TOPUP_AMOUNT_EXCEEDED

    403

    The top up can not be created because it is above the max amount of funds a bank account can have pending at any one time. The max amount is $1000.00 for verified bank accounts and $100.00 for non-verified bank accounts.

  • QUOTA_EXCEEDED

    403

    The topup exceeds one or more top up quota limits. See Quota Error Response  API .

  • DIRECT_DEBIT_NOT_AUTHORIZED

    403

    Bank account requires authorization for top up. See bank accounts direct debit endpoint  API .

  • INVALID_WALLET_TYPE

    403

    The wallet type does not support top ups. See settlement wallets  API .

  • BANK_ACCOUNT_TYPE_NOT_CONFIGURED_FOR_TOPUP

    403

    The bank account type is not configured for topups. Only centrapay type bank accounts are configured.

Request
POST/api/topups
    curl -X POST https://service.centrapay.com/api/topups \
+
POST/api/topups

Create a Top Up

This endpoint allows you to create a topup.

Attributes

  • amount

    bignumberrequired

    Total amount of the transaction in cents

  • assetId

    stringrequired

    The id of the asset

  • bankAccountId

    stringrequired

    The id of the bank account

Errors

  • BANK_AUTHORITY_WALLET_MISMATCH

    403

    The wallet and the bank account for the top up request do not belong to the same account.

  • MAX_INFLIGHT_TOPUPS_EXCEEDED

    403

    The bank account already has ten pending top ups, which is the maximum a bank authority can have at any one time.

  • MAX_INFLIGHT_TOPUP_AMOUNT_EXCEEDED

    403

    The top up can not be created because it is above the max amount of funds a bank account can have pending at any one time. The max amount is $1000.00 for verified bank accounts and $100.00 for non-verified bank accounts.

  • QUOTA_EXCEEDED

    403

    The topup exceeds one or more top up quota limits. See Quota Error Response  API .

  • DIRECT_DEBIT_NOT_AUTHORIZED

    403

    Bank account requires authorization for top up. See bank accounts direct debit endpoint  API .

  • INVALID_WALLET_TYPE

    403

    The wallet type does not support top ups. See settlement wallets  API .

  • BANK_ACCOUNT_TYPE_NOT_CONFIGURED_FOR_TOPUP

    403

    The bank account type is not configured for topups. Only centrapay type bank accounts are configured.

Request
POST/api/topups
    curl -X POST https://service.centrapay.com/api/topups \
   -H "X-Api-Key: $api_key" \
   -H "Content-Type: application/json" \
   -d '{
@@ -45,7 +45,7 @@
 Copy
 

-
GET/api/topups/{topupId}

Get Top Up

This endpoint allows you to retrieve a Top Up by id.

Attributes

No attributes.

Request
GET/api/topups/{topupId}
    curl https://service.centrapay.com/api/topups/WRhAxxWpTKb5U7pXyxQjjY \
+
GET/api/topups/{topupId}

Get Top Up

This endpoint allows you to retrieve a Top Up by id.

Attributes

No attributes.

Request
GET/api/topups/{topupId}
    curl https://service.centrapay.com/api/topups/WRhAxxWpTKb5U7pXyxQjjY \
   -H "X-Api-Key: $api_key"
   

-
GET/api/topups

List Top Ups For Authorized Accounts

This endpoint allows you to list the Top Ups for authorized accounts.

Attributes

No attributes.

Request
GET/api/topups
    curl https://service.centrapay.com/api/topups \
+
GET/api/topups

List Top Ups For Authorized Accounts

This endpoint allows you to list the Top Ups for authorized accounts.

Attributes

No attributes.

Request
GET/api/topups
    curl https://service.centrapay.com/api/topups \
   -H "X-Api-Key: $api_key"
   

-
GET/api/accounts/{accountId}/topups

List Top Ups For an Account experimental

This endpoint allows you to list the Top Ups for an account.

Attributes

No attributes.

Request
GET/api/accounts/{accountId}/topups
    curl https://service.centrapay.com/api/accounts/aBc932S9182qwCDqwer/topups \
+
GET/api/accounts/{accountId}/topups

List Top Ups For an Account experimental

This endpoint allows you to list the Top Ups for an account.

Attributes

No attributes.

Request
GET/api/accounts/{accountId}/topups
    curl https://service.centrapay.com/api/accounts/aBc932S9182qwCDqwer/topups \
   -H "X-Api-Key: $api_key"
   

-
POST/api/withdrawals

Create Withdrawal experimental

This endpoint allows you to create a withdrawal.

Attributes

  • amount

    bignumberrequired

    Total amount of the transaction in cents

  • assetId

    stringrequired

    The id of the asset

  • bankAccountId

    stringrequired

    The id of the bank account

Errors

  • BANK_AUTHORITY_WALLET_MISMATCH

    403

    The wallet and the bank account for the withdrawal request do not belong to the same account.

  • INSUFFICIENT_WALLET_BALANCE

    403

    The wallet balance is less than the required amount.

  • INVALID_WALLET_TYPE

    403

    The wallet type does not support withdrawals. See settlement wallets  API .

  • BANK_ACCOUNT_TYPE_NOT_CONFIGURED_FOR_WITHDRAWAL

    403

    The bank account type is not configured for withdrawals. Only centrapay type bank accounts are configured.

Request
POST/api/withdrawals
    curl -X POST https://service.centrapay.com/api/withdrawals \
+
POST/api/withdrawals

Create Withdrawal experimental

This endpoint allows you to create a withdrawal.

Attributes

  • amount

    bignumberrequired

    Total amount of the transaction in cents

  • assetId

    stringrequired

    The id of the asset

  • bankAccountId

    stringrequired

    The id of the bank account

Errors

  • BANK_AUTHORITY_WALLET_MISMATCH

    403

    The wallet and the bank account for the withdrawal request do not belong to the same account.

  • INSUFFICIENT_WALLET_BALANCE

    403

    The wallet balance is less than the required amount.

  • INVALID_WALLET_TYPE

    403

    The wallet type does not support withdrawals. See settlement wallets  API .

  • BANK_ACCOUNT_TYPE_NOT_CONFIGURED_FOR_WITHDRAWAL

    403

    The bank account type is not configured for withdrawals. Only centrapay type bank accounts are configured.

Request
POST/api/withdrawals
    curl -X POST https://service.centrapay.com/api/withdrawals \
   -H "X-Api-Key: $api_key" \
   -H "Content-Type: application/json" \
   -d '{
@@ -153,7 +153,7 @@
 Copy
 

-
GET/api/withdrawals/{withdrawalId}

Get Withdrawal experimental

This endpoint allows you to retrieve a Withdrawal by id.

Attributes

No attributes.

Errors

  • BANK_AUTHORITY_WALLET_MISMATCH

    403

    The wallet and the bank account for the withdrawal request do not belong to the same account.

  • INSUFFICIENT_WALLET_BALANCE

    403

    The wallet balance is less than the required amount.

  • INVALID_WALLET_TYPE

    403

    The wallet type does not support withdrawals. See settlement wallets  API .

  • BANK_ACCOUNT_TYPE_NOT_CONFIGURED_FOR_WITHDRAWAL

    403

    The bank account type is not configured for withdrawals. Only centrapay type bank accounts are configured.

Request
GET/api/withdrawals/{withdrawalId}
    curl https://service.centrapay.com/api/withdrawals/WRhAxxWpTKb5U7pXyxQjjY \
+
GET/api/withdrawals/{withdrawalId}

Get Withdrawal experimental

This endpoint allows you to retrieve a Withdrawal by id.

Attributes

No attributes.

Errors

  • BANK_AUTHORITY_WALLET_MISMATCH

    403

    The wallet and the bank account for the withdrawal request do not belong to the same account.

  • INSUFFICIENT_WALLET_BALANCE

    403

    The wallet balance is less than the required amount.

  • INVALID_WALLET_TYPE

    403

    The wallet type does not support withdrawals. See settlement wallets  API .

  • BANK_ACCOUNT_TYPE_NOT_CONFIGURED_FOR_WITHDRAWAL

    403

    The bank account type is not configured for withdrawals. Only centrapay type bank accounts are configured.

Request
GET/api/withdrawals/{withdrawalId}
    curl https://service.centrapay.com/api/withdrawals/WRhAxxWpTKb5U7pXyxQjjY \
   -H "X-Api-Key: $api_key"
   

-
GET/api/accounts/{accountId}/withdrawals

List Withdrawals for an Account experimental

This endpoint allows you to list the withdrawals for an Account.

Attributes

No attributes.

Request
GET/api/accounts/{accountId}/withdrawals
    curl https://service.centrapay.com/api/accounts/aBc932S9182qwCDqwer/withdrawals \
+
GET/api/accounts/{accountId}/withdrawals

List Withdrawals for an Account experimental

This endpoint allows you to list the withdrawals for an Account.

Attributes

No attributes.

Request
GET/api/accounts/{accountId}/withdrawals
    curl https://service.centrapay.com/api/accounts/aBc932S9182qwCDqwer/withdrawals \
   -H "X-Api-Key: $api_key"
   

-
POST/api/funds-transfers/{fundsTransferId}/abort

Abort Funds Transfer

This endpoint allows you to abort a Funds Transfer.

Attributes

No attributes.

Errors

  • ABORT_WITHDRAWAL_NOT_SUPPORTED

    403

    Aborting funds transfers of type withdrawal is not supported.

  • FUNDS_TRANSFER_ALREADY_COMPLETE

    403

    The funds transfer is already complete.

Request
POST/api/funds-transfers/{fundsTransferId}/abort
    curl -X POST https://service.centrapay.com/api/funds-transfers/5thg2RPBZEfYTPJdQ63Cre/abort \
+
POST/api/funds-transfers/{fundsTransferId}/abort

Abort Funds Transfer

This endpoint allows you to abort a Funds Transfer.

Attributes

No attributes.

Errors

  • ABORT_WITHDRAWAL_NOT_SUPPORTED

    403

    Aborting funds transfers of type withdrawal is not supported.

  • FUNDS_TRANSFER_ALREADY_COMPLETE

    403

    The funds transfer is already complete.

Request
POST/api/funds-transfers/{fundsTransferId}/abort
    curl -X POST https://service.centrapay.com/api/funds-transfers/5thg2RPBZEfYTPJdQ63Cre/abort \
   -H "X-Api-Key: $api_key"
   

Integration Requests

An Integration Request allows Centrapay users to request the creation of an Integration  API  on a Centrapay Account.

+

Integration Requests

An Integration Request allows Centrapay users to request the creation of an Integration  API  on a Centrapay Account.

Integration Request Model

Attributes

-
  • id

    string

    The unique identifier of the Integration Request.

  • accountId

    string

    The Integration Request’s owning Centrapay Account  API  id.

  • merchantId

    string

    The Merchant  API  id for the Integration Request.

  • type

    object

    The type of the Integration Request. Refer to Integration Types.

  • status

    string

    The current status of the Integration Request. Supported values are active, available, pending, rejected and disabled.

  • terminalId

    string

    Epay terminalId for the Integration Request. Required if type is epay.

  • terminal

    object

    The terminal configuration. Required for all terminal vendors except Vista. Refer to Terminal.

  • product

    object

    The requested Epay gift card types to support. Refer to Product.

+
  • id

    string

    The unique identifier of the Integration Request.

  • accountId

    string

    The Integration Request’s owning Centrapay Account  API  id.

  • merchantId

    string

    The Merchant  API  id for the Integration Request.

  • type

    object

    The type of the Integration Request. Refer to Integration Types.

  • status

    string

    The current status of the Integration Request. Supported values are active, available, pending, rejected and disabled.

  • terminalId

    string

    Epay terminalId for the Integration Request. Required if type is epay.

  • terminal

    object

    The terminal configuration. Required for all terminal vendors except Vista. Refer to Terminal.

  • product

    object

    The requested Epay gift card types to support. Refer to Product.

Terminal

-
  • terminalId

    string

    The software or logical id of the payment terminal.

  • deviceId

    string

    The hardware id or serial number of the payment terminal.

+
  • terminalId

    string

    The software or logical id of the payment terminal.

  • deviceId

    string

    The hardware id or serial number of the payment terminal.


Product

-
  • name

    string

    The name of the requested Epay product.

+
  • name

    string

    The name of the requested Epay product.

Integration Types

@@ -67,7 +67,7 @@
NameDescription
epayAsset provider ePay
invencoTerminal vendor invenco
skyzerTerminal vendor skyzer
smartpayTerminal vendor smartpay
verifoneTerminal vendor Verifone
vistaTerminal vendor vista
windcaveTerminal vendor Windcave

-
POST/api/integration-requests

Create an Integration Request experimental

This endpoint allows you to create an Integration Request.

Attributes

  • merchantId

    stringrequired

    The Merchant  API  id for the Integration Request.

  • type

    objectrequired

    The type of the Integration Request. Refer to Integration Types.

  • terminal

    object

    The terminal configuration. Required for all terminal vendors except Vista. Refer to Terminal.

  • product

    object

    The requested Epay gift card types to support. Refer to Product.

Request
POST/api/integration-requests
    curl -X POST https://service.centrapay.com/api/integration-requests \
+
POST/api/integration-requests

Create an Integration Request experimental

This endpoint allows you to create an Integration Request.

Attributes

  • merchantId

    stringrequired

    The Merchant  API  id for the Integration Request.

  • type

    objectrequired

    The type of the Integration Request. Refer to Integration Types.

  • terminal

    object

    The terminal configuration. Required for all terminal vendors except Vista. Refer to Terminal.

  • product

    object

    The requested Epay gift card types to support. Refer to Product.

Request
POST/api/integration-requests
    curl -X POST https://service.centrapay.com/api/integration-requests \
   -H "X-Api-Key: $api_key" \
   -H "Content-Type: application/json" \
   -d '{
@@ -99,7 +99,7 @@
 Copy
 

-
GET/api/integration-requests/{integrationRequestId}

Get an Integration Request experimental

This endpoint allows you to get an Integration Request.

Attributes

No attributes.

Request
GET/api/integration-requests/{integrationRequestId}
    curl https://service.centrapay.com/api/integration-requests/DKTs3U38hdhfEqwF1JKoT2 \
+
GET/api/integration-requests/{integrationRequestId}

Get an Integration Request experimental

This endpoint allows you to get an Integration Request.

Attributes

No attributes.

Request
GET/api/integration-requests/{integrationRequestId}
    curl https://service.centrapay.com/api/integration-requests/DKTs3U38hdhfEqwF1JKoT2 \
   -H "X-Api-Key: $api_key"
   

-
GET/api/integration-requests

Search Merchants

Returns a paginated  API  response of Integration Requests.

Query Parameters

  • accountId

    string

    The Integration Request’s owning Centrapay Account id. Required unless caller has global read access permission.

  • type

    string

    The type of Integration Request.

  • pending

    boolean

    When set to true, only include Integration Requests with pending status.

Request
GET/api/integration-requests
    curl -G https://service.centrapay.com/api/integration-requests \
+
GET/api/integration-requests

Search Merchants

Returns a paginated  API  response of Integration Requests.

Query Parameters

  • accountId

    string

    The Integration Request’s owning Centrapay Account id. Required unless caller has global read access permission.

  • type

    string

    The type of Integration Request.

  • pending

    boolean

    When set to true, only include Integration Requests with pending status.

Request
GET/api/integration-requests
    curl -G https://service.centrapay.com/api/integration-requests \
   -H "X-Api-Key: $api_key" \
   -d type=epay \
   -d pending=true \
@@ -152,7 +152,7 @@
 Copy
 

-
PUT/api/integration-requests/{integrationRequestId}/configs

Configure Integration Request experimental

This endpoint allows you to supply configuration values for the Integration Request.

Attributes

  • terminalId

    string

    Epay terminalId for the Integration Request. Required if type is epay.

Request
PUT/api/integration-requests/{integrationRequestId}/configs
    curl -X PUT https://service.centrapay.com/api/integration-requests/DKTs3U38hdhfEqwF1JKoT2/configs \
+
PUT/api/integration-requests/{integrationRequestId}/configs

Configure Integration Request experimental

This endpoint allows you to supply configuration values for the Integration Request.

Attributes

  • terminalId

    string

    Epay terminalId for the Integration Request. Required if type is epay.

Request
PUT/api/integration-requests/{integrationRequestId}/configs
    curl -X PUT https://service.centrapay.com/api/integration-requests/DKTs3U38hdhfEqwF1JKoT2/configs \
   -H "X-Api-Key: $api_key" \
   -H "Content-Type: application/json" \
   -d '{
@@ -179,7 +179,7 @@
 Copy
 

-
GET/api/integration-requests/{integrationRequestId}/configs

Get Integration Request Configuration experimental

This endpoint allows you to get the configuration values for the Integration Request.

Attributes

No attributes.

Request
GET/api/integration-requests/{integrationRequestId}/configs
    curl https://service.centrapay.com/api/integration-requests/DKTs3U38hdhfEqwF1JKoT2/configs \
+
GET/api/integration-requests/{integrationRequestId}/configs

Get Integration Request Configuration experimental

This endpoint allows you to get the configuration values for the Integration Request.

Attributes

No attributes.

Request
GET/api/integration-requests/{integrationRequestId}/configs
    curl https://service.centrapay.com/api/integration-requests/DKTs3U38hdhfEqwF1JKoT2/configs \
   -H "X-Api-Key: $api_key"
   

-
POST/api/integration-requests/{integrationRequestId}/activate

Activate Integration Request experimental

This endpoint allows you to activate an Integration Request.

Attributes

No attributes.

Errors

  • INTEGRATION_PARAM_MISSING

    403

    Integration Request needs updating with the required parameters before activating.

  • INTEGRATION_ALREADY_ACTIVATED

    403

    Integration Request is already activated.

Request
POST/api/integration-requests/{integrationRequestId}/activate
    curl -X POST https://service.centrapay.com/api/integration-requests/DKTs3U38hdhfEqwF1JKoT2/activate \
+
POST/api/integration-requests/{integrationRequestId}/activate

Activate Integration Request experimental

This endpoint allows you to activate an Integration Request.

Attributes

No attributes.

Errors

  • INTEGRATION_PARAM_MISSING

    403

    Integration Request needs updating with the required parameters before activating.

  • INTEGRATION_ALREADY_ACTIVATED

    403

    Integration Request is already activated.

Request
POST/api/integration-requests/{integrationRequestId}/activate
    curl -X POST https://service.centrapay.com/api/integration-requests/DKTs3U38hdhfEqwF1JKoT2/activate \
   -H "X-Api-Key: $api_key"
   

-
DELETE/api/integration-requests/{integrationRequestId}

Delete Integration Request experimental

This endpoint allows you to delete an Integration Request.

Attributes

No attributes.

Request
POST/api/integration-requests/{integrationRequestId}
    curl -X DELETE https://service.centrapay.com/api/integration-requests/DKTs3U38hdhfEqwF1JKoT2 \
+
DELETE/api/integration-requests/{integrationRequestId}

Delete Integration Request experimental

This endpoint allows you to delete an Integration Request.

Attributes

No attributes.

Request
POST/api/integration-requests/{integrationRequestId}
    curl -X DELETE https://service.centrapay.com/api/integration-requests/DKTs3U38hdhfEqwF1JKoT2 \
   -H "X-Api-Key: $api_key"
   

Introduction

The Centrapay API is an RMM +

Introduction

The Centrapay API is an RMM level 2 RESTful web service which expresses operations in terms of HTTP verbs on resource-oriented URLs. API endpoint definitions in these docs are grouped by resource type along with definitions for the associated resource types.

Most API calls require authentication  API  using an API key or JWT. HTTP requests and responses usually have JSON payloads and use “application/json” as the content type.

-

Some API features may be flagged as experimental. These API features may be +

Some API features may be flagged as experimental. These API features may be removed or changed without warning and should not be relied on in a production setting.

\ No newline at end of file diff --git a/api/invitations/index.html b/api/invitations/index.html index 3c9a096db..60752fe2f 100644 --- a/api/invitations/index.html +++ b/api/invitations/index.html @@ -12,22 +12,22 @@ r.src=t+h._hjSettings.hjid+j+h._hjSettings.hjsv; a.appendChild(r); })(window,document,'https://static.hotjar.com/c/hotjar-','.js?sv='); - +

Invitations

An Invitation can be used to allow users to claim ownership of a resource on the Centrapay platform.

+

Invitations

An Invitation can be used to allow users to claim ownership of a resource on the Centrapay platform.

Invitation Model

Attributes

-
  • id

    string

    The Invitation’s unique identifier.

  • code

    string

    The Invitation code.

  • type

    string

    The type of invitation. Supported values are account-membership.

  • resourceId

    string

    The id of the related resource.

  • resourceType

    string

    The type of the related resource. Supported values are account.

  • expiresAt

    timestamp

    When the Invitation expires.

  • createdAt

    timestamp

    When the Invitation was created.

  • createdBy

    crn

    The User or API Key that created the Invitation.

  • updatedAt

    timestamp

    When the Invitation was updated.

  • updatedBy

    crn

    The User or API Key that updated the Invitation.

  • accepted

    boolean

    A flag indicating whether the Invitation has been accepted.

  • acceptedAt

    timestamp

    When the Invitation was accepted.

  • acceptedBy

    crn

    The User or API Key that accepted the Invitation.

  • acceptedByAccountId

    string

    The Account  API  id of the user accepting the Invitation.

  • recipientAlias

    string

    The email address of the user accepting the Invitation.

  • params

    object

    Params dependent on the Invitation type.

  • status

    string

    The status of the invitation. Possible values are created, sent, accepted and revoked.

+
  • id

    string

    The Invitation’s unique identifier.

  • code

    string

    The Invitation code.

  • type

    string

    The type of invitation. Supported values are account-membership.

  • resourceId

    string

    The id of the related resource.

  • resourceType

    string

    The type of the related resource. Supported values are account.

  • expiresAt

    timestamp

    When the Invitation expires.

  • createdAt

    timestamp

    When the Invitation was created.

  • createdBy

    crn

    The User or API Key that created the Invitation.

  • updatedAt

    timestamp

    When the Invitation was updated.

  • updatedBy

    crn

    The User or API Key that updated the Invitation.

  • accepted

    boolean

    A flag indicating whether the Invitation has been accepted.

  • acceptedAt

    timestamp

    When the Invitation was accepted.

  • acceptedBy

    crn

    The User or API Key that accepted the Invitation.

  • acceptedByAccountId

    string

    The Account  API  id of the user accepting the Invitation.

  • recipientAlias

    string

    The email address of the user accepting the Invitation.

  • params

    object

    Params dependent on the Invitation type.

  • status

    string

    The status of the invitation. Possible values are created, sent, accepted and revoked.


Params Model

Attributes

-
  • role

    string

    The role assigned to the recipient, for invitations of type account-membership.

  • accountName

    string

    The name of the account that the recipient is invited to, for invitations of type account-membership

+
  • role

    string

    The role assigned to the recipient, for invitations of type account-membership.

  • accountName

    string

    The name of the account that the recipient is invited to, for invitations of type account-membership


-
POST/api/invitations

Create Invitation experimental

This endpoint allows you to create an Invitation.

Attributes

  • type

    stringrequired

    The type of invitation. Supported values are account-membership.

  • resourceId

    stringrequired

    The id of the related resource.

  • resourceType

    stringrequired

    The type of the related resource. Supported values are account.

  • recipientAlias

    stringrequired

    The email address of the user accepting the Invitation.

  • params

    objectrequired

    Params depending on the Invitation type.

  • role

    stringrequired

    The role that will be assigned to the user when the Invitation is accepted.

Errors

  • INVALID_ACCOUNT_TYPE

    403

    The resourceId is associated with an account with a non org type.

  • RECIPIENT_ALREADY_INVITED

    403

    An active invitation for this recipientAlias and resource already exists, or the recipient has already joined the resource.

Request
POST/api/invitations
    curl -X POST https://service.centrapay.com/api/invitations \
+
POST/api/invitations

Create Invitation experimental

This endpoint allows you to create an Invitation.

Attributes

  • type

    stringrequired

    The type of invitation. Supported values are account-membership.

  • resourceId

    stringrequired

    The id of the related resource.

  • resourceType

    stringrequired

    The type of the related resource. Supported values are account.

  • recipientAlias

    stringrequired

    The email address of the user accepting the Invitation.

  • params

    objectrequired

    Params depending on the Invitation type.

  • role

    stringrequired

    The role that will be assigned to the user when the Invitation is accepted.

Errors

  • INVALID_ACCOUNT_TYPE

    403

    The resourceId is associated with an account with a non org type.

  • RECIPIENT_ALREADY_INVITED

    403

    An active invitation for this recipientAlias and resource already exists, or the recipient has already joined the resource.

Request
POST/api/invitations
    curl -X POST https://service.centrapay.com/api/invitations \
   -H "X-Api-Key: $api_key" \
   -H "Content-Type: application/json" \
   -d '{
@@ -63,7 +63,7 @@
 Copy
 

-
GET/api/invitations/code/{code}

Get Invitation By Code experimental

This endpoint allows you to retrieve an Invitation by code.

Attributes

No attributes.

Request
GET/api/invitations/code/{code}
    curl https://service.centrapay.com/api/invitations/code/WIj211vFs9cNACwBb04vQw \
+
GET/api/invitations/code/{code}

Get Invitation By Code experimental

This endpoint allows you to retrieve an Invitation by code.

Attributes

No attributes.

Request
GET/api/invitations/code/{code}
    curl https://service.centrapay.com/api/invitations/code/WIj211vFs9cNACwBb04vQw \
   -H "X-Api-Key: $api_key"
   

-
GET/api/accounts/{accountId}/invitations

List Invitations by Account Id experimental

This endpoint allows you list Invitations for an Account.

Attributes

No attributes.

Request
GET/api/accounts/{accountId}/invitations
    curl https://service.centrapay.com/api/accounts/{accountId}/invitations \
+
GET/api/accounts/{accountId}/invitations

List Invitations by Account Id experimental

This endpoint allows you list Invitations for an Account.

Attributes

No attributes.

Request
GET/api/accounts/{accountId}/invitations
    curl https://service.centrapay.com/api/accounts/{accountId}/invitations \
   -H "X-Api-Key: $api_key"
   

-
POST/api/invitations/{invitationId}/accept

Accept Invitation experimental

This endpoint allows you to accept an Invitation.

Attributes

  • code

    stringrequired

    The Invitation code.

  • accountId

    stringrequired

    The Account  API  id of the user accepting the Invitation.

Errors

  • INVITATION_EXPIRED

    403

    The Invitation is expired.

  • INVITATION_ALREADY_ACCEPTED

    403

    The Invitation has already been accepted.

  • RECIPIENT_ALIAS_MISMATCH

    403

    The alias of the user accepting an Invitation is not the same as the recipientAlias of the Invitation.

  • INVITATION_REVOKED

    403

    The Invitation was revoked.

Request
POST/api/invitations/{invitationId}/accept
    curl -X POST https://service.centrapay.com/api/invitations/DKTs3U38hdhfEqwF1JKoT2/accept \
+
POST/api/invitations/{invitationId}/accept

Accept Invitation experimental

This endpoint allows you to accept an Invitation.

Attributes

  • code

    stringrequired

    The Invitation code.

  • accountId

    stringrequired

    The Account  API  id of the user accepting the Invitation.

Errors

  • INVITATION_EXPIRED

    403

    The Invitation is expired.

  • INVITATION_ALREADY_ACCEPTED

    403

    The Invitation has already been accepted.

  • RECIPIENT_ALIAS_MISMATCH

    403

    The alias of the user accepting an Invitation is not the same as the recipientAlias of the Invitation.

  • INVITATION_REVOKED

    403

    The Invitation was revoked.

Request
POST/api/invitations/{invitationId}/accept
    curl -X POST https://service.centrapay.com/api/invitations/DKTs3U38hdhfEqwF1JKoT2/accept \
   -H "X-Api-Key: $api_key" \
   -H "Content-Type: application/json" \
   -d '{
@@ -160,7 +160,7 @@
 Copy
 

-
POST/api/invitations/{invitationId}/revoke

Revoke Invitation experimental

This endpoint allows you to revoke an Invitation.

Attributes

No attributes

Errors

  • INVITATION_EXPIRED

    403

    The Invitation is expired.

  • INVITATION_ACCEPTED

    403

    The Invitation has already been accepted.

Request
POST/api/invitations/{invitationId}/revoke
    curl -X POST https://service.centrapay.com/api/invitations/DKTs3U38hdhfEqwF1JKoT2/revoke \
+
POST/api/invitations/{invitationId}/revoke

Revoke Invitation experimental

This endpoint allows you to revoke an Invitation.

Attributes

No attributes

Errors

  • INVITATION_EXPIRED

    403

    The Invitation is expired.

  • INVITATION_ACCEPTED

    403

    The Invitation has already been accepted.

Request
POST/api/invitations/{invitationId}/revoke
    curl -X POST https://service.centrapay.com/api/invitations/DKTs3U38hdhfEqwF1JKoT2/revoke \
   -H "X-Api-Key: $api_key"
   

Legacy Payment Requests

Centrapay Payment Requests are serviced via two sets of endpoints; the “next” +

Legacy Payment Requests

Centrapay Payment Requests are serviced via two sets of endpoints; the “next” version (documented Payment Requests  API ) and the “legacy” version -(documented on this page). These endpoints are deprecated.

+(documented on this page). These endpoints are deprecated.

Use of legacy endpoints for new integrations is discouraged where alternative endpoints have been provided.


-

Payment Request Model deprecated

+

Payment Request Model deprecated

Attributes

-
  • requestId

    string

    The ID of the Payment Request.

  • merchantId

    string

    The ID of the Merchant creating the request.

  • merchantName

    string

    The name of the Merchant the Payment Request is on behalf of.

  • clientId

    string

    The ID of the merchant specific client configuration.

  • denomination

    monetary

    The value of the Payment Request.

  • payments

    array
  • qrCode

    string

    The URL for a Centrapay webpage that allows the user to pay the Payment Request.

  • requestCode

    string

    The URL for a Centrapay webpage that allows the user to pay the Payment Request.

  • patronCode

    string

    The id of a Patron Code  API  the payment request is attached to.

  • status

    string

    new, paid, cancelled, or expired.

  • cancellationReason

    string
  • createdAt

    timestamp

    When the Payment Request was created.

  • updatedAt

    timestamp

    When the Payment Request was updated.

  • liveness

    string

    Indicates liveness of assets that are accepted, determined by the payment options. Values are main or test.

  • paymentExpirySeconds

    string

    The expiry seconds used to configure the Payment Request expiry.

  • terminalId

    string

    The software or logical id of the payment terminal.

  • deviceId

    string

    The hardware id or serial number of the payment terminal.

  • description

    string

    A human readable description of the payment.

  • externalReference

    string

    An external reference to the Payment Request.

  • paidBy

    string

    The payment details. See Paid By.

  • shortCode

    string

    A shorter id that can be used to identify the Payment Request for up to two years.

  • notifyUrl

    string

    The URL that will receive the webhook POST requests.

+
  • requestId

    string

    The ID of the Payment Request.

  • merchantId

    string

    The ID of the Merchant creating the request.

  • merchantName

    string

    The name of the Merchant the Payment Request is on behalf of.

  • clientId

    string

    The ID of the merchant specific client configuration.

  • denomination

    monetary

    The value of the Payment Request.

  • payments

    array
  • qrCode

    string

    The URL for a Centrapay webpage that allows the user to pay the Payment Request.

  • requestCode

    string

    The URL for a Centrapay webpage that allows the user to pay the Payment Request.

  • patronCode

    string

    The id of a Patron Code  API  the payment request is attached to.

  • status

    string

    new, paid, cancelled, or expired.

  • cancellationReason

    string
  • createdAt

    timestamp

    When the Payment Request was created.

  • updatedAt

    timestamp

    When the Payment Request was updated.

  • liveness

    string

    Indicates liveness of assets that are accepted, determined by the payment options. Values are main or test.

  • paymentExpirySeconds

    string

    The expiry seconds used to configure the Payment Request expiry.

  • terminalId

    string

    The software or logical id of the payment terminal.

  • deviceId

    string

    The hardware id or serial number of the payment terminal.

  • description

    string

    A human readable description of the payment.

  • externalReference

    string

    An external reference to the Payment Request.

  • paidBy

    string

    The payment details. See Paid By.

  • shortCode

    string

    A shorter id that can be used to identify the Payment Request for up to two years.

  • notifyUrl

    string

    The URL that will receive the webhook POST requests.


-

Payment Options Model deprecated

+

Payment Options Model deprecated

Attributes

-
  • ledger

    string

    Related to the Asset Type  API  for the payment. See ledger and authorization values.

  • amount

    number

    The amount in the minimum divisible units of the denominated asset that would satisfy the payment.

  • account

    string

    The Centrapay Account which the payment should be made to.

  • methods

    string

    A collection of methods indicating how the payment can be carried out. Valid values: qr_code.

  • productCodes

    string

    Supported product codes for the payment request, when the “assetType” is epay.nzd.*.

+
  • ledger

    string

    Related to the Asset Type  API  for the payment. See ledger and authorization values.

  • amount

    number

    The amount in the minimum divisible units of the denominated asset that would satisfy the payment.

  • account

    string

    The Centrapay Account which the payment should be made to.

  • methods

    string

    A collection of methods indicating how the payment can be carried out. Valid values: qr_code.

  • productCodes

    string

    Supported product codes for the payment request, when the “assetType” is epay.nzd.*.


-
+

Attributes

-
  • transactionId

    string

    The transaction to refund. The transaction id for a payment can be obtained from a webhook notification or from requests.info.

  • amount

    number

    The amount paid.

+
  • transactionId

    string

    The transaction to refund. The transaction id for a payment can be obtained from a webhook notification or from requests.info.

  • amount

    number

    The amount paid.


Ledger and Authorization Values

The “ledger” parameter indicates which payment option has been selected to pay @@ -77,7 +77,7 @@
Asset TypeLedger Param ValueAuthorization Param Value
centrapay.nzd.maincentrapay.nzd.mainCentrapay wallet id
centrapay.nzd.testcentrapay.nzd.testCentrapay wallet id
epay.nzd.mainepay.nzd.mainCentrapay asset id
bitcoin.maing.crypto.bitcoin.mainnetBitcoin transaction id


-
POST/payments/api/requests.create

Create a Payment Request deprecated

This endpoint allows you to create a Payment Request.

Attributes

  • amount

    numberrequired

    The amount in the minimum divisible units of the denominated asset that would satisfy the payment.

  • asset

    stringrequired

    The Asset Type  API  for the payment.

  • merchantId

    stringrequired

    The ID of the Merchant creating the request.

  • clientId

    string

    The ID of the merchant specific client configuration.

  • description

    string

    A human readable description of the payment.

  • externalReference

    string

    An external reference to the Payment Request.

  • notifyUrl

    string

    The URL that will receive the webhook POST requests.

  • patronCode

    string

    The id of a Patron Code  API  the payment request is attached to.

  • paymentExpirySeconds

    string

    The expiry seconds used to configure the Payment Request expiry.

  • terminalId

    string

    The software or logical id of the payment terminal.

  • deviceId

    string

    The hardware id or serial number of the payment terminal.

Errors

  • CHECKSUM_FAILED

    400

    patronCode luhn checksum digit doesn’t pass.

  • PATRON_CODE_INVALID

    403

    patronCode doesn’t exist or has expired.

  • MERCHANT_CONFIGURATION_NOT_FOUND

    403

    There was no merchant configuration found for the supplied merchantId and clientId.

  • NO_AVAILABLE_PAYMENT_OPTIONS

    403

    No payment options match the requested payment parameters.

Request
POST/payments/api/requests.create
    curl -X POST https://service.centrapay.com/payments/api/requests.create \
+
POST/payments/api/requests.create

Create a Payment Request deprecated

This endpoint allows you to create a Payment Request.

Attributes

  • amount

    numberrequired

    The amount in the minimum divisible units of the denominated asset that would satisfy the payment.

  • asset

    stringrequired

    The Asset Type  API  for the payment.

  • merchantId

    stringrequired

    The ID of the Merchant creating the request.

  • clientId

    string

    The ID of the merchant specific client configuration.

  • description

    string

    A human readable description of the payment.

  • externalReference

    string

    An external reference to the Payment Request.

  • notifyUrl

    string

    The URL that will receive the webhook POST requests.

  • patronCode

    string

    The id of a Patron Code  API  the payment request is attached to.

  • paymentExpirySeconds

    string

    The expiry seconds used to configure the Payment Request expiry.

  • terminalId

    string

    The software or logical id of the payment terminal.

  • deviceId

    string

    The hardware id or serial number of the payment terminal.

Errors

  • CHECKSUM_FAILED

    400

    patronCode luhn checksum digit doesn’t pass.

  • PATRON_CODE_INVALID

    403

    patronCode doesn’t exist or has expired.

  • MERCHANT_CONFIGURATION_NOT_FOUND

    403

    There was no merchant configuration found for the supplied merchantId and clientId.

  • NO_AVAILABLE_PAYMENT_OPTIONS

    403

    No payment options match the requested payment parameters.

Request
POST/payments/api/requests.create
    curl -X POST https://service.centrapay.com/payments/api/requests.create \
   -H "X-Api-Key: $api_key" \
   -d merchantId=b0792018-6efc-4bca-a148-83bc57ff75b9 \
   -d clientId=b80c361f-805a-405c-b0af-366d3b5bd4ef \
@@ -119,7 +119,7 @@
 Copy
 

-
GET/payments/api/requests.info

Get a Payment Request deprecated

This endpoint allows you to receive Payment Request information.

Attributes

  • requestId

    stringrequired

    The payment requestId that is generated when requests.create is called.

Request
GET/payments/api/requests.info
    curl -G https://service.centrapay.com/payments/api/requests.info \
+
GET/payments/api/requests.info

Get a Payment Request deprecated

This endpoint allows you to receive Payment Request information.

Attributes

  • requestId

    stringrequired

    The payment requestId that is generated when requests.create is called.

Request
GET/payments/api/requests.info
    curl -G https://service.centrapay.com/payments/api/requests.info \
   -H "X-Api-Key: $api_key" \
   -d requestId=TyqV56mEkNLUeiY2QskHNR
   

-
POST/payments/api/requests.pay

Pay a Payment Request deprecated

This endpoint allows you to pay a Payment Request.

Attributes

Errors

  • REQUEST_EXPIRED

    403

    Action cannot be completed because the request has expired.

  • REQUEST_PAID

    403

    Action cannot be completed because the request has been paid.

  • REQUEST_CANCELLED

    403

    Action cannot be completed because the request has already been cancelled.

  • INVALID_ASSET_TYPE

    403

    The merchant is not configured with the provided asset type.

  • INACTIVE_ASSET

    403

    The asset is not spendable. It may have been disabled, expired, or already spent.

  • INVALID_MERCHANT_CONFIG

    403

    The merchant is not configured properly to satisfy the payment request. This could be due to incorrect information, or the merchant’s credentials might be blocked by an external service.

  • QUOTA_EXCEEDED

    403

    The payment pay request exceeds the allowed spend quota supplied.

  • INSUFFICIENT_ASSET_VALUE

    403

    The asset has insufficient funds to pay the payment request or the transaction amount received by Centrapay is less than the total of the payment.

  • ASSET_REDEMPTION_DENIED

    403

    The asset redemption has been unsuccessful due to an error with provided payment parameters, the merchant, or the asset.

Request
POST/payments/api/requests.pay
    curl -X POST https://service.centrapay.com/payments/api/requests.pay \
+
POST/payments/api/requests.pay

Pay a Payment Request deprecated

This endpoint allows you to pay a Payment Request.

Attributes

Errors

  • REQUEST_EXPIRED

    403

    Action cannot be completed because the request has expired.

  • REQUEST_PAID

    403

    Action cannot be completed because the request has been paid.

  • REQUEST_CANCELLED

    403

    Action cannot be completed because the request has already been cancelled.

  • INVALID_ASSET_TYPE

    403

    The merchant is not configured with the provided asset type.

  • INACTIVE_ASSET

    403

    The asset is not spendable. It may have been disabled, expired, or already spent.

  • INVALID_MERCHANT_CONFIG

    403

    The merchant is not configured properly to satisfy the payment request. This could be due to incorrect information, or the merchant’s credentials might be blocked by an external service.

  • QUOTA_EXCEEDED

    403

    The payment pay request exceeds the allowed spend quota supplied.

  • INSUFFICIENT_ASSET_VALUE

    403

    The asset has insufficient funds to pay the payment request or the transaction amount received by Centrapay is less than the total of the payment.

  • ASSET_REDEMPTION_DENIED

    403

    The asset redemption has been unsuccessful due to an error with provided payment parameters, the merchant, or the asset.

Request
POST/payments/api/requests.pay
    curl -X POST https://service.centrapay.com/payments/api/requests.pay \
   -H "X-Api-Key: $api_key" \
   -d authorization=4a936ad82d8e51ae0afc317e944bfa569d935a45206b49b67117ee8aaa04a3b1 \
   -d ledger=g.crypto.bitcoin.mainnet \
@@ -189,7 +189,7 @@
 Copy
 

-
POST/payments/api/requests.cancel

Cancel a Payment Request deprecated

This endpoint allows you to cancel a Payment Request.

Attributes

  • requestId

    stringrequired

    The payment requestId that is generated when requests.create is called.

Errors

  • REQUEST_NOT_FOUND

    400

    The provided request doesn’t exist.

  • REQUEST_EXPIRED

    400

    Action cannot be completed because the request has expired.

  • REQUEST_PAID

    404

    Action cannot be completed because the request has been paid.

Request
POST/payments/api/requests.cancel
    curl -X POST https://service.centrapay.com/payments/api/requests.cancel \
+
POST/payments/api/requests.cancel

Cancel a Payment Request deprecated

This endpoint allows you to cancel a Payment Request.

Attributes

  • requestId

    stringrequired

    The payment requestId that is generated when requests.create is called.

Errors

  • REQUEST_NOT_FOUND

    400

    The provided request doesn’t exist.

  • REQUEST_EXPIRED

    400

    Action cannot be completed because the request has expired.

  • REQUEST_PAID

    404

    Action cannot be completed because the request has been paid.

Request
POST/payments/api/requests.cancel
    curl -X POST https://service.centrapay.com/payments/api/requests.cancel \
   -H "X-Api-Key: $api_key" \
   -d requestId=a95b3b0d-1278-4613-8772-20d146065a2e
   

-
POST/payments/api/requests.void

Void a Payment Request deprecated

This endpoint allows you to void a Payment Request.

Attributes

  • requestId

    stringrequired

    The payment requestId that is generated when requests.create is called.

Errors

Voiding a payment request can cause it to be cancelled or refunded. Therefore, this endpoint can give the same error responses as requests.cancel and transactions.refund. -After 24 hours voiding a payment request will be disallowed, however a refund can still be made against the payment request if it has been paid successfully.

  • REQUEST_NOT_FOUND

    400

    The provided request doesn’t exist.

  • REQUEST_EXPIRED

    400

    Action cannot be completed because the request has expired.

  • REQUEST_PAID

    404

    Action cannot be completed because the request has been paid.

Request
POST/payments/api/requests.void
    curl -X POST https://service.centrapay.com/payments/api/requests.void \
+
POST/payments/api/requests.void

Void a Payment Request deprecated

This endpoint allows you to void a Payment Request.

Attributes

  • requestId

    stringrequired

    The payment requestId that is generated when requests.create is called.

Errors

Voiding a payment request can cause it to be cancelled or refunded. Therefore, this endpoint can give the same error responses as requests.cancel and transactions.refund. +After 24 hours voiding a payment request will be disallowed, however a refund can still be made against the payment request if it has been paid successfully.

  • REQUEST_NOT_FOUND

    400

    The provided request doesn’t exist.

  • REQUEST_EXPIRED

    400

    Action cannot be completed because the request has expired.

  • REQUEST_PAID

    404

    Action cannot be completed because the request has been paid.

Request
POST/payments/api/requests.void
    curl -X POST https://service.centrapay.com/payments/api/requests.void \
   -H "X-Api-Key: $api_key" \
   -d requestId=a95b3b0d-1278-4613-8772-20d146065a2e
   

-
POST/payments/api/transactions.refund

Refund a Transaction deprecated

Refunding a transaction can be done with or without an external reference.

Refund without external reference

If you refund a transaction without providing an external reference, you +

POST/payments/api/transactions.refund

Refund a Transaction deprecated

Refunding a transaction can be done with or without an external reference.

Refund without external reference

If you refund a transaction without providing an external reference, you will get a successful response for the first request and then an ALREADY_REFUNDED message for any refund requests that follow for the same transaction, unless an external reference is provided.

Refund with external reference

If you provide an external reference then a transaction can be refunded @@ -236,7 +236,7 @@ attempting to refund the same transaction we return a successful response if the amount of the request is the same both times but do not process another refund, this is because we assume it to be a repeat request. If the amount -is different you will get a REPEAT_REFERENCE error message.

Refund a Pre Auth Payment Request with Confirmations

The legacy refund endpoint cannot be used to refund Pre Auth Payment Requests with Confirmations. Please use the current refund endpoint  API  instead.

Attributes

  • transactionId

    stringrequired

    The transaction to refund. The transaction id for a payment can be obtained from a webhook notification or from requests.info.

  • amount

    stringrequired

    The amount to refund in cents.

  • externalReference

    string

    A reference supplied by the merchant that must be unique for each refund of that transaction, can be anything you want but it must be unique.

Errors

  • ALREADY_REFUNDED

    400

    The transaction has already been refunded.

  • INVALID_AMOUNT

    400

    The refund requested is greater than the transaction amount.

  • REPEAT_REFERENCE

    400

    A separate refund request for the same transaction has the same external reference, trying to refund the same transaction twice with the same external reference is not allowed. If the amount of the refund is the same we assume it is a repeat request and return 200.

  • PARTIAL_REFUNDS_NOT_ALLOWED

    403

    The asset does not support partial refunds.

  • INACTIVE_ASSET

    403

    The asset is not refundable. It may have been disabled, expired, or already refunded.

  • REFUND_NOT_SUPPORTED

    403

    The asset type does not support refunds.

  • REFUND_WINDOW_EXCEEDED

    403

    The time since the payment exceeds the window of time a transaction can be refunded in.

Request
POST/payments/api/transactions.refund
    curl -X POST https://service.centrapay.com/payments/api/transactions.refund \
+is different you will get a REPEAT_REFERENCE error message.

Refund a Pre Auth Payment Request with Confirmations

The legacy refund endpoint cannot be used to refund Pre Auth Payment Requests with Confirmations. Please use the current refund endpoint  API  instead.

Attributes

  • transactionId

    stringrequired

    The transaction to refund. The transaction id for a payment can be obtained from a webhook notification or from requests.info.

  • amount

    stringrequired

    The amount to refund in cents.

  • externalReference

    string

    A reference supplied by the merchant that must be unique for each refund of that transaction, can be anything you want but it must be unique.

Errors

  • ALREADY_REFUNDED

    400

    The transaction has already been refunded.

  • INVALID_AMOUNT

    400

    The refund requested is greater than the transaction amount.

  • REPEAT_REFERENCE

    400

    A separate refund request for the same transaction has the same external reference, trying to refund the same transaction twice with the same external reference is not allowed. If the amount of the refund is the same we assume it is a repeat request and return 200.

  • PARTIAL_REFUNDS_NOT_ALLOWED

    403

    The asset does not support partial refunds.

  • INACTIVE_ASSET

    403

    The asset is not refundable. It may have been disabled, expired, or already refunded.

  • REFUND_NOT_SUPPORTED

    403

    The asset type does not support refunds.

  • REFUND_WINDOW_EXCEEDED

    403

    The time since the payment exceeds the window of time a transaction can be refunded in.

Request
POST/payments/api/transactions.refund
    curl -X POST https://service.centrapay.com/payments/api/transactions.refund \
   -H "X-Api-Key: $api_key" \
   -d transactionId=7d2b1d52-b609-4ccd-b4cc-c4a9af881bd9 \
   -d amount=100
@@ -269,7 +269,7 @@
 Copy
 

-

Webhooks deprecated

+

Webhooks deprecated

Webhook notifications are sent for significant Payment life-cycle events. The Webhook endpoint is notified by sending an HTTP POST request to the notifyUrl defined in the Payment Request.

diff --git a/api/managed-integrations/index.html b/api/managed-integrations/index.html index 6ae6a20fe..864b908e5 100644 --- a/api/managed-integrations/index.html +++ b/api/managed-integrations/index.html @@ -12,27 +12,27 @@ r.src=t+h._hjSettings.hjid+j+h._hjSettings.hjsv; a.appendChild(r); })(window,document,'https://static.hotjar.com/c/hotjar-','.js?sv='); - +

Managed Integrations

A Managed Integration is an Integration  API  which a third party can control.

+

Managed Integrations

A Managed Integration is an Integration  API  which a third party can control.

Managed Integration Model

Attributes

-
  • id

    string

    The Managed Integration’s unique identifier.

  • type

    string

    The type of Managed Integration. Supported types are paypal-referral.

  • enabled

    boolean

    Flag indicating whether the Managed Integration should become active or inactive.

  • status

    string

    Current status of the Managed Integration. Supported values are created, pending, provisioning, active, inactive and archived.

  • externalId

    string

    Field used to reference an id from an external system.

  • params

    object

    Params depending on the Managed Integration type.

  • createdAt

    timestamp

    When the Managed Integration was created.

  • createdBy

    crn

    The User or API Key that created the Managed Integration.

  • updatedAt

    timestamp

    When the Managed Integration was updated.

  • updatedBy

    crn

    The User or API Key that updated the Managed Integration.

  • claimedByAccountId

    string

    Centrapay account id used to claim the Managed Integration.

  • claimedBy

    crn

    The User or API Key that claimed the Managed Integration.

  • claimedAt

    timestamp

    When the Managed Integration was claimed.

  • invitation

    object

    A summary of the associated Invitation  API . See Invitation Summary.

  • inProgress

    boolean

    Flag indicating whether a status transition is in progress.

  • test

    boolean

    A flag which is present if the Managed Integration is for testing.

+
  • id

    string

    The Managed Integration’s unique identifier.

  • type

    string

    The type of Managed Integration. Supported types are paypal-referral.

  • enabled

    boolean

    Flag indicating whether the Managed Integration should become active or inactive.

  • status

    string

    Current status of the Managed Integration. Supported values are created, pending, provisioning, active, inactive and archived.

  • externalId

    string

    Field used to reference an id from an external system.

  • params

    object

    Params depending on the Managed Integration type.

  • createdAt

    timestamp

    When the Managed Integration was created.

  • createdBy

    crn

    The User or API Key that created the Managed Integration.

  • updatedAt

    timestamp

    When the Managed Integration was updated.

  • updatedBy

    crn

    The User or API Key that updated the Managed Integration.

  • claimedByAccountId

    string

    Centrapay account id used to claim the Managed Integration.

  • claimedBy

    crn

    The User or API Key that claimed the Managed Integration.

  • claimedAt

    timestamp

    When the Managed Integration was claimed.

  • invitation

    object

    A summary of the associated Invitation  API . See Invitation Summary.

  • inProgress

    boolean

    Flag indicating whether a status transition is in progress.

  • test

    boolean

    A flag which is present if the Managed Integration is for testing.


Invitation Summary Model

A summary of the Invitation  API  for a Managed Integration.

Attributes

-
  • id

    string

    The Invitation’s unique identifier.

  • code

    string

    The Invitation code.

  • expiresAt

    timestamp

    When the Invitation expires.

+
  • id

    string

    The Invitation’s unique identifier.

  • code

    string

    The Invitation code.

  • expiresAt

    timestamp

    When the Invitation expires.


Params

paypal-referral

-
  • centrapayMerchantId

    string

    The ID of the Centrapay merchant that will be onboarded.

  • email

    string

    The email address to send the PayPal referral to.

+
  • centrapayMerchantId

    string

    The ID of the Centrapay merchant that will be onboarded.

  • email

    string

    The email address to send the PayPal referral to.


-
PUT/api/managed-integrations/{type}/{externalId}

Create or Update Managed Integration

This endpoint allows you to create or update a Managed Integration.

Attributes

  • enabled

    booleanrequired

    Flag indicating whether the Managed Integration should become active or inactive.

  • params

    objectrequired

    Params depending on the Managed Integration type.

  • test

    boolean

    Flag indicating the Managed Integration is for testing, this cannot be changed once the resource has been created.

Errors

  • INVALID_PARAMS

    400

    Invalid Params provided for Managed Integration type.

  • MERCHANT_LIVENESS_MISMATCH

    403

    The test flag on the merchant doesn’t match the test flag on the paypal-referral managed integration.

  • MERCHANT_NOT_FOUND

    403

    The merchant is not found with the centrapayMerchantId on the paypal-referral managed integration.

Request
PUT/api/managed-integrations/{type}/{externalId}
    curl -X PUT https://service.centrapay.com/api/managed-integrations/paypal-referral/DKTs3U38hdhfEqwF1JKoT2 \
+
PUT/api/managed-integrations/{type}/{externalId}

Create or Update Managed Integration

This endpoint allows you to create or update a Managed Integration.

Attributes

  • enabled

    booleanrequired

    Flag indicating whether the Managed Integration should become active or inactive.

  • params

    objectrequired

    Params depending on the Managed Integration type.

  • test

    boolean

    Flag indicating the Managed Integration is for testing, this cannot be changed once the resource has been created.

Errors

  • INVALID_PARAMS

    400

    Invalid Params provided for Managed Integration type.

  • MERCHANT_LIVENESS_MISMATCH

    403

    The test flag on the merchant doesn’t match the test flag on the paypal-referral managed integration.

  • MERCHANT_NOT_FOUND

    403

    The merchant is not found with the centrapayMerchantId on the paypal-referral managed integration.

Request
PUT/api/managed-integrations/{type}/{externalId}
    curl -X PUT https://service.centrapay.com/api/managed-integrations/paypal-referral/DKTs3U38hdhfEqwF1JKoT2 \
   -H "X-Api-Key: $api_key" \
   -H "Content-Type: application/json" \
   -d '{
@@ -67,7 +67,7 @@
 Copy
 

-
GET/api/managed-integrations/{id}

Get Managed Integration

This endpoint allows you to retrieve a Managed Integration by id.

Attributes

No attributes.

Request
GET/api/managed-integrations/{id}
    curl https://service.centrapay.com/api/managed-integrations/dh375hdh08f590260d9a07f \
+
GET/api/managed-integrations/{id}

Get Managed Integration

This endpoint allows you to retrieve a Managed Integration by id.

Attributes

No attributes.

Request
GET/api/managed-integrations/{id}
    curl https://service.centrapay.com/api/managed-integrations/dh375hdh08f590260d9a07f \
   -H "X-Api-Key: $api_key"
   

Media Uploads

Media Upload Model

+

Media Uploads

Media Upload Model

Attributes

-
  • id

    string

    The Media Upload’s unique identifier.

  • accountId

    string

    The Media Upload’s owning Centrapay Account id.

  • mimeType

    string

    The media (MIME) type of the upload.

  • fileName

    string

    The file name of the upload.

  • createdAt

    timestamp

    When the Media Upload was created.

  • createdBy

    crn

    The User or API Key that created the Media Upload.

  • updatedAt

    timestamp

    When the Media Upload was updated.

  • updatedBy

    crn

    The User or API Key that updated the Media Upload.

  • uploadUrl

    string

    A presigned URL that gives users time-limited permission to upload media.

+
  • id

    string

    The Media Upload’s unique identifier.

  • accountId

    string

    The Media Upload’s owning Centrapay Account id.

  • mimeType

    string

    The media (MIME) type of the upload.

  • fileName

    string

    The file name of the upload.

  • createdAt

    timestamp

    When the Media Upload was created.

  • createdBy

    crn

    The User or API Key that created the Media Upload.

  • updatedAt

    timestamp

    When the Media Upload was updated.

  • updatedBy

    crn

    The User or API Key that updated the Media Upload.

  • uploadUrl

    string

    A presigned URL that gives users time-limited permission to upload media.


-
POST/api/media-uploads

Create a presigned URL for Media Upload experimental

This endpoint allows you to upload a media file to Centrapay. It returns a presigned URL that can be used to download the media file.

Attributes

  • accountId

    stringrequired

    The Media Upload’s owning Centrapay Account id.

  • mimeType

    stringrequired

    The media (MIME) type of the upload.

  • fileName

    stringrequired

    The file name of the upload.

Request
POST/api/media-uploads
    curl -X POST https://service.centrapay.com/api/media-uploads \
+
POST/api/media-uploads

Create a presigned URL for Media Upload experimental

This endpoint allows you to upload a media file to Centrapay. It returns a presigned URL that can be used to download the media file.

Attributes

  • accountId

    stringrequired

    The Media Upload’s owning Centrapay Account id.

  • mimeType

    stringrequired

    The media (MIME) type of the upload.

  • fileName

    stringrequired

    The file name of the upload.

Request
POST/api/media-uploads
    curl -X POST https://service.centrapay.com/api/media-uploads \
   -H "X-Api-Key: $api_key" \
   -H "Content-Type: application/json" \
   -d '{
@@ -40,7 +40,7 @@
 Copy
 

-
GET/api/media-uploads/{mediaUploadId}/location

Get Media Upload Location experimental

This endpoint allows you to retrieve the upload location of a media file.

Attributes

No attributes.

Request
GET/api/media-uploads/{mediaUploadId}/location
    curl https://service.centrapay.com/api/media-uploads/DKTs3U38hdhfEqwF1JKoT2/location \
+
GET/api/media-uploads/{mediaUploadId}/location

Get Media Upload Location experimental

This endpoint allows you to retrieve the upload location of a media file.

Attributes

No attributes.

Request
GET/api/media-uploads/{mediaUploadId}/location
    curl https://service.centrapay.com/api/media-uploads/DKTs3U38hdhfEqwF1JKoT2/location \
   -H "X-Api-Key: $api_key"
   

Merchant Configs

A Merchant Config defines the available payment options for paying a Payment Request  API .

+

Merchant Configs

A Merchant Config defines the available payment options for paying a Payment Request  API .

Merchant Config Model

Attributes

-
  • paymentOptions

    array
  • createdAt

    timestamp

    When the Merchant Config was created.

  • createdBy

    crn

    The User or API Key that created the Merchant Config.

  • updatedAt

    timestamp

    When the Merchant Config was updated.

  • updatedBy

    crn

    The User or API Key that updated the Merchant Config.

  • allowedRedirectUrls

    arrayexperimental

    Allowed prefixes for the redirectUrl property on Payment Requests created with this Config.

+
  • paymentOptions

    array
  • createdAt

    timestamp

    When the Merchant Config was created.

  • createdBy

    crn

    The User or API Key that created the Merchant Config.

  • updatedAt

    timestamp

    When the Merchant Config was updated.

  • updatedBy

    crn

    The User or API Key that updated the Merchant Config.

  • allowedRedirectUrls

    arrayexperimental

    Allowed prefixes for the redirectUrl property on Payment Requests created with this Config.


Payment Option Config Model

Attributes

-
  • type

    stringrequired

    Type of payment method. See supported payment types below.

  • walletId

    string

    Merchant’s Centrapay Settlement Wallet to receive payments. Optional for centrapay.nzd types, if not supplied then a settlement wallet may be created and then assigned.

  • assetId

    string

    Merchant’s Centrapay Settlement Asset to receive payments. Optional for quartz.nzd types, if not supplied then a settlement asset may be created and then assigned.

  • terminalId

    string

    Merchant’s Epay terminal id.

  • paypalMerchantAccountId

    string

    Id of the PayPal merchants account. Required for paypal.usd and venmo.usd types.

  • paypalStoreId

    string

    Id of the PayPal merchants store. Required for paypal.usd and venmo.usd types.

  • farmlandsMerchantNumber

    string

    Id of the Farmlands merchant that funds will be transferred to.

  • externalMerchantId

    string

    Id of the external merchant. Required for stadius and uplinkapi.test types.

+
  • type

    stringrequired

    Type of payment method. See supported payment types below.

  • walletId

    string

    Merchant’s Centrapay Settlement Wallet to receive payments. Optional for centrapay.nzd types, if not supplied then a settlement wallet may be created and then assigned.

  • assetId

    string

    Merchant’s Centrapay Settlement Asset to receive payments. Optional for quartz.nzd types, if not supplied then a settlement asset may be created and then assigned.

  • terminalId

    string

    Merchant’s Epay terminal id.

  • paypalMerchantAccountId

    string

    Id of the PayPal merchants account. Required for paypal.usd and venmo.usd types.

  • paypalStoreId

    string

    Id of the PayPal merchants store. Required for paypal.usd and venmo.usd types.

  • farmlandsMerchantNumber

    string

    Id of the Farmlands merchant that funds will be transferred to.

  • externalMerchantId

    string

    Id of the external merchant. Required for stadius and uplinkapi.test types.

See Asset Types  API  for values that may be present in the type field.

Test payment options should never be used for live merchant configurations.


-
POST/api/merchants/{merchantId}/configs

Create Merchant Config

This endpoint allows you to create a Merchant Config for a Merchant.

Attributes

  • paymentOptions

    arrayrequired
  • allowedRedirectUrls

    arrayexperimental

    Allowed prefixes for the redirectUrl property on Payment Requests created with this Config.

Errors

Request
POST/api/merchants/{merchantId}/configs
    curl -X POST https://service.centrapay.com/api/merchants/5ee0c486308f590260d9a07f/configs \
+
POST/api/merchants/{merchantId}/configs

Create Merchant Config

This endpoint allows you to create a Merchant Config for a Merchant.

Attributes

  • paymentOptions

    arrayrequired
  • allowedRedirectUrls

    arrayexperimental

    Allowed prefixes for the redirectUrl property on Payment Requests created with this Config.

Errors

Request
POST/api/merchants/{merchantId}/configs
    curl -X POST https://service.centrapay.com/api/merchants/5ee0c486308f590260d9a07f/configs \
   -H "X-Api-Key: $api_key" \
   -H "Content-Type: application/json" \
   -d '{
@@ -78,7 +78,7 @@
 Copy
 

-
GET/api/merchants/{merchantId}/configs/{configId}

Get Merchant Config

This endpoint allows you to retrieve a Merchant Config by id.

Attributes

No attributes.

Request
GET/api/merchants/{merchantId}/configs/{configId}
    curl https://service.centrapay.com/api/merchants/5ee0c486308f590260d9a07f/configs/5ee168e8597be5002af7b454 \
+
GET/api/merchants/{merchantId}/configs/{configId}

Get Merchant Config

This endpoint allows you to retrieve a Merchant Config by id.

Attributes

No attributes.

Request
GET/api/merchants/{merchantId}/configs/{configId}
    curl https://service.centrapay.com/api/merchants/5ee0c486308f590260d9a07f/configs/5ee168e8597be5002af7b454 \
   -H "X-Api-Key: $api_key"
   

-
GET/api/merchants/{merchantId}/configs

List Merchant Configs

This endpoint allows you to retrieve a list of Merchant Configs.

Attributes

No attributes.

Request
GET/api/merchants/{merchantId}/configs
    curl https://service.centrapay.com/api/merchants/5ee0c486308f590260d9a07f/configs \
+
GET/api/merchants/{merchantId}/configs

List Merchant Configs

This endpoint allows you to retrieve a list of Merchant Configs.

Attributes

No attributes.

Request
GET/api/merchants/{merchantId}/configs
    curl https://service.centrapay.com/api/merchants/5ee0c486308f590260d9a07f/configs \
   -H "X-Api-Key: $api_key"
   

-
PUT/api/merchants/{merchantId}/configs/{configId}

Update Merchant Config

This endpoint allows you to update a Merchant Config.

Attributes

  • paymentOptions

    arrayrequired
  • allowedRedirectUrls

    arrayexperimental

    Allowed prefixes for the redirectUrl property on Payment Requests created with this Config.

Errors

Request
PUT/api/merchants/{merchantId}/configs/{configId}
    curl -X PUT https://service.centrapay.com/api/merchants/5ee0c486308f590260d9a07f/configs/5ee168e8597be5002af7baed \
+
PUT/api/merchants/{merchantId}/configs/{configId}

Update Merchant Config

This endpoint allows you to update a Merchant Config.

Attributes

  • paymentOptions

    arrayrequired
  • allowedRedirectUrls

    arrayexperimental

    Allowed prefixes for the redirectUrl property on Payment Requests created with this Config.

Errors

Request
PUT/api/merchants/{merchantId}/configs/{configId}
    curl -X PUT https://service.centrapay.com/api/merchants/5ee0c486308f590260d9a07f/configs/5ee168e8597be5002af7baed \
   -H "X-Api-Key: $api_key" \
   -H "Content-Type: application/json" \
   -d '{
diff --git a/api/merchants/index.html b/api/merchants/index.html
index 83ecbdcb4..7e83ab744 100644
--- a/api/merchants/index.html
+++ b/api/merchants/index.html
@@ -12,17 +12,17 @@
         r.src=t+h._hjSettings.hjid+j+h._hjSettings.hjsv;
         a.appendChild(r);
       })(window,document,'https://static.hotjar.com/c/hotjar-','.js?sv=');
-    
+    
 
 
 
 
 

Merchants

A merchant is an initiator of Payment Requests  API . A Merchant has Merchant Configs  API  +

Merchants

A merchant is an initiator of Payment Requests  API . A Merchant has Merchant Configs  API  which define the payment methods available for a Payment Request.

Merchant Model

Attributes

-
  • id

    string

    Merchant’s unique identifier.

  • accountId

    string

    Id of Merchant’s owning Centrapay account.

  • name

    string

    Merchant name.

  • country

    string

    Merchant ISO 3166 country code. Must match the “region” on the Account  API .

  • createdAt

    timestamp

    When the Merchant was created.

  • createdBy

    crn

    The User or API Key that created the Merchant.

  • updatedAt

    timestamp

    When the Merchant was updated.

  • updatedBy

    crn

    The User or API Key that updated the Merchant.

  • test

    booleanexperimental

    Flag indicating merchant is for testing.

  • settlementConfig

    objectexperimental
  • location

    locationexperimental

    Physical Location of Merchant. It is highly recommended that you provide this otherwise, users won’t be able to find you with our Merchant Search API if they perform a origin + distance query.

  • onboardingStatus

    string

    The onboarding status of the Merchant. See Onboarding Statuses for possible values.

  • onboardingStatusReason

    string

    The reason associated with the Onboarding Status. See Onboarding Status Reasons for possible values.

+
  • id

    string

    Merchant’s unique identifier.

  • accountId

    string

    Id of Merchant’s owning Centrapay account.

  • name

    string

    Merchant name.

  • country

    string

    Merchant ISO 3166 country code. Must match the “region” on the Account  API .

  • createdAt

    timestamp

    When the Merchant was created.

  • createdBy

    crn

    The User or API Key that created the Merchant.

  • updatedAt

    timestamp

    When the Merchant was updated.

  • updatedBy

    crn

    The User or API Key that updated the Merchant.

  • test

    booleanexperimental

    Flag indicating merchant is for testing.

  • settlementConfig

    objectexperimental
  • location

    locationexperimental

    Physical Location of Merchant. It is highly recommended that you provide this otherwise, users won’t be able to find you with our Merchant Search API if they perform a origin + distance query.

  • onboardingStatus

    string

    The onboarding status of the Merchant. See Onboarding Statuses for possible values.

  • onboardingStatusReason

    string

    The reason associated with the Onboarding Status. See Onboarding Status Reasons for possible values.

Onboarding Statuses

@@ -102,21 +102,21 @@

Settlement Config Model

Attributes

-
  • bankAccountId

    string

    The id of the bank account funds should be settled into. This must belong to the account

+
  • bankAccountId

    string

    The id of the bank account funds should be settled into. This must belong to the account


Merchant Search Result Model

Attributes

-
  • id

    string

    Merchant’s unique identifier

  • name

    string

    Merchant’s name

  • acceptedAssets

    array

    List of assets accepted by the merchant. See Accepted Asset Model.

  • location

    location

    Physical location of the merchant

+
  • id

    string

    Merchant’s unique identifier

  • name

    string

    Merchant’s name

  • acceptedAssets

    array

    List of assets accepted by the merchant. See Accepted Asset Model.

  • location

    location

    Physical location of the merchant


Accepted Asset Model

Attributes

-
+

Product Model

Attributes

-
  • id

    string

    Product’s unique identifier.

+
  • id

    string

    Product’s unique identifier.


-
POST/api/merchants

Create Merchant

This endpoint allows you to create a Merchant.

Attributes

  • accountId

    stringrequired

    Id of Merchant’s owning Centrapay account.

  • name

    stringrequired

    Merchant name.

  • country

    stringrequired

    Merchant ISO 3166 country code. Must match the “region” on the Account  API .

  • test

    booleanrequiredexperimental

    Flag indicating merchant is for testing.

  • settlementConfig

    objectexperimental
  • location

    locationexperimental

    Physical Location of Merchant. It is highly recommended that you provide this otherwise, users won’t be able to find you with our Merchant Search API if they perform a origin + distance query.

Errors

  • BANK_ACCOUNT_MISMATCH

    403

    The bank account in the settlement config does not belong to the same account.

  • ACCOUNT_REGION_MISMATCH

    403

    The merchant’s “country” does not match the “region” on the Account.

Request
POST/api/merchants
    curl -X POST https://service.centrapay.com/api/merchants \
+
POST/api/merchants

Create Merchant

This endpoint allows you to create a Merchant.

Attributes

  • accountId

    stringrequired

    Id of Merchant’s owning Centrapay account.

  • name

    stringrequired

    Merchant name.

  • country

    stringrequired

    Merchant ISO 3166 country code. Must match the “region” on the Account  API .

  • test

    booleanrequiredexperimental

    Flag indicating merchant is for testing.

  • settlementConfig

    objectexperimental
  • location

    locationexperimental

    Physical Location of Merchant. It is highly recommended that you provide this otherwise, users won’t be able to find you with our Merchant Search API if they perform a origin + distance query.

Errors

  • BANK_ACCOUNT_MISMATCH

    403

    The bank account in the settlement config does not belong to the same account.

  • ACCOUNT_REGION_MISMATCH

    403

    The merchant’s “country” does not match the “region” on the Account.

Request
POST/api/merchants
    curl -X POST https://service.centrapay.com/api/merchants \
   -H "X-Api-Key: $api_key" \
   -H "Content-Type: application/json" \
   -d '{
@@ -143,7 +143,7 @@
 Copy
 

-
GET/api/merchants/{merchantId}

Get Merchant

This endpoint allows you to retrieve a Merchant by id.

Attributes

No attributes.

Request
GET/api/merchants/{merchantId}
    curl https://service.centrapay.com/api/merchants/5ee0c486308f590260d9a07f \
+
GET/api/merchants/{merchantId}

Get Merchant

This endpoint allows you to retrieve a Merchant by id.

Attributes

No attributes.

Request
GET/api/merchants/{merchantId}
    curl https://service.centrapay.com/api/merchants/5ee0c486308f590260d9a07f \
   -H "X-Api-Key: $api_key"
   

-
GET/api/accounts/{accountId}/merchants

List Merchants for Account

This endpoint allows you to retrieve a paginated  API  list of Merchants attached to an Account.

Attributes

No attributes.

Request
GET/api/accounts/{accountId}/merchants
    curl https://service.centrapay.com/api/accounts/Jaim1Cu1Q55uooxSens6yk/merchants \
+
GET/api/accounts/{accountId}/merchants

List Merchants for Account

This endpoint allows you to retrieve a paginated  API  list of Merchants attached to an Account.

Attributes

No attributes.

Request
GET/api/accounts/{accountId}/merchants
    curl https://service.centrapay.com/api/accounts/Jaim1Cu1Q55uooxSens6yk/merchants \
   -H "X-Api-Key: $api_key"
   

-
PUT/api/merchants/{merchantId}

Update Merchant

This endpoint allows you to update a Merchant.

Attributes

  • name

    string

    Merchant name.

  • settlementConfig

    objectexperimental
  • location

    locationexperimental

    Physical Location of Merchant. It is highly recommended that you provide this otherwise, users won’t be able to find you with our Merchant Search API if they perform a origin + distance query.

Errors

  • BANK_ACCOUNT_MISMATCH

    403

    The bank account in the settlement config does not belong to the same account.

Request
PUT/api/merchants/{merchantId}
    curl -X PUT https://service.centrapay.com/api/merchants/5ee0c486308f590260d9a07f \
+
PUT/api/merchants/{merchantId}

Update Merchant

This endpoint allows you to update a Merchant.

Attributes

  • name

    string

    Merchant name.

  • settlementConfig

    objectexperimental
  • location

    locationexperimental

    Physical Location of Merchant. It is highly recommended that you provide this otherwise, users won’t be able to find you with our Merchant Search API if they perform a origin + distance query.

Errors

  • BANK_ACCOUNT_MISMATCH

    403

    The bank account in the settlement config does not belong to the same account.

Request
PUT/api/merchants/{merchantId}
    curl -X PUT https://service.centrapay.com/api/merchants/5ee0c486308f590260d9a07f \
   -H "X-Api-Key: $api_key" \
   -H "Content-Type: application/json" \
   -d '{
@@ -243,7 +243,7 @@
 Copy
 

-
POST/api/merchants/{merchantId}/set-onboarding-status

Set Merchant Onboarding Status

This endpoint allows you to set the onboarding status of a Merchant.

Attributes

Request
POST/api/merchants/{merchantId}/set-onboarding-status
    curl -X POST https://service.centrapay.com/api/merchants/5ee0c486308f590260d9a07f/set-onboarding-status \
+
POST/api/merchants/{merchantId}/set-onboarding-status

Set Merchant Onboarding Status

This endpoint allows you to set the onboarding status of a Merchant.

Attributes

Request
POST/api/merchants/{merchantId}/set-onboarding-status
    curl -X POST https://service.centrapay.com/api/merchants/5ee0c486308f590260d9a07f/set-onboarding-status \
   -H "X-Api-Key: $api_key" \
   -H "Content-Type: application/json" \
   -d '{
@@ -265,7 +265,7 @@
 Copy
 

-
GET/api/merchants/search

Search Merchants

Returns a paginated  API  response of Merchant Search Results that match the search query. This endpoint does not require Auth  API .

Query Parameters

  • origin

    string

    The point to be searched around, formatted as a latitude,longitude

  • distance

    number

    The distance from the origin to be searched around in km

  • asset

    string

    A string of the format assetType, productId describing the asset where assetType is the type of asset  API  to filter the merchants by and productId is the asset’s productCode for epay.nzd  API  asset types or the asset’s collectionId for centrapay.token  API  asset types.

  • name

    string

    Name of the merchant

  • pageKey

    string

    pageKey of next merchant to fetch

  • paginationLimit

    string

    Maximum amount of merchants to return

Request
GET/api/merchants/search
    curl -G https://service.centrapay.com/api/merchants/search \
+
GET/api/merchants/search

Search Merchants

Returns a paginated  API  response of Merchant Search Results that match the search query. This endpoint does not require Auth  API .

Query Parameters

  • origin

    string

    The point to be searched around, formatted as a latitude,longitude

  • distance

    number

    The distance from the origin to be searched around in km

  • asset

    string

    A string of the format assetType, productId describing the asset where assetType is the type of asset  API  to filter the merchants by and productId is the asset’s productCode for epay.nzd  API  asset types or the asset’s collectionId for centrapay.token  API  asset types.

  • name

    string

    Name of the merchant

  • pageKey

    string

    pageKey of next merchant to fetch

  • paginationLimit

    string

    Maximum amount of merchants to return

Request
GET/api/merchants/search
    curl -G https://service.centrapay.com/api/merchants/search \
   -H "X-Api-Key: $api_key" \
   -d origin=123.42,32.22 \
   -d distance=100 \
@@ -322,7 +322,7 @@
 Copy
 

-
GET/api/merchants

List Merchants deprecated

Returns a paginated  API  list of Merchants which belong to the authenticated subject.

Attributes

No attributes.

Request
GET/api/merchants
    curl https://service.centrapay.com/api/merchants \
+
GET/api/merchants

List Merchants deprecated

Returns a paginated  API  list of Merchants which belong to the authenticated subject.

Attributes

No attributes.

Request
GET/api/merchants
    curl https://service.centrapay.com/api/merchants \
   -H "X-Api-Key: $api_key"
   

Pagination

Pagination allows a listing endpoint to return a subset of results. The goal is to reduce memory +

Pagination

Pagination allows a listing endpoint to return a subset of results. The goal is to reduce memory usage and speed up page rendering.

To retrieve the next page, a pageKey can be supplied. Typically this will be the nextPageKey returned from your previous query.

@@ -26,9 +26,9 @@

Some of our endpoints have been designed to be forwards compatible with pagination. When we do bring support to GET endpoints for listing, these conventions will be followed.

Pagination Model

-
  • items

    array

    A list of items from the current page.

  • nextPageKey

    string

    Can be used to fetch the next page, not present on the last page.

+
  • items

    array

    A list of items from the current page.

  • nextPageKey

    string

    Can be used to fetch the next page, not present on the last page.


-

Example

  • pageKey

    string

    Used to retrieve the next page of items.

Request
GET/api/examples
    curl -X GET https://service.centrapay.com/api/examples \
+

Example

  • pageKey

    string

    Used to retrieve the next page of items.

Request
GET/api/examples
    curl -X GET https://service.centrapay.com/api/examples \
   -H "X-Api-Key: $api_key" \
   -d '{
     "pageKey": "Example#E9eXsErwA444qFDoZt5iLA|Activity#000000000000001|614161c4c4d3020073bd4ce8"
diff --git a/api/patron-codes/index.html b/api/patron-codes/index.html
index 0b98837cd..bef83b865 100644
--- a/api/patron-codes/index.html
+++ b/api/patron-codes/index.html
@@ -12,16 +12,16 @@
         r.src=t+h._hjSettings.hjid+j+h._hjSettings.hjsv;
         a.appendChild(r);
       })(window,document,'https://static.hotjar.com/c/hotjar-','.js?sv=');
-    
+    
 
 
 
 
 

Patron Codes

A Patron Code is an alternative to presenting a QR code where that option isn’t available.

+

Patron Codes

A Patron Code is an alternative to presenting a QR code where that option isn’t available.

Patron Code Model

Attributes

-
  • id

    string

    The Patron Code’s unique identifier.

  • barcode

    string

    ✩ Field to display in barcode format.

  • createdAt

    timestamp

    Date when the Patron Code was created.

  • expiresAt

    timestamp

    Date when the Patron Code will expire.

  • appName

    stringdeprecated

    The app used to create the Patron Code.

  • accountId

    string

    The account id of the creator of the patron code.

  • testScenarioName

    string

    The Test Scenario Name of the Patron Code.

+
  • id

    string

    The Patron Code’s unique identifier.

  • barcode

    string

    ✩ Field to display in barcode format.

  • createdAt

    timestamp

    Date when the Patron Code was created.

  • expiresAt

    timestamp

    Date when the Patron Code will expire.

  • appName

    stringdeprecated

    The app used to create the Patron Code.

  • accountId

    string

    The account id of the creator of the patron code.

  • testScenarioName

    string

    The Test Scenario Name of the Patron Code.

✩ Barcode is a 16 digit number. The first 6 digits are a Centrapay defined prefix, then a 9 digit code, then a luhn checksum digit.

Barcode Breakdown
    9 9 9 0 0 0 1 2 3 4 5 6 7 8 9 5  ❖  complete barcode
@@ -71,7 +71,7 @@
 
 
NameDescription
force-condition-check-photo-idThe Payment Request will have a required Merchant Condition  API  to check photo id.

-
POST/api/patron-codes

Create Patron Code

This endpoint allows you to create a Patron Code. You can find payment request information attached to a Patron Code by polling for the Payment Request  API  using the transacting APIs.

Attributes

No attributes.

Request
POST/api/patron-codes
    curl -X POST https://service.centrapay.com/api/patron-codes \
+
POST/api/patron-codes

Create Patron Code

This endpoint allows you to create a Patron Code. You can find payment request information attached to a Patron Code by polling for the Payment Request  API  using the transacting APIs.

Attributes

No attributes.

Request
POST/api/patron-codes
    curl -X POST https://service.centrapay.com/api/patron-codes \
   -H "Authorization: $jwt"
   

-
GET/api/patron-codes/{patronCodeId}

Get Patron Code

This endpoint allows you to retrieve a Patron Code by id.

Attributes

No attributes.

Request
GET/api/patron-codes/{patronCodeId}
    curl https://service.centrapay.com/api/patron-codes/V17FByEP9gm1shSG6a1Zzx \
+
GET/api/patron-codes/{patronCodeId}

Get Patron Code

This endpoint allows you to retrieve a Patron Code by id.

Attributes

No attributes.

Request
GET/api/patron-codes/{patronCodeId}
    curl https://service.centrapay.com/api/patron-codes/V17FByEP9gm1shSG6a1Zzx \
   -H "Authorization: $jwt"
   

-
GET/api/patron-codes/barcode/{barcode}

Get Patron Code By Barcode

This endpoint allows you to retrieve a Patron Code by barcode.

Attributes

No attributes.

Errors

  • CHECKSUM_FAILED

    400

    Luhn checksum digit doesn’t pass.

  • PATRON_CODE_INVALID

    403

    Patron Code doesn’t exist or it has expired.

Request
GET/api/patron-codes/barcode/{barcode}
    curl https://service.centrapay.com/api/patron-codes/barcode/9990001234567895 \
+
GET/api/patron-codes/barcode/{barcode}

Get Patron Code By Barcode

This endpoint allows you to retrieve a Patron Code by barcode.

Attributes

No attributes.

Errors

  • CHECKSUM_FAILED

    400

    Luhn checksum digit doesn’t pass.

  • PATRON_CODE_INVALID

    403

    Patron Code doesn’t exist or it has expired.

Request
GET/api/patron-codes/barcode/{barcode}
    curl https://service.centrapay.com/api/patron-codes/barcode/9990001234567895 \
   -H "X-Api-Key: $api_key"
   

Payment Requests

Payment Requests represent the intention for a merchant to receive payment for goods and services. Payment Requests define the amount to be paid and the Asset Types that are acceptable for payment.

+

Payment Requests

Payment Requests represent the intention for a merchant to receive payment for goods and services. Payment Requests define the amount to be paid and the Asset Types that are acceptable for payment.

A Payment Request is shared with, and paid by, a patron. The Payment Flows Guide has more details regarding negotiation of Payment Requests.

Payment Requests have the following statuses: