# Handpoint acquirer capabilities — source of truth for generated pages.
# Edit this file, then run: node scripts/generate-acquirer-pages.js
#
# Capability values per integration path:
#   public       — documented with code example
#   coming-soon  — announced, no code shown yet
#   not-supported — cannot work on this path (e.g. MOTO on physical terminal)
#   (absent)     — acquirer does not support this capability at all

acquirers:

  epi:
    name: "EPI"
    geography: "US, Canada"
    status: active
    processor: tsys
    card-brands: [VISA, MC, Discover]
    interac: false
    reversal-partial: true
    notes: >
      EPI (formerly TSYS). Batch auto-closes ~11pm EST (host-capture). Partial
      reversal available for US and Canada — uses the MasterCard flag in ISO 8583.
      Tip adjustment only available on transactions processed without an on-screen tip
      (tip-at-table flow).
    capabilities:
      sale:
        cloud-api: public
        android-pax: public
        android-hilite: public
        ios-hilite: public
        cordova: public
        javascript-sdk: public
        windows-sdk: public
        flavors:
          emv-sale:
            label: "EMV Sale"
            cloud-api: public
            android-pax: public
            android-hilite: public
            ios-hilite: public
            cordova: public
            javascript-sdk: public
            windows-sdk: public
          key-entry-sale:
            label: "Key Entry Sale"
            cloud-api: public
            android-pax: public
            javascript-sdk: public
            windows-sdk: public
          moto-sale:
            label: "Remote Sale (MOTO)"
            cloud-api: not-supported
            android-pax: public
            cordova: public
            backoffice: public
          sale-and-tip:
            label: "Sale with Tip"
            cloud-api: public
            android-pax: public
            android-hilite: public
            cordova: public
            javascript-sdk: public
            windows-sdk: public
          sale-and-tokenize:
            label: "Sale with Tokenization"
            cloud-api: public
            android-pax: public
            android-hilite: public
            ios-hilite: public
            cordova: public
            javascript-sdk: public
            windows-sdk: public
      refund:
        cloud-api: public
        android-pax: public
        android-hilite: public
        ios-hilite: public
        cordova: public
        javascript-sdk: public
        windows-sdk: public
        flavors:
          card-present:
            label: "EMV Refund"
            cloud-api: public
            android-pax: public
            android-hilite: public
            ios-hilite: public
            cordova: public
            javascript-sdk: public
            windows-sdk: public
          moto-refund:
            label: "Remote Refund (MOTO)"
            cloud-api: not-supported
            android-pax: public
            cordova: public
            javascript-sdk: public
            windows-sdk: public
            backoffice: public
          key-entry-refund:
            label: "Key Entry Refund"
            cloud-api: public
            android-pax: public
            javascript-sdk: public
            windows-sdk: public
      reversal:
        cloud-api: public
        android-pax: public
        android-hilite: public
        ios-hilite: public
        cordova: public
        javascript-sdk: public
        windows-sdk: public
        backoffice: public
        flavors:
          reversal:
            label: "Reversal"
            cloud-api: public
            android-pax: public
            android-hilite: public
            ios-hilite: public
            cordova: public
            javascript-sdk: public
            windows-sdk: public
          remote-reversal:
            label: "Remote Reversal"
            cloud-api: public
            backoffice: public
      tip-adjustment:
        cloud-api: not-supported
        android-pax: public
        android-hilite: public
        ios-hilite: not-supported
        cordova: public
        backoffice: public
      pre-auth:
        cloud-api: public
        android-pax: public
        android-hilite: not-supported
        ios-hilite: not-supported
        cordova: public
        javascript-sdk: public
        windows-sdk: public
        backoffice: public
        flavors:
          pre-auth-create:
            label: "Pre-Auth Create"
            cloud-api: public
            android-pax: public
            cordova: public
            javascript-sdk: public
            windows-sdk: public
          key-entry-pre-auth:
            label: "Key Entry Pre-Auth"
            cloud-api: public
            android-pax: public
            cordova: public
            javascript-sdk: public
            windows-sdk: public
          pre-auth-adjust:
            label: "Pre-Auth Adjust (Increase / Decrease)"
            cloud-api: public
            android-pax: public
            cordova: public
            javascript-sdk: public
            windows-sdk: public
          pre-auth-capture:
            label: "Pre-Auth Capture"
            backoffice: public
            android-pax: public
            cordova: public
            javascript-sdk: public
            windows-sdk: public
          pre-auth-void:
            label: "Pre-Auth Reversal"
            cloud-api: public
            android-pax: public
            cordova: public
            javascript-sdk: public
            windows-sdk: public
      moto:
        cloud-api: public
        android-pax: public
        android-hilite: not-supported
        ios-hilite: not-supported
        cordova: not-supported
      tokenization:
        cloud-api: public
        android-pax: public
        android-hilite: public
        ios-hilite: public
        cordova: public
        flavors:
          procharge:
            label: "Cygma Token"
            cloud-api: public
            android-pax: public
            android-hilite: public
            ios-hilite: public
            cordova: public
            backoffice: public
      batching:
        cloud-api: not-supported
        android-pax: not-supported
        android-hilite: not-supported
        ios-hilite: not-supported
        cordova: not-supported
        backoffice: public
      pre-auth-capture-reversal:
        cloud-api: public
        android-pax: public
        android-hilite: not-supported
        ios-hilite: not-supported
        cordova: not-supported
        backoffice: public
      avs-for-moto:
        # EPI only. Android SDK 7.1014.0+; Cloud API.
        # Not a Functionalities capability row — no entry in CAPABILITY_LABELS.
        # Consumed by generate-acquirer-pages.js to inject the AVS callout in moto.mdx.
        # Full detail: docs/reference/avs-for-moto.mdx
        cloud-api: public
        android-pax: public
      fee-mitigation:
        # A modifier, not an operation. So it has no partial and no CAPABILITY_LABELS
        # entry, and it renders nowhere. Same model as avs-for-moto.
        # Full detail: docs/reference/fee-mitigation.mdx
        cloud-api: coming-soon
        android-pax: public
  paysafe:
    name: "PAYSAFE"
    geography: "US & Canada"
    status: active
    processor: tsys
    card-brands: [VISA, MC, AMEX, Discover, Interac]
    interac: true
    notes: >
      PAYSAFE merchants may be onboarded on TSYS, TNS, or both. When a merchant has
      both processors configured, the Handpoint gateway routes based on card type:
      Interac cards → TNS (card-present only), all other cards → TSYS.
      INTERAC VOID: For Interac card transactions, show VOID in your UI — not Refund
      or Reverse. The only post-sale correction is VOID (full amount, card must be
      present at terminal). Standard refund is not available for Interac.
      BATCHING: Batch close applies to TSYS (non-Interac) transactions only. TNS
      (Interac) transactions settle independently and do not participate in the TSYS batch.
      Paysafe single-use token: requires merchant onboarding by Paysafe/Handpoint
      before use.
    capabilities:
      sale:
        cloud-api: public
        android-pax: public
        android-hilite: public
        ios-hilite: public
        cordova: public
        javascript-sdk: public
        windows-sdk: public
        flavors:
          emv-sale:
            label: "EMV Sale"
            cloud-api: public
            android-pax: public
            android-hilite: public
            ios-hilite: public
            cordova: public
            javascript-sdk: public
            windows-sdk: public
          key-entry-sale:
            label: "Key Entry Sale"
            cloud-api: public
            android-pax: public
            javascript-sdk: public
            windows-sdk: public
          moto-sale:
            label: "Remote Sale (MOTO)"
            cloud-api: not-supported
            android-pax: public
            cordova: public
            backoffice: public
          sale-and-tip:
            label: "Sale with Tip"
            cloud-api: public
            android-pax: public
            android-hilite: public
            cordova: public
            javascript-sdk: public
            windows-sdk: public
          sale-and-tokenize:
            label: "Sale with Paysafe Token"
            cloud-api: public
            android-pax: public
            android-hilite: public
            ios-hilite: public
            cordova: public
            javascript-sdk: public
            windows-sdk: public
      refund:
        cloud-api: public
        android-pax: public
        android-hilite: public
        ios-hilite: public
        cordova: public
        javascript-sdk: public
        windows-sdk: public
        flavors:
          card-present:
            label: "EMV Refund"
            cloud-api: public
            android-pax: public
            android-hilite: public
            ios-hilite: public
            cordova: public
            javascript-sdk: public
            windows-sdk: public
          moto-refund:
            label: "Remote Refund (MOTO)"
            cloud-api: not-supported
            android-pax: public
            cordova: public
            backoffice: public
      reversal:
        cloud-api: public
        android-pax: public
        android-hilite: public
        ios-hilite: public
        cordova: public
        javascript-sdk: public
        windows-sdk: public
        backoffice: public
        flavors:
          reversal:
            label: "Reversal"
            cloud-api: public
            android-pax: public
            android-hilite: public
            ios-hilite: public
            cordova: public
            javascript-sdk: public
            windows-sdk: public
          remote-reversal:
            label: "Remote Reversal"
            cloud-api: public
            backoffice: public
      tip-adjustment:
        cloud-api: not-supported
        android-pax: public
        android-hilite: public
        ios-hilite: not-supported
        cordova: public
        backoffice: public
      pre-auth:
        cloud-api: public
        android-pax: public
        android-hilite: not-supported
        ios-hilite: not-supported
        cordova: public
        backoffice: public
      moto:
        cloud-api: public
        android-pax: public
        android-hilite: not-supported
        ios-hilite: not-supported
        cordova: not-supported
      tokenization:
        cloud-api: public
        android-pax: public
        android-hilite: public
        ios-hilite: public
        cordova: public
        javascript-sdk: public
        windows-sdk: public
        flavors:
          paysafe-token:
            label: "Paysafe Single-Use Token"
            cloud-api: public
            android-pax: public
            android-hilite: public
            ios-hilite: public
            cordova: public
            javascript-sdk: public
            windows-sdk: public
          tokenex:
            label: "TokenEx"
            cloud-api: public
            android-pax: public
            android-hilite: public
            ios-hilite: public
            cordova: public
            javascript-sdk: public
            windows-sdk: public
      batching:
        cloud-api: not-supported
        android-pax: not-supported
        android-hilite: not-supported
        ios-hilite: not-supported
        cordova: not-supported
        backoffice: public
      void:
        cloud-api: public
        android-pax: public
        android-hilite: public
        ios-hilite: public
        cordova: public
      interac:
        cloud-api: public
        android-pax: public
        javascript-sdk: public
        windows-sdk: public

  tsys-tns:
    name: "PAYSAFE + Interac"
    geography: "Canada"
    status: deprecated
    processor: tsys
    card-brands: [VISA, MC, Discover, Interac]
    interac: true
    notes: >
      Gateway routes automatically: Interac cards go to TNS, all other cards go to TSYS.
      IMPORTANT for ISVs: for Interac card transactions, show a VOID button — not Refund
      or Reverse. The only post-sale operation for Interac transactions is VOID (full
      amount, card must be present at terminal). Standard refund is not available for
      Interac.
      BATCHING: Batch close is only available for TSYS (non-Interac) transactions.
      Interac (TNS) transactions settle independently and do not participate in the TSYS
      batch close.
    capabilities:
      sale:
        cloud-api: public
        android-pax: public
        android-hilite: public
        ios-hilite: public
        cordova: public
        javascript-sdk: public
        windows-sdk: public
        flavors:
          emv-sale:
            label: "EMV Sale"
            cloud-api: public
            android-pax: public
            android-hilite: public
            ios-hilite: public
            cordova: public
            javascript-sdk: public
            windows-sdk: public
          key-entry-sale:
            label: "Key Entry Sale"
            cloud-api: public
            android-pax: public
            javascript-sdk: public
            windows-sdk: public
          moto-sale:
            label: "Remote Sale (MOTO)"
            cloud-api: not-supported
            android-pax: public
            cordova: public
            backoffice: public
          sale-and-tip:
            label: "Sale with Tip"
            cloud-api: public
            android-pax: public
            android-hilite: public
            cordova: public
            javascript-sdk: public
            windows-sdk: public
          sale-and-tokenize:
            label: "Sale with Tokenization"
            cloud-api: public
            android-pax: public
            android-hilite: public
            ios-hilite: public
            cordova: public
            javascript-sdk: public
            windows-sdk: public
      refund:
        cloud-api: public
        android-pax: public
        android-hilite: public
        ios-hilite: public
        cordova: public
        javascript-sdk: public
        windows-sdk: public
        flavors:
          card-present:
            label: "EMV Refund"
            cloud-api: public
            android-pax: public
            android-hilite: public
            ios-hilite: public
            cordova: public
            javascript-sdk: public
            windows-sdk: public
          moto-refund:
            label: "Remote Refund (MOTO)"
            cloud-api: not-supported
            android-pax: public
            cordova: public
            backoffice: public
      reversal:
        cloud-api: public
        android-pax: public
        android-hilite: public
        ios-hilite: public
        cordova: public
        javascript-sdk: public
        windows-sdk: public
        backoffice: public
        flavors:
          reversal:
            label: "Reversal"
            cloud-api: public
            android-pax: public
            android-hilite: public
            ios-hilite: public
            cordova: public
            javascript-sdk: public
            windows-sdk: public
          remote-reversal:
            label: "Remote Reversal"
            cloud-api: public
            backoffice: public
      tip-adjustment:
        cloud-api: not-supported
        android-pax: public
        android-hilite: public
        ios-hilite: not-supported
        cordova: public
        backoffice: public
      pre-auth:
        cloud-api: public
        android-pax: public
        android-hilite: not-supported
        ios-hilite: not-supported
        cordova: public
        backoffice: public
      moto:
        cloud-api: public
        android-pax: public
        android-hilite: not-supported
        ios-hilite: not-supported
        cordova: not-supported
      tokenization:
        cloud-api: public
        android-pax: public
        android-hilite: public
        ios-hilite: public
        cordova: public
        flavors:
          paysafe-token:
            label: "Paysafe Single-Use Token"
            cloud-api: public
            android-pax: public
            android-hilite: public
            ios-hilite: public
            cordova: public
          tokenex:
            label: "TokenEx"
            cloud-api: public
            android-pax: public
            android-hilite: public
            ios-hilite: public
            cordova: public
      batching:
        cloud-api: not-supported
        android-pax: not-supported
        android-hilite: not-supported
        ios-hilite: not-supported
        cordova: not-supported
        backoffice: public
      void:
        cloud-api: public
        android-pax: public
        android-hilite: public
        ios-hilite: public
        cordova: public
      interac:
        cloud-api: public
        android-pax: public
        javascript-sdk: public
        windows-sdk: public

  tns:
    name: "TNS (Interac)"
    geography: "Canada"
    status: deprecated
    card-brands: [Interac]
    interac: true
    notes: >
      TNS processes Interac card-present transactions only. The only post-sale operation
      is VOID — full amount, card must be inserted or tapped, must occur before settlement.
      Show VOID in your UI, not Refund. Credit refunds are not supported by Interac network.
      Pre-authorization is explicitly rejected (BAD_REQUEST).
      Sale with Tip: confirmed in production (1,000+ Interac transactions) — tip is
      included in the authorized total (F4); no separate tip breakdown field sent to TNS.
      Tip adjustment is hard-blocked at the protocol validator.
    capabilities:
      sale:
        cloud-api: public
        android-pax: public
        javascript-sdk: public
        windows-sdk: public
        flavors:
          sale-and-tip:
            label: "Sale with Tip"
            cloud-api: public
            android-pax: public
            javascript-sdk: public
            windows-sdk: public
      void:
        cloud-api: public
        android-pax: public
        javascript-sdk: public
        windows-sdk: public

  paysafe-tsys:
    name: "PAYSAFE (US legacy)"
    geography: "US"
    status: deprecated
    processor: tsys
    card-brands: [VISA, MC, AMEX, Discover, Interac]
    interac: true
    notes: >
      Paysafe uses TSYS + TNS routing infrastructure. MOTO, partial reversal, and
      pre-authorization are not available.
      Tokenization: single-use Paysafe token — requires merchant onboarding by
      Paysafe/Handpoint before use.
      Interac transactions follow TNS void-only rules — see Interac VOID guide.
    capabilities:
      sale:
        cloud-api: public
        android-pax: public
        android-hilite: public
        ios-hilite: public
        cordova: public
        javascript-sdk: public
        windows-sdk: public
        flavors:
          emv-sale:
            label: "EMV Sale"
            cloud-api: public
            android-pax: public
            android-hilite: public
            ios-hilite: public
            cordova: public
            javascript-sdk: public
            windows-sdk: public
          sale-and-tokenize:
            label: "Sale with Paysafe Token"
            cloud-api: public
            android-pax: public
            android-hilite: public
            ios-hilite: public
            cordova: public
            javascript-sdk: public
            windows-sdk: public
          sale-and-tip:
            label: "Sale with Tip"
            cloud-api: public
            android-pax: public
            android-hilite: public
            cordova: public
            javascript-sdk: public
            windows-sdk: public
      refund:
        cloud-api: public
        android-pax: public
        android-hilite: public
        ios-hilite: public
        cordova: public
        javascript-sdk: public
        windows-sdk: public
        flavors:
          card-present:
            label: "EMV Refund"
            cloud-api: public
            android-pax: public
            android-hilite: public
            ios-hilite: public
            cordova: public
            javascript-sdk: public
            windows-sdk: public
      reversal:
        cloud-api: public
        android-pax: public
        android-hilite: public
        ios-hilite: public
        cordova: public
        javascript-sdk: public
        windows-sdk: public
        backoffice: public
        flavors:
          reversal:
            label: "Reversal"
            cloud-api: public
            android-pax: public
            android-hilite: public
            ios-hilite: public
            cordova: public
            javascript-sdk: public
            windows-sdk: public
          remote-reversal:
            label: "Remote Reversal"
            cloud-api: public
            backoffice: public
      tip-adjustment:
        cloud-api: not-supported
        android-pax: public
        android-hilite: public
        ios-hilite: not-supported
        cordova: public
        backoffice: public
      tokenization:
        cloud-api: public
        android-pax: public
        android-hilite: public
        ios-hilite: public
        cordova: public
        javascript-sdk: public
        windows-sdk: public
        flavors:
          paysafe-token:
            label: "Paysafe Single-Use Token"
            cloud-api: public
            android-pax: public
            android-hilite: public
            ios-hilite: public
            cordova: public
            javascript-sdk: public
            windows-sdk: public
          tokenex:
            label: "TokenEx"
            cloud-api: public
            android-pax: public
            android-hilite: public
            ios-hilite: public
            cordova: public
            javascript-sdk: public
            windows-sdk: public

  emerchantpay:
    name: "EmerchantPay"
    geography: "EU"
    status: active
    processor: omnipay
    card-brands: [VISA, MC, AMEX, UnionPay]
    interac: false
    notes: >
      Settlement is processed automatically — manual batch close is not available.
      Local MOTO refund supported.
      AMEX routing supported — merchant must obtain a separate AMEX MID.
    capabilities:
      pre-auth-capture-reversal:
        cloud-api: public
        android-pax: public
        android-hilite: not-supported
        ios-hilite: not-supported
        cordova: not-supported
        backoffice: public
      sale:
        cloud-api: public
        android-pax: public
        android-hilite: public
        ios-hilite: public
        cordova: public
        javascript-sdk: public
        windows-sdk: public
        flavors:
          emv-sale:
            label: "EMV Sale"
            cloud-api: public
            android-pax: public
            android-hilite: public
            ios-hilite: public
            cordova: public
            javascript-sdk: public
            windows-sdk: public
          key-entry-sale:
            label: "Key Entry Sale"
            cloud-api: public
            android-pax: public
            javascript-sdk: public
            windows-sdk: public
          moto-sale:
            label: "Remote Sale (MOTO)"
            cloud-api: not-supported
            android-pax: public
            cordova: public
            backoffice: public
          sale-and-tokenize:
            label: "Sale with Tokenization"
            cloud-api: public
            android-pax: public
            android-hilite: public
            ios-hilite: public
            cordova: public
            javascript-sdk: public
            windows-sdk: public
          sale-and-tip:
            label: "Sale with Tip"
            cloud-api: public
            android-pax: public
            android-hilite: public
            cordova: public
            javascript-sdk: public
            windows-sdk: public
      refund:
        cloud-api: public
        android-pax: public
        android-hilite: public
        ios-hilite: public
        cordova: public
        javascript-sdk: public
        windows-sdk: public
        flavors:
          card-present:
            label: "EMV Refund"
            cloud-api: public
            android-pax: public
            android-hilite: public
            ios-hilite: public
            cordova: public
            javascript-sdk: public
            windows-sdk: public
          moto-refund:
            label: "Remote Refund (MOTO)"
            cloud-api: not-supported
            android-pax: public
            cordova: public
            javascript-sdk: public
            windows-sdk: public
            backoffice: public
          key-entry-refund:
            label: "Key Entry Refund"
            cloud-api: public
            android-pax: public
            javascript-sdk: public
            windows-sdk: public
      reversal:
        cloud-api: public
        android-pax: public
        android-hilite: public
        ios-hilite: public
        cordova: public
        javascript-sdk: public
        windows-sdk: public
        backoffice: public
        flavors:
          reversal:
            label: "Reversal"
            cloud-api: public
            android-pax: public
            android-hilite: public
            ios-hilite: public
            cordova: public
            javascript-sdk: public
            windows-sdk: public
          remote-reversal:
            label: "Remote Reversal"
            cloud-api: public
            backoffice: public
      pre-auth:
        cloud-api: public
        android-pax: public
        android-hilite: not-supported
        ios-hilite: not-supported
        cordova: public
        javascript-sdk: public
        windows-sdk: public
        backoffice: public
        flavors:
          pre-auth-create:
            label: "Pre-Auth Create"
            cloud-api: public
            android-pax: public
            cordova: public
            javascript-sdk: public
            windows-sdk: public
          key-entry-pre-auth:
            label: "Key Entry Pre-Auth"
            cloud-api: public
            android-pax: public
            cordova: public
            javascript-sdk: public
            windows-sdk: public
          pre-auth-capture:
            label: "Pre-Auth Capture"
            backoffice: public
            android-pax: public
            cordova: public
            javascript-sdk: public
            windows-sdk: public
          pre-auth-void:
            label: "Pre-Auth Reversal"
            cloud-api: public
            android-pax: public
            cordova: public
            javascript-sdk: public
            windows-sdk: public
      moto:
        cloud-api: public
        android-pax: public
        android-hilite: not-supported
        ios-hilite: not-supported
        cordova: not-supported
      tokenization:
        cloud-api: public
        android-pax: public
        android-hilite: public
        ios-hilite: public
        cordova: public
        javascript-sdk: public
        windows-sdk: public
        flavors:
          tokenex:
            label: "TokenEx"
            cloud-api: public
            android-pax: public
            android-hilite: public
            ios-hilite: public
            cordova: public
            javascript-sdk: public
            windows-sdk: public
      money-remittance:
        cloud-api: public
        android-pax: public
        android-hilite: public
        ios-hilite: public
        cordova: public

  omnipay-lloyds:
    name: "Lloyds"
    geography: "EU"
    status: deprecated
    card-brands: [VISA, MC, AMEX, UnionPay]
    interac: false
    notes: >
      Settlement is processed automatically — manual batch close is not available.
      Tip adjustment implemented in code but not officially released.
      AMEX routing supported — merchant must obtain a separate AMEX MID.
    capabilities:
      pre-auth-capture-reversal:
        cloud-api: public
        android-pax: public
        android-hilite: not-supported
        ios-hilite: not-supported
        cordova: not-supported
        backoffice: public
      sale:
        cloud-api: public
        android-pax: public
        android-hilite: public
        ios-hilite: public
        cordova: public
      refund:
        cloud-api: public
        android-pax: public
        android-hilite: public
        ios-hilite: public
        cordova: public
      reversal:
        cloud-api: public
        android-pax: public
        android-hilite: public
        ios-hilite: public
        cordova: public
        backoffice: public
      tip-adjustment:
        cloud-api: not-supported
        android-pax: not-supported
        android-hilite: not-supported
        ios-hilite: not-supported
        cordova: not-supported
      pre-auth:
        cloud-api: public
        android-pax: public
        android-hilite: not-supported
        ios-hilite: not-supported
        cordova: public
        backoffice: public
      moto:
        cloud-api: public
        android-pax: public
        android-hilite: not-supported
        ios-hilite: not-supported
        cordova: not-supported
      tokenization:
        cloud-api: public
        android-pax: public
        android-hilite: public
        ios-hilite: public
        cordova: public

  paystrax:
    name: "Paystrax"
    geography: "EU"
    status: active
    processor: omnipay
    card-brands: [VISA, MC, AMEX, UnionPay]
    interac: false
    notes: >
      Settlement is processed automatically — manual batch close is not available.
      Tip adjustment implemented in code but not officially released.
      AMEX routing supported — merchant must obtain a separate AMEX MID.
    capabilities:
      pre-auth-capture-reversal:
        cloud-api: public
        android-pax: public
        android-hilite: not-supported
        ios-hilite: not-supported
        cordova: not-supported
        backoffice: public
      sale:
        cloud-api: public
        android-pax: public
        android-hilite: public
        ios-hilite: public
        cordova: public
        javascript-sdk: public
        windows-sdk: public
        flavors:
          emv-sale:
            label: "EMV Sale"
            cloud-api: public
            android-pax: public
            android-hilite: public
            ios-hilite: public
            cordova: public
            javascript-sdk: public
            windows-sdk: public
          key-entry-sale:
            label: "Key Entry Sale"
            cloud-api: public
            android-pax: public
            javascript-sdk: public
            windows-sdk: public
          moto-sale:
            label: "Remote Sale (MOTO)"
            cloud-api: not-supported
            android-pax: public
            cordova: public
            backoffice: public
          sale-and-tokenize:
            label: "Sale with Tokenization"
            cloud-api: public
            android-pax: public
            android-hilite: public
            ios-hilite: public
            cordova: public
            javascript-sdk: public
            windows-sdk: public
          sale-and-tip:
            label: "Sale with Tip"
            cloud-api: public
            android-pax: public
            android-hilite: public
            cordova: public
            javascript-sdk: public
            windows-sdk: public
      refund:
        cloud-api: public
        android-pax: public
        android-hilite: public
        ios-hilite: public
        cordova: public
        javascript-sdk: public
        windows-sdk: public
        flavors:
          card-present:
            label: "EMV Refund"
            cloud-api: public
            android-pax: public
            android-hilite: public
            ios-hilite: public
            cordova: public
            javascript-sdk: public
            windows-sdk: public
          moto-refund:
            label: "Remote Refund (MOTO)"
            cloud-api: not-supported
            android-pax: public
            cordova: public
            javascript-sdk: public
            windows-sdk: public
            backoffice: public
          key-entry-refund:
            label: "Key Entry Refund"
            cloud-api: public
            android-pax: public
            javascript-sdk: public
            windows-sdk: public
      reversal:
        cloud-api: public
        android-pax: public
        android-hilite: public
        ios-hilite: public
        cordova: public
        javascript-sdk: public
        windows-sdk: public
        backoffice: public
        flavors:
          reversal:
            label: "Reversal"
            cloud-api: public
            android-pax: public
            android-hilite: public
            ios-hilite: public
            cordova: public
            javascript-sdk: public
            windows-sdk: public
          remote-reversal:
            label: "Remote Reversal"
            cloud-api: public
            backoffice: public
      tip-adjustment:
        cloud-api: not-supported
        android-pax: not-supported
        android-hilite: not-supported
        ios-hilite: not-supported
        cordova: not-supported
      pre-auth:
        cloud-api: public
        android-pax: public
        android-hilite: not-supported
        ios-hilite: not-supported
        cordova: public
        javascript-sdk: public
        windows-sdk: public
        backoffice: public
        flavors:
          pre-auth-create:
            label: "Pre-Auth Create"
            cloud-api: public
            android-pax: public
            cordova: public
            javascript-sdk: public
            windows-sdk: public
          key-entry-pre-auth:
            label: "Key Entry Pre-Auth"
            cloud-api: public
            android-pax: public
            cordova: public
            javascript-sdk: public
            windows-sdk: public
          pre-auth-capture:
            label: "Pre-Auth Capture"
            backoffice: public
            android-pax: public
            cordova: public
            javascript-sdk: public
            windows-sdk: public
          pre-auth-void:
            label: "Pre-Auth Reversal"
            cloud-api: public
            android-pax: public
            cordova: public
            javascript-sdk: public
            windows-sdk: public
      moto:
        cloud-api: public
        android-pax: public
        android-hilite: not-supported
        ios-hilite: not-supported
        cordova: not-supported
      tokenization:
        cloud-api: public
        android-pax: public
        android-hilite: public
        ios-hilite: public
        cordova: public
        javascript-sdk: public
        windows-sdk: public
        flavors:
          tokenex:
            label: "TokenEx"
            cloud-api: public
            android-pax: public
            android-hilite: public
            ios-hilite: public
            cordova: public
            javascript-sdk: public
            windows-sdk: public

  teya:
    name: "TEYA (Borgun)"
    geography: "EU"
    status: deprecated
    card-brands: [VISA, MC]
    interac: false
    notes: >
      TEYA and Borgun share the same integration. Both names refer to the same acquirer
      configuration. Verified via viscus-borgun: tip adjustment, pre-auth, and MOTO are
      not implemented (return OPERATION_NOT_SUPPORTED / BAD_REQUEST).
      Sale with Tip: confirmed in production — tip is included in the authorized total
      (F4); tip breakdown field is not forwarded to the acquirer.
    capabilities:
      sale:
        cloud-api: public
        android-pax: public
        android-hilite: public
        ios-hilite: public
        cordova: public
        flavors:
          sale-and-tip:
            label: "Sale with Tip"
            cloud-api: public
            android-pax: public
            android-hilite: public
            cordova: public
      refund:
        cloud-api: public
        android-pax: public
        android-hilite: public
        ios-hilite: public
        cordova: public
      reversal:
        cloud-api: public
        android-pax: public
        android-hilite: public
        ios-hilite: public
        cordova: public
        backoffice: public
      tokenization:
        cloud-api: public
        android-pax: public
        android-hilite: public
        ios-hilite: public
        cordova: public

  elavon-canada:
    name: "Elavon Canada"
    geography: "Canada"
    status: deprecated
    card-brands: [VISA, MC]
    interac: true
    notes: >
      Limited scope: sale, refund, and void only. Pre-auth, MOTO, tokenization, and
      tip-adjustment throw ProtocolException in viscus-elavon. Interac reversals require
      the card to be physically present (Interac network rule).
    capabilities:
      sale:
        cloud-api: public
        android-pax: public
        android-hilite: public
        ios-hilite: public
        cordova: public
      refund:
        cloud-api: public
        android-pax: public
        android-hilite: public
        ios-hilite: public
        cordova: public
      void:
        cloud-api: public
        android-pax: public
        android-hilite: public
        ios-hilite: public
        cordova: public

  amex:
    name: "AMEX (direct)"
    geography: "US"
    status: deprecated
    card-brands: [AMEX]
    interac: false
    notes: "AMEX-only merchant configuration. Batch settlement via SQS supported."
    capabilities:
      sale:
        cloud-api: public
        android-pax: public
        android-hilite: public
        ios-hilite: public
        cordova: public
      refund:
        cloud-api: public
        android-pax: public
        android-hilite: public
        ios-hilite: public
        cordova: public
      reversal:
        cloud-api: public
        android-pax: public
        android-hilite: public
        ios-hilite: public
        cordova: public
        backoffice: public
      moto:
        cloud-api: public
        android-pax: public
        android-hilite: not-supported
        ios-hilite: not-supported
        cordova: not-supported
      batching:
        cloud-api: public
        android-pax: not-supported
        android-hilite: not-supported
        ios-hilite: not-supported
        cordova: not-supported

  vantiv:
    name: "VANTIV (Worldpay)"
    geography: "US"
    status: deprecated
    card-brands: [VISA, MC, Discover, JCB]
    interac: false
    notes: >
      Also known as Worldpay. Card-present only — MOTO is not supported (viscus-vantiv
      returns BAD_REQUEST for all MOTO operations).
    capabilities:
      sale:
        cloud-api: public
        android-pax: public
        android-hilite: public
        ios-hilite: public
        cordova: public
        flavors:
          sale-and-tip:
            label: "Sale with Tip"
            cloud-api: public
            android-pax: public
            android-hilite: public
            cordova: public
      refund:
        cloud-api: public
        android-pax: public
        android-hilite: public
        ios-hilite: public
        cordova: public
      reversal:
        cloud-api: public
        android-pax: public
        android-hilite: public
        ios-hilite: public
        cordova: public
        backoffice: public
      tip-adjustment:
        cloud-api: not-supported
        android-pax: public
        android-hilite: public
        ios-hilite: not-supported
        cordova: public
        backoffice: public
      pre-auth:
        cloud-api: public
        android-pax: public
        android-hilite: not-supported
        ios-hilite: not-supported
        cordova: public
        backoffice: public

  # Deprecated — retained for reference only, not published
  evo:
    name: "EVO"
    geography: "US"
    status: deprecated
    card-brands: [VISA, MC, Discover]
    interac: false
    capabilities: {}

  postbridge:
    name: "PostBridge"
    geography: "EU"
    status: unknown
    card-brands: [VISA, MC]
    interac: false
    capabilities: {}



