<!DOCTYPE html>
<html lang="en" class="MainHtml">

<head>
  <meta charset="utf-8">
  <meta http-equiv="x-ua-compatible" content="ie=edge">
  <title>Inbound and Outbound Integrations</title>
  <meta name="description" content="Integrate directly with us, integrate with native third parties or create custom integrations." />
  <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
  <link rel="icon" href="https://cdn.revcent.com/img/favicon.png">
  <link rel="stylesheet" href="https://cdn.revcent.com/public-new/css/vendor/bootstrap.min.css">
  <link rel="stylesheet" href="https://cdn.revcent.com/public-new/css/vendor/slick.css">
  <link rel="stylesheet" href="https://cdn.revcent.com/public-new/css/vendor/slick-theme.css">
  <link rel="stylesheet" href="https://cdn.revcent.com/public-new/css/plugins/sal.css">
  <link rel="stylesheet" href="https://cdn.revcent.com/public-new/css/plugins/feather.css">
  <link rel="stylesheet" href="https://cdn.revcent.com/css/plugins/fontawesome-5/css/all.css">
  <link rel="stylesheet" href="https://cdn.revcent.com/public-new/css/plugins/euclid-circulara.css">
  <link rel="stylesheet" href="https://cdn.revcent.com/public-new/css/plugins/swiper.css">
  <link rel="stylesheet" href="https://cdn.revcent.com/public-new/css/plugins/magnify.css">
  <link rel="stylesheet" href="https://cdn.revcent.com/public-new/css/plugins/odometer.css">
  <link rel="stylesheet" href="https://cdn.revcent.com/public-new/css/plugins/animation.css">
  <link rel="stylesheet" href="https://cdn.revcent.com/public-new/css/plugins/bootstrap-select.min.css">
  <link rel="stylesheet" href="https://cdn.revcent.com/public-new/css/plugins/jquery-ui.css">
  <link rel="stylesheet" href="https://cdn.revcent.com/public-new/css/plugins/magnigy-popup.min.css">
  <link rel="stylesheet" href="https://cdn.revcent.com/public-new/css/plugins/plyr.css">
  <link rel="stylesheet" href="https://cdn.revcent.com/css/plugins/sweetalert/sweetalert.css" type="text/css" />
  <link rel="stylesheet" href="https://cdn.revcent.com/public-new/css/style.css">
  <style>
    html {
      --gutterWidth: 16px;
      --scrollbarWidth: 0px;
      --windowWidth: calc(100vw - var(--scrollbarWidth));
      --layoutWidth: calc(var(--windowWidth) - var(--gutterWidth)*2);
      --layoutWidthMax: 1080px;
      --viewWidthSmall: 375;
      --viewWidthMedium: 600;
      --viewWidthLarge: 1112;
      --viewportScale: calc(var(--windowWidth)/var(--viewWidthLarge));
      --paddingTop: 160px;
      --paddingBottom: 160px;
      --colPadNone: 0;
      --colPadSmall: 8px;
      --colPadNormal: 16px;
      --colPadMedium: 16px;
      --colPadLarge: 16px;
      --colPadXLarge: 16px;
      --rowGap: 8px;
      --navSignupBg: #b966e721;
      --navSignupColor: #b966e7;
      --navSignupBgH: #b966e7;
      --navSignupColorH: #ffffff;
      --shadow-blue: 0px 6px 34px rgb(119 138 255 / 18%);
      --shadow-12: 0px 18px 36px -12px rgba(0, 0, 0, 0.1), 0px 30px 45px -30px rgba(50, 50, 93, 0.25)
    }


    @media (min-width:768px) {
      html {
        --colPadMedium: 32px;
        --colPadLarge: 64px;
        --colPadXLarge: 64px;
      }
    }

    @media (min-width:991px) {
      html {
        --colPadXLarge: 112px;
      }
    }

    @media (min-width:1112px) {
      html {
        --layoutWidth: var(--layoutWidthMax);
        --gutterWidth: calc(var(--windowWidth)/2 - var(--layoutWidth)/2)
      }
    }
  </style>

  <style>
    :root {
      --color-body: #474a51;
      --largeHeroLWidthMax: 1080px;
      --largeHeroLWidth: var(--largeHeroLWidthMax);
      --largeHeroGWidth: calc(var(--windowWidth)/2 - var(--largeHeroLWidth)/2);
      --largeHeroOffsetX: var(--largeHeroGWidth);
      --largeHeroTransformX: calc(var(--largeHeroGWidth)*0.8);
      --largeHeroPaddingTop: calc(116*1px);
      --largeHeroGHeight: calc(100% + var(--largeHeroPaddingTop) + var(--largeHeroTransformX)*0.212);
    }
  </style>

  <style>
    .Section {
      --sectAngleSin: var(--angleNormalSin);
      --sectAngle: 0;
      --sectPaddingSmallMax: 110;
      --sectPaddingXSmallMax: 72;
      --sectPaddingMin: 72;
      --sectPaddingMax: var(--sectPaddingNormalMax);
      --sectPaddingTopMax: var(--sectPaddingMax);
      --sectPaddingBottomMax: var(--sectPaddingMax);
      --sectionMarginBottom: 0;
      --sectAngleHeight: calc(var(--windowWidth)*var(--sectAngleSin));
      --sectAnglePaddingBaseMin: 100;
      --sectAnglePaddingBaseMax: var(--sectPaddingMax);
      --sectAnglePaddingTopBaseMax: var(--sectAnglePaddingBaseMax);
      --sectAnglePaddingBottomBaseMax: var(--sectAnglePaddingBaseMax);
      --sectAngleMaxHeight: none;
      --sectionOverflow: hidden;
      --sectionTransformOrigin: 100% 0;
      --sectionBackgroundOverflow: visible;
      position: relative;
      z-index: 1;
      margin-bottom: var(--sectionMarginBottom);
      color: var(--textColor);
      scroll-margin-top: calc(var(--fNvHeight) + var(--fNvSpacing) - var(--sectPaddingTop))
    }


    .Section {
      --sectPaddingNormalMax: 128
    }


    .Sect--hasStickyNav {
      --sectionOverflow: visible
    }

    .Sect--hasBorderTop .Sect__background {
      border-top: 1px solid rgba(230, 235, 241, .52)
    }

    .Sect--paddingSmall {
      --sectPaddingMax: var(--sectPaddingSmallMax)
    }

    .Sect--paddingXSmall {
      --sectPaddingMax: var(--sectPaddingXSmallMax)
    }

    .Section {
      --sectAnglePaddingTopBase: calc(var(--sectAnglePaddingBaseMin)*1px + (var(--sectAnglePaddingTopBaseMax) - var(--sectAnglePaddingBaseMin))*(var(--windowWidth)/737 - 0.50882px));
      --sectAnglePaddingBottomBase: calc(var(--sectAnglePaddingBaseMin)*1px + (var(--sectAnglePaddingBottomBaseMax) - var(--sectAnglePaddingBaseMin))*(var(--windowWidth)/737 - 0.50882px));
      --sectPaddingTopGutterWidth: var(--gutterWidth);
      --sectAnglePaddingTop: calc(var(--sectAngleHeight) - var(--sectAngleSin)*var(--sectPaddingTopGutterWidth) + var(--sectAnglePaddingTopBase));
      --sectAnglePaddingBottom: calc(var(--sectAngleHeight) - var(--sectAngleSin)*var(--gutterWidth) + var(--sectAnglePaddingBottomBase));
      --sectPaddingTop: calc(var(--sectPaddingMin)*1px + (var(--sectPaddingTopMax) - var(--sectPaddingMin))*(var(--windowWidth)/737 - 0.50882px));
      --sectPaddingBottom: calc(var(--sectPaddingMin)*1px + (var(--sectPaddingBottomMax) - var(--sectPaddingMin))*(var(--windowWidth)/737 - 0.50882px));
    }

    @media (max-width:375px) {
      .Section {
        --sectAnglePaddingTopBase: calc(var(--sectAnglePaddingBaseMin)*1px);
        --sectAnglePaddingBottomBase: calc(var(--sectAnglePaddingBaseMin)*1px);
        --sectPaddingTop: calc(var(--sectPaddingMin)*1px);
        --sectPaddingBottom: calc(var(--sectPaddingMin)*1px)
      }
    }

    @media (min-width:1112px) {
      .Section {
        --sectAnglePaddingTopBase: calc(var(--sectAnglePaddingTopBaseMax)*1px);
        --sectAnglePaddingBottomBase: calc(var(--sectAnglePaddingBottomBaseMax)*1px);
        --sectPaddingTop: calc(var(--sectPaddingTopMax)*1px);
        --sectPaddingBottom: calc(var(--sectPaddingBottomMax)*1px)
      }
    }

    .Sect__background {
      position: relative;
      height: 100%;
      max-height: var(--sectAngleMaxHeight);
      width: 100%;
      top: 0;
      left: 0;
      transform-origin: var(--sectionTransformOrigin);
      transform: skewY(var(--sectAngle));
      background: var(--backgroundColor);
      overflow: hidden
    }

    .Sect__background--isTransparent {
      background: hsla(0, 0%, 100%, .2);
      -webkit-backdrop-filter: blur(7px);
      backdrop-filter: blur(7px)
    }

    .Sect__masked {
      overflow: var(--sectionOverflow)
    }

    .Sect__container {
      position: relative;
      z-index: 1;
      display: flex;
      justify-content: center;
      min-height: var(--sectionMinHeight)
    }

    .Sect__layoutContainer {
      width: 100%;
      margin: 0 var(--colPadNormal)
    }

    .Sect__layout {
      padding: var(--sectPaddingTop) 0 var(--sectPaddingBottom)
    }

    .Sect--angleTop {
      --sectPaddingTop: var(--sectAnglePaddingTop);
      --sectAngle: var(--angleNormal)
    }

    .Sect--angleBottom {
      --sectionTransformOrigin: 0 0
    }

    .Sect--angleBoth,
    .Sect--angleBottom {
      --sectPaddingBottom: var(--sectAnglePaddingBottom);
      --sectionMarginBottom: calc(var(--sectAngleHeight)*-1)
    }

    .Sect--angleBoth {
      --sectPaddingTop: var(--sectAnglePaddingTop);
      --sectAngle: var(--angleNormal)
    }

    .Sect--bleed3 {
      --sectPaddingBottom: 0
    }

    .Sect__backgroundMask {
      position: absolute;
      width: 100%;
      height: 100%;
      overflow: var(--sectionBackgroundOverflow)
    }

    .Sect--paddingTopNone {
      --sectPaddingTop: 0
    }

    .Sect--paddingBottomNone {
      --sectPaddingBottom: 0
    }
  </style>
  <style>
    .MainHtml {
      --filterShadowMedium: 0px 3px 11.5px -3.5px rgba(50, 50, 93, 0.25), 0px 3.8px 7.5px -3.7px rgba(0, 0, 0, 0.1);
      --scrollbarOffset: 10px;
      --angleNormal: -6deg;
      --angleStrong: -12deg;
      --angleNormalSin: 0.106;
      --angleStrongSin: 0.212;
      --fNvHeight: 60px;
      --fNvSpacing: 48px;
      color-scheme: only light
    }

    .MainHtml *,
    .MainHtml :after,
    .MainHtml :before {
      box-sizing: border-box;
    }



    .MainHtml[data-loading] {
      overflow-x: hidden
    }

    .MainHtml[data-loading] :after,
    .MainHtml[data-loading] :before,
    .MainHtml[data-loading] :not([data-transition-in]) {
      transition: none !important
    }

    .MainBody {
      margin: 0;
      -webkit-font-smoothing: antialiased;
      -moz-osx-font-smoothing: grayscale;
    }

    .SiteFooterSection {
      --sectionBackgroundOverflow: hidden;
    }

    .SiteFooterSection {
      z-index: 2;
    }
  </style>

  <style>
    .MainHtml {
      --heroImgShadow: rgba(50, 50, 93, 0.25);
    }

    .Page-Theme-0 {
      --blendBackground: #d6d6d6;
      --blendIntersection: #d6d6d6;
      --blendForeground: #d6d6d6;
      --pageThemeBg: #fdfafd;
      --pageThemeLink: #800080;
      --pageThemeLinkH: #800080;
      --badgeColor: #6b6b6b;
      --badgeBackground: #bfbfbf21;
      --pageThemeSectionLink: #fff;
      --pageThemeSectionLinkBg: #9400FF;
      --pageThemeSectionLinkH: #9400FF;
      --pageThemeSectionLinkHBg: #80008021;
      --navSignupBg: #f1ddff;
      --navSignupColor: #192335;
      --navSignupBgH: #9400FF;
      --navSignupColorH: #ffffff;
    }

    .Page-Theme-1 {
      --blendBackground: #9400ff;
      --blendIntersection: #9400ff;
      --blendForeground: #9400ff;
      --pageThemeBg: #fdfafd;
      --pageThemeLink: #9400ff;
      --pageThemeLinkH: #c068ff;
      --pageThemeLinkDark: #b959ff;
      --badgeColor: #af1eff;
      --badgeBackground: #b966e721;
      --pageThemeSectionLink: #fff;
      --pageThemeSectionLinkBg: #9400FF;
      --pageThemeSectionLinkH: #9400FF;
      --pageThemeSectionLinkHBg: #80008021;
      --navSignupBg: #f1ddff;
      --navSignupColor: #192335;
      --navSignupBgH: #9400FF;
      --navSignupColorH: #ffffff;
      --heroImgShadow: rgba(148, 0, 255, 0.5);
    }

    .Page-Theme-2 {
      --blendBackground: #ff2171;
      --blendIntersection: #ff2171;
      --blendForeground: #ff2171;
      --pageThemeBg: #fffafc;
      --pageThemeLink: #FF2171;
      --pageThemeLinkH: #ff679e;
      --badgeColor: #FF2171;
      --badgeBackground: #ffebf2;
      --pageThemeSectionLink: #fff;
      --pageThemeSectionLinkBg: #ff0f80;
      --pageThemeSectionLinkH: #ff0f80;
      --pageThemeSectionLinkHBg: #ffeaf2;
      --navSignupBg: #ff217121;
      --navSignupColor: #192335;
      --navSignupBgH: #FF2171;
      --navSignupColorH: #ffffff;
      --heroImgShadow: rgba(255, 16, 127, 0.5);
    }

    .Page-Theme-3 {
      --blendBackground: #ff3802;
      --blendIntersection: #ff3802;
      --blendForeground: #ff3802;
      --pageThemeBg: #fffcfb;
      --pageThemeLink: #e75703;
      --pageThemeLinkH: #e75703;
      --badgeColor: #ff7300;
      --badgeBackground: #ff39010f;
      --pageThemeSectionLink: #fff;
      --pageThemeSectionLinkBg: #ff3802;
      --pageThemeSectionLinkH: #ff3802;
      --pageThemeSectionLinkHBg: #ffd89d85;
      --navSignupBg: #ffd89d85;
      --navSignupColor: #192335;
      --navSignupBgH: #ff3802;
      --navSignupColorH: #ffffff;
      --heroImgShadow: rgba(255, 57, 1, 0.5);
    }

    .Page-Theme-4 {
      --blendBackground: #00c918;
      --blendIntersection: #00c918;
      --blendForeground: #00c918;
      --pageThemeBg: #fbfffc;
      --pageThemeLink: #00ab14;
      --pageThemeLinkH: #00ab14;
      --badgeColor: #00c918;
      --badgeBackground: #eafff2;
      --pageThemeSectionLink: #fff;
      --pageThemeSectionLinkBg: #00c918;
      --pageThemeSectionLinkH: #119b44;
      --pageThemeSectionLinkHBg: #c5ffdb;
      --navSignupBg: #daffe8;
      --navSignupColor: #192335;
      --navSignupBgH: #14bf53;
      --navSignupColorH: #ffffff;
      --heroImgShadow: rgba(4, 201, 25, 0.5);
    }

    .Page-Theme-5 {
      --blendBackground: #1b8bff;
      --blendIntersection: #1b8bff;
      --blendForeground: #1b8bff;
      --pageThemeBg: #fbfdff;
      --pageThemeLink: #082d7a;
      --pageThemeLinkH: #082d7a;
      --pageThemeLinkDark: #1b8bff;
      --badgeColor: #082d7a;
      --badgeBackground: #c3f5ff;
      --pageThemeSectionLink: #fff;
      --pageThemeSectionLinkBg: #1b8bff;
      --pageThemeSectionLinkH: #082d7a;
      --pageThemeSectionLinkHBg: #c3f5ff;
      --navSignupBg: #1a8bff2b;
      --navSignupColor: #192335;
      --navSignupBgH: #1b8bff;
      --navSignupColorH: #ffffff;
      --heroImgShadow: rgba(26, 139, 255, 0.5);
    }

    .Page-Theme-6 {
      --blendBackground: #930077;
      --blendIntersection: #930077;
      --blendForeground: #930077;
      --pageThemeBg: #fffbfe;
      --pageThemeLink: #930077;
      --pageThemeLinkH: #930077;
      --badgeColor: #930077;
      --badgeBackground: #fff0fc;
      --pageThemeSectionLink: #fff;
      --pageThemeSectionLinkBg: #930077;
      --pageThemeSectionLinkH: #930077;
      --pageThemeSectionLinkHBg: #fff;
      --navSignupBg: #ffeafb;
      --navSignupColor: #192335;
      --navSignupBgH: #930077;
      --navSignupColorH: #fff;
      --heroImgShadow: rgba(147, 0, 119, 0.5);
    }


    .hero-img.page-theme-hero-img {
      box-shadow: 0 50px 100px -20px rgba(50, 50, 93, 0.25), 0 30px 60px -30px rgba(50, 50, 93, 0.25)
    }

    .bg-color-page-theme {
      background-color: var(--pageThemeBg) !important;
    }

    a.bg-page-theme-nav-signup {
      background: var(--navSignupBg) !important;
      color: var(--navSignupColor) !important;
    }

    a.bg-page-theme-nav-signup:hover,
    a.bg-page-theme-nav-signup:focus {
      background: var(--navSignupBgH) !important;
      color: var(--navSignupColorH) !important;
    }


    a.page-theme-link {
      color: var(--pageThemeLink);
    }

    a.page-theme-link.dark-link {
      color: var(--pageThemeLinkDark);
    }

    a.page-theme-link:hover,
    a.page-theme-link:focus {
      color: var(--pageThemeLinkH);
    }

    .page-theme-section-link {
      background: var(--pageThemeSectionLinkBg) !important;
      color: var(--pageThemeSectionLink) !important;
    }

    a.page-theme-section-link:hover,
    button.page-theme-section-link:hover {
      background: var(--pageThemeSectionLinkHBg) !important;
      color: var(--pageThemeSectionLinkH) !important;
    }


    .rbt-badge-6.page-theme-badge {
      background: var(--badgeBackground) !important;
      color: var(--badgeColor) !important;
    }

    .SeparatorSlant {
      --slantInset: 0px;
      --slantWidth: var(--gutterWidth);
      --slantMinWidth: 80px;
      --slantHeight: 40px;
      --slantIntersectionTop: calc(var(--slantSetHeight) - var(--slantHeight));
      --slantIntersectionInset: 0px;
      --slantIntersectionWidth: var(--gutterWidth);
      --slantIntersectionBackground: var(--blendIntersection);
      --slantMaxInset: calc(var(--layoutWidth)/2);
      --slantStartMax: calc(var(--layoutWidth) + var(--gutterWidth));
      --slantStart: calc(var(--slantStartMax) - var(--slantInset) + var(--slantBorderOffset));
      --slantBorderOffset: 0px;
      right: var(--slantStart);
      width: calc(var(--slantWidth) + var(--slantInset) - var(--slantBorderOffset)*2);
      position: absolute;
      height: var(--slantHeight);
      background: var(--slantColor);
      overflow: hidden;
    }

    .SeparatorSlantSet {
      --slantSetHeight: 72px;
      --slantSetAlignCenterOffset: -40px;
      --slantSetSubpixelOffset: 0;
      --slantSetAngle: var(--angleNormal);
      position: absolute;
      height: var(--slantSetHeight);
      width: 100%;
      transform: skewY(var(--slantSetAngle)) translateY(var(--slantSetSubpixelOffset));
      overflow: hidden;
    }



    .SeparatorSlant__intersection {
      position: absolute;
      top: var(--slantIntersectionTop);
      height: var(--slantHeight);
      transform: translateY(-0.25px);
      background: var(--slantIntersectionBackground);
      left: calc(var(--slantWidth) - var(--slantIntersectionWidth));
      width: calc(var(--slantIntersectionWidth) + var(--slantIntersectionInset));
    }

    .SeparatorSlantSet--alignCenter {
      top: var(--slantSetAlignCenterOffset);
    }

    .SeparatorSlantSet--alignEnd {
      top: calc(var(--slantSetHeight)*-1);
    }

    .SeparatorSlant--insetNormal {
      --slantInset: calc(var(--slantMaxInset)*0.25);
    }

    .SeparatorSlant--accentNone:first-of-type {
      --slantColor: var(--blendBackground);
    }

    .SeparatorSlant--widthNormal {
      --slantWidth: 160px;
    }

    .SeparatorSlantSet--BottomLeft .SeparatorSlant.SeparatorSlant--accentNone {
      --slantColor: var(--blendForeground);
    }

    .SeparatorSlantSet--BottomLeft .SeparatorSlant {
      top: var(--slantIntersectionTop);
    }

    .SeparatorSlant--insetSmall {
      --slantInset: calc(var(--slantMaxInset)*0.125);
    }

    .SeparatorSlant:nth-of-type(3) {
      --slantColor: transparent;
    }

    .SeparatorSlant--intersectionInsetSmall {
      --slantIntersectionInset: calc(var(--slantMaxInset)*0.25);
    }

    .SeparatorSlant--intersectionWidthNormal {
      --slantIntersectionWidth: 160px;
    }

    .SeparatorSlantSet--BottomRight .SeparatorSlant__intersection,
    .SeparatorSlantSet--TopRight .SeparatorSlant__intersection {
      left: auto;
      right: calc(var(--slantWidth) - var(--slantIntersectionWidth));
    }


    .SeparatorSlantSet--TopRight {
      --slantSetSubpixelOffset: -0.35px;
      top: 0;
      right: 0;
      transform-origin: 100% 0;
    }

    .SeparatorSlantSet--TopLeft {
      top: 0;
      left: 0;
      transform-origin: 100% 0;
    }

    .SeparatorSlantSet--BottomLeft {
      left: 0;
      bottom: 0;
      transform-origin: 0 100%;
    }


    .SeparatorSlantSet--BottomRight .SeparatorSlant,
    .SeparatorSlantSet--TopRight .SeparatorSlant {
      right: auto;
      left: var(--slantStart);
    }
  </style>

  <style>
    .rbt-btn:hover {
      background-color: var(--color-primary);
      color: var(--color-white);
      transform: translate3d(0, -2px, 0);
      box-shadow: var(--shadow-7);
    }

    .rbt-btn.btn-white {
      box-shadow: none;
    }

    .rbt-btn.btn-white:hover {
      box-shadow: var(--shadow-7);
      background: var(--color-white);
      color: var(--color-heading);
    }


    .rbt-header.rbt-transparent-header {
      max-width: 1450px;
      margin-left: auto;
      margin-right: auto;
    }

    .bg-violet-opacity-2 {
      background: rgba(226, 213, 252, 0.8) !important;
      color: var(--color-violet) !important;
    }

    a.text-link:hover {
      cursor: pointer;
    }

    .quick-access>li.account-access {
      padding-left: 10px;
      margin-left: 20px;
      margin-right: 20px;
      position: relative;
    }

    .rbt-header .logo a img {
      max-height: 21px;
    }

    .rbt-banner-1 {
      background: var(--gradient-2) !important;
      background: linear-gradient(180deg, #f4e9fd87 0%, #FFFFFF 100%) !important;
    }

    .rbt-banner-1.variation-2 .content,
    .rbt-banner-1.variation-2 .content .inner .title,
    .rbt-banner-1.variation-2 .content .inner .description {
      padding-right: 0%;
    }

    .product-hero .content,
    .product-hero .content .inner .title,
    .product-hero .content .inner .description {
      padding-right: 0%;
    }


    .quick-access>li.account-access:first-child::after {
      background: none;
    }

    .height-450 {
      height: 450px;
    }

    .height-350 {
      height: 350px;
    }

    .height-250 {
      height: 250px;
    }

    .height-450,
    .height-350,
    .height-250 {
      display: flex;
      align-items: center;
    }

    .rbt-section-gap-2.simple-page,
    .rbt-section-gap.simple-page {
      padding-top: 0px;
      margin-top: -20px
    }

    @media only screen and (max-width: 1199px) {

      .height-450,
      .height-350,
      .height-250 {
        height: auto
      }
    }

    @media only screen and (min-width: 1199px) {
      .rbt-section-gap-2.simple-page {
        padding-top: 0px;
        /* margin-top: -90px */
      }
    }

    .rbt-section-gap-2 {
      padding: 60px 0;
    }

    a.a-no-link:hover {
      cursor: default;
    }

    .form-group input:focus {
      outline: none;
    }

    .form-group input:focus-visible {
      border-color: #efefef;
      outline: none;
    }

    .form-group.focused label {
      color: var(--color-gray);
    }

    .form-group span.focus-border {
      background-color: var(--color-gray);
    }

    .quick-access>li.account-access::after {
      background: none !important;
    }



    .inner-skew-angle {
      position: absolute;
      height: 100px;
      width: 100%;
      transform: skewY(-6deg) translateY(0);
      overflow: hidden;
    }

    .product-separator-skew .inner-skew-angle {
      transform: skewY(var(--angleNormal)) translateY(0);
    }



    .large-hero h1 span.hero-title-1,
    .large-hero h1 span.hero-title-2 {
      color: #fff;
      text-shadow: 1px 1px #00000052;
    }

    .large-hero .large-hero-inner,
    .product-hero .product-hero-inner {
      top: 0px;
    }

    @media only screen and (min-width: 991px) {

      .large-hero .second-col {
        top: 40px;
        margin-bottom: 30px;
      }

      .bg-color-light-blue {
        background-color: #f0f2ff;
      }
    }

    @media only screen and (max-width: 991px) {

      .large-hero .second-col,
      .product-hero .second-col {
        top: 100px;
        height: 100%;
      }
    }

    .large-hero.height-750,
    .product-hero.height-750 {
      height: 850px;
      display: flex;
      align-items: center;
    }

    @media only screen and (min-width: 991px) {
      .large-hero.height-750.register-hero {
        height: 1250px;
        display: flex;
        align-items: center;
      }

      .large-hero.height-750.pricing-hero {
        height: 950px;
        display: flex;
        align-items: center;
      }

      .large-hero.height-750.contact-hero {
        height: 950px;
        display: flex;
        align-items: center;
      }
    }

    @media only screen and (max-width: 991px) {

      .large-hero.height-750,
      .product-hero.height-750 {
        height: auto;
      }
    }

    .large-hero.rbt-banner-area.rbt-banner-1 {
      background: none !important;
    }

    @media only screen and (min-width: 768px) and (max-width: 991px) {
      .product-hero {
        padding: 0 60px;
        padding-top: 100px;
        padding-bottom: 100px;
      }
    }

    @media only screen and (min-width: 1200px) {

      .large-hero.rbt-banner-1.variation-2 .content .inner h1.title,
      .large-hero.rbt-banner-large-hero .content .inner h1.title,
      .product-hero .content .inner h1.title,
      .product-hero-inner h1.title {
        line-height: .95;
      }
    }



    #hero-background-wrapper {
      position: absolute;
      top: auto;
      left: calc(var(--largeHeroOffsetX)*-1);
      left: 0;
      width: var(--windowWidth);
      height: var(--largeHeroGHeight);
      transform-origin: var(--largeHeroTransformX) 100%;
      transform: skewY(-12deg);
      overflow: hidden;
    }

    .white-hero-nav .rbt-header .mainmenu-nav .mainmenu>li>a,
    .white-hero-nav .quick-access>li>a {
      color: #fff !important;
      text-shadow: 1px 1px #00000036;
    }

    .white-hero-nav .rbt-header .mainmenu-nav .mainmenu>li>a:hover,
    .white-hero-nav .rbt-header .mainmenu-nav .mainmenu>li>a:focus,
    .white-hero-nav .rbt-header .mainmenu-nav .mainmenu>li>a:active,
    .white-hero-nav .quick-access>li>a:hover {
      color: #fff !important;
      opacity: .6;
    }

    .white-hero-nav .rbt-header .mainmenu-nav .mainmenu>li:hover>a,
    .white-hero-nav .rbt-header .mainmenu-nav .mainmenu>li.active>a {
      color: #fff !important;
      opacity: .6;
    }

    .large-hero .large-hero-inner.inner .sub-description,
    .product-hero .product-hero-inner.inner .sub-description {
      max-width: 80%;
    }

    .large-hero.rbt-banner-1 .content .inner .title,
    .large-hero.rbt-banner-large-hero .content .inner .title,
    .product-hero.rbt-banner-1 .content .inner .title {
      letter-spacing: -0.03em;
      color: #000;
    }

    .large-hero .large-hero-inner.inner .sub-description .hero-quote {
      max-width: 80%;
      color: #5a5a5a !important;
    }

    @media only screen and (min-width: 1200px) {
      .product-hero .about-style-1 .thumbnail-wrapper .thumbnail.image-1 {
        left: 200px;
        top: 0px;
      }

    }

    @media only screen and (max-width: 767px) {

      .large-hero .large-hero-inner.inner .sub-description,
      .product-hero .product-hero-inner.inner .sub-description {
        color: #000;
        max-width: 100%;
        background-color: #ffffffc4;
        padding: 10px;
        border-radius: 5px;
        text-align: center;
      }

      .large-hero .large-hero-inner.inner .sub-description .hero-quote {
        max-width: 100%;
      }

      .rbt-banner-1.variation-2 .content .inner .description {
        font-size: 24px;
      }

      .product-hero .content .inner .description {
        font-size: 24px;
      }

      .product-hero {
        padding: 0 15px;
        padding-top: 90px;
        padding-bottom: 50px;
      }

      .product-hero .image-1 {
        left: 0px;
        top: 20px;
      }
    }

    @media only screen and (max-width: 991px) {

      .large-hero.rbt-banner-1 .content .inner .title,
      .large-hero.rbt-banner-large-hero .content .inner .title {
        font-size: 65px;
        margin-left: -1px;
        line-height: 1;
      }

      .product-hero .content .inner .title {
        font-size: 40px;
      }

      .product-hero-inner h1.title {
        font-size: 40px;
        margin-left: -3px;
      }
    }

    @media only screen and (min-width: 992px) and (max-width: 1199px) {

      .large-hero.rbt-banner-1 .content .inner .title,
      .large-hero.rbt-banner-large-hero .content .inner .title {
        font-size: 90px;
        margin-left: -5px;
      }

      .product-hero .content .inner .title {
        font-size: 50px;
      }

      .product-hero-inner h1.title {
        font-size: 50px;
        margin-left: -3px;
      }
    }

    @media only screen and (min-width: 1200px) {

      .large-hero.rbt-banner-1 .content .inner .title,
      .large-hero.rbt-banner-large-hero .content .inner .title {
        font-size: 130px;
        margin-left: -10px;
      }

      .product-hero .content .inner .title {
        font-size: 60px;
      }

      .product-hero-inner h1.title {
        font-size: 75px;
        margin-left: -5px;
      }
    }

    @media only screen and (max-width: 991px) {
      .hero-small-mb {
        margin-bottom: 100px;
      }
    }

    .small-shadow {
      box-shadow: 0px 1px 4px rgb(215 216 222 / 97%);
    }

    .rbt-card.small-shadow {
      box-shadow: 0px 1px 4px rgb(215 216 222 / 97%);
    }

    .rbt-card.white-bordered {
      border: 3px solid #fff;
      border-radius: 8px;
    }

    .rbt-card.white-bordered-large {
      border: 4px solid #fff;
      border-radius: 10px;
    }

    .card-top-white-bordered {
      border-top: 3px solid #ffffff;
    }

    .card-top-grey-bordered {
      border-top: 3px solid #737373;
    }

    .rbt-card.thin-border {
      border: 2px solid #fff;
    }

    .rbt-card.thinner-border {
      border: 1px solid #fff;
    }

    .advance-pricing .pricing-middle {
      height: 100%;
      background: var(--color-lighter);
      padding: 60px 50px;
      border-radius: 0px;
    }

    .advance-pricing .price-wrapper .price-amount {
      font-size: 60px;
      text-align: center;
      display: block;
      color: var(--color-heading);
      font-weight: 700;
      line-height: 1;
    }

    .advance-pricing .price-wrapper .price-amount sup {
      font-size: 16px;
      top: -34px;
    }

    .advance-pricing .main-title {
      margin-bottom: 10px;
    }

    .rbt-contact-form.contact-form-style-1.semi-trans-hero-bg {
      background: #ffffffe8;
    }

    .rbt-contact-form.contact-form-style-1.semi-trans-hero-outline {
      outline: 10px solid #ffffff21;
    }

    .rbt-round-btn::after {
      background: #f6f6f64f;
    }

    .popup-mobile-menu .inner-wrapper .inner-top .close-button {
      height: 25px;
    }

    .popup-mobile-menu .inner-wrapper .inner-top .logo a img {
      max-height: 20px;
    }

    p {
      color: #425466;
    }

    .page-hero-wrapper {
      position: absolute;
      bottom: 0;
      left: 0;
      top: 0;
      width: 100%;
      height: 450px;
      transform-origin: 0 100%;
      transform: skewY(var(--angleNormal));
      will-change: transform;
      z-index: 0;
    }

    .page-hero-canvas {
      position: relative;
      display: block;
      width: inherit;
      height: 100%;
    }

    .hero-thumbnail .small {
      font-size: .75em;
    }

    .section-separator-wrapper {
      position: absolute;
      bottom: 0;
      left: 0;
      width: 100%;
      transform-origin: 0 100%;
      transform: skewY(var(--angleNormal));
      will-change: transform;
      z-index: 0;
    }

    .section-separator-wrapper.skew-flat {
      transform: skewY(0);
    }

    .section-separator-wrapper.section-separator-250 {
      height: 250px;
    }

    .section-separator-wrapper.section-separator-300 {
      height: 300px;
    }

    .section-separator-wrapper.section-separator-400 {
      height: 400px;
    }

    .section-separator-wrapper.section-separator-500 {
      height: 500px;
    }

    .section-separator-wrapper.section-separator-10 {
      height: 10px;
    }

    .section-separator-canvas {
      position: absolute;
      display: block;
      width: inherit;
      height: 100%;
    }

    .gradient-canvas {
      image-rendering: pixelated;
    }

    @media only screen and (max-width: 787px) {}

    @media only screen and (max-width: 991px) {}


    @media only screen and (min-width: 992px) and (max-width: 1199px) {}

    @media only screen and (min-width: 1200px) {}


    .rbt-btn.btn-secondary:hover {
      background-color: var(--color-secondary);
    }

    .rbt-btn.btn-violet:hover {
      background: var(--color-violet);
    }

    .rbt-card-nav a:hover,
    .rbt-card-nav a:focus,
    .rbt-card-nav a:active {
      text-decoration: none;
      outline: none;
      color: var(--pageThemeLink);
    }

    .text-strong {
      font-weight: 600;
    }

    .rbt-badge-card.large-badge {
      padding: 3px 10px;
      font-size: 14px;
    }

    .v-align-super {
      vertical-align: super;
    }

    div.developer-example-wrap {
      border: 1px solid #ffffff26;
      border-radius: 14px;
    }

    .thumbnail-wrapper .thumbnail.outlined-img img {
      outline: 10px solid #ffffff21;
    }

    .developer-example-wrap pre {
      border-radius: 14px;
    }

    .thumbnail-wrapper .thumbnail img.hero-img {
      border-radius: 6px;
    }

    .thumbnail-wrapper.inner-thumbnail {
      padding: 4px;
      border-radius: 6px;
      overflow: hidden;
    }

    .thumbnail-wrapper.inner-thumbnail .thumbnail {
      border-radius: 6px;
      overflow: hidden;
    }

    @media only screen and (max-width: 991px) {
      .row.extra-padding.extra-padding-y .mt--20 {
        margin-top: 20px;
      }
    }

    @media only screen and (min-width: 992px) {
      .row.extra-padding {
        --bs-gutter-x: 5rem;
      }

      .row.extra-padding.extra-padding-y {
        --bs-gutter-y: 5rem;
      }

      .row.extra-padding.extra-padding-y .mt--20 {
        margin-top: var(--bs-gutter-y) !important;
      }
    }

    span.title-numeral {
      font-size: 30px;
      font-weight: 600;
      color: #ffffff;
      line-height: 1.26;
    }

    div.title-numeral-wrap {
      position: absolute;
      margin-top: 0px;
      margin-left: -55px;
      height: 40px;
      width: 40px;
      border-radius: 50px;
      background: #616161;
      text-align: center;
    }



    div.title-numeral-wrap-v2 span.title-numeral {
      font-size: 25px;
      font-weight: 600;
      color: #ffffff;
      line-height: 1.17;
      color: var(--color-secondary) !important;
    }

    div.title-numeral-wrap-v2 {
      position: absolute;
      margin-top: 4px;
      margin-left: -45px;
      height: 30px;
      width: 30px;
      border-radius: 30px;
      background: #8000806e;
      text-align: center;
      background: var(--secondary-opacity) !important;
    }

    @media (min-width: 992px) {
      div.row.row-extra-padding>[class^="col-"] {
        padding-right: 40px;
      }
    }

    .rbt-card-body.card-body-padded {
      padding: 40px;
    }

    .rbt-card.card-nopadded,
    .rbt-card.card-nopadded .rbt-card-body {
      padding: 0px;
    }

    .rbt-card-col-1 {
      padding: 70px;
      padding-top: 30px;
      padding-bottom: 30px;
      z-index: 1;
    }

    .card-gradient {
      height: 100%;
      opacity: .26;
    }

    .card-gradient-wrap {
      height: 100%;
      /* position: relative; */
    }

    .card-gradient-overlay {
      height: 100%;
      position: relative;
      background: linear-gradient(90deg, rgb(255 255 255) 0%, rgb(255 255 255 / 92%) 56%, rgb(255 255 255 / 20%) 100%);
    }

    .card-gradient-overlay-vertical {
      height: 100%;
      position: relative;
      background: linear-gradient(0deg, rgb(255 255 255) 0%, rgb(255 255 255 / 92%) 56%, rgb(255 255 255 / 20%) 100%);
    }

    .card-gradient-wrap .card-icon {
      position: absolute;
      font-size: 100px;
    }

    .bg-card-color-white-bordered {
      background: var(--color-white);
      background-color: var(--color-white) !important;
      border-radius: 4px;
    }

    .tab-button-style-2 li a.active {
      color: var(--color-violet);
    }

    .tab-button-style-2 li a::after {
      background-color: var(--color-violet);
    }

    ul.tab-button-style-2 li a:hover,
    ul.tab-button-style-2 li a:focus,
    ul.tab-button-style-2 li a:active {
      color: var(--pageThemeLink);
    }

    .advance-tab-button-1 .tab-button-list .tab-button {
      padding: 25px 25px;
    }
  </style>

  <style>
    .lifespan-lg-wrap .advance-tab-button-1 .tab-button-list .tab-button::after {
      border-left: 20px solid var(--color-lighter);
    }

    .lifespan-lg-wrap .advance-tab-button-1 .tab-button-list .tab-button::before {
      background: var(--color-lighter);
      box-shadow: none;
    }

    .does-it-all-tab-content {
      padding: 30px;
      border-radius: 10px;
    }
  </style>

  <style>
    .bg-rose-opacity {
      background: #f6a1e430 !important;
      color: #a90087 !important;
    }

    .color-rose {
      color: #a90087 !important;
    }


    .color-coral-dark {
      color: #f26e42 !important;
    }

    .color-orange {
      color: #ff3901 !important;
    }

    .color-blue {
      color: #005cb7 !important;
    }

    .color-blue-dark {
      color: #004f9e !important;
    }
    .color-info-dark {
      color: #00aacc !important;
    }

    .color-green {
      color: #139135 !important;
    }
    .color-secondary-dark {
      color: #8627ba !important;
    }

    .color-pink-dark {
      color: #e03b71 !important;
    }

    .color-hot-pink {
      color: #ff2171 !important;
    }

    .bg-color-violet-opacity-light {
      background: #80008005 !important;
    }

    .bg-color-hot-pink {
      background-color: #ff2171 !important;
    }

    .color-purple {
      color: #6e00be !important;
    }

    .bg-color-purple {
      background-color: #6e00be !important;
    }

    .bg-color-purple-1 {
      background: #aa7ae90a !important;
    }

    .bg-color-purple-2 {
      background: #aa7ae913 !important;
    }

    .bg-color-purple-3 {
      background: #aa7ae924 !important;
    }

    .bg-color-purple-4 {
      background: #aa7ae930 !important;
    }


    .bg-color-purple-5 {
      background: #b966e7 !important;
    }

    .bg-color-purple-6 {
      background: #ab45e3 !important;
    }

    .bg-color-purple-7 {
      background: #a427e9 !important;
    }

    .bg-color-orange {
      background-color: #ff3802 !important;
    }

    .bg-color-orange-1 {
      background: #ff380208 !important;
    }

    .bg-color-orange-2 {
      background: #ff380213 !important;
    }

    .bg-color-orange-3 {
      background: #ff380220 !important;
    }

    .bg-color-orange-4 {
      background: #ff38022b !important;
    }

    .bg-color-orange-5l {
      background: #ff6c2e !important;
    }

    .bg-color-orange-5 {
      background: #ff5f1c !important;
    }

    .bg-color-orange-6 {
      background: #ff4d01 !important;
    }

    .bg-color-orange-7 {
      background: #ff3901 !important;
    }


    .bg-color-pink {
      background-color: #ff2171 !important;
    }

    .bg-color-pink-1 {
      background: #ff217108 !important;
    }

    .bg-color-pink-2 {
      background: #ff217113 !important;
    }

    .bg-color-pink-3 {
      background: #ff217124 !important;
    }

    .bg-color-pink-4 {
      background: #ff217130 !important;
    }


    .bg-color-pink-5 {
      background: #f93491 !important;
    }

    .bg-color-pink-6 {
      background: #ff278d !important;
    }

    .bg-color-pink-7 {
      background: #ff0f80 !important;
    }

    .bg-color-pink-8 {
      background: #fa0074 !important;
    }

    .bg-color-blue {
      background-color: #1a8bff !important;
    }

    .bg-color-blue-1 {
      background: #1a8bff08 !important;
    }

    .bg-color-blue-2 {
      background: #1a8bff13 !important;
    }

    .bg-color-blue-3 {
      background: #1a8bff24 !important;
    }

    .bg-color-blue-4 {
      background: #1a8bff30 !important;
    }


    .bg-color-blue-5l {
      background: #007eff !important;
    }

    .bg-color-blue-5 {
      background: #0076ee !important;
    }

    .bg-color-blue-6 {
      background: #006bd6 !important;
    }

    .bg-color-blue-7 {
      background: #005cb7 !important;
    }

    .bg-color-woo-purple {
      background: #7f54b2 !important;
    }

    .bg-color-woo-purple-light {
      background: #7f54b21a !important;
    }

    .bg-color-dark-purple-1 {
      background: #980ee4 !important;
    }

    .bg-color-dark-purple-2 {
      background: #8805d0 !important;
    }

    .bg-color-dark-purple-3 {
      background: #6b00a5 !important;
    }

    .bg-color-dark-purple-4 {
      background: #580088 !important;
    }

    .bg-color-pink-1 {
      background: #db709312 !important;
    }

    .bg-color-light-xl {
      background-color: #fafcff !important;
    }


    .bg-color-google-blue {
      background-color: #4285F4 !important;
    }

    .bg-color-google-green {
      background-color: #0F9D58 !important;
    }

    .bg-color-dark-green {
      background-color: #1a9139 !important;
    }

    .bg-color-google-red {
      background-color: #DB4437 !important;
    }

    .bg-color-google-yellow {
      background-color: #F4B400 !important;
    }

    .bg-color-white-light-opacity {
      background-color: #ffffff0d !important;
    }

    .bg-color-white-light-xl-opacity {
      background-color: #ffffff05 !important;
    }

    .bg-color-white-xl-opacity {
      background-color: #ffffff03 !important;
    }

    .bg-color-white-opacity-more {
        background-color: #ffffffe3 !important;
    }

    .bg-color-transparent {
        background-color: transparent!important;
    }
    .rbt-badge-6.bg-color-gray {
      color: #fff !important;
      background-color: #8e979b !important;
    }

    .color-bright-lime {
      color: #b0ff14 !important;
    }

    .color-bright-aqua {
      color: #07ffb9 !important;
    }

    .badge.numbering-badge {
      padding: 0.35em 0.6em;
    }

    @media (min-width:991px) {
      .numbered-badge-wrap .badge.numbering-badge {
        vertical-align: sub;
        margin-left: -12px;
      }
    }

    .numbered-badge-wrap .badge.numbering-badge {
      font-size: .9em !important;
    }

    .h5-badge {
      font-size: .67em;
      vertical-align: text-top;
      margin-right: 5px;
    }

    .card-light-purple-bg {
      box-shadow: none;
      background-color: #80008008;
    }

    .bg-color-light {
      background-color: #f6f9fc !important;
    }

    .bg-color-gray-med {
      background-color: #e6e8f1 !important;
    }

    .bg-color-gray-med-xl {
      background-color: #eef0f8 !important;
    }

    .mw--90 {
      max-width: 90%;
    }

    .mw--80 {
      max-width: 80%;
    }

    .padded-thumbnail {
      padding: 20px;
      background-color: #fff;
      border-radius: 6px;
    }

    .padded-thumbnail img {
      max-height: 500px;
    }

    .popup-mobile-menu .mainmenu li a:hover,
    .popup-mobile-menu .mainmenu li a:focus,
    .popup-mobile-menu .mainmenu li a:active {
      color: #9d2fef;
    }

    .Sect--Dark li.list-item.color-white {
      color: #f0f0f0 !important;
    }

    span.helv-font {
      font-family: "Helvetica Neue", sans-serif;
    }

    /* .hljs.highlight-code.language-plaintext {
      color: #4dd0e1;
    } */

    div.developer-example-wrap {
      border: 1px solid #ffffff26;
      border-radius: 14px;
    }

    #functions-container-wrap .margin-view-overlays,
    #functions-container-wrap .lines-content.monaco-editor-background {
      background-color: #021012 !important;
    }

    #functions-container-wrap .developer-example-wrap,
    .developer-example-wrap pre.highlight-code.language-cpp.hljs,
    #functions-container-wrap .monaco-editor.no-user-select.mac.showUnused.showDeprecated.vs-dark,
    #functions-container-wrap .monaco-editor .overflow-guard {
      border-radius: 14px;
    }


    .hljs {
      background: #021012 !important;
    }

    section.svg-section svg {
      margin-bottom: -1px;
    }

    section.svg-section svg {
      position: relative;
      z-index: 1;
    }

    .no-shadow {
      box-shadow: none !important;
    }

    .rbt-default-tab.tab-dark-bg {}

    .rbt-default-tab.tab-dark-bg .tab-button .tabs__tab .nav-link {
      color: var(--color-white);
      /* background: var(--color-gray); */
    }

    .rbt-default-tab.tab-dark-bg .tab-button .tabs__tab .nav-link.active {
      color: var(--color-heading);
      background: var(--color-lighter);
      border-color: transparent;
    }

    .rbt-default-tab.tab-dark-bg div.tab-content {
      padding: 30px;
      border-bottom-left-radius: .25rem;
      border-bottom-right-radius: .25rem;
    }

    .rbt-badge-super {
      background: var(--color-gray-light);
      padding: 4px 7px;
      font-size: 11px;
      display: inline-block;
      vertical-align: super;
      height: 22px;
      align-items: center;
      border-radius: var(--radius-small);
      justify-content: center;
      width: max-content;
    }

    .rbt-badge-default {
      font-size: 14px;
      line-height: 15px;
      font-weight: 500;
      margin-bottom: 15px;
      display: inline-block;
      padding: 10px 20px;
      border-radius: 100px;
      text-transform: uppercase;
      display: inline-block;
      background: #0c0c0c0a;
      color: var(--color-body);
    }

    .row.hero-btn-row .bg-secondary-opacity {
      color: #8d11d2 !important;
    }

    .row.hero-btn-row a.bg-secondary-opacity:hover,
    .row.hero-btn-row button.bg-secondary-opacity:hover {
      background: #a631e7 !important;
      color: var(--color-white) !important;
    }

    .row.hero-btn-row .bg-pink-opacity {
      background: #d733aa21 !important;
      color: #e3259f !important;
    }

    .row.hero-btn-row a.bg-pink-opacity:hover,
    .row.hero-btn-row button.bg-pink-opacity:hover {
      background: #d52186 !important;
      color: var(--color-white) !important;
    }

    .rbt-card.bg-color-text-white h4,
    .rbt-card.bg-color-text-white h5,
    .rbt-card.bg-color-text-white h6,
    .rbt-card.bg-color-text-white p,
    .rbt-card.bg-color-text-white ul li.list-item,
    .rbt-card.bg-color-text-white ol li.list-item {
      color: white !important;
    }

    .tab-content.bg-color-text-white h4,
    .tab-content.bg-color-text-white h5,
    .tab-content.bg-color-text-white h6,
    .tab-content.bg-color-text-white p,
    .tab-content.bg-color-text-white ul li.list-item,
    .tab-content.bg-color-text-white ol li.list-item {
      color: white !important;
    }

    .rbt-card.shadow-blue,
    .thumbnail.shadow-blue {
      box-shadow: var(--shadow-blue);
    }

    .rbt-card.shadow-12,
    .thumbnail.shadow-12 {
      box-shadow: var(--shadow-12);
    }

    .shadow-13 {
      box-shadow: 0 50px 100px -20px rgba(50, 50, 93, 0.25), 0 30px 60px -30px rgba(0, 0, 0, 0.3) !important;
    }

    .shadow-14 {
      box-shadow: 0 50px 100px -20px rgba(50, 50, 93, 0.25), 0 30px 60px -30px rgba(50, 50, 93, 0.25) !important;
    }

    .rbt-default-tab .rainbow-tab-content {
      background: var(--color-light);
      padding: 40px;
    }

    .rbt-default-tab .tab-button .tabs__tab .nav-link.active {
      background: var(--color-light);
      border-color: transparent;
    }

    .border-radius--30 {
      border-radius: 30px !important;
    }

    .border-radius--20 {
      border-radius: 20px !important;
    }

    .border-radius--15 {
      border-radius: 15px !important;
    }

    .border-radius--10 {
      border-radius: 10px !important;
    }

    .hero-terminal-simulator {
      opacity: .9
    }

    .terminal-font {
      font-family: "Courier 10 Pitch", Courier, monospace;
    }

    .terminal-font i {
      color: #7a7a7a !important;
      font-size: .775em;
    }

    .terminal-console-green,
    .terminal-font .terminal-console-green i {
      color: #3EB75E !important
    }

    .terminal-console-blue,
    .terminal-font .terminal-console-blue i {
      color: #579bec !important;
    }

    span.terminal-console-pink {
      color: #ff2171;
    }

    .hero-box-shadow {
      box-shadow: 0 50px 100px -20px rgba(50, 50, 93, 0.25), 0 30px 60px -30px rgba(50, 50, 93, 0.25);
    }

    #hero-ui-display {
      cursor: default !important;
      -webkit-touch-callout: none;
      -webkit-user-select: none;
      -khtml-user-select: none;
      -moz-user-select: none;
      -ms-user-select: none;
      user-select: none;
    }

    p.italic,
    span.italic {
      font-style: italic;
    }

    .rbt-default-tab .tab-button.white-nav .tabs__tab .nav-link.active {
      background: #fff;
      color: var(--color-heading);
      border-color: transparent;
    }

    .rbt-default-tab .tab-button.blue-trans-nav .tabs__tab .nav-link.active {
      background: #1a8bff13;
      border-color: transparent;
    }
  </style>

  <style>
    .Typewriter__cursor {
      display: none;
    }

    .hero-terminal-simulator {
      --terminalHeroBorderRadius: 10px;
      --terminalHeaderBorderRadius: 10px;
      --terminalHeroBgColor: #e8e8e8;
      border-radius: var(--terminalHeroBorderRadius);
      overflow: hidden;
      box-shadow: 0 20px 80px -20px rgba(50, 50, 93, 0.85), 0 10px 30px -20px rgba(50, 50, 93, 0.45);
    }

    .hero-terminal-simulator {
      opacity: 1;
    }

    .terminal-hero-card {
      border-top-left-radius: 0px;
      border-top-right-radius: 0px;
      /* opacity: .95; */
      padding: 20px;
    }

    .terminal-hero-header {
      height: 40px;
      background: var(--terminalHeroBgColor);
    }

    .terminal-mac-buttons {
      position: relative;
      top: -3px;
      left: 15px;
    }

    .mac-button {
      font-size: 13px;
    }

    .mac-button-close {
      color: #FF5D5A
    }

    .mac-button-minimize {
      color: #f5c350
    }

    .mac-button-maximize {
      color: #65cd57
    }
  </style>

  <style>
    .sect-thumbnail-main {
      position: relative;
      --sectImgScale: scale(1.7);
    }

    .sect-thumbnail-main.scale-less {
      --sectImgScale: scale(1.503);
    }

    .sect-thumbnail-main.scale-none {
      --sectImgScale: scale(1);
    }

    .sect-thumbnail-main.fade-white {
      --mgmtFadeBgColor: #ffffff;
    }

    .sect-thumbnail-main.fade-light {
      --mgmtFadeBgColor: #f6f9fc;
    }

    .sect-thumbnail-main.fade-light-xl {
      --mgmtFadeBgColor: #fafcff;
    }

    .sect-thumbnail-main.fade-gray {
      --mgmtFadeBgColor: #a0a9ac;
    }

    .sect-thumbnail-main.fade-gray-lighter {
      --mgmtFadeBgColor: #ebebeb;
    }

    .sect-thumbnail-main.fade-darker {
      --mgmtFadeBgColor: #192335;
    }

    .sect-thumbnail-main.fade-blue-1 {
      --mgmtFadeBgColor: #ecf2fa;
    }

    .sect-thumbnail-main.fade-lighter {
      --mgmtFadeBgColor: var(--color-lighter)
    }

    .sect-thumbnail-main.fade-page-theme {
      --mgmtFadeBgColor: var(--pageThemeBg)
    }

    .sect-thumbnail-wrapper {
      height: 350px;
      overflow: hidden;
      padding: 30px 30px 0px 30px;
      margin-top: -100px;
    }


    .sect-img {
      /* border-radius: 10px; */
    }

    .sect-img:not(.no-transform) {
      -moz-transform: var(--sectImgScale);
      -webkit-transform: var(--sectImgScale);
      transform: var(--sectImgScale);
      transform-origin: top left;
    }

    .sect-thumbnail {
      box-shadow: 0px 10px 30px -10px #47479b38, 0 10px 30px -10px #3f3f7338;
      border-radius: 10px;
      background: #fff;
      overflow: hidden;
      border: 0;
      height: 100%;
    }

    .sect-thumbnail:not(.no-border) {
      border: 15px solid #fff;
    }

    .sect-thumbnail.no-background {
      background: none;
    }

    .sect-thumbnail-fade {
      height: 70px;
      width: 100%;
      bottom: 0px;
      position: absolute;
      background: linear-gradient(to bottom, transparent, var(--mgmtFadeBgColor));
    }



    .sect-thumbnail-main.sect-thumbnail-cornered {
      position: absolute;
      bottom: -10px;
    }

    .sect-thumbnail-cornered .sect-thumbnail-wrapper {
      overflow: hidden;
      padding: 0;
      margin-top: 0px;
    }




    .manage-cards-row .sect-thumbnail-wrapper {
      height: 220px;
    }

    .sect-thumbnail-cornered .sect-img {
      border-radius: 0px;
      opacity: 1;
    }

    .sect-thumbnail-cornered .sect-img:not(.no-transform) {
      -moz-transform: var(--sectImgScale);
      -webkit-transform: var(--sectImgScale);
      transform: var(--sectImgScale);
      transform-origin: top left;
    }

    .sect-thumbnail-cornered .sect-thumbnail:not(.no-mask) {
      box-shadow: none;
      border-radius: 0px;
      border-top-left-radius: 10px;
      mask-image: linear-gradient(to left, transparent, var(--mgmtFadeBgColor) 30%);
      -webkit-mask-image: linear-gradient(to left, transparent, var(--mgmtFadeBgColor) 30%);
    }

    .sect-thumbnail-cornered .sect-thumbnail {
      border-top-right-radius: 0;
    }




    .tabs-bordered {
      --tabsBorderColor: #000;
      --tabsBorderRadius: 6px;
    }

    .tabs-bordered.rbt-default-tab .tab-button.white-nav .tabs__tab .nav-link.active {
      border-left: 1px solid var(--tabsBorderColor);
      border-right: 1px solid var(--tabsBorderColor);
      border-top: 1px solid var(--tabsBorderColor);
    }

    .tabs-bordered.rbt-default-tab .tab-button.white-nav .tabs__tab .nav-link:not(.active) {
      border-bottom: 1px solid var(--tabsBorderColor);
    }

    .tabs-bordered.rbt-default-tab .rainbow-tab-content {
      border-left: 1px solid var(--tabsBorderColor);
      border-right: 1px solid var(--tabsBorderColor);
      border-bottom: 1px solid var(--tabsBorderColor);
      border-bottom-left-radius: var(--tabsBorderRadius);
      border-bottom-right-radius: var(--tabsBorderRadius);
    }


    @media only screen and (min-width: 992px) {
      .card-left-content-col {
        border-left: 3px solid #fff;
      }

      .rbt-card.card-left-img .card-left-img-col .sect-thumbnail,
      .rbt-card.card-left-img .card-left-img-col .sect-img {
        border-radius: 0px;
      }
    }


    @media only screen and (min-width: 992px) {
      .sd--60 {
        bottom: -60px;
      }

      .sd--80 {
        bottom: -80px;
      }

      .sd--100 {
        bottom: -100px;
      }
    }

    .rbt-card.card-top-img,
    .rbt-card.card-top-img .card-body,
    .rbt-card.card-left-img,
    .rbt-card.card-left-img .card-body {
      padding: 0;
    }

    .rbt-card.card-top-img .card-top-img-col,
    .rbt-card.card-left-img .card-left-img-col {
      padding-left: 0;
      padding-right: 0;
    }


    .rbt-card.card-top-img .card-top-img-col .sect-thumbnail-wrapper,
    .rbt-card.card-left-img .card-left-img-col .sect-thumbnail-wrapper {
      padding: 0px;
      margin-top: 0px;
      height: 250px;
      overflow: hidden;
    }

    .rbt-card.card-top-img .card-top-img-col .sect-thumbnail-wrapper.short {
      height: 210px;
    }

    .rbt-card.card-top-img .card-top-img-col .sect-thumbnail-wrapper.tall {
      height: auto;
      max-height: 330px;
      min-height: 250px;
    }

    .rbt-card.card-top-img .card-top-img-col .sect-thumbnail {
      margin-left: 10%;
      margin-top: 10%
    }

    .rbt-card.card-top-img .card-top-img-col .sect-img {
      padding: 20px;
    }

    .card-top-content-wrap,
    .card-left-content-wrap {
      padding: 30px;
    }

    .card-top-text-wrap {
      padding: 40px;
    }

    .rbt-card.card-top-img .card-top-img-col .sect-thumbnail-fade,
    .rbt-card.card-left-img .card-left-img-col .sect-thumbnail-fade {
      opacity: .5;
    }


    .ml--10p {
      margin-left: 10%;
    }

    .mr--10p {
      margin-right: 10%;
    }

    .mlt--0 {
      margin-left: 0% !important;
      margin-top: 0% !important;
    }

    .op--9 {
      opacity: .9 !important;
    }

    .op--8 {
      opacity: .8 !important;
    }

    .op--7 {
      opacity: .7 !important;
    }

    .op--6 {
      opacity: .6 !important;
    }

    .op--5 {
      opacity: .5 !important;
    }

    .op--4 {
      opacity: .4 !important;
    }

    .op--3 {
      opacity: .3 !important;
    }

    .op--2 {
      opacity: .2 !important;
    }

    .op--1 {
      opacity: .1 !important;
    }

    .bg-color-lighter-d {
      background-color: #e1e4e8 !important;
    }

    .sect-thumbnail-wrapper.inner-box-shadow {
      box-shadow: var(--shadow-1);
    }

    .bg-gradient-white-blue {
      background: linear-gradient(rgb(255, 255, 255) 0%, rgb(250 252 255) 100%) !important;
    }

    .bg-gradient-white-purple {
      background: linear-gradient(rgb(255, 255, 255) 0%, rgb(247 239 255) 100%) !important;
    }

    .no-bottom-radius {
      border-bottom-left-radius: 0;
      border-bottom-right-radius: 0;
    }

    .btn-lg.btn-outline-secondary:focus {
      color: #fff;
    }
  </style>
  <style>
    .duo-image-wrap {
      position: relative;
    }

    .duo-image-wrap .thumbnail-wrapper {
      position: relative;
      display: flex;
      flex-wrap: wrap;
    }

    .duo-image-wrap .thumbnail-wrapper .thumbnail img {
      max-height: 450px;
      background-color: #fff;
      padding: 0px;
    }


    .duo-image-wrap img {
      object-fit: cover;
    }

    .duo-image-wrap .thumbnail-wrapper .thumbnail.image-1 {
      position: relative;
    }

    .duo-image-wrap .thumbnail-wrapper .thumbnail.image-2 {
      position: absolute;
      top: 0;
    }
  </style>
  <style>
    @media only screen and (min-width: 992px) {

      .duo-image-wrap .thumbnail-wrapper .thumbnail.image-2 {
        left: 0;
      }

      .row.duo-image-dormant-customer {
        margin-bottom: 250px;
      }

      .row.duo-image-soft-decline {
        margin-bottom: 300px;
      }

      .row.duo-image-renewal-sms {
        margin-bottom: 80px;
      }

      .duo-image-dormant-customer .duo-image-wrap .thumbnail-wrapper .thumbnail.image-1 {
        left: 200px;
        top: -50px;
      }

      .duo-image-dormant-customer .duo-image-wrap .thumbnail-wrapper .thumbnail.image-1 img {
        max-height: 550px;
      }


      .duo-image-dormant-customer .duo-image-wrap .thumbnail-wrapper .thumbnail.image-2 {
        top: 10px;
      }

      .duo-image-dormant-customer .duo-image-wrap .thumbnail-wrapper .thumbnail.image-2 img {
        max-height: 475px;
      }

      .duo-image-soft-decline .duo-image-wrap .thumbnail-wrapper .thumbnail.image-1 {
        left: 50px;
        top: -70px;
      }

      .duo-image-soft-decline .duo-image-wrap .thumbnail-wrapper .thumbnail.image-1 img {}

      .duo-image-soft-decline .duo-image-wrap .thumbnail-wrapper .thumbnail.image-2 {
        top: 130px;
      }

      .duo-image-soft-decline .duo-image-wrap .thumbnail-wrapper .thumbnail.image-2 img {
        max-height: 300px;
      }

      .duo-image-renewal-sms .duo-image-wrap .thumbnail-wrapper .thumbnail.image-1 {
        left: 320px;
        top: -20px;
      }

      .duo-image-renewal-sms .duo-image-wrap .thumbnail-wrapper .thumbnail.image-2 {}
    }

    @media only screen and (max-width: 991px) {

      .duo-image-wrap .thumbnail-wrapper .thumbnail.image-2 {
        right: 0;
      }

      .duo-image-wrap .thumbnail-wrapper .thumbnail img {
        background-color: #fff;
        padding: 0px;
      }

      .duo-image-wrap .thumbnail-wrapper .thumbnail.image-1 img {
        max-height: 350px;
      }

      .duo-image-wrap .thumbnail-wrapper .thumbnail.image-2 img {
        max-height: 300px;
        max-width: 60vw;
      }

      .duo-image-wrap .thumbnail-wrapper .thumbnail.image-2 {
        top: 100px;
      }


      .row.duo-image-dormant-customer {
        margin-bottom: 150px;
      }

      .row.duo-image-soft-decline {
        margin-bottom: 150px;
      }

      .row.duo-image-soft-decline {
        margin-bottom: 150px;
      }

      .row.duo-image-renewal-sms {
        margin-bottom: 100px;
      }
    }



    .gradient-canvas-overlay-wrap {
      height: 100%;
      width: 100%;
      position: absolute;
      right: 0;
      top: 0;
      --overlayPercent: 50%;
    }

    .gradient-canvas-overlay {
      height: 100%;
    }

    .overlay--50 {
      --overlayPercent: 50%;
    }

    .overlay--40 {
      --overlayPercent: 40%;
    }

    .overlay--30 {
      --overlayPercent: 30%;
    }

    .overlay--20 {
      --overlayPercent: 20%;
    }

    .overlay--10 {
      --overlayPercent: 10%;
    }

    .overlay-white {
      background: linear-gradient(#fff var(--overlayPercent), transparent);
    }

    .overlay-light {
      background: linear-gradient(#f6f9fc 30%, transparent);
    }

    .overlay-light-xl {
      background: linear-gradient(#fafcff 30%, transparent);
    }

    .overlay-lighter {
      background: linear-gradient(#F2F5F9 30%, transparent);
    }

    .overlay-purple {
      background: linear-gradient(#fbf9ff 40%, transparent);
    }
  </style><link rel="stylesheet" href="https://cdn.revcent.com/css/plugins/highlightjs/vs2015.css" type="text/css" />

<style>
    .gateway-logo {
        max-height: 150px;
    }

    #section-conversions .rbt-card-body {
        padding-top: 0px;
    }

    @media (max-width:1112px) {
        #third-party-integrations-card-body {
            max-height: 400px;
            overflow: hidden scroll;
        }
    }

    .thumbnail.image-1.image-third-party-integration {
        text-align: center;
        padding: 5px;
    }

    #third-party-integrations-card-body {
        padding-top: 0px;
    }

    #api-example-hero {
        opacity: 1;
        border-radius: 8px;
        background: #700b3c !important;
        height: 380px;
        width: 500px;
        font-size: 14px;
        overflow: scroll;
        margin-bottom: 0px;
    }


    #terminal-hero-card-body {
        min-height: 350px;
        min-width: 480px;
    }


    #api-examples-row .rbt-default-tab .tab-content {
        padding: 40px;
    }

    #api-examples-row .rbt-default-tab .tab-button .tabs__tab .nav-link.active {
        background: #fff0f5;
    }
</style>
</head>

<body class="MainBody Page-Theme-2" data-pagetheme="2">
    <div class="white-hero-navx">
        <!-- Start Header Area -->
        <header class="rbt-header rbt-header-1 rbt-transparent-header">
            <div class="rbt-sticky-placeholder"></div>
            <div class="rbt-header-wrapper header-space-betwween header-sticky">
                <div class="container-fluid">
                    <div class="mainbar-row rbt-navigation-center align-items-center">
                        <div class="header-left rbt-header-content">
                            <div class="header-info">
                                <div class="logo">
                                    <a href="/">

        
                                        <img src="https://cdn.revcent.com/img/revcent-logo-black.png" alt="RevCent Logo">
                                    </a>
                                </div>
                            </div>
                        </div>

                        <div class="rbt-main-navigation d-none d-xl-block">
                            <nav class="mainmenu-nav">
                                <ul class="mainmenu">

                                    <li class="with-megamenu has-menu-child-item position-static">
                                        <a class="a-no-link">Product <i class="feather-chevron-down d-none"></i></a>
                                        <div class="triangle-border-top-nav triangle-border-top-nav-grey"></div>
                                        <!-- Start Mega Menu  -->
                                        <div class="rbt-megamenu grid-item-3 advanced-tab-button-wrapper" style="margin-left:0">
                                            <div class="wrapper">


                                                <div class="row g-5">
                                                    <div class="col-lg-4 col-md-12 col-sm-12 col-12 mt_md--30 mt_sm--30 order-2 order-lg-1 advanced-tab-button-content-col-1">
                                                        <div class="advance-tab-button advance-tab-button-1">
                                                            <ul class="nav nav-tabs tab-button-list advanced-tab-button-nav" id="myTab" role="tablist">
                                                                <li class="nav-item" role="presentation">
                                                                    <a href="#" class="nav-link tab-button active" id="payments-tab" data-bs-toggle="tab" data-bs-target="#payments" role="tab" aria-controls="payments" aria-selected="true">
                                                                        <div class="tab">
                                                                            <h4 class="title">Payments</h4>
                                                                            <p class="description">Accept payments and increase revenue.</p>
                                                                        </div>
                                                                    </a>
                                                                </li>

                                                                <li class="nav-item" role="presentation">
                                                                    <a href="#" class="nav-link tab-button" id="manage-tab" data-bs-toggle="tab" data-bs-target="#manage" role="tab" aria-controls="manage" aria-selected="false">
                                                                        <div class="tab">
                                                                            <h4 class="title">Manage</h4>
                                                                            <p class="description">Manage mulitple aspects of your business.</p>
                                                                        </div>
                                                                    </a>
                                                                </li>
                                                                <li class="nav-item" role="presentation">
                                                                    <a href="#" class="nav-link tab-button" id="track-report-tab" data-bs-toggle="tab" data-bs-target="#track-report" role="tab" aria-controls="track-report" aria-selected="true">
                                                                        <div class="tab">
                                                                            <h4 class="title">Track & Report</h4>
                                                                            <p class="description">Conversion tracking and reporting.</p>
                                                                        </div>
                                                                    </a>
                                                                </li>
                                                                <li class="nav-item" role="presentation">
                                                                    <a href="#" class="nav-link tab-button" id="tools-tab" data-bs-toggle="tab" data-bs-target="#tools" role="tab" aria-controls="tools" aria-selected="false">
                                                                        <div class="tab">
                                                                            <h4 class="title">Tools</h4>
                                                                            <p class="description">Advanced capabilities and features.</p>
                                                                        </div>
                                                                    </a>
                                                                </li>
                                                            </ul>
                                                        </div>
                                                    </div>
                                                    <div class="col-lg-8 col-md-12 col-sm-12 col-12 order-1 order-lg-2  advanced-tab-button-content-col-2">
                                                        <div class="tab-content advanced-tab-button-content">
                                                            <div class="tab-pane advance-tab-content-1 active show" id="payments" role="tabpanel" aria-labelledby="payments-tab">
                                                                <div class="row">
                                                                    <div class="col-lg-6 col-md-12 col-sm-12 col-12">
                                                                        <ul class="mega-menu-item">
                                                                            <li>
                                                                                <a href="/products/payments/credit-card">
                                                                                    <strong>Credit Card</strong>
                                                                                    <br>
                                                                                    <span>The ultimate credit card payment suite</span>
                                                                                </a>
                                                                            </li>
                                                                            <li>
                                                                                <a href="/products/payments/payment-profiles">
                                                                                    <strong>Payment Routing</strong>
                                                                                    <br>
                                                                                    <span>Dynamically route payments</span>
                                                                                </a>
                                                                            </li>
                                                                            <li>
                                                                                <a href="/products/payments/revenue-recovery">
                                                                                    <strong>Recovery Recovery</strong>
                                                                                    <br>
                                                                                    <span>Automatically recover lost revenue</span>
                                                                                </a>
                                                                            </li>
                                                                            <li>
                                                                                <a href="/products/payments/chargeback-management">
                                                                                    <strong>Chargebacks</strong>
                                                                                    <br>
                                                                                    <span>Integrated chargeback management</span>
                                                                                </a>
                                                                            </li>
                                                                        </ul>
                                                                    </div>
                                                                    <div class="col-lg-6 col-md-12 col-sm-12 col-12">
                                                                        <ul class="mega-menu-item">
                                                                            <li>
                                                                                <a href="/products/payments/anti-fraud">
                                                                                    <strong>Anti Fraud</strong>
                                                                                    <br>
                                                                                    <span>Prevent fraud with Sentinel, our in-house anti-fraud tool</span>
                                                                                </a>
                                                                            </li>
                                                                            <li>
                                                                                <a href="/products/payments/alternative">
                                                                                    <strong>Third Party</strong>
                                                                                    <br>
                                                                                    <span>PayPal, Amazon Pay & more</span>
                                                                                </a>
                                                                            </li>
                                                                            <li>
                                                                                <a href="/products/payments/credit-card#section-mid-management">
                                                                                    <strong>MID Management</strong>
                                                                                    <br>
                                                                                    <span>Organize MID's and prevent cross corp transactions</span>
                                                                                </a>
                                                                            </li>
                                                                            <li>
                                                                                <a href="/products/payments/credit-card#section-card-data">
                                                                                    <strong>Card Storage</strong>
                                                                                    <br>
                                                                                    <span>Store customer cards securely within RevCent</span>
                                                                                </a>
                                                                            </li>
                                                                        </ul>
                                                                    </div>
                                                                </div>
                                                            </div>
                                                            <div class="tab-pane advance-tab-content-1" id="manage" role="tabpanel" aria-labelledby="manage-tab">
                                                                <div class="row">
                                                                    <div class="col-lg-6 col-md-12 col-sm-12 col-12">
                                                                        <ul class="mega-menu-item">
                                                                            <li>
                                                                                <a href="/products/manage/suite">
                                                                                    <strong>Sales</strong>
                                                                                    <br>
                                                                                    <span>View and manage sales</span>
                                                                                </a>
                                                                            </li>
                                                                            <li>
                                                                                <a href="/products/manage/suite#section-customers">
                                                                                    <strong>Customers</strong>
                                                                                    <br>
                                                                                    <span>Customer management in one place</span>
                                                                                </a>
                                                                            </li>
                                                                            <li>
                                                                                <a href="/products/manage/suite#section-shipping">
                                                                                    <strong>Shipping</strong>
                                                                                    <br>
                                                                                    <span>Automate with integrated fulfillment centers</span>
                                                                                </a>
                                                                            </li>
                                                                            <li>
                                                                                <a href="/products/manage/suite#section-products">
                                                                                    <strong>Products</strong>
                                                                                    <br>
                                                                                    <span>Multiple product types and variations</span>
                                                                                </a>
                                                                            </li>
                                                                        </ul>
                                                                    </div>
                                                                    <div class="col-lg-6 col-md-12 col-sm-12 col-12">
                                                                        <ul class="mega-menu-item">
                                                                            <li>
                                                                                <a href="/products/manage/suite#section-subscriptions">
                                                                                    <strong>Subscriptions</strong>
                                                                                    <br>
                                                                                    <span>Recurring billing made easy</span>
                                                                                </a>
                                                                            </li>
                                                                            <li>
                                                                                <a href="/products/manage/suite#section-tax">
                                                                                    <strong>Tax</strong>
                                                                                    <br>
                                                                                    <span>Manage tax using profiles or third parties</span>
                                                                                </a>
                                                                            </li>
                                                                            <li>
                                                                                <a href="/products/manage/suite#section-organizations">
                                                                                    <strong>Users</strong>
                                                                                    <br>
                                                                                    <span>Add users with granular permissions</span>
                                                                                </a>
                                                                            </li>
                                                                            <li>
                                                                                <a href="/products/manage/suite#section-notes">
                                                                                    <strong>Notes</strong>
                                                                                    <br>
                                                                                    <span>Take notes on customers, sales and more</span>
                                                                                </a>
                                                                            </li>
                                                                        </ul>
                                                                    </div>
                                                                </div>
                                                            </div>
                                                            <div class="tab-pane advance-tab-content-1" id="track-report" role="tabpanel" aria-labelledby="track-report-tab">
                                                                <div class="row">
                                                                    <div class="col-lg-6 col-md-12 col-sm-12 col-12">
                                                                        <ul class="mega-menu-item">
                                                                            <li>
                                                                                <a href="/products/tracking/suite">
                                                                                    <strong>DNS Tracking</strong>
                                                                                    <br>
                                                                                    <span>Accurately track visitors across domains</span>
                                                                                </a>
                                                                            </li>
                                                                            <li>
                                                                                <a href="/products/tracking/suite#section-utilize-metadata">
                                                                                    <strong>Metadata</strong>
                                                                                    <br>
                                                                                    <span>Utilize detailed metadata</span>
                                                                                </a>
                                                                            </li>
                                                                            <li>
                                                                                <a href="/products/tracking/suite#section-conversions">
                                                                                    <strong>Conversions</strong>
                                                                                    <br>
                                                                                    <span>Know your true conversion metrics</span>
                                                                                </a>
                                                                            </li>
                                                                            <li>
                                                                                <a href="/products/tracking/suite#section-adwords">
                                                                                    <strong>AdWords</strong>
                                                                                    <br>
                                                                                    <span>Link your AdWords account with RevCent</span>
                                                                                </a>
                                                                            </li>
                                                                        </ul>
                                                                    </div>
                                                                    <div class="col-lg-6 col-md-12 col-sm-12 col-12">
                                                                        <ul class="mega-menu-item">
                                                                            <li>
                                                                                <a href="/products/reporting/suite">
                                                                                    <strong>Reports</strong>
                                                                                    <br>
                                                                                    <span>Pre-built reporting pages with popular metrics</span>
                                                                                </a>
                                                                            </li>
                                                                            <li>
                                                                                <a href="/products/reporting/suite#section-dashboard">
                                                                                    <strong>Dashboard</strong>
                                                                                    <br>
                                                                                    <span>Advanced customizable metrics</span>
                                                                                </a>
                                                                            </li>
                                                                            <li>
                                                                                <a href="/products/reporting/suite#section-auto-queries">
                                                                                    <strong>Auto Queries</strong>
                                                                                    <br>
                                                                                    <span>Receive custom metrics data via email, SMS and more</span>
                                                                                </a>
                                                                            </li>
                                                                            <li>
                                                                                <a href="/products/reporting/suite#section-bigquery">
                                                                                    <strong>BigQuery</strong>
                                                                                    <br>
                                                                                    <span>Direct data access via Google BigQuery</span>
                                                                                </a>
                                                                            </li>
                                                                        </ul>
                                                                    </div>
                                                                </div>
                                                            </div>
                                                            <div class="tab-pane advance-tab-content-1" id="tools" role="tabpanel" aria-labelledby="tools-tab">
                                                                <div class="row">
                                                                    <div class="col-lg-6 col-md-12 col-sm-12 col-12">
                                                                        <ul class="mega-menu-item">
                                                                            <li>
                                                                                <a href="/products/tools/suite">
                                                                                    <strong>Customer Groups</strong>
                                                                                    <br>
                                                                                    <span>Hyper advanced customer segments</span>
                                                                                </a>
                                                                            </li>
                                                                            <li>
                                                                                <a href="/products/tools/suite#section-flows">
                                                                                    <strong>Flows</strong>
                                                                                    <br>
                                                                                    <span>Visual customer engagement builder</span>
                                                                                </a>
                                                                            </li>
                                                                            <li>
                                                                                <a href="/products/tools/suite#section-functions">
                                                                                    <strong>Functions</strong>
                                                                                    <br>
                                                                                    <span>Run custom code hosted by RevCent</span>
                                                                                </a>
                                                                            </li>
                                                                            <li>
                                                                                <a href="/products/tools/suite#section-ai">
                                                                                    <strong>AI</strong>
                                                                                    <br>
                                                                                    <span>Natively integrated with OpenAI</span>
                                                                                </a>
                                                                            </li>
                                                                        </ul>
                                                                    </div>
                                                                    <div class="col-lg-6 col-md-12 col-sm-12 col-12">
                                                                        <ul class="mega-menu-item">
                                                                            <li>
                                                                                <a href="/products/tools/suite#section-email-templates">
                                                                                    <strong>Email Templates</strong>
                                                                                    <br>
                                                                                    <span>Send emails according to triggers</span>
                                                                                </a>
                                                                            </li>
                                                                            <li>
                                                                                <a href="/products/tools/suite#section-firehose">
                                                                                    <strong>Firehose</strong>
                                                                                    <br>
                                                                                    <span>Send event details to any endpoint</span>
                                                                                </a>
                                                                            </li>
                                                                            <li>
                                                                                <a href="/products/integration/suite">
                                                                                    <strong>Integrations</strong>
                                                                                    <br>
                                                                                    <span>Inbound, outbound & custom integrations</span>
                                                                                </a>
                                                                            </li>
                                                                            <li>
                                                                                <a href="/products/tools/suite#section-customer-portals">
                                                                                    <strong>Customer Portals</strong>
                                                                                    <br>
                                                                                    <span>Customer portals for self service</span>
                                                                                </a>
                                                                            </li>
                                                                        </ul>
                                                                    </div>
                                                                </div>
                                                            </div>
                                                        </div>
                                                    </div>

                                                </div>
                                            </div>
                                            <!-- End Mega Menu  -->
                                    </li>

                                    <li class="with-megamenu has-menu-child-item position-static">
                                        <a class="a-no-link">Industries <i class="feather-chevron-down d-none"></i></a>
                                        <div class="triangle-border-top-nav"></div>
                                        <!-- Start Mega Menu  -->
                                        <div class="rbt-megamenu grid-item-4">
                                            <div class="wrapper">
                                                <div class="row row--15">
                                                    <div class="col-lg-12 col-xl-3 col-xxl-3 single-mega-item">
                                                        <h3 class="rbt-short-title">Ecommerce</h3>
                                                        <ul class="mega-menu-item">
                                                            <li>
                                                                <a href="/products/integration/suite#section-woocommerce">
                                                                    <strong>WooCommerce Plugin</strong>
                                                                    <br>
                                                                    <span>Link an existing WooCommerce store</span>
                                                                </a>
                                                            </li>
                                                            <li>
                                                                <a href="/products/integration/suite#section-woocommerce">
                                                                    <strong>Hosted WooCommere</strong>
                                                                    <br>
                                                                    <span>Spin up a WooCommerce store in minutes</span>
                                                                </a>
                                                            </li>
                                                            <li>
                                                                <a href="/products/integration/suite#section-api">
                                                                    <strong>Direct API</strong>
                                                                    <br>
                                                                    <span>Integrate a custom store via API</span>
                                                                </a>
                                                            </li>
                                                            <li>
                                                                <a href="/products/tracking/suite">
                                                                    <strong>Tracking</strong>
                                                                    <br>
                                                                    <span>In-house DNS tracking</span>
                                                                </a>
                                                            </li>
                                                        </ul>
                                                    </div>
                                                    <div class="col-lg-12 col-xl-3 col-xxl-3 single-mega-item">
                                                        <h3 class="rbt-short-title">SAAS</h3>
                                                        <ul class="mega-menu-item">
                                                            <li>
                                                                <a href="/products/integration/suite#section-api">
                                                                    <strong>Advanced API</strong>
                                                                    <br>
                                                                    <span>Use our API to process payments, retrieve data and more</span>
                                                                </a>
                                                            </li>
                                                            <li>
                                                                <a href="/products/tools/suite#section-functions">
                                                                    <strong>Functions</strong>
                                                                    <br>
                                                                    <span>Run your own code in the cloud without servers</span>
                                                                </a>
                                                            </li>
                                                            <li>
                                                                <a href="/products/tracking/suite#section-metadata">
                                                                    <strong>Metadata</strong>
                                                                    <br>
                                                                    <span>Implement metadata in API requests for granular analysis</span>
                                                                </a>
                                                            </li>
                                                        </ul>
                                                    </div>
                                                    <div class="col-lg-12 col-xl-3 col-xxl-3 single-mega-item">
                                                        <h3 class="rbt-short-title">Call Center</h3>
                                                        <ul class="mega-menu-item">
                                                            <li>
                                                                <a href="/products/manage/suite#section-organizations">
                                                                    <strong>Organizations</strong>
                                                                    <br>
                                                                    <span>Organize users by business to separate concerns</span>
                                                                </a>
                                                            </li>
                                                            <li>
                                                                <a href="/products/manage/suite#section-organizations">
                                                                    <strong>Permissions</strong>
                                                                    <br>
                                                                    <span>User hierarchy and granular permissions within organizations</span>
                                                                </a>
                                                            </li>
                                                            <li>
                                                                <a href="/products/manage/suite#section-notes">
                                                                    <strong>Item Notes</strong>
                                                                    <br>
                                                                    <span>Take notes which are visible throughout the system</span>
                                                                </a>
                                                            </li>
                                                        </ul>
                                                    </div>
                                                    <div class="col-lg-12 col-xl-3 col-xxl-3 single-mega-item">
                                                        <h3 class="rbt-short-title">Self Serve</h3>
                                                        <ul class="mega-menu-item">
                                                            <li>
                                                                <a href="/products/manage/suite">
                                                                    <strong>Manual Billing</strong>
                                                                    <br>
                                                                    <span>Create sales and process customer payments in the RevCent web app</span>
                                                                </a>
                                                            </li>
                                                            <li>
                                                                <a href="/products/manage/suite">
                                                                    <strong>Invoices</strong>
                                                                    <br>
                                                                    <span>Create invoices and send clients a link to pay online or print and mail</span>
                                                                </a>
                                                            </li>
                                                            <li>
                                                                <a href="/products/tools/suite#section-customer-portals">
                                                                    <strong>Portals</strong>
                                                                    <br>
                                                                    <span>Allow customers to login and make payments, track shipping and more</span>
                                                                </a>
                                                            </li>
                                                        </ul>
                                                    </div>
                                                </div>
                                            </div>
                                        </div>
                                        <!-- End Mega Menu  -->
                                    </li>

                                    <li class="">
                                        <a href="/pricing">Pricing
                                            <i class="feather-chevron-down d-none"></i>
                                        </a>
                                    </li>

                                    <li class="with-megamenu has-menu-child-item">
                                        <a class="a-no-link">Help <i class="feather-chevron-down d-none"></i></a>
                                        <div class="triangle-border-top-nav"></div>
                                        <!-- Start Mega Menu  -->
                                        <div class="rbt-megamenu grid-item-2">
                                            <div class="wrapper">
                                                <div class="row row--15">
                                                    <div class="col-lg-12 col-xl-6 col-xxl-6 single-mega-item">
                                                        <h3 class="rbt-short-title">Docs</h3>
                                                        <ul class="mega-menu-item">
                                                            <li><a href="https://kb.revcent.com/" target="_blank">Knowledge Base <i class="far fa-external-link-square-alt small"></i></a></li>
                                                            <li><a href="/docs/api">API V1</a></li>
                                                            <li><a href="/docs/api/v2">API V2</a></li>
                                                        </ul>
                                                    </div>
                                                    <div class="col-lg-12 col-xl-6 col-xxl-6 single-mega-item">
                                                        <h3 class="rbt-short-title">Popular Guides</h3>
                                                        <ul class="mega-menu-item">
                                                            <li><a href="https://kb.revcent.com/en/tracking/conversion-tracking" target="_blank">Conversion Tracking</a></li>
                                                            <li><a href="https://kb.revcent.com/integrations/third-party-shop/woocommerce-installation" target="_blank">WooCommerce Integration</a></li>
                                                            <li><a href="https://kb.revcent.com/en/payments/credit-card/payment-profile" target="_blank">Payment Profiles</a></li>
                                                        </ul>
                                                    </div>
                                                </div>
                                                <div class="row">
                                                    <div class="col-lg-12">
                                                        <ul class="nav-quick-access">
                                                            <li><a href="https://revcent.statuspage.io/" target="_blank"><i class="feather-folder-minus"></i> System Status</a></li>
                                                            <li><a href="https://kb.revcent.com/en/guides/initial-setup" target="_blank"><i class="feather-folder-minus"></i> Quick Start Guide</a></li>
                                                        </ul>
                                                    </div>
                                                </div>
                                            </div>
                                        </div>
                                        <!-- End Mega Menu  -->
                                    </li>

                                    <li class="">
                                        <a href="/contact">Contact
                                        </a>
                                    </li>
                                </ul>
                            </nav>
                        </div>

                        <div class="header-right">

                            <!-- Navbar Icons -->
                            <ul class="quick-access">


        
                                <li class="account-access rbt-user-wrapper d-none d-xl-block">
                                    <a class="" href="/register"><i class="feather-user-plus"></i>Sign Up</a>
                                </li>
                                <li class="account-access rbt-user-wrapper d-none d-xl-block">
                                    <a href="/login"><i class="feather-log-in"></i>Log In</a>
                                </li>
        

                            </ul>

                            <!-- Start Mobile-Menu-Bar -->
                            <div class="mobile-menu-bar d-block d-xl-none">
                                <div class="hamberger">

        
                                    <button class="hamberger-button rbt-round-btn">
                                        <i class="feather-menu"></i>
                                    </button>
                                </div>
                            </div>
                            <!-- Start Mobile-Menu-Bar -->

                        </div>
                    </div>
                </div>

            </div>

        </header>


        <!-- Mobile Menu Section -->
        <div class="popup-mobile-menu">
            <div class="inner-wrapper">
                <div class="inner-top">
                    <div class="content">
                        <div class="logo">
                            <a href="/">
                                <img src="https://cdn.revcent.com/img/revcent-logo-black.png" alt="RevCent">
                            </a>
                        </div>
                        <div class="rbt-btn-close">
                            <button class="close-button rbt-round-btn"><i class="feather-x"></i></button>
                        </div>
                    </div>
                </div>

                <nav class="mainmenu-nav">
                    <ul class="mainmenu">
                        <li class="with-megamenu has-menu-child-item position-static">
                            <a href="#">Payments <i class="feather-chevron-down"></i></a>
                            <div class="rbt-megamenu grid-item-4">
                                <div class="wrapper">
                                    <div class="row row--15">
                                        <div class="col-lg-12 col-xl-3 col-xxl-3 single-mega-item">
                                            <ul class="mega-menu-item">
                                                <li>
                                                    <a href="/products/payments/credit-card">
                                                        Credit Card
                                                        <br>
                                                        <span class="text-muted small">The ultimate credit card payment suite</span>
                                                    </a>
                                                </li>
                                                <li>
                                                    <a href="/products/payments/payment-profiles">
                                                        Payment Routing
                                                        <br>
                                                        <span class="text-muted small">Dynamically route payments</span>
                                                    </a>
                                                </li>
                                                <li>
                                                    <a href="/products/payments/revenue-recovery">
                                                        Recovery Recovery
                                                        <br>
                                                        <span class="text-muted small">Automatically recover lost revenue</span>
                                                    </a>
                                                </li>
                                                <li>
                                                    <a href="/products/payments/chargeback-management">
                                                        Chargebacks
                                                        <br>
                                                        <span class="text-muted small">Integrated chargeback management</span>
                                                    </a>
                                                </li>
                                                <li>
                                                    <a href="/products/payments/anti-fraud">
                                                        Anti Fraud
                                                        <br>
                                                        <span class="text-muted small">Prevent fraud with Sentinel, our in-house anti-fraud tool</span>
                                                    </a>
                                                </li>
                                                <li>
                                                    <a href="/products/payments/alternative">
                                                        Third Party
                                                        <br>
                                                        <span class="text-muted small">PayPal, Amazon Pay & more</span>
                                                    </a>
                                                </li>
                                                <li>
                                                    <a href="/products/payments/credit-card#section-mid-management">
                                                        MID Management
                                                        <br>
                                                        <span class="text-muted small">Organize MID's and prevent cross corp transactions</span>
                                                    </a>
                                                </li>
                                                <li>
                                                    <a href="/products/payments/credit-card#section-card-data">
                                                        Card Storage
                                                        <br>
                                                        <span class="text-muted small">Store customer cards securely within RevCent</span>
                                                    </a>
                                                </li>
                                            </ul>
                                        </div>
                                    </div>
                                </div>
                            </div>
                        </li>
                        <li class="with-megamenu has-menu-child-item position-static">
                            <a href="#">Management <i class="feather-chevron-down"></i></a>
                            <div class="rbt-megamenu grid-item-4">
                                <div class="wrapper">
                                    <div class="row row--15">
                                        <div class="col-lg-12 col-xl-3 col-xxl-3 single-mega-item">
                                            <ul class="mega-menu-item">
                                                <li>
                                                    <a href="/products/manage/suite">
                                                        Sales
                                                        <br>
                                                        <span class="text-muted small">View and manage sales</span>
                                                    </a>
                                                </li>
                                                <li>
                                                    <a href="/products/manage/suite#section-customers">
                                                        Customers
                                                        <br>
                                                        <span class="text-muted small">Customer management in one place</span>
                                                    </a>
                                                </li>
                                                <li>
                                                    <a href="/products/manage/suite#section-shipping">
                                                        Shipping
                                                        <br>
                                                        <span class="text-muted small">Automate with integrated fulfillment centers</span>
                                                    </a>
                                                </li>
                                                <li>
                                                    <a href="/products/manage/suite#section-products">
                                                        Products
                                                        <br>
                                                        <span class="text-muted small">Multiple product types and variations</span>
                                                    </a>
                                                </li>
                                                <li>
                                                    <a href="/products/manage/suite#section-subscriptions">
                                                        Subscriptions
                                                        <br>
                                                        <span class="text-muted small">Recurring billing made easy</span>
                                                    </a>
                                                </li>
                                                <li>
                                                    <a href="/products/manage/suite#section-tax">
                                                        Tax
                                                        <br>
                                                        <span class="text-muted small">Manage tax using profiles or third parties</span>
                                                    </a>
                                                </li>
                                                <li>
                                                    <a href="/products/manage/suite#section-organizations">
                                                        Users
                                                        <br>
                                                        <span class="text-muted small">Add users with granular permissions</span>
                                                    </a>
                                                </li>
                                                <li>
                                                    <a href="/products/manage/suite#section-notes">
                                                        Notes
                                                        <br>
                                                        <span class="text-muted small">Take notes on customers, sales and more</span>
                                                    </a>
                                                </li>
                                            </ul>
                                        </div>
                                    </div>
                                </div>
                            </div>
                        </li>
                        <li class="with-megamenu has-menu-child-item position-static">
                            <a href="#">Tracking <i class="feather-chevron-down"></i></a>
                            <div class="rbt-megamenu grid-item-4">
                                <div class="wrapper">
                                    <div class="row row--15">
                                        <div class="col-lg-12 col-xl-3 col-xxl-3 single-mega-item">
                                            <ul class="mega-menu-item">
                                                <li>
                                                    <a href="/products/tracking/suite">
                                                        DNS Tracking
                                                        <br>
                                                        <span class="text-muted small">Accurately track visitors across domains</span>
                                                    </a>
                                                </li>
                                                <li>
                                                    <a href="/products/tracking/suite#section-utilize-metadata">
                                                        Metadata
                                                        <br>
                                                        <span class="text-muted small">Utilize detailed metadata</span>
                                                    </a>
                                                </li>
                                                <li>
                                                    <a href="/products/tracking/suite#section-conversions">
                                                        Conversions
                                                        <br>
                                                        <span class="text-muted small">Know your true conversion metrics</span>
                                                    </a>
                                                </li>
                                                <li>
                                                    <a href="/products/tracking/suite#section-adwords">
                                                        AdWords
                                                        <br>
                                                        <span class="text-muted small">Link your AdWords account with RevCent</span>
                                                    </a>
                                                </li>
                                            </ul>
                                        </div>
                                    </div>
                                </div>
                            </div>
                            <!-- End Mega Menu  -->
                        </li>
                        <li class="with-megamenu has-menu-child-item position-static">
                            <a href="#">Reporting <i class="feather-chevron-down"></i></a>
                            <div class="rbt-megamenu grid-item-4">
                                <div class="wrapper">
                                    <div class="row row--15">
                                        <div class="col-lg-12 col-xl-3 col-xxl-3 single-mega-item">
                                            <ul class="mega-menu-item">
                                                <li>
                                                    <a href="/products/reporting/suite">
                                                        Reports
                                                        <br>
                                                        <span class="text-muted small">Pre-built reporting pages with popular metrics</span>
                                                    </a>
                                                </li>
                                                <li>
                                                    <a href="/products/reporting/suite#section-dashboard">
                                                        Dashboard
                                                        <br>
                                                        <span class="text-muted small">Advanced customizable metrics</span>
                                                    </a>
                                                </li>
                                                <li>
                                                    <a href="/products/reporting/suite#section-auto-queries">
                                                        Auto Queries
                                                        <br>
                                                        <span class="text-muted small">Receive custom metrics data via email, SMS and more</span>
                                                    </a>
                                                </li>
                                                <li>
                                                    <a href="/products/reporting/suite#section-bigquery">
                                                        BigQuery
                                                        <br>
                                                        <span class="text-muted small">Direct data access via Google BigQuery</span>
                                                    </a>
                                                </li>
                                            </ul>
                                        </div>
                                    </div>
                                </div>
                            </div>
                        </li>
                        <li class="with-megamenu has-menu-child-item position-static">
                            <a href="#">Tools <i class="feather-chevron-down"></i></a>
                            <div class="rbt-megamenu grid-item-4">
                                <div class="wrapper">
                                    <div class="row row--15">
                                        <div class="col-lg-12 col-xl-3 col-xxl-3 single-mega-item">
                                            <ul class="mega-menu-item">
                                                <li>
                                                    <a href="/products/tools/suite">
                                                        Customer Groups
                                                        <br>
                                                        <span class="text-muted small">Hyper advanced customer segments</span>
                                                    </a>
                                                </li>
                                                <li>
                                                    <a href="/products/tools/suite#section-flows">
                                                        Flows
                                                        <br>
                                                        <span class="text-muted small">Visual customer engagement builder</span>
                                                    </a>
                                                </li>
                                                <li>
                                                    <a href="/products/tools/suite#section-functions">
                                                        Functions
                                                        <br>
                                                        <span class="text-muted small">Run custom code hosted by RevCent</span>
                                                    </a>
                                                </li>
                                                <li>
                                                    <a href="/products/tools/suite#section-ai">
                                                        AI
                                                        <br>
                                                        <span class="text-muted small">Natively integrated with OpenAI</span>
                                                    </a>
                                                </li>
                                                <li>
                                                    <a href="/products/tools/suite#section-email-templates">
                                                        Email Templates
                                                        <br>
                                                        <span class="text-muted small">Send emails according to triggers</span>
                                                    </a>
                                                </li>
                                                <li>
                                                    <a href="/products/tools/suite#section-firehose">
                                                        Firehose
                                                        <br>
                                                        <span class="text-muted small">Send event details to any endpoint</span>
                                                    </a>
                                                </li>
                                                <li>
                                                    <a href="/products/integration/suite">
                                                        Integrations
                                                        <br>
                                                        <span class="text-muted small">Inbound, outbound & custom integrations</span>
                                                    </a>
                                                </li>
                                                <li>
                                                    <a href="/products/tools/suite#section-customer-portals">
                                                        Customer Portals
                                                        <br>
                                                        <span class="text-muted small">Customer portals for self service</span>
                                                    </a>
                                                </li>
                                            </ul>
                                        </div>
                                    </div>
                                </div>
                            </div>
                            <!-- End Mega Menu  -->
                        </li>
                        <li>
                            <a href="/pricing">
                                Pricing
                            </a>
                        </li>
                        <li class="with-megamenu has-menu-child-item position-static">
                            <a href="#">Help <i class="feather-chevron-down"></i></a>
                            <div class="rbt-megamenu grid-item-4">
                                <div class="wrapper">
                                    <div class="row row--15">
                                        <div class="col-lg-12 col-xl-3 col-xxl-3 single-mega-item">
                                            <h3 class="rbt-short-title">Docs</h3>
                                            <ul class="mega-menu-item">
                                                <li><a href="https://kb.revcent.com/" target="_blank">Knowledge Base <i class="far fa-external-link-square-alt small"></i></a></li>
                                                <li><a href="/docs/api">API V1</a></li>
                                                <li><a href="/docs/api/v2">API V2</a></li>
                                            </ul>
                                        </div>

                                        <div class="col-lg-12 col-xl-3 col-xxl-3 single-mega-item">
                                            <h3 class="rbt-short-title">Popular Guides</h3>
                                            <ul class="mega-menu-item">
                                                <li><a href="https://kb.revcent.com/en/tracking/conversion-tracking" target="_blank">Conversion Tracking</a></li>
                                                <li><a href="https://kb.revcent.com/integrations/third-party-shop/woocommerce-installation" target="_blank">WooCommerce Integration</a></li>
                                                <li><a href="https://kb.revcent.com/en/payments/credit-card/payment-profile" target="_blank">Payment Profiles</a></li>
                                            </ul>
                                        </div>
                                    </div>
                                </div>
                            </div>
                        </li>
                        <li>
                            <a href="/contact">
                                Contact
                            </a>
                        </li>
                    </ul>
                </nav>
                <div class="mobile-menu-bottom">
                    <div class="rbt-btn-wrapper mb--20">
                        <a href="/register" class="rbt-btn btn-sm bg-color-pink-4 color-hot-pink d-block text-center">Sign Up</a>
                    </div>
                    <div class="rbt-btn-wrapper mb--20">
                        <a href="/login" class="rbt-btn btn-sm bg-color-purple-4 d-block text-center color-purple">Login</a>
                    </div>
                </div>
            </div>
        </div>
        <a class="close_side_menu" href="javascript:void(0);"></a>    </div>


    <main class="rbt-main-wrapper">





        <section class="Section Sect--angleBottom Sect--paddingNormal">

            <div class="Sect__masked">
                <div class="Sect__backgroundMask">
                    <div class="Sect__background bg-color-page-theme">

                    </div>
                </div>
                <div class="gradient-canvas-wrapper section-separator-wrapper section-separator-250">
                    <canvas class="section-separator-canvas gradient-canvas" data-palettenum="24"></canvas>
                </div>
                <div class="container Sect__container">
                    <div class="container-wrap Sect__layoutContainer">
                        <div class="container-inner Sect__layout">
                            <div class="row">
                                <div class="col-lg-5 mb--100 mt--40">
                                    <div class="content">
                                        <div class="inner product-hero-inner">
                                            <h1 class="title">
                                                <span class="hero-title">Inbound +</span><br>
                                                <span class="hero-title">Outbound</span><br>
                                                <span class="hero-title">Integrations</span>
                                            </h1>
                                            <p class="sub-description">Integrate directly with us, integrate with native third parties or create custom integrations.</p>

                                            <div class="row hero-small-mb">
                                                <div class="col-lg-4 mb--10">
                                                    <a class="rbt-btn btn-xs page-theme-section-link d-block text-center" href="#section-api">API</a>
                                                </div>
                                                <div class="col-lg-4 mb--10">
                                                    <a class="rbt-btn btn-xs page-theme-section-link d-block text-center" href="#section-woocommerce">WooCommerce</a>
                                                </div>
                                                <div class="col-lg-4 mb--10">
                                                    <a class="rbt-btn btn-xs page-theme-section-link d-block text-center" href="#section-third-party">Third Party</a>
                                                </div>
                                            </div>
                                        </div>
                                    </div>
                                </div>
                                <div class="col-lg-5 offset-lg-2 d-none d-lg-block ">
                                    <div class="rbt-about-area about-style-1 mb--150">
                                        <div class="container">
                                            <div class="thumbnail-wrapper">
                                                <div class="thumbnail image-1" style="left:-40px;top:25px">
                                                    <pre id="api-example-hero" class="highlight-code language-javascript hljs hero-box-shadow" style=""></pre>
                                                </div>
                                                <div class="thumbnail image-2" style="top:130px;right:-160px;">
                                                    <div class="hero-terminal-simulator">
                                                        <div class="terminal-hero-header">
                                                            <ul class="list-unstyled list-inline terminal-mac-buttons mb--0">
                                                                <li class="list-inline-item">
                                                                    <i class="fas fa-fw fa-circle mac-button mac-button-close"></i>
                                                                </li>
                                                                <li class="list-inline-item">
                                                                    <i class="fas fa-fw fa-circle mac-button mac-button-minimize"></i>
                                                                </li>
                                                                <li class="list-inline-item">
                                                                    <i class="fas fa-fw fa-circle mac-button mac-button-maximize"></i>
                                                                </li>
                                                            </ul>
                                                        </div>
                                                        <div class="rbt-card bg-color-darker bg-color-text-white hero-box-shadow terminal-hero-card">
                                                            <div class="card-body" id="terminal-hero-card-body">
                                                                <p class="mb--0 small text-end" style="color: #949494!important;font-size: .7em;margin-top: -10px;">./integrations.js</p>
                                                                <ol class="mb--0 ml--10 terminal-font list-unstyled" id="terminal-hero-ol">
                                                                </ol>
                                                            </div>
                                                        </div>
                                                    </div>
                                                </div>
                                            </div>
                                        </div>
                                    </div>
                                </div>
                            </div>
                        </div>
                    </div>
                </div>
            </div>
        </section>





        <section class="Section Sect--angleTop Sect--paddingNormal" id="section-api">

            <div class="Sect__masked">
                <div class="Sect__backgroundMask">
                    <div class="Sect__background bg-color-white"></div>
                </div>

                <div class="container Sect__container">
                    <div class="container-wrap Sect__layoutContainer">
                        <div class="container-inner Sect__layout">
                            <span class="rbt-badge-6 page-theme-badge">Direct</span>
                            <div class="row mb--30">
                                <div class="col-sm-12 col-lg-5">
                                    <div class="section-title text-start mb--20">
                                        <h1 class="title">API<br>Integration</h1>
                                    </div>
                                    <p class=" mb--10">Easily integrate with RevCent using our API. Documentation is extremely thorough, with full request and response examples.</p>
                                    <p><a class="page-theme-link small" href="/docs/api" target="_blank">API Docs<i class="far fa-fw fa-angle-right small"></i></a></p>
                                </div>
                            </div>


                            <div class="row mb--120">
                                <div class="col-lg-4 mt--20">
                                    <div class="rbt-card bg-color-pink-5 bg-color-text-white no-shadow">
                                        <div class="card-body">
                                            <h5 class="mb--10">Fast</h5>
                                            <p class="mb--0">The RevCent API is built for speed, with an average sub-second response, regardless of peak use.</p>
                                        </div>
                                    </div>
                                </div>
                                <div class="col-lg-4 mt--20">
                                    <div class="rbt-card bg-color-pink-6 bg-color-text-white no-shadow">
                                        <div class="card-body">
                                            <h5 class="mb--10">Scalable</h5>
                                            <p class="mb--0">Our serverless architecture is capable of handling an extremely high number of concurrent requests.</p>
                                        </div>
                                    </div>
                                </div>
                                <div class="col-lg-4 mt--20">
                                    <div class="rbt-card bg-color-pink-7 bg-color-text-white no-shadow">
                                        <div class="card-body">
                                            <h5 class="mb--10">HTTP</h5>
                                            <p class="mb--0">Communicate with the API using any language, via HTTP and JSON post body, without needing an SDK.</p>
                                        </div>
                                    </div>
                                </div>
                            </div>


                            <div class="row mb--30">
                                <div class="col-lg-4">
                                    <div class="section-title text-start">
                                        <h4 class="title">API Examples</h4>
                                    </div>
                                    <p class="">Below are a few examples of the most common API requests and responses. Please review the API Docs for all possible requests and responses.</p>
                                </div>
                            </div>
                            <div class="row mb--80" id="api-examples-row">
                                <div class="col-sm-12">
                                    <div class="rbt-default-tab">
                                        <ul class="nav nav-tabs nav-justified tab-button" role="tablist">
                                            <li class="nav-item tabs__tab " role="presentation">
                                                <button class="nav-link active" id="examples-api-1-tab" data-bs-toggle="tab" data-bs-target="#examples-api-1" type="button" role="tab" aria-controls="examples-api-1" aria-selected="true">Create A Sale</button>
                                            </li>
                                            <li class="nav-item tabs__tab " role="presentation">
                                                <button class="nav-link" id="examples-api-2-tab" data-bs-toggle="tab" data-bs-target="#examples-api-2" type="button" role="tab" aria-controls="examples-api-2" aria-selected="false">Create A Customer</button>
                                            </li>
                                            <li class="nav-item tabs__tab " role="presentation">
                                                <button class="nav-link" id="examples-api-3-tab" data-bs-toggle="tab" data-bs-target="#examples-api-3" type="button" role="tab" aria-controls="examples-api-3" aria-selected="false">Insert Metadata</button>
                                            </li>
                                        </ul>
                                        <div class="rainbow-tab-content tab-content bg-color-pink-2">
                                            <div class="tab-pane fade show active" id="examples-api-1" role="tabpanel" aria-labelledby="examples-api-1">
                                                <div class="row extra-padding mb--30">
                                                    <div class="col-lg-5">
                                                        <p class="mb--10">Create a new sale using the sale create API call. Multiple payment types and options are available.</p>
                                                        <p><a class="page-theme-link small" href="/docs/api#sale-create" target="_blank">Details & Schema<i class="far fa-fw fa-angle-right small"></i></a></p>
                                                    </div>
                                                </div>
                                                <div class="row extra-padding">
                                                    <div class="col-lg-6">
                                                        <p class="mb--0 small">Request</p>
                                                        <div class="developer-example-wrap mt--10">
                                                            <pre id="api-example-1" class="highlight-code language-javascript hljs" style="font-size:14px;max-height:300px;overflow:scroll;margin-bottom:0px;"></pre>
                                                        </div>
                                                    </div>
                                                    <div class="col-lg-6">
                                                        <p class="mb--0 small">Response</p>
                                                        <div class="developer-example-wrap mt--10">
                                                            <pre id="api-example-2" class="highlight-code language-json hljs" style="font-size:14px;max-height:300px;overflow:scroll;margin-bottom:0px;"></pre>
                                                        </div>
                                                    </div>
                                                </div>
                                            </div>

                                            <div class="tab-pane fade" id="examples-api-2" role="tabpanel" aria-labelledby="examples-api-2">
                                                <div class="row extra-padding mb--30">
                                                    <div class="col-lg-5">
                                                        <p class="mb--10">Create a new customer using the customer create API call. Include payment data and metadata.</p>
                                                        <p><a class="page-theme-link small" href="/docs/api#customer-create" target="_blank">Details & Schema<i class="far fa-fw fa-angle-right small"></i></a></p>
                                                    </div>
                                                </div>
                                                <div class="row extra-padding">
                                                    <div class="col-lg-6">
                                                        <p class="mb--0 small">Request</p>
                                                        <div class="developer-example-wrap mt--10">
                                                            <pre id="api-example-3" class="highlight-code language-javascript hljs" style="font-size:14px;max-height:300px;overflow:scroll;margin-bottom:0px;"></pre>
                                                        </div>
                                                    </div>
                                                    <div class="col-lg-6">
                                                        <p class="mb--0 small">Response</p>
                                                        <div class="developer-example-wrap mt--10">
                                                            <pre id="api-example-4" class="highlight-code language-json hljs" style="font-size:14px;max-height:300px;overflow:scroll;margin-bottom:0px;"></pre>
                                                        </div>
                                                    </div>
                                                </div>
                                            </div>

                                            <div class="tab-pane fade" id="examples-api-3" role="tabpanel" aria-labelledby="examples-api-3">
                                                <div class="row extra-padding mb--30">
                                                    <div class="col-lg-5">
                                                        <p class="mb--10">Insert metadata on the fly using the metadata insert API call. Extremely useful for conversion tracking, AB testing and more.</p>
                                                        <p><a class="page-theme-link small" href="/docs/api#metadata-insert" target="_blank">Details & Schema<i class="far fa-fw fa-angle-right small"></i></a></p>
                                                    </div>
                                                </div>
                                                <div class="row extra-padding">
                                                    <div class="col-lg-6">
                                                        <p class="mb--0 small">Request</p>
                                                        <div class="developer-example-wrap mt--10">
                                                            <pre id="api-example-5" class="highlight-code language-javascript hljs" style="font-size:14px;max-height:300px;overflow:scroll;margin-bottom:0px;"></pre>
                                                        </div>
                                                    </div>
                                                    <div class="col-lg-6">
                                                        <p class="mb--0 small">Response</p>
                                                        <div class="developer-example-wrap mt--10">
                                                            <pre id="api-example-6" class="highlight-code language-json hljs" style="font-size:14px;max-height:300px;overflow:scroll;margin-bottom:0px;"></pre>
                                                        </div>
                                                    </div>
                                                </div>
                                            </div>
                                        </div>
                                    </div>
                                </div>
                            </div>

                        </div>
                    </div>
                </div>
            </div>
        </section>



        <section class="Section Sect--angleBottom Sect--paddingNormal" id="section-woocommerce">

            <div class=" Sect__masked">
                <div class="Sect__backgroundMask">
                    <div class="Sect__background bg-color-light">

                    </div>
                </div>
                <div class="container Sect__container">
                    <div class="container-wrap Sect__layoutContainer">
                        <div class="container-inner Sect__layout">
                            <span class="rbt-badge-6 bg-white-opacity">WP Plugin</span>
                            <div class="row mb--30">
                                <div class="col-sm-12 col-xl-5">
                                    <div class="section-title text-start mb--10">
                                        <div class="thumbnail-wrapper">
                                            <div class="thumbnail image-1 d-block">
                                                <img class="" style="max-height:100px;margin-left:-15px;" src="https://cdn.revcent.com/img/product-img/all-img/third-party-integrations/woocommerce-wide.png">
                                            </div>
                                        </div>
                                        <h1 class="title d-none">WooCommerce<br>Integration</h1>
                                    </div>
                                    <p class="mb--10">Link your WooCommerce store with RevCent to process payments, manage customers, sync order data and more.</p>
                                    <p class="mb--0"><a class="color-purple small" href="https://kb.revcent.com/en/integrations/third-party-shop/woocommerce-installation" target="_blank">Installation Guide<i class="far fa-fw fa-angle-right small"></i></a></p>
                                    <p class="d-none"><a class="page-theme-link small" href="https://wordpress.org/plugins/revcent-payments/" target="_blank">Plugin Page<i class="far fa-fw fa-angle-right small"></i></a></p>
                                </div>
                            </div>


                            <div class="row mb--120">
                                <div class="col-lg-4 mt--20">
                                    <div class="rbt-card bg-color-woo-purple bg-color-text-white no-shadow">
                                        <div class="card-body">
                                            <h5 class="mb--10">Quick Setup</h5>
                                            <p class="mb--0">Link your WooCommerce store with RevCent in minutes.</p>
                                        </div>
                                    </div>
                                </div>
                                <div class="col-lg-4 mt--20">
                                    <div class="rbt-card bg-color-woo-purple bg-color-text-white no-shadow">
                                        <div class="card-body">
                                            <h5 class="mb--10">WordPress Plugin</h5>
                                            <p class="mb--0">Our plugin handles credit card payments and tracking.</p>
                                        </div>
                                    </div>
                                </div>
                                <div class="col-lg-4 mt--20">
                                    <div class="rbt-card bg-color-woo-purple bg-color-text-white no-shadow">
                                        <div class="card-body">
                                            <h5 class="mb--10">Order Updates</h5>
                                            <p class="mb--0">Sale changes in RevCent are reflected in WooCommerce.</p>
                                        </div>
                                    </div>
                                </div>
                            </div>

                            <div class="row mb--100">
                                <div class="col-sm-12">
                                    <div class="row">
                                        <div class="col-lg-4">
                                            <div class="section-title text-start">
                                                <h4 class="title">How It Works</h4>
                                            </div>
                                            <p class="">RevCent acts as a bi-directional payment processing and order management tool for your WooCommerce store.</p>
                                        </div>
                                    </div>
                                    <div class="row">
                                        <div class="col-lg-3 mt--20">
                                            <div class="rbt-card bg-color-woo-purple-light no-shadow">
                                                <div class="card-body">
                                                    <h5 class="mb--10">Install The Plugin</h5>
                                                    <p class="mb--30">Install the RevCent Payments plugin in your WordPress dashboard.</p>
                                                    <ul class="mb--0">
                                                        <li class="list-item">
                                                            Search for the RevCent Payments plugin.
                                                        </li>
                                                        <li class="list-item">
                                                            Install and activate the plugin.
                                                        </li>
                                                        <li class="list-item">
                                                            Link your store with RevCent.
                                                        </li>
                                                    </ul>
                                                </div>
                                            </div>
                                        </div>
                                        <div class="col-lg-3 mt--20">
                                            <div class="rbt-card bg-color-woo-purple-light no-shadow">
                                                <div class="card-body">
                                                    <h5 class="mb--10">Link Your Store</h5>
                                                    <p class="mb--30">RevCent will connect to your store and complete the set up process.</p>
                                                    <ul class="mb--0">
                                                        <li class="list-item">
                                                            Create a third party shop in RevCent.
                                                        </li>
                                                        <li class="list-item">
                                                            Enter your WooCommerce credentials.
                                                        </li>
                                                        <li class="list-item">
                                                            RevCent will complete the installation.
                                                        </li>
                                                    </ul>
                                                </div>
                                            </div>
                                        </div>
                                        <div class="col-lg-3 mt--20">
                                            <div class="rbt-card bg-color-woo-purple-light no-shadow">
                                                <div class="card-body">
                                                    <h5 class="mb--10">Process Payments</h5>
                                                    <p class="mb--30">Begin processing credit card, PayPal and third party payments.</p>
                                                    <ul class="mb--0">
                                                        <li class="list-item">
                                                            Select RevCent Payments for credit card payments.
                                                        </li>
                                                        <li class="list-item">
                                                            PayPal, Sezzle, etc. will be synced in the background.
                                                        </li>
                                                        <li class="list-item">
                                                            All order management, such as refunds, should be done in RevCent.
                                                        </li>
                                                    </ul>
                                                </div>
                                            </div>
                                        </div>
                                        <div class="col-lg-3 mt--20">
                                            <div class="rbt-card bg-color-woo-purple-light no-shadow">
                                                <div class="card-body">
                                                    <h5 class="mb--10">Auto Sync</h5>
                                                    <p class="mb--30">RevCent will automatically sync order updates in WooCommmerce.</p>
                                                    <ul class="mb--0">
                                                        <li class="list-item">
                                                            Updates to your orders will reflect in WooCommerce.
                                                        </li>
                                                        <li class="list-item">
                                                            Refunds, shipping status and more will be synced.
                                                        </li>
                                                        <li class="list-item">
                                                            Everything is done automatically by RevCent.
                                                        </li>
                                                    </ul>
                                                </div>
                                            </div>
                                        </div>
                                    </div>
                                </div>
                            </div>


                        </div>
                    </div>
                </div>
            </div>
        </section>



        <section class="Section Sect--angleBoth Sect--paddingNormal" id="section-custom">

            <div class=" Sect__masked">
                <div class="Sect__backgroundMask">
                    <div class="Sect__background bg-color-darker">

                    </div>
                </div>
                <div class="container Sect__container">
                    <div class="container-wrap Sect__layoutContainer">
                        <div class="container-inner Sect__layout">
                            <span class="rbt-badge-6 bg-white-opacity">Integrate Anything</span>
                            <div class="row mb--60">
                                <div class="col-sm-12 col-xl-5">
                                    <div class="section-title text-start mb--20">
                                        <h1 class="title color-white">Custom<br>Integrations</h1>
                                    </div>
                                    <p class="color-white mb--10">Functions allows you to integrate RevCent, both inbound and outbound, with any third party.</p>
                                    <p><a class="page-theme-link small" href="https://kb.revcent.com/en/integrations/functions" target="_blank">Function Docs <i class="far fa-fw fa-angle-right small"></i></a></p>
                                </div>
                            </div>
                            <div class="row mb--60">
                                <div class="col-lg-5 col-sm-12">
                                    <div class="row">
                                        <div class="col-sm-12">
                                            <div class="row mb--40">
                                                <div class="col-sm-12">
                                                    <div class="section-title text-start color-white">
                                                        <h4 class="title color-white">Write Code</h4>
                                                    </div>
                                                    <p class="color-white">Use the built-in code editor to write your own custom code, which is securely hosted and run by RevCent.</p>
                                                </div>
                                            </div>

                                            <div class="row mb--40">
                                                <div class="col-sm-12">
                                                    <div class="section-title text-start color-white">
                                                        <h5 class="color-white">JavaScript</h5>
                                                    </div>
                                                    <p class="color-white">Run JavaScript code via the Node.js runtime, with pre-installed dependencies and internet access.</p>
                                                </div>
                                            </div>

                                            <div class="row mb--40">
                                                <div class="col-sm-12">
                                                    <div class="section-title text-start color-white">
                                                        <h5 class="color-white">Triggers</h5>
                                                    </div>
                                                    <p class="color-white">RevCent offers many different function triggers including events, inbound URL's and schedules.</p>
                                                </div>
                                            </div>

                                            <div class="row mb--40">
                                                <div class="col-sm-12">
                                                    <div class="section-title text-start color-white">
                                                        <h5 class="color-white">Any Third Party</h5>
                                                    </div>
                                                    <p class="color-white">Functions gives you the capability to integrate any third party, regardless of complexity.</p>
                                                </div>
                                            </div>
                                        </div>
                                    </div>
                                </div>
                                <div class="col-lg-6 offset-lg-1 col-sm-12">
                                    <div class="row">
                                        <div class="col-sm-12">
                                            <div id="functions-container-wrap" class="developer-example-wrap mt--20">
                                                <div id="functions-container" style="width:100%;height:520px;border:0px solid grey;"></div>
                                            </div>
                                        </div>
                                    </div>
                                </div>
                            </div>
                        </div>
                    </div>
                </div>
            </div>
        </section>



        <section class="Section Sect--angleTop Sect--paddingNormal" id="section-third-party">

            <div class=" Sect__masked">
                <div class="Sect__backgroundMask">
                    <div class="Sect__background bg-color-white">
                    </div>
                </div>

                <div class="SeparatorSlantSet SeparatorSlantSet--TopRight SeparatorSlantSet--layoutIntersecting">
                    <div class="SeparatorSlant SeparatorSlant--accentNone SeparatorSlant--variantSolid SeparatorSlant--insetNormal SeparatorSlant--widthFull"></div>
                </div>

                <div class="container Sect__container">
                    <div class="container-wrap Sect__layoutContainer">
                        <div class="container-inner Sect__layout">
                            <span class="rbt-badge-6 page-theme-badge">Built-In</span>
                            <div class="row mb--60">
                                <div class="col-sm-12 col-lg-4">
                                    <div class="section-title text-start mb--20">
                                        <h1 class="title">Native<br>Third Parties</h1>
                                    </div>
                                    <p class="mb--10">RevCent has native third party integrations, each triggerable via specific events.</p>
                                    <p><a class="page-theme-link small" href="https://kb.revcent.com/en/integrations/third-party/third-party-integration" target="_blank">Third Party Docs<i class="far fa-fw fa-angle-right small"></i></a></p>
                                </div>
                            </div>
                            <div class="row mb--80">
                                <div class="col-sm-12">
                                    <div class="rbt-cardx small-shadowx">
                                        <div class="rbt-card-body" id="third-party-integrations-card-body">
                                            <div class="row" id="third-party-integrations-wrap">
                                            </div>
                                        </div>
                                    </div>
                                </div>
                            </div>
                        </div>
                    </div>
                </div>
            </div>
        </section>



        <footer class="Section SiteFooterSection Sect--paddingXSmall">
            <div class=" Sect__masked">
                <div class="Sect__backgroundMask">
                    <div class="Sect__background bg-color-white">

                    </div>
                </div>
                <div class="container Sect__container">
                    <div class="container-wrap Sect__layoutContainer">
                        <div class="container-inner Sect__layout">
                            
                                    <!-- Start Copyright Area  -->
                                    <div class="copyright-area copyright-style-1 ptb--20">
                                        <div class="container">
                                            <div class="row align-items-center">
                                                <div class="col-xxl-6 col-xl-6 col-lg-6 col-md-12 col-12">
                                                    <p class="rbt-link-hover text-center text-lg-start">© RevCent</p>
                                                </div>
                                                <div class="col-xxl-6 col-xl-6 col-lg-6 col-md-12 col-12">
                                                    <ul class="copyright-link rbt-link-hover justify-content-center justify-content-lg-end mt_sm--10 mt_md--10">
                                                        <li><a href="/terms-and-conditions">Terms & Conditions</a></li>
                                                        <li><a href="/privacy-policy">Privacy Policy</a></li>
                                                    </ul>
                                                </div>
                                            </div>
                                        </div>
                                    </div>
                                    <!-- End Copyright Area  -->                        </div>
                    </div>
                </div>
            </div>
        </footer>

    </main>

    <!-- End Page Wrapper Area -->
    <div class="rbt-progress-parent d-none">
        <svg class="rbt-back-circle svg-inner" width="100%" height="100%" viewBox="-1 -1 102 102">
            <path d="M50,1 a49,49 0 0,1 0,98 a49,49 0 0,1 0,-98" />
        </svg>
    </div>

    <script src="https://cdn.revcent.com/public-new/js/vendor/modernizr.min.js"></script>
    <script src="https://cdn.revcent.com/public-new/js/vendor/jquery.js"></script>
    <script src="https://cdn.revcent.com/public-new/js/vendor/bootstrap.min.js"></script>
    <script src="https://cdn.revcent.com/public-new/js/vendor/sal.js"></script>
    <script src="https://cdn.revcent.com/public-new/js/vendor/swiper.js"></script>
    <script src="https://cdn.revcent.com/public-new/js/vendor/magnify.min.js"></script>
    <script src="https://cdn.revcent.com/public-new/js/vendor/jquery-appear.js"></script>
    <script src="https://cdn.revcent.com/public-new/js/vendor/odometer.js"></script>
    <script src="https://cdn.revcent.com/public-new/js/vendor/backtotop.js"></script>
    <script src="https://cdn.revcent.com/public-new/js/vendor/isotop.js"></script>
    <script src="https://cdn.revcent.com/public-new/js/vendor/imageloaded.js"></script>
    <script src="https://cdn.revcent.com/public-new/js/vendor/wow.js"></script>
    <script src="https://cdn.revcent.com/public-new/js/vendor/waypoint.min.js"></script>
    <script src="https://cdn.revcent.com/public-new/js/vendor/easypie.js"></script>
    <script src="https://cdn.revcent.com/public-new/js/vendor/text-type.js"></script>
    <script src="https://cdn.revcent.com/public-new/js/vendor/jquery-one-page-nav.js"></script>
    <script src="https://cdn.revcent.com/public-new/js/vendor/bootstrap-select.min.js"></script>
    <script src="https://cdn.revcent.com/public-new/js/vendor/jquery-ui.js"></script>
    <script src="https://cdn.revcent.com/public-new/js/vendor/magnify-popup.min.js"></script>
    <script src="https://cdn.revcent.com/public-new/js/vendor/paralax-scroll.js"></script>
    <script src="https://cdn.revcent.com/public-new/js/vendor/paralax.min.js"></script>
    <script src="https://cdn.revcent.com/public-new/js/vendor/countdown.js"></script>
    <script src="https://cdn.revcent.com/public-new/js/vendor/plyr.js"></script>
    <script src="https://cdn.revcent.com/js/plugins/uuid/uuid.js"></script>
    <script src="https://cdn.revcent.com/js/plugins/lodash/lodash.js"></script>
    <script src="https://cdn.revcent.com/js/plugins/sweetalert/sweetalert.min.js"></script>

    <script src="https://cdn.revcent.com/js/plugins/validation/jquery.validate.min.js"></script>
    <script src="https://cdn.revcent.com/js/plugins/validation/additional-methods.min.js"></script>
    <script src="https://www.google.com/recaptcha/api.js?onload=recaptchaLibLoaded&render=explicit" async defer></script>
    <script src="https://cdn.revcent.com/js/plugins/anim-gradient/anim-gradient.js"></script>
    <script src="https://cdn.revcent.com/js/plugins/highlightjs/highlight-2.min.js"></script>
    <script src="https://cdn.revcent.com/js/plugins/typeit/typeit.js"></script>




    <script>
      let registerRequestRecaptchaWidget;
      let contactModalRecaptchaWidget;
      recaptchaLibLoaded=function() {
        let recaptcha_site_key='6LcDsNUUAAAAAIpsHmkuI7Renzt8xNAl7HHItOou';
        if($('#recaptcha_contact_modal').length>0) {
          contactModalRecaptchaWidget=grecaptcha.render('recaptcha_contact_modal',{
            'sitekey': recaptcha_site_key
          });
        }
        if($('#recaptcha_register_request').length>0) {
          registerRequestRecaptchaWidget=grecaptcha.render('recaptcha_register_request',{
            'sitekey': recaptcha_site_key
          });
        }
      };

      $(document).ready(function() {
        $(document).on('mouseenter','.advanced-tab-button-nav .nav-link:not(.active)',function(a) {
          $(this).tab('show');
        });
        $('.lobtn').click(function() {
          $.ajax({
            type: 'POST',
            url: '/auth/logout',
            dataType: "json",
            success: function(x) {
              window.location.replace('/');
            }
          });
        });
      });
    </script>

    <script>
      // $('.page-theme-link.small').hover(function() {
      //   $(this).children('i.far.fa-angle-right.small').addClass('ml--5');
      // },
      //   function() {
      //     $(this).children('i.far.fa-angle-right.small').removeClass('ml--5');
      //   });
    </script>
    <script>
      let hero_palette=[
        ['#521262','#6639a6','#3490de','#6fe7dd'], //0
        ['#f8ecfd','#c264fe','#a82ffc','#7a08fa'], //purple 1
        ['#d9faff','#00bbf0','#005792','#00204a'], //ice 2
        ['#fc85ae','#9e579d','#574b90','#303a52'], //city night 3
        ['#abedd8','#46cdcf','#3d84a8','#48466d'], //sea foam 4
        ['#d2ecf9','#1891ac','#1f5f8b','#253b6e'], //ocean 5
        ['#ffbd39','#e61c5d','#930077','#3a0088'], //dark fruit 6
        ['#ff165d','#ff9a00','#ebedb4','#3ec1d3'], //fruit 7
        ['#ffde7d','#f6416c','#f8f3d4','#00b8a9'], //light melon 8
        ['#eaeaea','#ff2e63','#252a34','#08d9d6'], //peppermint 9
        ['#64379f','#9854cb','#ddacf5','#33a8b5'], // 10
        ['#5f59f7','#6592fd','#44c2fd','#8c61ff'], // 11
        ['#a7dbd8','#e0e4cc','#f38630','#fa6900'], // 12
        ['#0dceda','#6ef3d6','#c6fce5','#ebfffa'], //13
        ['#7e6bc4','#c79ecf','#d6c8ff','#fef0ff'], //14
        ['#d988bc','#ffa8b8','#ffd2a5','#ffffc1'], //15
        ['#8a00d4','#d527b7','#f782c2','#f9c46b'], //16
        ['#556270','#4ecdc4','#c7f464','#ff6b6b'], //17
        ['#bce784','#5dd39e','#348aa7','#525174'], //18
        ['#ff9de2','#8c82fc','#b693fe','#7effdb'], //19
        ['#8971d0','#7dace4','#95e8d7','#adf7d1'], //20
        ['#fff5a5','#ffaa64','#ff8264','#ff6464'], //21
        ['#a7ff83','#17b978','#086972','#071a52'], //22
        ['#2f9296','#46b7b9','#87dfd6','#dff5f2'], //23
        ['#74f9ff','#e8ffe8','#a6fff2','#00e0ff'], //24
        ['#d7fbe8','#62d2a2','#9df3c4','#1fab89'], //25
        ['#F0FF42','#82CD47','#54B435','#379237'],//26
        ['#F49D1A','#009FBD','#210062','#77037B'], //27
        ['#13bf53','#38E54D','#9CFF2E','#FDFF00'], //28
        ['#07e3d1','#7203ad','#C70A80','#ffe100'], //29
        ['#FFBE0B','#70d6ff','#FF006E','#8338EC'], //30
        ['#92bff0','#57cdff','#1b8bff','#0061c9'], //31
        ['#fff75e','#ffe94e','#ffda3d','#fdc43f'], //32
        ['#E60965','#F94892','#FFA1C9','#E80F88'], //33
        ['#a200ff','#7e00c7','#b940ff','#8b3aba'], //34
        ['#930077','#7f2381','#6a3287','#eb1ec5'], //35
      ];

      let page_theme_gradients={
        '1': 1,
        '2': 33,
        '3': 21,
        '4': 28,
        '5': 31,
        '6': 35,
        '7': 33
      };

      if($('.gradient-canvas').length>0&&(typeof $('.gradient-canvas').attr('data-palettenum')!=='undefined'||typeof $('body.MainBody').attr('data-pagetheme')!=='undefined'||typeof $('.rbt-main-wrapper').attr('data-palettearray')!=='undefined')) {
        $('.gradient-canvas').each(function() {
          let angle=0;
          let palette_array;
          let amplitude=320;
          let static=false;
          let indiv_grad=$(this);
          if(typeof $('body.MainBody').attr('data-pagetheme')!=='undefined'&&$(this).parent('.gradient-canvas-wrapper').hasClass('section-separator-250')&&typeof page_theme_gradients?.[$('body.MainBody').attr('data-pagetheme')]!=='undefined') {
            palette_array=hero_palette[page_theme_gradients[$('body.MainBody').attr('data-pagetheme')]];
          } else if(typeof $(this).attr('data-palettearray')!=='undefined') {
            palette_array=JSON.parse($(this).attr('data-palettearray'));
          } else {
            palette_array=hero_palette[parseInt($(this).attr('data-palettenum'))];
          }
          if(typeof $(this).attr('data-gradamp')!=='undefined'&&parseInt($(this).attr('data-gradamp'))>0) {
            amplitude=parseInt($(this).attr('data-gradamp'));
          }
          if(typeof $(this).attr('data-gradangle')!=='undefined'&&parseInt($(this).attr('data-gradangle'))>0) {
            angle=parseInt($(this).attr('data-gradangle'));
          }

          if(typeof $(this).attr('data-gradstatic')!=='undefined'&&$(this).attr('data-gradstatic')==='true') {
            static=true;
          }
          if(typeof $(this).attr('data-gradshuffle')!=='undefined'&&$(this).attr('data-gradshuffle')==='true') {
            palette_array=palette_array
              .map(value => ({value,sort: Math.random()}))
              .sort((a,b) => a.sort-b.sort)
              .map(({value}) => value)
          }



          indiv_grad.gradient({
            colors: palette_array,
            angle,
            amplitude,
            static,
            density: [.06, .16]
          });
        });
      }
    </script>


    <script>


      (function(window,document,$,undefined) {
        'use strict';

        let siteConf={
          i: function(e) {
            siteConf.d();
            siteConf.methods();
          },

          d: function(e) {
            this._window=$(window),
              this._document=$(document),
              this._body=$('body'),
              this._html=$('html'),
              this.sideNav=$('.rbt-search-dropdown')
          },
          methods: function(e) {
            siteConf._clickDoc();
            siteConf.popupMobileMenu();
          },
          _clickDoc: function() {
            var inputblur,inputFocus,openSideNav,closeSideNav;
            inputblur=function(e) {
              if(!$(this).val()) {
                $(this).parent('.form-group').removeClass('focused');
              }
            };
            inputFocus=function(e) {
              $(this).parents('.form-group').addClass('focused');
            };
            openSideNav=function(e) {
              e.preventDefault();
              siteConf.sideNav.addClass('active');
              $('.search-trigger-active').addClass('open');
              siteConf._html.addClass('side-nav-opened');
            };

            closeSideNav=function(e) {
              if(!$('.rbt-search-dropdown, .rbt-search-dropdown *:not(".search-trigger-active, .search-trigger-active *")').is(e.target)) {
                siteConf.sideNav.removeClass('active');
                $('.search-trigger-active').removeClass('open');
                siteConf._html.removeClass('side-nav-opened');
              }
            };
            siteConf._document
              .on('blur','input,textarea,select',inputblur)
              .on('focus','input:not([type="radio"]),input:not([type="checkbox"]),textarea,select',inputFocus)
              .on('click','.search-trigger-active',openSideNav)
              .on('click','.side-nav-opened',closeSideNav)
          },




          popupMobileMenu: function(e) {
            $('.hamberger-button').on('click',function(e) {
              $('.popup-mobile-menu').addClass('active');
            });

            $('.close-button').on('click',function(e) {
              $('.popup-mobile-menu').removeClass('active');
              $('.popup-mobile-menu .mainmenu .has-dropdown > a, .popup-mobile-menu .mainmenu .with-megamenu > a').siblings('.submenu, .rbt-megamenu').removeClass('active').slideUp('400');
              $('.popup-mobile-menu .mainmenu .has-dropdown > a, .popup-mobile-menu .mainmenu .with-megamenu > a').removeClass('open')
            });

            $('.popup-mobile-menu .mainmenu .has-dropdown > a, .popup-mobile-menu .mainmenu .with-megamenu > a').on('click',function(e) {
              e.preventDefault();
              $(this).siblings('.submenu, .rbt-megamenu').toggleClass('active').slideToggle('400');
              $(this).toggleClass('open')
            })

            $('.popup-mobile-menu, .popup-mobile-menu .mainmenu.onepagenav li a').on('click',function(e) {
              e.target===this&&$('.popup-mobile-menu').removeClass('active')&&$('.popup-mobile-menu .mainmenu .has-dropdown > a, .popup-mobile-menu .mainmenu .with-megamenu > a').siblings('.submenu, .rbt-megamenu').removeClass('active').slideUp('400')&&$('.popup-mobile-menu .mainmenu .has-dropdown > a, .popup-mobile-menu .mainmenu .with-megamenu > a').removeClass('open');
            });
          }
        }
        siteConf.i();


      })(window,document,jQuery);
      
    </script><script type="text/javascript">
</script>

    <script src="https://cdn.revcent.com/js/plugins/codemirror/codemirror.js">
    </script>
    <script src="https://cdn.revcent.com/js/plugins/codemirror/mode/javascript/javascript.js">
    </script>
    <script src="https://cdn.revcent.com/js/plugins/codemirror/addon/lint/lint.js">
    </script>
    <script src="https://cdn.revcent.com/js/plugins/codemirror/mode/xml/xml.js">
    </script>
    <script src="https://cdn.revcent.com/js/plugins/codemirror/addon/lint/jshint.js">
    </script>
    <script src="https://cdn.revcent.com/js/plugins/codemirror/addon/lint/xml-hint.js">
    </script>
    <script src="https://cdn.revcent.com/js/plugins/codemirror/addon/lint/javascript-lint.js">
    </script>
    <script src="https://cdn.revcent.com/js/plugins/codemirror/addon/lint/json-lint.js">
    </script>
    <script src="https://cdn.revcent.com/js/plugins/codemirror/addon/lint/html-lint.js">
    </script>
    <script src="https://cdn.revcent.com/js/plugins/beautify/beautify.js">
    </script>
    <script src="https://cdn.revcent.com/js/plugins/beautify/beautify-html.min.js">
    </script>
    <script src="https://cdn.revcent.com/js/plugins/monaco-editor/min/vs/loader.js"></script>

    <script type="text/javascript">

        let
            functions_dependencies={
                "@mailchimp/mailchimp_marketing": "^3.0.75",
                "@mailchimp/mailchimp_transactional": "^1.0.47",
                "@sendgrid/mail": "^7.7.0",
                "@slack/web-api": "^6.9.0",
                "activecampaign": "^1.2.5",
                "ajv": "^8.11.0",
                "ascii-table": "0.0.9",
                "axios": "^0.27.2",
                "crypto-js": "^4.1.1",
                "facebook-nodejs-business-sdk": "^18.0.2",
                "google-ads-api": "^14.1.0",
                "google-libphonenumber": "^3.2.30",
                "handlebars": "^4.7.7",
                "html-to-text": "^9.0.3",
                "input": "^1.0.1",
                "json2csv": "^5.0.7",
                "jsonwebtoken": "^8.5.1",
                "klaviyo-sdk": "^1.0.1",
                "lodash": "^4.17.21",
                "moment": "^2.29.4",
                "mongodb": "^4.6.0",
                "mysql": "^2.18.1",
                "nodemailer": "^6.7.5",
                "openai": "^3.1.0",
                "pg": "^8.7.3",
                "qs": "^6.10.3",
                "redis": "^4.1.0",
                "request": "^2.88.2",
                "shippo": "^1.7.1",
                "superagent": "^7.1.3",
                "twilio": "^4.19.0",
                "uuid": "^8.3.2",
                "validator": "^13.7.0",
                "xml2js": "^0.4.23"
            };


        let code_editors={};
        let monaco_global='';
        for(let key in functions_dependencies) {
            monaco_global+='"'+key+'" : any;\n'
        }
        require.config({
            paths: {
                vs: 'https://cdn.revcent.com/js/plugins/monaco-editor/min/vs'
            }
        });

        require(['vs/editor/editor.main'],function() {
            let custom_code=`
            /* In this example, a customer is sent a text message 
               via Twilio after successfully completing a purchase. 
               More examples at https://github.com/RevCent/function-examples
            */

            const Twilio = global.twilio;
            const sale_details = event.data.item_details;
            const customer_details = event.data.item_details.customer;
            const twilio_account_sid = process.env.twilio_account_sid;
            const twilio_auth_token = process.env.twilio_auth_token;

            let twilio = new Twilio(twilio_account_sid, twilio_auth_token);
            twilio.messages.create({
                from: process.env.twilio_from_number,
                to: customer_details.phone,
                body: 'Thank you for your $' + sale_details.amount_gross + ' purchase!'
            }, function(err, result) {
                if (err) {
                    console.log(err);
                    callback(err);
                } else {
                    callback(null, result.sid);
                }
            });
        `;

            code_editors.main=monaco.editor.create(document.getElementById('functions-container'),{
                value: [js_beautify(custom_code)].join('\n'),
                language: 'javascript',
                theme: 'vs-dark',
                fontSize: 13,
                automaticLayout: true,
                scrollBeyondLastLine: false,
                scrollbar: {
                    alwaysConsumeMouseWheel: false
                },
                quickSuggestions: false,
                minimap: {
                    enabled: false
                }
            });
            const functions_env=`
              interface Event {
                 data: any;
              }
              declare const global: {
                ${monaco_global}
              } 
              declare const process: {
                  env: {
                      [key: string]: string;
                  };
              };
              declare const event: Event;
              declare const context: {
                'source': {
                    id: string;
                    name: string;
                    trigger: string;
                    method: string;
                    content_type: string;
                    ip_address: string;
                    headers: {
                      [key: string]: string;
                    };
                    url_params: {
                      [key: string]: string;
                    };
                    run_id: string;
                    process_id: string;
                    prior_process_id: string;
                };
                'function': {
                    id: string;
                    name: string;
                    stored_data: string;
                };
                'function_run': {
                    id: string;
                };
              };
              declare const callback: (error: any, response: any, stored_data: any);
            `;

            monaco.languages.typescript.javascriptDefaults.addExtraLib(functions_env,'ts:filename/facts.d.ts');
            monaco.languages.typescript.javascriptDefaults.setDiagnosticsOptions({
                diagnosticCodesToIgnore: [6385,7044]
            });
            monaco.languages.typescript.javascriptDefaults.setCompilerOptions({
                target: monaco.languages.typescript.ScriptTarget.ES2016,
                moduleResolution: monaco.languages.typescript.ModuleResolutionKind.NodeJs,
                module: monaco.languages.typescript.ModuleKind.CommonJS,
                allowNonTsExtensions: true,
                allowJs: true,
                checkJs: true
            });
        });
    </script>

    <script type="text/javascript">
        let api_examples={
            'url-example-1': {
                code: `
https://www.mysite.com?source=facebook&ad=gift&fcblid=uFCrBkUgEvKg

`
            },
            'metadata-example-1': {
                code: `
   "metadata": [
        {
            "name": "source",
            "value": "facebook"
        },
        {
            "name": "ad",
            "value": "freegift"
        },
        {
            "name": "fcblid",
            "value": "uFCrBkUgEvKg"
        }
    ]
`
            },
            'insert-metadata-example-1': {
                code: `
    curl --location --request POST 'https://api.revcent.com/v1'
    --header 'Content-Type: application/json'
    --header 'x-api-key: REVCENT_API_KEY'
    --data-raw '{
        "request": {
            "type": "metadata",
            "method": "insert",
            "item_type": "customer",
            "item_id": "pgm1q7yjKjF7qyAM7EXK",
            "metadata": [
                {
                    "name": "sms_sent",
                    "value": "true"
                }
            ]
        }
    }'`
            },
            'api-example-hero': {
                code: `
    curl --location --request POST 'https://api.revcent.com/v1'
    --header 'Content-Type: application/json'
    --header 'x-api-key: REVCENT_API_KEY'
    --data-raw '{
        "request": {
            "type": "sale",
            "method": "create",
            "payment": {
                "credit_card": {
                    "card_number": "4242424242424242",
                    "exp_month": 4,
                    "exp_year": 22,
                    "card_code": "123"
                }
            },
            "campaign": "Adwords Campaign",
            "iso_currency": "USD",
            "payment_profile": "MyAwesomeProfile",
            "customer": {
                "first_name": "George",
                "last_name": "Washington",
                "address_line_1": "1600 Pennsylvania Ave",
                "address_line_2": "",
                "city": "Washington",
                "state": "DC",
                "zip": "20500",
                "country": "USA",
                "company": "",
                "email": "george@whitehouse.gov",
                "phone": "2024561414"
            },
            "product": [
                {
                    "id": "robo_vac",
                    "quantity": 1
                },
                {
                    "id": "av_2017",
                    "price": 19.99
                }
            ],
            "tax": [
                {
                    "amount": 9.31,
                    "rate": 7.3,
                    "name": "State Sales",
                    "description": "seven percent"
                }
            ],
            "shipping": [
                {
                    "amount": 5,
                    "provider": "usps",
                    "provider_method": "priority"
                }
            ],
            "metadata": [
                {
                    "name": "fbclid",
                    "value": "Cjat0KwhCQjdTq..."
                },
                {
                    "name": "landing_page",
                    "value": "v1"
                }
            ]
        }
    }'`
            },
            'api-example-1': {
                code: `
    curl --location --request POST 'https://api.revcent.com/v1'
    --header 'Content-Type: application/json'
    --header 'x-api-key: REVCENT_API_KEY'
    --data-raw '{
        "request": {
            "type": "sale",
            "method": "create",
            "payment": {
                "credit_card": {
                    "card_number": "4242424242424242",
                    "exp_month": 4,
                    "exp_year": 22,
                    "card_code": "123"
                }
            },
            "campaign": "Adwords Campaign",
            "iso_currency": "USD",
            "payment_profile": "MyAwesomeProfile",
            "customer": {
                "first_name": "George",
                "last_name": "Washington",
                "address_line_1": "1600 Pennsylvania Ave",
                "address_line_2": "",
                "city": "Washington",
                "state": "DC",
                "zip": "20500",
                "country": "USA",
                "company": "",
                "email": "george@whitehouse.gov",
                "phone": "2024561414"
            },
            "product": [
                {
                    "id": "robo_vac",
                    "quantity": 1
                },
                {
                    "id": "av_2017",
                    "price": 19.99
                }
            ],
            "tax": [
                {
                    "amount": 9.31,
                    "rate": 7.3,
                    "name": "State Sales",
                    "description": "seven percent"
                }
            ],
            "shipping": [
                {
                    "amount": 5,
                    "provider": "usps",
                    "provider_method": "priority"
                }
            ],
            "metadata": [
                {
                    "name": "fbclid",
                    "value": "Cjat0KwhCQjdTq..."
                },
                {
                    "name": "landing_page",
                    "value": "v1"
                }
            ]
        }
    }'`
            },
            'api-example-2': {
                code: `
{
    "amount": 111.86,
    "amount_captured": 111.86,
    "amount_discounted": 0,
    "amount_fees": 3.02,
    "amount_gross": 111.86,
    "amount_net": 108.84,
    "amount_original_total": 274.28,
    "amount_remaining": 162.42,
    "amount_to_salvage": 12.43,
    "api_call_id": "O051ZWQ4XjijnV5LkVGl",
    "api_call_processed": true,
    "api_call_unix": 1565833755,
    "campaign_id": "mJ1zZoOobEuP8pnWKXd1",
    "campaign_name": "Adwords Campaign",
    "card_id": "WmPn2g8bakcKnWWEmRlJ",
    "code": 1,
    "customer": {
        "address_line_1": "1600 Pennsylvania Ave",
        "address_line_2": "",
        "blocked": false,
        "city": "Washington",
        "company": "",
        "country": "USA",
        "email": "georgew@whitehouse.com",
        "enabled": true,
        "first_name": "George",
        "full_address": "1600 Pennsylvania Ave NW, Washington, DC 20500, USA",
        "geocode_success": true,
        "google_place_id": "ChIJGVtI4by3t4kRr51d_Qm_x58",
        "id": "4r158EzJmmcVM69dNLkg",
        "internal_id": "pres_0001",
        "last_name": "Washington",
        "lat": "38.8976633",
        "lon": "-77.0365739",
        "metadata": [],
        "phone": "2024561414",
        "state": "DC",
        "state_long": "DC",
        "zip": "20500"
    },
    "customer_id": "ajOAl24bBXc5nXwagAOg",
    "discount_created": [],
    "fraud_detection_response": {
        "code": 1,
        "message": "No fraud detected.",
        "fraud_detected": false,
        "fraud_detection_created": null,
        "fraud_detection_request": {
            "id": "rmMrXO5G8EFk8zO0rGlX",
            "third_party": {
                "id": "mJEZdyVavzUL0gGoLR1Z",
                "name": "Kount"
            },
            "third_party_integration": {
                "id": "ajYRoLokyXf62qy06JpZ",
                "name": "Kount Risk Inquiry"
            },
            "third_party_raw_response": "",
            "third_party_order_id": "",
            "third_party_fraud_detection_id": "DWN40J2NPKRW",
            "third_party_response_ms": 834
        }
    },
    "gateway": "Braintree",
    "gateway_id": "NkAMJOzpB5iEAOrdloV0",
    "gateway_raw_response": "",
    "internal_customer_id": "cus_3197",
    "internal_sale_id": "sale_7678",
    "iso_currency": "USD",
    "payment_profile_results": {
        "payment_profile_id": "ajyXm76OpjSL4p5oO2By",
        "original_amount": 124.29,
        "final_amount": 111.86,
        "successful_step_num": 2,
        "successful_gateway": "Braintree",
        "num_declined_transactions": 1,
        "declined_transaction_array": [
            "RJ5MaZMap1cZdP9w7ayE"
        ],
        "step_array": [
            {
                "step_action": "initial",
                "step_amount": 124.29,
                "step_cascade_result": {
                    "cascade_order": "sort_order",
                    "enabled_gateways": [
                        "2rE2pQGMd7SYjGp42yEL",
                        "LYE26MW8Rlh5VbJmlp2l",
                        "GOJankNpkpsPzw6No1OP",
                        "NkAMJOzpB5iEAOrdloV0"
                    ],
                    "gateway_results": [
                        {
                            "gateway_id": "2rE2pQGMd7SYjGp42yEL",
                            "order": 1,
                            "revenue_rules": {
                                "enabled": false,
                                "passed": true,
                                "details": []
                            },
                            "success": true,
                            "time_rules": {
                                "enabled": false,
                                "passed": true,
                                "details": []
                            }
                        }
                    ],
                    "start_gateway": "2rE2pQGMd7SYjGp42yEL"
                },
                "step_gateway": "Worldpay",
                "step_gateway_id": "2rE2pQGMd7SYjGp42yEL",
                "step_gateway_response": "",
                "step_modifier": "",
                "step_num": 1,
                "step_result": "Declined",
                "step_setting": "initial",
                "step_source": "cascade",
                "step_transaction": "RJ5MaZMap1cZdP9w7ayE"
            },
            {
                "step_action": "next",
                "step_amount": 111.86,
                "step_cascade_result": null,
                "step_gateway": "Braintree",
                "step_gateway_id": "NkAMJOzpB5iEAOrdloV0",
                "step_modifier": "10",
                "step_num": 2,
                "step_result": "Approved",
                "step_setting": "modifypct",
                "step_source": "gateway",
                "step_transaction": "vEwWZv5B5zIXM9bq1yQd"
            }
        ]
    },
    "product_sale_created": [
        {
            "amount_original_total": 149.99,
            "amount_captured": 0,
            "amount_gross": 0,
            "amount_net": 0,
            "amount_fees": 0,
            "amount_remaining": 149.99,
            "amount_to_salvage": 0,
            "amount_discounted": 0,
            "id": "7rwyAzL5LXUa8QrGMoMR",
            "price": 149.99,
            "quantity": 1,
            "product": {
                "id": "0pBLXVZW08SNw0XOKZ7X",
                "name": "Robo Vac",
                "internal_id": "robo_vac",
                "sku": "robo_vac_sku"
            },
            "subscription": {
                "id": "4r15qAlZlyUoMprMNVpE"
            },
            "trial": {
                "id": "k6vn81lElqsvKEB4K2JA"
            }
        },
        {
            "amount_original_total": 19.99,
            "amount_captured": 17.73,
            "amount_gross": 17.73,
            "amount_net": 17.25,
            "amount_fees": 0.48,
            "amount_remaining": 2.26,
            "amount_to_salvage": 2.26,
            "amount_discounted": 0,
            "id": "Nk5vOzGAGRfrmg8LZXVM",
            "price": 19.99,
            "quantity": 1,
            "product": {
                "id": "6r8O5MLbw2t6n4v1lGqK",
                "name": "AV 2017",
                "internal_id": "av_2017",
                "sku": "av_2017_sku"
            },
            "subscription": {
                "id": "VPm9vVEoERc6Wy6Jg7Jg"
            },
            "trial": null
        }
    ],
    "request_method": "create",
    "request_type": "sale",
    "result": "Approved",
    "sale_id": "rm9EG1BjrXcqm64KKq6z",
    "salvage_transaction": {
        "id": "9rdE4zvXvQUjVp22ddgm",
        "amount": 12.43,
        "enabled": true,
        "sale_creator": false
    },
    "salvage_transaction_created": true,
    "ship_to": {
        "first_name": "George",
        "last_name": "Washington",
        "address_line_1": "1600 Pennsylvania Ave",
        "address_line_2": "",
        "city": "Washington",
        "state": "DC",
        "zip": "20500",
        "company": "",
        "country": "USA",
        "email": "george@whitehouse.gov",
        "phone": "2024561414"
    },
    "shipping_created": [
        {
            "amount_original_total": 5,
            "amount_captured": 5,
            "amount_gross": 5,
            "amount_net": 4.87,
            "amount_fees": 0.14,
            "amount_remaining": 0,
            "amount_to_salvage": 0,
            "amount_discounted": 0,
            "id": "Q45o8zGpGRu098B88npR",
            "provider": "usps",
            "provider_method": "priority_mail",
            "provider_tracking": "3546 5214",
            "weight": 0
        }
    ],
    "subscription_created": [
        {
            "id": "VPm9vVEoERc6Wy6Jg7Jg",
            "start_date_unix": 1565833755,
            "next_renewal_date_unix": 1568512155,
            "product_sale": {
                "id": "Nk5vOzGAGRfrmg8LZXVM"
            },
            "product": {
                "id": "6r8O5MLbw2t6n4v1lGqK",
                "name": "AV 2017",
                "internal_id": "av_2017",
                "sku": "av_2017_sku"
            },
            "trial": null
        }
    ],
    "tax_created": [
        {
            "amount_original_total": 9.31,
            "amount_captured": 9.31,
            "amount_gross": 9.31,
            "amount_net": 9.06,
            "amount_fees": 0.25,
            "amount_remaining": 0,
            "amount_to_salvage": 0,
            "id": "2rdJNg4E4yUplpKWYnpo",
            "name": "User Provided Tax",
            "description": "",
            "rate": 0.08
        }
    ],
    "third_party_shop": null,
    "transaction_id": "vEwWZv5B5zIXM9bq1yQd",
    "trial_created": [
        {
            "id": "k6vn81lElqsvKEB4K2JA",
            "num_days": 1,
            "end_date_unix": 1565920155,
            "product_sale": {
                "id": "7rwyAzL5LXUa8QrGMoMR"
            },
            "product": {
                "id": "0pBLXVZW08SNw0XOKZ7X",
                "name": "Robo Vac",
                "internal_id": "robo_vac",
                "sku": "robo_vac_sku"
            },
            "subscription": {
                "id": "4r15qAlZlyUoMprMNVpE"
            }
        }
    ]
}`
            },
            'api-example-3': {
                code: `
    curl --location --request POST 'https://api.revcent.com/v1'
    --header 'Content-Type: application/json'
    --header 'x-api-key: REVCENT_API_KEY'
    --data-raw '{
    "request": {
        "type": "customer",
        "method": "create",
        "campaign": "Twitter Campaign",
        "customer": {
            "first_name": "George",
            "last_name": "Washington",
            "address_line_1": "1600 Pennsylvania Ave",
            "address_line_2": "",
            "city": "Washington",
            "state": "DC",
            "zip": "20500",
            "country": "USA",
            "company": "",
            "email": "george@whitehouse.gov",
            "phone": "2024561414"
        },
        "bill_to": {
            "first_name": "George",
            "last_name": "Washington",
            "address_line_1": "1600 Pennsylvania Ave",
            "address_line_2": "",
            "city": "Washington",
            "state": "DC",
            "zip": "20500",
            "country": "USA",
            "company": "",
            "email": "george@whitehouse.gov",
            "phone": "2024561414"
        },
        "internal_customer_id": "cus_7791",
        "payment": {
            "credit_card": {
                "card_number": "4242424242424242",
                "exp_month": 12,
                "exp_year": 20,
                "card_code": "999"
            }
        },
        "metadata": [
            {
                "name": "adwords_click",
                "value": "Cjat0KwhCQjdTq..."
            },
            {
                "name": "sign_up_page",
                "value": "v1"
            }
        ]
    }
}'`
            },
            'api-example-4': {
                code: `
{
  "api_call_id": "Nk5voyYVvgTOJkEdGRyj",
  "api_call_processed": true,
  "api_call_unix": 1565814918,
  "campaign_id": "JN0Zpj7RGJiwKqAnRoy6",
  "campaign_name": "Twitter Campaign",
  "card_id": "YaVqjAZNqzCGvrrZgGqm",
  "code": 1,
  "customer_email": "george@whitehouse.gov",
  "customer_first_name": "George",
  "customer_id": "mJGAbQ0zAmU12rpngR1M",
  "customer_last_name": "Washington",
  "request_method": "create",
  "request_type": "customer",
  "result": "Created new customer and added card."
}`
            },
            'api-example-5': {
                code: `
    curl --location --request POST 'https://api.revcent.com/v1'
    --header 'Content-Type: application/json'
    --header 'x-api-key: REVCENT_API_KEY'
    --data-raw '{
        "request": {
            "type": "metadata",
            "method": "insert",
            "item_type": "sale",
            "item_id": "pgm1q7yjKjF7qyAM7EXK",
            "cascade": false,
            "metadata": [
                {
                    "name": "new_name",
                    "value": "new value"
                }
            ]
        }
    }'`
            },
            'api-example-6': {
                code: `
{
  "api_call_date": "2022-06-02T15:16:15+00:00",
  "api_call_id": "JNGoAdZ7v8iRooaArOOy",
  "api_call_processed": true,
  "api_call_unix": 1654182975,
  "code": 1,
  "customer": {
    "address_line_1": "1600 Pennsylvania Ave",
    "address_line_2": "",
    "blocked": false,
    "city": "Washington",
    "company": "",
    "country": "USA",
    "email": "georgew@whitehouse.com",
    "enabled": true,
    "first_name": "George",
    "full_address": "1600 Pennsylvania Ave NW, Washington, DC 20500, USA",
    "geocode_success": true,
    "google_place_id": "ChIJGVtI4by3t4kRr51d_Qm_x58",
    "id": "4r158EzJmmcVM69dNLkg",
    "internal_id": "pres_0001",
    "last_name": "Washington",
    "lat": "38.8976633",
    "lon": "-77.0365739",
    "metadata": [],
    "phone": "2024561414",
    "state": "DC",
    "state_long": "DC",
    "zip": "20500"
  },
  "item_id": "pgm1q7yjKjF7qyAM7EXK",
  "item_type": "sale",
  "metadata": [
    {
      "name": "new_name",
      "value": "new value"
    }
  ],
  "request_method": "insert",
  "request_type": "metadata",
  "result": "Metadata inserted."
}`
            }

        }
        for(let elem_id in api_examples) {
            if($('#'+elem_id).length>0) {
                $('#'+elem_id).append(api_examples[elem_id].code);
            }
        }

        hljs.configure({
            cssSelector: '.highlight-code'
        });
        hljs.highlightAll();
    </script>



    <script>
        function getIntegrations() {
            return _.orderBy([{
                name: 'mailchimp',
                hx: '<h3>Mailchimp</h3>',
                p: '<p>Automatically add a new customer email address to your Mailchimp lists.</p>',
                a: '',
                img: 'third-party-integrations/mailchimp',
                img_style: 'max-height: 130px;margin-top: 20px;',
                img_class: ''
            },
            {
                name: 'taxjar',
                hx: '<h3>TaxJar</h3>',
                p: '<p>Integrate your TaxJar account with RevCent.</p>',
                a: '',
                img: 'third-party-integrations/taxjar',
                img_style: 'max-height: 130px;margin-top: 20px;',
                img_class: ''
            },
            {
                name: 'amazon-pay',
                hx: '<h3>Amazon Pay</h3>',
                p: '<p>Integrate your Amazon Pay account with RevCent.</p>',
                a: '',
                img: 'third-party-integrations/amazon-pay',
                img_style: 'max-height: 130px;margin-top: 20px;',
                img_class: ''
            },
            {
                name: 'seon',
                hx: '<h3>SEON</h3>',
                p: '<p>Integrate your SEON account with RevCent to combat fraud and enrich data.</p>',
                a: '',
                img: 'third-party-integrations/seon',
                img_style: 'max-height: 130px;margin-top: 20px;',
                img_class: ''
            },
            {
                name: 'open-ai',
                hx: '<h3>OpenAI</h3>',
                p: '<p>Integrate your OpenAI account with RevCent.</p>',
                a: '',
                img: 'third-party-integrations/open-ai',
                img_style: 'max-height: 130px;margin-top: 20px;',
                img_class: ''
            },
            {
                name: 'pathly',
                hx: '<h3>Pathly</h3>',
                p: '<p>Integrate your Pathly account with RevCent.</p>',
                a: '',
                img: 'third-party-integrations/pathly',
                img_style: 'max-height: 130px;margin-top: 20px;',
                img_class: ''
            },
            {
                name: 'fluidpay',
                hx: '<h3>FluidPay</h3>',
                p: '<p>Integrate your FluidPay account with RevCent.</p>',
                a: '',
                img: 'third-party-integrations/fluidpay',
                img_style: 'max-height: 130px;margin-top: 20px;',
                img_class: ''
            },
            {
                name: 'icontact',
                hx: '<h3>iContact</h3>',
                p: '<p>Automatically add a new customer emails to your iContact account.</p>',
                a: '',
                img: 'third-party-integrations/icontact',
                img_style: 'max-height: 130px;margin-top: 20px;',
                img_class: ''
            },
            {
                name: 'klaviyo',
                hx: '<h3>Klaviyo</h3>',
                p: '<p>Automatically add a new customer emails to your Klaviyo lists.</p>',
                a: '',
                img: 'third-party-integrations/klaviyo',
                img_style: 'max-height: 130px;margin-top: 20px;',
                img_class: ''
            },
            {
                name: 'xero',
                hx: '<h3>Xero</h3>',
                p: '<p>Have invoices and payments created upon sales and renewals in Xero.</p>',
                a: '',
                img: 'third-party-integrations/xero',
                img_style: 'max-height: 130px;margin-top: 20px;',
                img_class: ''
            },
            {
                name: 'avalara',
                hx: '<h3>Avalara</h3>',
                p: '<p>Calculate tax on the fly and update tax information in Avalara.</p>',
                a: '',
                img: 'third-party-integrations/avalara',
                img_style: 'max-height: 130px;margin-top: 20px;',
                img_class: ''
            },
            {
                name: 'activecampaign',
                hx: '<h3>ActiveCampaign</h3>',
                p: '<p>Sync contacts, tags and lists in your ActiveCampaign account.</p>',
                a: '',
                img: 'third-party-integrations/active-campaign',
                img_style: 'max-height: 130px;margin-top: 20px;',
                img_class: ''
            },
            {
                name: 'kount',
                hx: '<h3>Kount</h3>',
                p: '<p>Instantly detect fraud prior to processing a payment with a gateway.</p>',
                a: '',
                img: 'third-party-integrations/kount',
                img_style: 'max-height: 130px;margin-top: 20px;',
                img_class: ''
            },
            {
                name: 'midigator',
                hx: '<h3>Midigator</h3>',
                p: '<p>Notify Midigator on credit card payments for chargeback management.</p>',
                a: '',
                img: 'third-party-integrations/midigator',
                img_style: 'max-height: 130px;margin-top: 20px;',
                img_class: ''
            },
            {
                name: 'woofunnels',
                hx: '<h3>WooFunnels</h3>',
                p: '<p>WooCommerce upsells with WooFunnels, natively integrated with RevCent.</p>',
                a: '',
                img: 'third-party-integrations/woofunnels',
                img_style: 'max-height: 130px;margin-top: 20px;',
                img_class: ''
            },
            {
                name: '3plcentral',
                hx: '<h3>3PL Central</h3>',
                p: '<p>Automatically notify 3PL Central when shipments are created or modified.</p>',
                a: '',
                img: 'third-party-integrations/3pl-central',
                img_style: 'max-height: 130px;margin-top: 20px;',
                img_class: ''
            },
            {
                name: 'shipstation',
                hx: '<h3>ShipStation</h3>',
                p: '<p>Automatically notify ShipStation when shipments are created or modified.</p>',
                a: '',
                img: 'third-party-integrations/shipstation',
                img_style: 'max-height: 130px;margin-top: 20px;',
                img_class: ''
            },
            {
                name: 'cardpointe',
                hx: '<h3>CardPointe</h3>',
                p: '<p>Integrate your CardPointe account with RevCent.</p>',
                a: '',
                img: 'third-party-integrations/cardpointe',
                img_style: 'max-height: 130px;margin-top: 20px;',
                img_class: ''
            },
            {
                name: 'payjunction',
                hx: '<h3>PayJunction</h3>',
                p: '<p>Integrate your PayJunction account with RevCent.</p>',
                a: '',
                img: 'third-party-integrations/payjunction',
                img_style: 'max-height: 130px;margin-top: 20px;',
                img_class: ''
            },
            {
                name: 'adyen',
                hx: '<h3>Adyen</h3>',
                p: '<p>Integrate your Adyen account with RevCent.</p>',
                a: '',
                img: 'third-party-integrations/adyen',
                img_style: 'max-height: 130px;margin-top: 20px;',
                img_class: ''
            },
            {
                name: 'afterpay',
                hx: '<h3>Afterpay</h3>',
                p: '<p>Integrate your Afterpay account with RevCent.</p>',
                a: '',
                img: 'third-party-integrations/afterpay',
                img_style: 'max-height: 130px;margin-top: 20px;',
                img_class: ''
            },
            {
                name: 'sezzle',
                hx: '<h3>Sezzle</h3>',
                p: '<p>Integrate your Sezzle account with RevCent.</p>',
                a: '',
                img: 'third-party-integrations/sezzle',
                img_style: 'max-height: 130px;margin-top: 20px;',
                img_class: ''
            },
            {
                name: 'affirm',
                hx: '<h3>Affirm</h3>',
                p: '<p>Integrate your Affirm account with RevCent.</p>',
                a: '',
                img: 'third-party-integrations/affirm',
                img_style: 'max-height: 130px;margin-top: 20px;',
                img_class: ''
            },
            {
                name: 'klarna',
                hx: '<h3>Klarna</h3>',
                p: '<p>Integrate your Klarna account with RevCent.</p>',
                a: '',
                img: 'third-party-integrations/klarna',
                img_style: 'max-height: 130px;margin-top: 20px;',
                img_class: ''
            },
            {
                name: 'checkoutcom',
                hx: '<h3>Checkout.com</h3>',
                p: '<p>Integrate your Checkout.com account with RevCent.</p>',
                a: '',
                img: 'third-party-integrations/checkoutcom',
                img_style: 'max-height: 130px;margin-top: 20px;',
                img_class: ''
            },
            {
                name: 'cybersource',
                hx: '<h3>CyberSource</h3>',
                p: '<p>Integrate your CyberSource account with RevCent.</p>',
                a: '',
                img: 'third-party-integrations/cybersource',
                img_style: 'max-height: 130px;margin-top: 20px;',
                img_class: ''
            },
            {
                name: 'shipbob',
                hx: '<h3>ShipBob</h3>',
                p: '<p>Automatically notify ShipBob when shipments are created or modified.</p>',
                a: '',
                img: 'third-party-integrations/shipbob',
                img_style: 'max-height: 130px;margin-top: 20px;',
                img_class: ''
            },
            {
                name: 'shippingeasy',
                hx: '<h3>Shipping Easy</h3>',
                p: '<p>Automatically notify Shipping Easy when shipments are created or modified.</p>',
                a: '',
                img: 'third-party-integrations/shipping-easy',
                img_style: 'max-height: 130px;margin-top: 20px;',
                img_class: ''
            },
            {
                name: 'fulfillmentlab',
                hx: '<h3>Fulfillment Lab</h3>',
                p: '<p>Automatically notify Fulfillment Lab when shipments are created or modified.</p>',
                a: '',
                img: 'third-party-integrations/fulfillment-lab',
                img_style: 'max-height: 130px;margin-top: 20px;',
                img_class: ''
            },
            {
                name: 'shipworks',
                hx: '<h3>ShipWorks</h3>',
                p: '<p>Create a custom ShipWorks store to pull shipments from RevCent.</p>',
                a: '',
                img: 'third-party-integrations/shipworks',
                img_style: 'max-height: 130px;margin-top: 20px;',
                img_class: ''
            },
            {
                name: 'authorizenet',
                hx: '<h3>Authorize.net</h3>',
                p: '<p>Integrate your Authorize.net account with RevCent.</p>',
                a: '',
                img: 'third-party-integrations/authorizenet',
                img_style: 'max-height: 130px;margin-top: 20px;',
                img_class: ''
            },{
                name: 'braintree',
                hx: '<h3>Braintree</h3>',
                p: '<p>Integrate your Braintree account with RevCent.</p>',
                a: '',
                img: 'third-party-integrations/braintree',
                img_style: 'max-height: 130px;margin-top: 20px;',
                img_class: ''
            },{
                name: 'elavon',
                hx: '<h3>Elavon</h3>',
                p: '<p>Integrate your Elavon account with RevCent.</p>',
                a: '',
                img: 'third-party-integrations/elavon',
                img_style: 'max-height: 130px;margin-top: 20px;',
                img_class: ''
            },{
                name: 'nab',
                hx: '<h3>NAB</h3>',
                p: '<p>Integrate your NAB account with RevCent.</p>',
                a: '',
                img: 'third-party-integrations/nab',
                img_style: 'max-height: 130px;margin-top: 20px;',
                img_class: ''
            },{
                name: 'nmi',
                hx: '<h3>NMI</h3>',
                p: '<p>Integrate your NMI account with RevCent.</p>',
                a: '',
                img: 'third-party-integrations/nmi',
                img_style: 'max-height: 130px;margin-top: 20px;',
                img_class: ''
            },{
                name: 'paypal',
                hx: '<h3>PayPal</h3>',
                p: '<p>Integrate your PayPal account with RevCent.</p>',
                a: '',
                img: 'third-party-integrations/paypal',
                img_style: 'max-height: 130px;margin-top: 20px;',
                img_class: ''
            },{
                name: 'maxmind',
                hx: '<h3>MaxMind</h3>',
                p: '<p>Use risk scoring to identify high-risk activity before processing payments.</p>',
                a: '',
                img: 'third-party-integrations/maxmind',
                img_style: 'max-height: 130px;margin-top: 20px;',
                img_class: ''
            },{
                name: 'paysafe',
                hx: '<h3>PaySafe</h3>',
                p: '<p>Integrate your PaySafe account with RevCent.</p>',
                a: '',
                img: 'third-party-integrations/paysafe',
                img_style: 'max-height: 130px;margin-top: 20px;',
                img_class: ''
            },{
                name: 'psigate',
                hx: '<h3>PSIGate</h3>',
                p: '<p>Integrate your PSIGate account with RevCent.</p>',
                a: '',
                img: 'third-party-integrations/psigate',
                img_style: 'max-height: 130px;margin-top: 20px;',
                img_class: ''
            },{
                name: 'stripe',
                hx: '<h3>Stripe</h3>',
                p: '<p>Integrate your Stripe account with RevCent.</p>',
                a: '',
                img: 'third-party-integrations/stripe',
                img_style: 'max-height: 130px;margin-top: 20px;',
                img_class: ''
            },{
                name: 'worldpay',
                hx: '<h3>Worldpay</h3>',
                p: '<p>Integrate your Worldpay account with RevCent.</p>',
                a: '',
                img: 'third-party-integrations/worldpay',
                img_style: 'max-height: 130px;margin-top: 20px;',
                img_class: ''
            },{
                name: 'woocommerce',
                hx: '<h3>WooCommerce</h3>',
                p: '<p>Integrate your WooCommerce store with RevCent.</p>',
                a: '',
                img: 'third-party-integrations/woocommerce',
                img_style: 'max-height: 130px;margin-top: 20px;',
                img_class: ''
            }
            ],['name'],['asc']);
        };
        let integrations=getIntegrations();
        $.each(integrations,function(c,d) {
            $('#third-party-integrations-wrap').append(`
                <div class="col-lg-1 col-sm-2">
                    <div class="thumbnail-wrapper">
                        <div class="thumbnail image-1 d-block image-third-party-integration">
                            <img class="gateway-logo" src="https://cdn.revcent.com/img/product-img/all-img/${d.img}.png">
                        </div>
                    </div>
                </div>
            `);
        });


    </script>

    <script>
        var app=document.getElementById('terminal-hero-ol');

        var typewriter=new Typewriter(app,{
            loop: false,
            cursor: '',
            delay: 25
        });
        typewriter
            .typeString('<li class="list-item"><i class="fad fa-fw fa-sm fa-terminal small"></i> <span class="terminal-console-green">New successful purchase!</span></li>')
            .pauseFor(100)
            .typeString('<li class="list-item"><i class="fad fa-fw fa-sm fa-terminal small"></i> NMI transaction saved <span class="terminal-console-green"><i class="fas fa-check"></i></span></li>')
            .pauseFor(100)
            .typeString('<li class="list-item"><i class="fad fa-fw fa-sm fa-terminal small"></i> ShipStation notified <span class="terminal-console-green"><i class="fas fa-check"></i></span></li>')
            .pauseFor(100)
            .typeString('<li class="list-item"><i class="fad fa-fw fa-sm fa-terminal small"></i> Klaviyo profile created <span class="terminal-console-green"><i class="fas fa-check"></i></span></li>')
            .pauseFor(100)
            .typeString('<li class="list-item"><i class="fad fa-fw fa-sm fa-terminal small"></i> TaxJar updated <span class="terminal-console-green"><i class="fas fa-check"></i></span></li>')
            .pauseFor(100)
            .typeString('<li class="list-item"><i class="fad fa-fw fa-sm fa-terminal small"></i> SEON data enrichment complete <span class="terminal-console-green"><i class="fas fa-check"></i></span></li>')
            .pauseFor(100)
            .typeString('<li class="list-item"><i class="fad fa-fw fa-sm fa-terminal small"></i> Midigator transaction added <span class="terminal-console-green"><i class="fas fa-check"></i></span></li>')
            .pauseFor(100)
            .typeString('<li class="list-item"><i class="fad fa-fw fa-sm fa-terminal small"></i> User sale integrations processed.</li>')
            .start();
    </script>
</body>


</html>