openapi: 3.0.3
info:
  description: '**This OpenAPI specification cannot be used for code generation.** Please reach out to your TAM regarding code generation using the API Spec.'
  version: 1.433.0
  title: Silverflow API
  contact:
    name: API Support
    email: support@silverflow.com
  license:
    name: Commercial
servers:
  - url: https://eu-west-1.api.silverflow.com/v1
    description: Production URL for Europe - Equivalent to https://api.silverflow.co/v1
  - url: https://us-east-2.api.silverflow.com/v1
    description: Production URL for North America
  - url: https://eu-west-1.api-sbx.silverflow.com/v1
    description: Sandbox URL - Equivalent to https://api-sbx.silverflow.co/v1
security:
  - ApiKey: []
  - BearerToken: []
tags:
  - name: Merchants
    description: ' '
  - name: Bins
    description: ' '
  - name: Merchant Acceptors
    description: ' '
  - name: Enrollments
    description: ' '
  - name: Agents
    description: ' '
  - name: Event Subscriptions
    description: ' '
  - name: API Keys
    description: ' '
  - name: Trust Anchors
    description: ' '
  - name: Events
    description: The schemas for the events emitted by the Accounts Service.
  - name: 3DS Authentication
    description: 3DS Authentication Endpoints
  - name: Card Management
    description: |
      ATM card management actions: PIN change, PIN unblock, balance inquiry and
      PIN change reversal.
  - name: Retrieve Charges
    description: Retrieve a single or multiple charges.
  - name: Create Charges
    description: Create different types of charges.
  - name: Create Recurring
    description: Create different types of recurring charges.
  - name: Charge Actions
    description: Perform different actions on existing charges.
  - name: Documents
    description: |
      A Document is a file with associated metadata that can be uploaded and downloaded. Documents have to be attached to a business entity, for example `Dispute Documents`. The Document upload process starts with creating metadata information, see [Add Dispute Document](#operation/addDisputeDocumentsMetadata). New Documents will be created with status `pending`.

      Adding a Document returns a key which can be used to upload the file using [Upload Document](#operation/uploadDocumentFile). Once the file is successfully updated, the status will be changed to `active`.

      The maximum size for a Document is 10MB and the maximum combined size of all documents uploaded for a Dispute is 14.5MB.

      Supported MIME types:
      -   image/jpeg
      -   application/pdf
      -   image/tiff
  - name: Fraud Notifications
    description: |
      Fraud Notifications are created by the schemes when a fraudulent transaction is reported to them. 

      The Fraud Notification endpoints, allow to obtain more information about a Fraud Notification, including the reported Fraud Type code(s) and the related charge.
  - name: SQS Messages
    description: SQS Messages
  - name: Processor Tokenization
    description: Processor Tokenization
  - name: Screenings
    description: ' '
  - name: File Subscriptions
    description: Subscribe to raw files from the card networks.
  - name: Create POS Charges
    description: Create a POS charge.
  - name: POS Charge Actions
    description: Perform different actions on a previously created charge.
  - name: Retrieve POS Charges
    description: Retrieve charges for given merchant and with additonal filters.
  - name: Introduction
    description: |
      Welcome to the Silverflow API documentation. Our API is formally described using the [OpenAPI 3](https://spec.openapis.org/oas/v3.0.3.html) standard (version 3.0.3).
      This standard allows us to define our API in a **contract-first** way and use it for validation and conformance testing.

      More importantly, it allows developers to use a myriad of tools to speed up development and ease the integration process.

      For instance, with the Silverflow OpenAPI definition you can: Initialize and populate a **collection** in [Postman](https://www.postman.com/). Read more about it [here](https://learning.postman.com/docs/integrations/available-integrations/working-with-openAPI/).

      Use the **Download** button at the top of the page to download the API definition and get started. Or keep reading to better understand how you can interact with our API.
    x-traitTag: true
  - name: Release Notes
    description: |-
      <!-- Check https://silverflow.atlassian.net/wiki/spaces/ARCH/pages/1022132233/ADR-24+-+API+Docs+Standards#Release-Notes for guidelines and examples -->

      <div data-section-id="tag/Release-Notes/v1.433.0">

      ### v1.433.0 - November 6, 2026
      - Added support for mTLS client authentication of API keys <a class="experimental-tag-link" href="https://docs.silverflow.com/guides/api-lifecycle#tag/EXPERIMENTAL-Tag"><span class="tag experimental-tag">EXPERIMENTAL</span></a>. An API key with mTLS enabled is authenticated with a client certificate instead of its secret.
        - Added the [Trust Anchors](#tag/Trust-Anchors) endpoints, which register the CA certificates that Silverflow trusts for client certificates:
          - [`GET /v1/trustAnchors`](#operation/getTrustAnchors)
          - [`POST /v1/trustAnchors`](#operation/createTrustAnchor)
          - [`GET /v1/trustAnchors/{trustAnchorKey}`](#operation/getTrustAnchor)
          - [`DELETE /v1/trustAnchors/{trustAnchorKey}`](#operation/archiveTrustAnchor)
        - Added the endpoints that manage the client certificates of an API key. The bound certificates are listed in the new `certificates` field of the API key object.
          - [`GET /v1/apiKeys/{apiKey}/certificates`](#operation/getApiKeyCertificates)
          - [`POST /v1/apiKeys/{apiKey}/certificates`](#operation/addApiKeyCertificate)
          - [`DELETE /v1/apiKeys/{apiKey}/certificates/{certificateKey}`](#operation/archiveApiKeyCertificate)
        - Added the `mtlsEnabled` field to the API key object. Send `{"mtlsEnabled": true}` to [`PATCH /v1/apiKeys/{apiKey}`](#operation/updateApiKey) to require mTLS for the API key. This cannot be undone.
        - Added the `trustAnchors:List`, `trustAnchors:Get`, `trustAnchors:Create`, `trustAnchors:Archive` and `trustAnchors:All` permissions.
      - Added the UnionPay variant of the `Bin` object, which the following endpoints return for UnionPay BINs. A UnionPay BIN has `network` set to `unionpay` and `messageSystem` set to `DMS`. Its `acquirerIdCode` is the IIN of the BIN, 8 to 11 digits.
        - [`GET /v1/bins`](#operation/getBins)
        - [`GET /v1/bins/{binKey}`](#operation/getBin)
      - Updated the description of the `tags` field of merchants and merchant acceptors. A tags object can contain at most 10 properties.

      </div>

      <div data-section-id="tag/Release-Notes/v1.432.0">

      ### v1.432.0 - November 6, 2026
      - Added the `visa_rdms` enum to the `fileTypes` property for the file subscription endpoints:
        - [`GET /v1/fileSubscription`](#operation/ListFileSubscriptions)
        - [`POST /v1/fileSubscription`](#operation/CreateFileSubscription)
        - [`PUT /v1/fileSubscription/{subscriptionKey}`](#operation/PutFileSubscription)

      </div>

      <div data-section-id="tag/Release-Notes/v1.431.0">

      ### v1.431.0 - November 6, 2026
      - Added the optional field `dynamicDescriptor` to the [`POST /v1/charges/pos`](#operation/createChargePos) endpoint.
      - Added the optional field `dynamicDescriptor` to the responses of the following endpoints:
        - [`POST /v1/charges/pos`](#operation/createChargePos)
        - [`GET /v1/charges/{chargeKey}`](#operation/getCharge)
        - [`GET /v1/charges`](#operation/getCharges)

      </div>

      <div data-section-id="tag/Release-Notes/v1.430.1">

      ### v1.430.1 - November 6, 2026
      - Updated the documentation of the `MastercardPublicDesignator` object to match the actual response. The fields `cardProgramIdentifier`, `type` and `idCode` are inside the `businessServiceArrangement` object. This applies to the following endpoints:
        - [`GET /v1/reports/reconciliationDetails`](#operation/getReconciliationDetails)
        - [`GET /v1/reports/reconciliationDetails/fundsTransferDate/{fundsTransferDate}`](#operation/getReconciliationDetailsFundsTransferDate)
        - [`GET /v1/reports/reconciliationDetails/networkFundsTransferKey/{networkFundsTransferKey}`](#operation/listReconciliationDetailsByNetworkFundsTransferKey)

      </div>

      <div data-section-id="tag/Release-Notes/v1.430.0">

      ### v1.430.0 - November 4, 2026
      - Added the `DefendVisaArbitration` request body to the [`POST /v1/disputes/{disputeKey}/defend`](#operation/defendDispute) endpoint. It is used to escalate a Visa Fraud (10.x) or Authorization (11.x) dispute in the `preArbitrationResponse` stage to arbitration. The `elaboration` field is required.
      - Added the `merchant` and `auto-defender` values to the `initiator` field of the dispute history events returned by the following endpoints, and to the `initiator` query parameter of the first one:
        - [`GET /v1/disputes/{disputeKey}/eventHistory`](#operation/getDisputeEventHistory)
        - [`GET /v1/disputes/eventHistory/{eventHistoryKey}`](#operation/getEventHistory)
      - Fixed the Visa and Mastercard pre-arbitration request bodies on the [`POST /v1/disputes/{disputeKey}/submitEvidence`](#operation/submitEvidence) endpoint so that they are accepted.

      </div>

      <div data-section-id="tag/Release-Notes/v1.429.0">

      ### v1.429.0 - October 28, 2026
      - Added the optional field `pointOfSaleAddress` to the [`POST /v1/charges/pos`](#operation/createChargePos) endpoint.
      - Added the optional field `pointOfSaleAddress` to the responses of the following endpoints:
        - [`POST /v1/charges/pos`](#operation/createChargePos)
        - [`GET /v1/charges/{chargeKey}`](#operation/getCharge)
        - [`GET /v1/charges`](#operation/getCharges)

      </div>

      <div data-section-id="tag/Release-Notes/v1.428.0">

      ### v1.428.0 - October 26, 2026
      - The `reference` specified in a refund on the [`POST /v1/charges/{chargeKey}/refund`](#operation/refund) endpoint is now set as the `transactionReference` on the resulting refund charge that gets created when `createRefundCharge` is `true`.

      </div>

      <div data-section-id="tag/Release-Notes/v1.427.2">

      ### v1.427.2 - October 21, 2026
      - Updated the descriptions of the card `number`, `expiryMonth` and `expiryYear` fields to clarify that they also accept network token data on the following endpoints:
          - [`POST /v1/3ds`](#operation/create3dsAuthentication)
          - [`POST /v1/3ds/3ri`](#operation/create3riAuthentication)

      </div>

      <div data-section-id="tag/Release-Notes/v1.427.1">

      ### v1.427.1 - October 21, 2026
      - Added an `application/x-ndjson` response schema for the Settlement Details Report in the [`GET /v1/reports/{reportKey}/file`](#operation/getReportFile) endpoint.
        - This can be found under Response Code `307`, Response Schema `application/x-ndjson`

      </div>

      <div data-section-id="tag/Release-Notes/v1.427.0">

      ### v1.427.0 - October 15, 2026
      - Added the `visa_dbrpt`, `visa_t33is` and `visa_t33nn` enums to the `fileTypes` property for the file subscription endpoints:
        - [`GET /v1/fileSubscription`](#operation/ListFileSubscriptions)
        - [`POST /v1/fileSubscription`](#operation/CreateFileSubscription)
        - [`PUT /v1/fileSubscription/{subscriptionKey}`](#operation/PutFileSubscription)
      - Removed **Experimental** tag from the [File Subscriptions endpoints](#tag/File-Subscriptions).

      </div>

      <div data-section-id="tag/Release-Notes/v1.426.2">

      ### v1.426.2 - October 13, 2026
      - Moved the [Network Funds Transfers Report](#operation/createNetworkFundsTransfersReport) to the Settlement Reports section.
      - Moved the [Reconciliation Details Report](#operation/reconciliationDetails) to the Reconciliation section.

      </div>

      <div data-section-id="tag/Release-Notes/v1.426.1">

      ### v1.426.1 - October 9, 2026
      - Updated error response type `/silverflow/problems/referenced-entity-not-found` to the correct `/silverflow/problems/3ds/referenced-entity-not-found` that is actually currently returned for the following endpoints:
        - [`POST /v1/3ds`](#operation/create3dsAuthentication)
        - [`POST /v1/3ri`](#operation/create3riAuthentication)

      </div>

      <div data-section-id="tag/Release-Notes/v1.426.0">

      ### v1.426.0 - October 6, 2026

      - **Breaking:** The `bepaf` field on the [`GET /v1/bep/{bepKey}`](#operation/getCompleteBep) endpoint will only contain the complete BEPAF value for 45 days after authentication. After, it will contain the last 5 bytes of the value so that it can be used to start WIP transactions. 

      </div>

      <div data-section-id="tag/Release-Notes/v1.425.1">

      ### v1.425.1 - October 3, 2026

      - Removed **Experimental** tag from the [Create Settlement Details Report endpoint](#tag/Settlement-Reports).
      - Removed **Experimental** tag from the [Create Disputes Report endpoint](#tag/Dispute-Reports).
      - Removed **Experimental** tag from the [Create Fraud Notifications Report endpoint](#tag/Fraud-Notifications-Reports).

      </div>

      <div data-section-id="tag/Release-Notes/v1.425.0">

      ### v1.425.0 - October 2, 2026

      - **Experimental:** Added value `paze` to the `tokenDetails.type` field for Visa and Mastercard charges on the following endpoint:
        - [`POST /v1/charges`](#operation/createCharge)
      - **Experimental:** Added value `paze` to the `tokenDetails.type` field in the responses of the following endpoints:
        - [`GET /v1/charges/{chargeKey}`](#operation/getCharge)
        - [`GET /v1/charges`](#operation/getCharges)

      </div>

      <div data-section-id="tag/Release-Notes/v1.424.3">

      ### v1.424.3 - September 25, 2026

      - **Deprecation:** `type.cardEntry` has been deprecated on the [`POST /v1/3ds`](#operation/create3dsAuthentication) endpoint and will be removed on February 22, 2027. The field has no effect on the 3DS protocol flow. Existing clients that send the field will continue to work until removal.

      </div>

      <div data-section-id="tag/Release-Notes/v1.424.1">

      ### v1.424.1 - September 25, 2026

      - Updated the examples and schemas of [`GET /v1/reports/{reportKey}/file`](#operation/getReportFile) to match the actual contents of the Scheme Fee Details Report.

      </div>

      <div data-section-id="tag/Release-Notes/v1.424.0">

      ### v1.424.0 - September 24, 2026

      - **Breaking:** Changed the default value of the `createRefundCharge` field from `false` to `true` on the 
        [`POST /v1/charges/{chargeKey}/refund`](#operation/refund) endpoint. Refunds that omit this field now create a full refund charge. 
        To keep the previous behavior, set `createRefundCharge` to `false`.
      - **Deprecation:** Deprecated the `createRefundCharge` field on the [`POST /v1/charges/{chargeKey}/refund`](#operation/refund) endpoint. 
        From February 23, 2027, the field will be removed and refunds on this endpoint will always create a refund charge.
      - **Experimental:** Removed `newEmvData` from the responses of the following endpoints:
        - [`POST /v1/cardManagement/actions/{actionKey}/reverse`](#operation/ReversePinChange)
        - [`GET /v1/cardManagement/actions`](#operation/ListCardManagementActions)
      - **Experimental:** Changed the type of the error `/silverflow/problems/charge/invalid-request` to `/silverflow/problems/invalid-request`
        on all relevant [Card Management](#tag/Card-Management) endpoints.
      - **Experimental:** `emvData` is now only required on the request of the following endpoints when `terminalEntryMode` is `chip` or `contactless`:
        - [`POST /v1/charges/atm`](#operation/createChargeAtm)
        - [`POST /v1/cardManagement/actions/pinChange`](#operation/CreatePinChange)
        - [`POST /v1/cardManagement/actions/pinUnblock`](#operation/CreatePinUnblock)
        - [`POST /v1/cardManagement/actions/balanceInquiry`](#operation/CreateBalanceInquiry)

      </div>

      <div data-section-id="tag/Release-Notes/v1.423.0">

      ### v1.423.0 - September 18, 2026

      - **Breaking:** Made `paymentAccountReference` optional on the [`GET /v1/networkTokens/{networkTokenKey}/networkTokenData`](#operation/getNetworkTokenData) endpoint. The field will not be present if Visa does not return it in the VTS tokenization response.
      - Added value `standing-order` and `installment` to the `order` field of the [`POST /v1/3ds`](#operation/create3dsAuthentication) endpoint.
      - Added new field `installmentTerms` to the [`POST /v1/3ds`](#operation/create3dsAuthentication) endpoint.

      ### v.1.422.6 - September 15, 2026

      - Added discriminator to `400 Bad Request` responses for:
        - [`POST /v1/fileSubscription`](#operation/CreateFileSubscriptions)
        - [`PUT /v1/fileSubscription/{subscriptionKey}`](#operation/PutFileSubscription)
        - [`DELETE /v1/fileSubscription/{subscriptionKey}`](#operation/DeleteFileSubscription)

      </div>

      <div data-section-id="tag/Release-Notes/v1.422.5">

      ### v1.422.5 - September 14, 2026

      - Added new values to the `initiator` parameter to [List Dispute History Events](#operation/getDisputeEventHistory) and [Get Dispute Dispute History Events](#operation/getEventHistory) endpoints.

      </div>

      <div data-section-id="tag/Release-Notes/v1.422.4">

      ### v1.422.4 - September 14, 2026

      - Added the required permissions for [Screening endpoints](#tag/Screenings).

      </div>

      <div data-section-id="tag/Release-Notes/v1.422.3">

      ### v1.422.3 - September 10, 2026

      - Removed **Experimental** tags from the [Screening endpoints](#tag/Screenings).
      - Updated the description for `chargesBlocked` property in [Merchant Acceptors](#tag/Merchant-Acceptors) endpoints.

      </div>

      <div data-section-id="tag/Release-Notes/v1.422.2">

      ### v1.422.2 - September 10, 2026

      - Added documentation for ComplianceCase events to the [ComplianceCase events](#tag/Compliance-Cases-Events) section.

      </div>

      <div data-section-id="tag/Release-Notes/v1.422.1">

      ### v1.422.1 - September 9, 2026

      - Added a link to our reporting guides on the reporting and distribution endpoints below, so best practices, integration considerations and report-specific content are one click away from the reference:
        - [`GET /v1/reports/{reportKey}/file`](#operation/getReportFile)
        - [`POST /v1/reportSchedules`](#operation/createReportSchedule)
        - [`POST /v1/distributions`](#operation/createDistribution)
        - [`POST /v1/reports/reconciliationDetailRecords`](#operation/reconciliationDetails)
        - [`POST /v1/reports/networkFundsTransfers`](#operation/createNetworkFundsTransfersReport)
        - [`POST /v1/reports/ammfReport`](#operation/createAmmfReport)
        - [`POST /v1/reports/quarterlySchemeReport`](#operation/createQuarterlySchemeReport)
        - [`POST /v1/reports/charges`](#operation/createChargesReport)
        - [`POST /v1/reports/schemeFeeDetails`](#operation/schemeFeeDetails)
        - [`POST /v1/reports/settlementDetails`](#operation/createSettlementDetailsReport)
        - [`POST /v1/reports/disputeHistoryEvents`](#operation/createDisputeHistoryEventsReport)
        - [`POST /v1/reports/fraudNotificationRecords`](#operation/createFraudNotificationsReport)

      </div>

      <div data-section-id="tag/Release-Notes/v1.422.0">

      ### v1.422.0 - September 8, 2026

      - **Experimental** Added support for card management PIN change reversal action and list card management actions:
        - [`POST /v1/cardManagement/actions/{actionKey}/reverse`](#operation/ReversePinChange)
        - [`GET /v1/cardManagement/actions`](#operation/ListCardManagementActions)

      </div>

      <div data-section-id="tag/Release-Notes/v1.421.1">

      ### v1.421.1 - September 8, 2026

      - Moved the `Event Notifications` section, down in the side menu.

      </div>

      <div data-section-id="tag/Release-Notes/v1.421.0">

      ### v1.421.0 - September 7, 2026

      - **Experimental** Added support for card management PIN change action:
        - [`POST /v1/cardManagement/actions/pinChange`](#operation/CreatePinChange)

      </div>

      <div data-section-id="tag/Release-Notes/v1.420.0">

      ### v1.420.0 - September 7, 2026

      - Removed `issuerMessage` from the response of the following experimental endpoint since it will never be filled:
        - [`POST /v1/charges/atm`](#operation/createChargeAtm)

      </div>

      <div data-section-id="tag/Release-Notes/v1.419.0">

      ### v1.419.0 - September 4, 2026

      - **Experimental:** Added support for card management balance inquiries and card management action retrieval:
        - [`POST /v1/cardManagement/actions/balanceInquiry`](#operation/CreateBalanceInquiry)
        - [`GET /v1/cardManagement/actions/{actionKey}`](#operation/GetCardManagementAction)
      - **Experimental:** Added a new field `balanceInformation` in the response of the following endpoint:
        - [`POST /v1/charges/atm`](#operation/createChargeAtm)

      </div>

      <div data-section-id="tag/Release-Notes/v1.418.1">

      ### v1.418.1 - September 1, 2026

      - Restructured documentation by grouping 3DS and BEP sections under a unified "Authentication" header for improved navigation and clarity.

      </div>

      <div data-section-id="tag/Release-Notes/v1.418.0">

      ### v1.418.0 - August 31, 2026

      - Added `network` as a discriminator under `authorizationIsoFields.networkSpecificFields` in the following endpoint:
        - [`POST /v1/cardManagement/actions/pinUnblock`](#operation/CreatePinUnblock)

      </div>

      <div data-section-id="tag/Release-Notes/v1.417.0">

      ### v1.417.0 - August 25, 2026

      - **Experimental:** Added support for PIN unblock on the following endpoint:
        - [`POST /v1/cardManagement/actions/pinUnblock`](#operation/CreatePinUnblock)
      - Added support for Apple Pay and Google Pay for Discover charges on the following endpoints:
        - [`POST /v1/charges`](#operation/createCharge)
        - [`POST /v1/charges/mit`](#operation/createChargeMit)

      </div>

      <div data-section-id="tag/Release-Notes/v1.416.0">

      ### v1.416.0 - August 21, 2026

      - Added values `installment` and `standing-order` to the `threeRiIndicator` field of the [`POST /v1/3ds/3ri`](#operation/create3riAuthentication) endpoint.
      - Added new field `installmentTerms` to the [`POST /v1/3ds/3ri`](#operation/create3riAuthentication) endpoint.

      </div>

      <div data-section-id="tag/Release-Notes/v1.415.0">

      ### v1.415.0 - August 21, 2026

      - **Experimental:** Added support for cancelling or reversing an ATM charge on the following endpoints.
        - [`POST /v1/charges/{chargeKey}/reverse`](#operation/reverse)
        - [`POST /v1/charges/{chargeKey}/cancel`](#operation/cancel)

      </div>

      <div data-section-id="tag/Release-Notes/v1.414.0">

      ### v1.414.0 - August 19, 2026

      - **Breaking:** Removed the deprecated `GET /v1/acceptors/{acceptorKey}/enrollments` endpoint.

      </div>

      <div data-section-id="tag/Release-Notes/v1.413.0">

      ### v1.413.0 - August 18, 2026

      - Added the optional `merchantKey` query parameter to the [List Enrollments](#operation/getAllEnrollments) endpoint, to filter Enrollments by Merchant.
      - Removed the incorrectly documented `404 Not Found` response from the [List Enrollments](#operation/getAllEnrollments) endpoint. The endpoint returns an empty page when no Enrollments match.

      </div>

      <div data-section-id="tag/Release-Notes/v1.412.0">

      ### v1.412.0 - August 17, 2026

      - Added `initialRefundReferences.initialTraceId` to the following endpoint for Mastercard:
        - [`POST /v1/charges/{chargeKey}/offlineRefund`](#operation/offlineRefund)

      </div>

      <div data-section-id="tag/Release-Notes/v1.411.2">

      ### v1.411.2 - August 12, 2026

      - Fixed enum values for `cardEntry`, `order` and `fundingType` in the response body of MIT funding charges retrieved via [`GET /v1/charges/{chargeKey}`](#operation/getCharge).

      </div>

      <div data-section-id="tag/Release-Notes/v1.411.1">

      ### v1.411.1 - August 11, 2026

      - Updated the List Dispute Documents endpoints [`GET v1/disputes/{disputeKey}/documents`](#operation/getDisputeDocumentsMetadata) description.

      </div>

      <div data-section-id="tag/Release-Notes/v1.411.0">

      ### v1.411.0 - August 10, 2026

      - **Experimental:** Added new `charges:CreateAtm` permission to the all [Api Keys](#tag/API-Keys) endpoints.

      </div>

      <div data-section-id="tag/Release-Notes/v1.410.0">

      ### v1.410.0 - August 7, 2026

      - **Experimental:** Added support for ATM transactions on the following endpoint for VISA and Mastercard:
        - [`POST /v1/charges/atm`](#operation/createChargeAtm)

      </div>

      <div data-section-id="tag/Release-Notes/v1.409.1">

      ### v1.409.1 - August 7, 2026

      - **Deprecation:** From November 22, 2026, if a valid card is not found using `card.number` in the request, the response will be a `409` with type `/silverflow/problems/card/invalid` for the following endpoints:
        - [`POST /v1/charges/bep`](#operation/createChargeBep)
        - [`POST /v1/charges/{initialChargeKey}/wip`](#operation/createChargeWip)

      </div>

      <div data-section-id="tag/Release-Notes/v1.409.0">

      ### v1.409.0 - August 6, 2026

      - Added the `switchPeriodNumber` and `switchPeriodDate` fields to Bancontact Reconciliation Details in reports and on the following endpoints:
        - [List Reconciliation Details](#operation/getReconciliationDetails)
        - [List Reconciliation Details by Funds Transfer Date](#operation/getReconciliationDetailsFundsTransferDate)
        - [List Reconciliation Details by Network Funds Transfer Key](#operation/listReconciliationDetailsByNetworkFundsTransferKey)

      </div>

      <div data-section-id="tag/Release-Notes/v1.408.0">

      ### v1.408.0 - August 5, 2026

      - Added the optional `type` object to the response of the following endpoints:
        - [`POST /v1/3ds`](#operation/create3dsAuthentication)
        - [`GET /v1/3ds/{threeDsKey}`](#operation/get3dsAuthentication)
        - [`GET /v1/3ds`](#operation/get3dsAuthentications)

      </div>

      <div data-section-id="tag/Release-Notes/v1.407.0">

      ### v1.407.0 - August 4, 2026

      - **Experimental:** Added support for EnhancedData in the following endpoints for Mastercard
        - [`POST /v1/charges`](#operation/createCharge)
        - [`POST /v1/charges/mit`](#operation/createChargeMit)
        - [`POST /v1/charges/{initialChargeKey}/mit`](#operation/createChargeMitFromInitialCharge)
        - [`POST /v1/charges/{chargeKey}/clear`](#operation/triggerManualClearing)

      </div>

      <div data-section-id="tag/Release-Notes/v1.406.0">

      ### v1.406.0 - July 30, 2026

      - **Experimental:** Added support for EnhancedData in the following endpoints for VISA
        - [`POST /v1/charges`](#operation/createCharge)
        - [`POST /v1/charges/mit`](#operation/createChargeMit)
        - [`POST /v1/charges/{initialChargeKey}/mit`](#operation/createChargeMitFromInitialCharge)
        - [`POST /v1/charges/{chargeKey}/clear`](#operation/triggerManualClearing)
      - Added new `type.order` enum variants `ucof`, `standing-order`, `one-click` to [`POST /v1/charges/funding`](#operation/createChargeFunding)
      - Added new `type.cardEntry` enum variants `token-on-file`, `card-on-file` to [`POST /v1/charges/funding`](#operation/createChargeFunding)
      - Added new `type.order` enum variants `ucof`, `standing-order` to [`POST /v1/charges/mitFunding`](#operation/createChargeMitFunding)
      - Added new `type.cardEntry` enum variant `token-on-file` to [`POST /v1/charges/mitFunding`](#operation/createChargeMitFunding)

      </div>

      <div data-section-id="tag/Release-Notes/v1.405.2">

      ### v1.405.2 - July 23, 2026

      - Added reason field to `com.silverflow.clearing.abandoned` event

      </div>

      <div data-section-id="tag/Release-Notes/v1.405.1">

      ### v1.405.1 - July 21, 2026

      - Removed the `visa_base2` value from the `fileTypes` property of the experimental [Create File Subscription](#operation/CreateFileSubscription) and [Update File Subscription](#operation/PutFileSubscription) endpoints.

      </div>

      <div data-section-id="tag/Release-Notes/v1.405.0">

      ### v1.405.0 - July 16, 2026

      - Added permissions the File Subscription endpoints:
        - [Create File Subscription](#operation/CreateFileSubscription) requires `fileSubscription:Create`
        - [Delete File Subscription](#operation/DeleteFileSubscription) requires `fileSubscription:Delete`
        - [Update File Subscription](#operation/PutFileSubscription) requires `fileSubscription:Update`
        - [List File Subscriptions](#operation/ListFileSubscriptions) requires `fileSubscription:List`
      - Removed the experimental tag from the `discover` and `diners` values of the `network` property in the following endpoints:
        - [Request Card Info](#operation/postCardInfo)
        - [Request all card info for a card network](#operation/getCardInfo)
      - Removed the experimental tag from the `processorTokenKey` property for the [Request Card Info](#operation/postCardInfo) endpoint.

      </div>

      <div data-section-id="tag/Release-Notes/v1.404.0">

      ### v1.404.0 - July 15, 2026

      - **Experimental:** Added the endpoints to support POS charges in the Terminal-to-Cloud API:
        - [List POS Charges endpoint](#operation/listPosCharges)
        - [Create POS Charge endpoint](#operation/createPosCharge)
        - [Cancel POS Charge endpoint](#operation/cancelPosCharge)
        - [Refund POS Charge endpoint](#operation/refundPosCharge)

      </div>

      <div data-section-id="tag/Release-Notes/v1.403.0">

      ### v1.403.0 - July 8, 2026

      - **Deprecation:** From December 8, 2026, the `status` parameter will be removed from the request on the following endpoint: [`GET /v1/disputes/{disputeKey}/eventHistory`](#operation/getDisputeEventHistory)

      </div>

      <div data-section-id="tag/Release-Notes/1.402.0">

      ### 1.402.0 - July 8, 2026

      - **Experimental:** Added support for the `merchantInfo` object as an alternative to a pre-onboarded merchant acceptor on the following endpoints:
        - [`POST /v1/3ds`](#operation/create3dsAuthentication), as an alternative to `merchantAcceptorKey`
        - [`POST /v1/3ds/3ri`](#operation/create3riAuthentication), as an alternative to `merchantAcceptorResolver`
          When `merchantInfo` is used, the response returns `merchantInfo` instead of `merchantAcceptorRef`.
      - **Experimental:** Authentications created using the standalone `merchantInfo` flow now return `merchantInfo` instead of `merchantAcceptorRef` on the following endpoints:
        - [`GET /v1/3ds`](#operation/get3dsAuthentications)
        - [`GET /v1/3ds/{threeDsKey}`](#operation/get3dsAuthentication)

      </div>

      <div data-section-id="tag/Release-Notes/1.401.0">

      ### 1.401.0 - July 3, 2026

      - **Breaking:** The `fraudLiability` field is now optional for payout charges in the response on the following endpoints:
        - [`GET /v1/charges`](#operation/getCharges)
      - **Breaking:** Charges with `clearingMode` set to `auto` and no explicit `clearAfter` value are no longer delayed by 1 hour before clearing. These charges are now sent immediately to clearing.

      </div>

      <div data-section-id="tag/Release-Notes/1.400.0">

      ### 1.400.0 - July 1, 2026

      - **Breaking:** The `threeDsPriorAuthenticationInfo` field is now required on the [`POST /v1/3ds/3ri`](#operation/create3riAuthentication) endpoint, following the previously announced deprecation process (1.339.0).

      </div>

      <div data-section-id="tag/Release-Notes/1.399.0">

      ### 1.399.0 - June 30, 2026

      - Added `payment_designation` enum to the `amexModel` property for all American Express [BINs](#tag/BINs) endpoints.
      - The `marketplaceId` and `rampProviderId` fields are no longer experimental on the all [Merchant Acceptors](#tag/Merchant-Acceptors) endpoints.

      </div>

      <div data-section-id="tag/Release-Notes/1.398.0">

      ### 1.398.0 - June 30, 2026

      - Added support for the `dccIndicator` property in `mastercardCardInfo` on the existing endpoints:
        - [`POST /v1/cardInfo`](#operation/postCardInfo)
        - [`GET /v1/cardInfo/{network}`](#operation/getCardInfo)

      </div>

      <div data-section-id="tag/Release-Notes/1.397.0">

      ### 1.397.0 - June 29, 2026

      - Added support for Mastercard Account Name Validation when using `type.intent` of `account-status` on the following endpoints:
        - [`POST /v1/charges`](#operation/createCharge)
        - [`POST /v1/charges/mit`](#operation/createChargeMit)
        - [`POST /v1/charges/{initialChargeKey}/mit`](#operation/createChargeMitFromInitialCharge)

      </div>

      <div data-section-id="tag/Release-Notes/1.396.0">

      ### 1.396.0 - June 25, 2026

      - Added support for `type.intent` `account-status` for American Express on the following endpoints:
        - [`POST /v1/charges`](#operation/createCharge)
        - [`POST /v1/charges/mit`](#operation/createChargeMit)
        - [`POST /v1/charges/{initialChargeKey}/mit`](#operation/createChargeMitFromInitialCharge)
      - **Experimental:** Added new `type.payoutType` variant with value `fast-refund` to the [`POST /v1/charges/payout`](#operation/createChargePayout) endpoint. This `payoutType` is currently only supported for Mastercard.

      </div>

      <div data-section-id="tag/Release-Notes/1.395.0">

      ### 1.395.0 - June 24, 2026

      - **Deprecation:** From November 22, 2026, the `type.sequence` field will be removed from both the request and response on the following endpoints:
        - [`POST /v1/charges/bep`](#operation/createChargeBep)
        - [`POST /v1/riskAssessments`](#operation/performRiskAssessment)
      - **Deprecation:** From November 22, 2026, the `type.sequence` field will be removed from the response for BEP charges on the following endpoints:
        - [`GET /v1/charges`](#operation/getCharges)
        - [`GET /v1/charges/{chargeKey}`](#operation/getCharge)
      - The field `authorizationResponse.network` in the `201` response of the [`POST /v1/charges/{chargeKey}/increment`](#operation/increment) endpoint incorrectly contained an unsupported network: `american-express`; this has now been removed. The examples have also been updated to reflect this change.

      </div>

      <div data-section-id="tag/Release-Notes/1.394.0">

      ### 1.394.0 - June 19, 2026

      - Enabled Report scheduling for `AmmfReport` reports:
        - [`GET /v1/reportSchedules`](#operation/createReportSchedule)

      </div>

      <div data-section-id="tag/Release-Notes/1.393.1">

      ### 1.393.1 - June 19, 2026

      - **Experimental:** [`POST /v1/fileSubscription`](#operation/CreateFileSubscription): Improved the regex validation pattern and corrected the example for the `publicKey` property.

      </div>

      <div data-section-id="tag/Release-Notes/1.393.0">

      ### 1.393.0 - June 17, 2026

      - Added new optional field `subMerchant` on the following endpoints:
        - [`POST /v1/charges`](#operation/createCharge)
        - [`POST /v1/charges/pos`](#operation/createChargePos)
        - [`POST /v1/charges/mit`](#operation/createChargeMit)
        - [`POST /v1/charges/mitFunding`](#operation/createChargeMitFunding)
        - [`POST /v1/charges/funding`](#operation/createChargeFunding)
        - [`POST /v1/charges/payout`](#operation/createChargePayout)

      </div>

      <div data-section-id="tag/Release-Notes/1.392.1">

      ### 1.392.1 - June 10, 2026

      - The field `allowPartialApproval` on the following endpoints is no longer considered experimental:
        - [`POST /v1/charges/{initialChargeKey}/mit`](#operation/createChargeMitFromInitialCharge)
        - [`POST /v1/charges/mit`](#operation/createChargeMit)
        - [`POST /v1/charges/mitFunding`](#operation/createChargeMitFunding)

      </div>

      <div data-section-id="tag/Release-Notes/1.392.0">

      ### 1.392.0 - June 9, 2026

      - Added new optional `eci` field to `threeDsAuthenticationResult` on the following endpoints:
        - [`POST /v1/charges`](#operation/createCharge)
        - [`POST /v1/charges/mit`](#operation/createChargeMit)
        - [`POST /v1/charges/{initialChargeKey}/mit`](#operation/createChargeMitFromInitialCharge)
        - [`POST /v1/charges/funding`](#operation/createChargeFunding)
        - [`POST /v1/charges/mitFunding`](#operation/createChargeMitFunding)
        - [`POST /v1/charges/payout`](#operation/createChargePayout)

      </div>

      <div data-section-id="tag/Release-Notes/1.391.0">

      ### 1.391.0 - June 8, 2026

      - Added support for Apple Pay and Google Pay for Diners charges on the [`POST /v1/charges`](#operation/createCharge) endpoint.

      </div>

      <div data-section-id="tag/Release-Notes/1.390.0">

      ### 1.390.0 - June 5, 2026

      - **Experimental:** Added Diners support to the following endpoints:
        - [`POST /v1/3ds`](#operation/create3dsAuthentication)
        - [`POST /v1/3ds/3ri`](#operation/create3riAuthentication)
      - A 409 error with `type` of `/silverflow/problems/3ds/unsupported-card-network-region` is now returned if the region is not supported for American Express authentications on the following endpoints:
        - [`POST /v1/3ds`](#operation/create3dsAuthentication)
        - [`POST /v1/3ds/3ri`](#operation/create3riAuthentication)

      </div>

      <div data-section-id="tag/Release-Notes/1.389.1">

      ### 1.389.1 - June 4, 2026

      - Updated the Scheme Fee Details endpoints [`POST /v1/reports/schemeFeeDetails`](#operation/schemeFeeDetails) description.

      </div>

      <div data-section-id="tag/Release-Notes/1.389.0">

      ### 1.389.0 - June 3, 2026

      - Added the `visa_cas33` enum to the `fileTypes` property for the file subscription endpoints:
        - [`GET /v1/fileSubscription`](#operation/ListFileSubscriptions)
        - [`POST /v1/fileSubscription`](#operation/CreateFileSubscription)
        - [`PUT /v1/fileSubscription/{subscriptionKey}`](#operation/PutFileSubscription)

      </div>

      <div data-section-id="tag/Release-Notes/1.388.1">

      ### 1.388.1 - May 29, 2026

      - Updated the [Disputes Events](#tag/Disputes-Events) section name.

      </div>

      <div data-section-id="tag/Release-Notes/1.388.0">

      ### 1.388.0 - May 29, 2026

      - Added documentation for the [Network Tokens Events](#tag/Network-Tokens-Events):
        - `com.silverflow.networkTokens.created`
        - `com.silverflow.networkTokens.updated`
        - `com.silverflow.networkTokens.archived`
        - `com.silverflow.networkTokens.failed`
      - **Experimental:** Added new `type.fundingType` `me-to-me-debit-prepaid` to the endpoints below. This `fundingType` is currently only supported for Mastercard.
        - [`POST /v1/charges/funding`](#operation/createChargeFunding)
        - [`POST /v1/charges/mitfunding`](#operation/createChargeMitFunding)

      </div>

      <div data-section-id="tag/Release-Notes/1.387.0">

      ### 1.387.0 - May 27, 2026

      - **Experimental:** Added new optional fields `sender.type`, `sender.organizationName`, `receiver.type`, `receiver.organizationName` for Mastercard on the following endpoints:
        - [`POST /v1/charges/payout`](#operation/createChargePayout)
        - [`POST /v1/charges/funding`](#operation/createChargeFunding)
        - [`POST /v1/charges/mitfunding`](#operation/createChargeMitFunding)

      </div>

      <div data-section-id="tag/Release-Notes/1.386.2">

      ### 1.386.2 - May 26, 2026

      - Removed the `application/json` option from the [`POST /v1/reports/settlementDetails`](#operation/createSettlementDetailsReport) endpoint
      - Updated description of the parameters of the [`POST /v1/reports/ammfReport`](#operation/createAmmfReport) endpoint

      </div>

      <div data-section-id="tag/Release-Notes/1.386.1">

      ### 1.386.1 - May 22, 2026

      - The Create Network Funds Transfers Report, now correctly display the `fundsTransferDate` parameter as required.
        - [`POST /v1/reports/networkFundsTransfers`](#operation/createNetworkFundsTransfersReport)

      </div>

      <div data-section-id="tag/Release-Notes/1.386.0">

      ### 1.386.0 - May 22, 2026

      - Added a new optional property `initialTransactionReferences.transactionLinkId` for Mastercard on the following endpoints:
        - [`POST /v1/charges`](#operation/createCharge)
        - [`POST /v1/charges/mit`](#operation/createChargeMit)
        - [`POST /v1/charges/{initialChargeKey}/mit`](#operation/createChargeMitFromInitialCharge)
        - [`POST /v1/charges/{chargeKey}/refund`](#operation/refund)

      </div>

      <div data-section-id="tag/Release-Notes/1.385.3">

      ### 1.385.3 - May 21, 2026

      - Added validation for Discover charges to only accept `USD` in the `amount.currency` field on the following endpoints:
        - [`POST /v1/charges`](#operation/createCharge)
        - [`POST /v1/charges/mit`](#operation/createChargeMit)
        - [`POST /v1/charges/{initialChargeKey}/mit`](#operation/createChargeMitFromInitialCharge)
        - [`POST /v1/charges/pos`](#operation/createChargePos)

      </div>

      <div data-section-id="tag/Release-Notes/1.385.1">

      ### 1.385.1 - May 21, 2026

      - Added documentation for the [Processor Tokens Events](#tag/Processor-Tokens-Events):
        - `com.silverflow.processorTokens.created`
        - `com.silverflow.processorTokens.archived`
        - `com.silverflow.processorTokens.cvcDeleted`
      - Added documentation for the following [Charges Events](#tag/Charges-Events) notifications:
        - `com.silverflow.charges.action`

      </div>

      <div data-section-id="tag/Release-Notes/1.385.0">

      ### 1.385.0 - May 20, 2026

      - Updated the `elaboration` field in the request body for Visa defenses to support up to 5000 characters on the [Defend Dispute](#operation/defendDispute) and [Submit Evidence](#operation/submitEvidence) endpoints.

      </div>

      <div data-section-id="tag/Release-Notes/1.384.0">

      ### 1.384.0 - May 19, 2026

      - **Experimental:** Added experimental support for `diners` on the existing endpoints:
        - [`POST /v1/cardInfo`](#operation/postCardInfo)
        - [`GET /v1/cardInfo/{network}`](#operation/getCardInfo)

      - Added support for `s3` distributions to the file subscriptions endpoints:
        - [`POST /v1/fileSubscription`](#operation/CreateFileSubscription)
        - [`PUT /v1/fileSubscription/{subscriptionKey}`](#operation/PutFileSubscription)

      </div>

      <div data-section-id="tag/Release-Notes/1.383.0">

      ### 1.383.0 - May 19, 2026

      - **Experimental:** Added Diners support to the following endpoints:
        - [`POST /v1/charges`](#operation/createCharge)
        - [`POST /v1/charges/mit`](#operation/createChargeMit)
        - [`POST /v1/charges/{initialChargeKey}/mit`](#operation/createChargeMitFromInitialCharge)
        - [`POST /v1/charges/{chargeKey}/reverse`](#operation/reverse)
        - [`POST /v1/charges/{chargeKey}/cancel`](#operation/cancel)
        - [`POST /v1/charges/{chargeKey}/refund`](#operation/refund)
        - [`POST /v1/charges/{chargeKey}/offlineRefund`](#operation/offlineRefund)
        - [`POST /v1/charges/{chargeKey}/increment`](#operation/increment)
        - [`POST /v1/charges/{chargeKey}/clear`](#operation/triggerManualClearing)

      </div>

      <div data-section-id="tag/Release-Notes/1.382.0">

      ### 1.382.0 - May 12, 2026

      - The following endpoints are no longer considered experimental:
        - [`POST /v1/distributions`](#operation/createDistribution)
        - [`GET /v1/distributions`](#operation/listDistributions)
        - [`GET /v1/distributions/{distributionKey}`](#operation/getDistribution)
        - [`PATCH /v1/distributions/{distributionKey}`](#operation/updateDistribution)
        - [`DELETE /v1/distributions/{distributionKey}`](#operation/archiveDistribution)
        - [`POST /v1/reports/ammfReport`](#operation/createAmmfReport)

      </div>

      <div data-section-id="tag/Release-Notes/1.381.0">

      ### 1.381.0 - May 11, 2026

      - Updated the create Report Schedule endpoint [`POST /v1/reportSchedules`](#operation/createReportSchedule).

      </div>

      <div data-section-id="tag/Release-Notes/1.380.0">

      ### 1.380.0 - May 5, 2026

      - Added optional `middleName` field to `sender` and `receiver` objects in funding and payout charge requests and responses on the following endpoints:
        - [`POST /v1/charges/funding`](#operation/createChargeFunding)
        - [`POST /v1/charges/mitFunding`](#operation/createChargeMitFunding)
        - [`POST /v1/charges/payout`](#operation/createChargePayout)

      </div>

      <div data-section-id="tag/Release-Notes/1.379.0">

      ### 1.379.0 - April, 30, 2026

      - Added support to defend AMEX RFI (Request For Information) and Chargeback disputes:
        - "DefendAmexRFI" and "DefendAmexChargeback" request body types were added to the endpoint [`POST /v1/disputes/{disputeKey}/defend`](#operation/defendDispute).
        - "SubmitEvidenceAmexRFI" and "SubmitEvidenceAmexChargeback" request body types were added to the endpoint [`POST /v1/disputes/{disputeKey}/submitEvidence`](#operation/submitEvidence).

      </div>

      <div data-section-id="tag/Release-Notes/1.378.0">

      ### 1.378.0 - April, 30, 2026

      - The `foreignRetailer` field is now included in charge response for the following endpoints:
        - [`POST /v1/charges`](#operation/createCharge)
        - [`POST /v1/charges/funding`](#operation/createChargeFunding)
        - [`POST /v1/charges/payout`](#operation/createChargePayout)
        - [`POST /v1/charges/{initialChargeKey}/mit`](#operation/createChargeMitFromInitialCharge)
        - [`POST /v1/charges/mit`](#operation/createChargeMit)
        - [`POST /v1/charges/mitFunding`](#operation/createChargeMitFunding)
        - [`GET /v1/charges/{chargeKey}`](#operation/getCharge)

      </div>

      <div data-section-id="tag/Release-Notes/1.377.0">

      ### 1.377.0 - April, 23, 2026

      - Added datetime support to `createdFrom` and `createdTo` parameters on the [`POST /v1/reports/disputeHistoryReports`] (#tag/Dispute-Reports) endpoint. Datetime format can be used as of April 1, 2026.

      </div>

      <div data-section-id="tag/Release-Notes/1.376.0">

      ### 1.376.0 - April 17, 2026

      - Added the field `onBehalfServices` to `authorizationIsoFields.networkSpecificFields` in the response for Mastercard charges on the following endpoints:
        - [`POST /v1/charges`](#operation/createCharge)
        - [`POST /v1/charges/funding`](#operation/createChargeFunding)
        - [`POST /v1/charges/payout`](#operation/createChargePayout)
        - [`POST /v1/charges/{initialChargeKey}/mit`](#operation/createChargeMitFromInitialCharge)
        - [`POST /v1/charges/mit`](#operation/createChargeMit)
        - [`POST /v1/charges/mitFunding`](#operation/createChargeMitFunding)
        - [`POST /v1/charges/pos`](#operation/createChargePos)

      </div>

      <div data-section-id="tag/Release-Notes/1.375.0">

      ### 1.375.0 - April 16, 2026

      - Added optional `crn` and `clearingDateTime` fields to the `chargeInfo` object on the [Dispute resource](#tag/Disputes).
      - Added optional `clearingDateTime` field to the `chargeInfo` object on the [Fraud Notification resource](#tag/Fraud-Notifications).

      </div>

      <div data-section-id="tag/Release-Notes/1.374.0">

      ### 1.374.0 - April 16, 2026

      - Added documentation for the S3 [Distribution Events](#tag/Distribution-Events).

      </div>

      <div data-section-id="tag/Release-Notes/1.373.1">

      ### 1.373.1 - April 13, 2026

      - Fixed currency validation for Bancontact charges on the following endpoints:
        - [`POST /v1/charges`](#operation/createCharge)
        - [`POST /v1/charges/bep`](#operation/createChargeBep)
      - The request and response schemas for [`POST /v1/charges/{initialChargeKey}/wip`](#operation/createChargeWip) now enforce EUR-only currency at the schema level.

      </div>

      <div data-section-id="tag/Release-Notes/1.373.0">

      ### 1.373.0 - April, 10, 2026

      - **Breaking:** The `screeningType` field no longer accepts `MATCH` as a value in the [Create Screening Request endpoint](#operation/postScreening).

      </div>

      <div data-section-id="tag/Release-Notes/1.372.0">

      ### 1.372.0 - April, 9, 2026

      - **Breaking:** Removed `type.sequence` from the requests of the following endpoints:
        - [`POST /v1/charges`](#operation/createCharge)
        - [`POST /v1/charges/{initialChargeKey}/mit`](#operation/createChargeMitFromInitialCharge)
        - [`POST /v1/charges/mit`](#operation/createChargeMit)
        - [`POST /v1/charges/funding`](#operation/createChargeFunding)
        - [`POST /v1/3ds`](#operation/create3dsAuthentication)
      - **Experimental:** Added Visa DMS support to the following endpoints:
        - [`POST /v1/charges/funding`](#operation/createChargeFunding)
        - [`POST /v1/charges/mitFunding`](#operation/createChargeMitFunding)

      </div>

      <div data-section-id="tag/Release-Notes/1.371.1">

      ### 1.371.1 - April, 9, 2026

      - Released the definitions for the following clearing event notifications:
        - `com.silverflow.clearing.abandoned`
        - `com.silverflow.clearing.offlineRefundOutcome`

      </div>

      <div data-section-id="tag/Release-Notes/1.371.0">

      ### 1.371.0 - April 7, 2026

      - Added support for AMEX Direct Merchants:
        - Added field `amexModel` with options `payfac` and `direct_merchant` in AMEX [BINs](#tag/BINs) endpoints
        - Added support for the optional field `authorizationCurrency` for Merchant Acceptors with AMEX Direct Merchant Bin.
      - Added support to cancel AMEX Sponsored Merchant Enrollments to the [Archive Enrollment](#tag/Enrollments/operation/deleteEnrollment) endpoint.

      </div>

      <div data-section-id="tag/Release-Notes/1.370.0">

      ### 1.370.0 - April 2, 2026

      - **Deprecation:** From 23 August, 2026 in the `BepSuccessReponse` of the [`GET /v1/bep/{bepKey}`](#operation/getCompleteBep) endpoint, the field `bepaf` will not always return the entire BEPAF value. Instead, once 45 days have passed since the BEP authentication was created, we will only return the part of the BEPAF value that is required for WIP transactions.
      - The `billingAddress.countryCode`, `billingAddress.city`, and `billiingAddress.line1` fields are no longer required for requests to endpoints:
        - [`POST /v1/charges`](#operation/createCharge)
        - [`POST /v1/charges/{initialChargeKey}/mit`](#operation/createChargeMitFromInitialCharge)
      - The `billingAddress.countryCode`, `billingAddress.city`, and `billiingAddress.line1` fields are no longer required in the response of endpoints:
        - [`POST /v1/charges`](#operation/createCharge)
        - [`POST /v1/charges/{initialChargeKey}/mit`](#operation/createChargeMitFromInitialCharge)
        - [`POST /v1/charges/bep`](#operation/createChargeBep)
        - [`POST /v1/charges/{initialChargeKey}/wip`](#operation/createChargeWip)

      </div>

      <div data-section-id="tag/Release-Notes/1.369.1">

      ### 1.369.1 - March 30, 2026

      - On August 23, 2026 the field `createRefundCharge` default value will change from `false` to `true` on the [`POST /v1/charges/{chargeKey}/refund`](#operation/refund) endpoint
      - On August 23, 2026 the field `paymentAccountReference` will become optional and will only be returned when provided by the card networks on the [`GET /v1/networkTokens/{networkTokenKey}/networkTokenData`](#operation/getNetworkTokenData) endpoint.

      </div>

      <div data-section-id="tag/Release-Notes/1.369.0">

      ### 1.369.0 - March 20, 2026

      - The Raw File Subscription endpoints are now supported:
        - [`GET /v1/fileSubscription`](#operation/ListFileSubscriptions)
        - [`POST /v1/fileSubscription`](#operation/CreateFileSubscription)
        - [`PUT /v1/fileSubscription/{subscriptionKey}`](#operation/PutFileSubscription)
        - [`DELETE /v1/fileSubscription/{subscriptionKey`](#operation/DeleteFileSubscription)

      </div>

      <div data-section-id="tag/Release-Notes/1.368.0">

      ### 1.368.0 - March 17, 2026

      - The `transactionType` value `stablecoin` is now supported for Mastercard in the following endpoints:
        - [`POST /v1/charges`](#operation/createCharge)
        - [`POST /v1/charges/mit`](#operation/createChargeMit)

      </div>

      <div data-section-id="tag/Release-Notes/1.367.2">

      ### 1.367.2 - March 5, 2026

      - **Experimental:** Moved [`POST /v1/reports/settlementDetails`](#tag/Settlement-Reports/operation/createSettlementDetailsReport) report under 'Settlement Reports' section.

      </div>

      <div data-section-id="tag/Release-Notes/1.367.1">

      ### 1.367.1 - March 4, 2026

      - Updated the validation patterns for Discover Merchant Profile Registration requests on the [Create Enrollment](#operation/createEnrollment) endpoint.

      </div>

      <div data-section-id="tag/Release-Notes/1.367.0">

      ### 1.367.0 - March 4, 2026

      - **Experimental:** A new endpoint [`POST /v1/reports/settlementDetails`](#tag/Reconciliation-Reports/operation/createSettlementDetailsReport) has been added to create 'Settlement Details' reports.
      - **Experimental:** A new permission `reports:DownloadSettlementDetails` has been added to download 'Settlement Details' reports.

      </div>

      <div data-section-id="tag/Release-Notes/1.366.0">

      ### 1.366.0 - March 4, 2026

      - Updated the description on the [Delete Enrollment endpoint](#tag/Enrollments/operation/deleteEnrollment) for ISSM Enrollments to clarify unenrollment behavior due to ISSM Merchant Enrollment deprecation.
      - Updated the [Update Merchant Acceptor endpoint](#tag/Merchant-Acceptors/operation/updateAcceptor) to support removing fields by using `null`.

      </div>

      <div data-section-id="tag/Release-Notes/1.365.3">

      ### 1.365.3 - March 3, 2026

      - Updated error examples in the following endpoints:
        - [`POST /v1/distributions`](#operation/createDistribution)
        - [`GET /v1/distributions`](#operation/listDistributions)
        - [`GET /v1/distributions/{distributionKey}`](#operation/getDistribution)
        - [`PATCH /v1/distributions/{distributionKey}`](#operation/updateDistribution)
        - [`DELETE /v1/distributions/{distributionKey}`](#operation/archiveDistribution)

      </div>

      <div data-section-id="tag/Release-Notes/1.365.2">

      ### 1.365.2 - March 2, 2026

      - Updated the create Report Schedule endpoint [`POST /v1/reportSchedules`](#operation/createReportSchedule).

      </div>

      <div data-section-id="tag/Release-Notes/1.365.1">

      ### 1.365.1 - February 26, 2026

      - The field `createRefundCharge` on the [`POST /v1/charges/{chargeKey}/refund`](#operation/refund) endpoint is no longer experimental.

      </div>

      <div data-section-id="tag/Release-Notes/1.365.0">

      ### 1.365.0 - February 20, 2026

      - Added new field `transactionType` to the [`POST /v1/charges/funding`](#operation/createChargeFunding) and [`POST /v1/charges/mitFunding`](#operation/createChargeMitFunding) endpoints.
      - Added new values to the `transactionType` field on the [`POST /v1/charges/payout`](#operation/createChargePayout) endpoint.

      </div>

      <div data-section-id="tag/Release-Notes/1.364.3">

      ### 1.364.3 - February 20, 2026

      - Updated the description of `clearAfter` on types that have this field on the [Reconciliation Details](#tag/Reconciliation-Details) endpoints.

      </div>

      <div data-section-id="tag/Release-Notes/1.364.2">

      ### 1.364.2 - February 18, 2026

      - Updated the `Settlement Reports` section name to `Reconciliation Reports`.

      </div>

      <div data-section-id="tag/Release-Notes/1.364.0">

      ### 1.364.0 - February 12, 2026

      - When invalid offset tokens are provided on [Reconciliation Details](#tag/Reconciliation-Details) and [Network Funds Transfers](#tag/Network-Funds-Transfers) endpoints, a specific error with HTTP Status Code 400 is now returned, rather than a generic 500 error response.
      - Documentation of existing errors has been improved on the above endpoints.

      </div>

      <div data-section-id="tag/Release-Notes/1.363.2">

      ### 1.363.2 - February 9, 2026

      - Updated internal documentation references for the Event Subscription pages.
      - Disallowed creating quarterly scheme reports for dates that are older than 2 years on the [`POST /v1/reports/quarterlySchemeReport`](#operation/createQuarterlySchemeReport) endpoint.

      </div>

      <div data-section-id="tag/Release-Notes/1.363.1">

      ### 1.363.1 - February 6, 2026

      - Added documentation for the [Network Funds Transfer Completed Event](#tag/Reconciliation-Events/operation/networkFundsTransferCompleted).

      </div>

      <div data-section-id="tag/Release-Notes/1.363.0">

      ### 1.363.0 - February 3, 2026

      - The field `card.createProcessorToken` on the [`POST /v1/charges/pos`](#operation/createChargePos) endpoint is no longer experimental.
      - The following enums on `type.payoutType` on the [`POST /v1/charges/payout`](#operation/createChargePayout) endpoint are no longer experimental:
        - `liquid-assets`
        - `online-gambling`
        - `general-funds-disbursement`

      </div>

      <div data-section-id="tag/Release-Notes/1.362.1">

      ### 1.362.1 - February 2, 2026

      - Updated internal documentation references for the Scheme Fees pages.

      </div>

      <div data-section-id="tag/Release-Notes/1.362.0">

      ### 1.362.0 - January 29, 2026

      - **Experimental**: Added `diners` as an enum value to the `cardNetwork` property on all [BINs](#tag/BINs) endpoints.
      - **Experimental**: Added Diners support on all [Merchant Acceptors](#tag/Merchant-Acceptors) endpoints.

      </div>

      <div data-section-id="tag/Release-Notes/1.361.0">

      ### 1.361.0 - January 26, 2026

      - **Experimental**: Added new [Update Enrollment](#tag/Enrollments/operation/updateEnrollment) endpoint to update AMEX Sponsored Merchant enrollments.

      </div>

      <div data-section-id="tag/Release-Notes/1.360.0">

      ### 1.360.0 - January 26, 2026

      - Added the field `allowPartialApproval` to the following endpoints:
        - [`POST /v1/charges/mit`](#operation/createChargeMit)
        - [`POST /v1/charges/mitFunding`](#operation/createChargeMitFunding)
      - **Experimental**: Released new [Processor Tokenization](#tag/Processor-Tokenization) endpoint to retrieve the card data associated with a processor token by its key.
        - [`GET /v1/processorTokens/{processorTokenKey}/cardData`](#operation/getProcessorTokenCardData)

      </div>

      <div data-section-id="tag/Release-Notes/1.359.1">

      ### 1.359.1 - January 23, 2026

      - Added `400` error documentation to the following endpoints:
        - [`GET /v1/reports/{reportKey}`](#operation/getReport)
        - [`GET /v1/reports/{reportKey}/file`](#operation/getReportFile)

      </div>

      <div data-section-id="tag/Release-Notes/1.359.0">

      ### 1.359.0 - January 22, 2026

      - Added documentation for the [Report Events](#tag/Report-Events).

      </div>

      <div data-section-id="tag/Release-Notes/1.358.0">

      ### 1.358.0 - January 15, 2026

      - Added support for American Express charges to the [`POST /v1/charges/{chargeKey}/offlineRefund`](#operation/offlineRefund) endpoint.

      </div>

      <div data-section-id="tag/Release-Notes/1.357.1">

      ### 1.357.1 - January 15, 2026

      - Updated internal documentation references for the Distribution pages.

      </div>

      <div data-section-id="tag/Release-Notes/1.357.0">

      ### 1.357.0 - January 13, 2026

      - Added `digitalCommerceProgramType` to `authorizationIsoFields.networkSpecificFields` in the response for Mastercard charges on the following endpoints:
        - [`POST /v1/charges`](#operation/createCharge)
        - [`POST /v1/charges/funding`](#operation/createChargeFunding)
        - [`POST /v1/charges/payout`](#operation/createChargePayout)
        - [`POST /v1/charges/{initialChargeKey}/mit`](#operation/createChargeMitFromInitialCharge)
        - [`POST /v1/charges/mit`](#operation/createChargeMit)
        - [`POST /v1/charges/mitFunding`](#operation/createChargeMitFunding)
      - Added `tokenRequestorId` to `authorizationIsoFields.networkSpecificFields` in the response for Visa charges on the following endpoints:
        - [`POST /v1/charges`](#operation/createCharge)
        - [`POST /v1/charges/funding`](#operation/createChargeFunding)
        - [`POST /v1/charges/payout`](#operation/createChargePayout)
        - [`POST /v1/charges/{initialChargeKey}/mit`](#operation/createChargeMitFromInitialCharge)
        - [`POST /v1/charges/mit`](#operation/createChargeMit)
        - [`POST /v1/charges/mitFunding`](#operation/createChargeMitFunding)

      </div>

      <div data-section-id="tag/Release-Notes/1.356.0">

      ### 1.356.0 - January 13, 2026

      - Added support for the `secondPresentment-sms` type on the [Reconciliation Details ](#operation/getReconciliationDetails) endpoints and Reports.

      </div>

      <div data-section-id="tag/Release-Notes/1.355.2">

      ### 1.355.2 - January 13, 2026

      - Removed the experimental Redistribute Entity endpoint

      </div>

      <div data-section-id="tag/Release-Notes/1.355.1">

      ### 1.355.1 - January 9, 2026

      - Changed the order of the Event Notifications groups.

      </div>

      <div data-section-id="tag/Release-Notes/1.355.0">

      ### 1.355.0 - January 8, 2026

      - Added documentation for the [Distribution Events](#tag/Distribution-Events) and [AMMF Submission Events](#tag/AMMF-Submission-Events).

      </div>

      <div data-section-id="tag/Release-Notes/1.354.0">

      ### 1.354.0 - January 8, 2026

      - Added support for the event source type `https://silverflow.com/ammfSubmissions` to [Event Subscriptions](#tag/Event-Subscriptions).

      </div>

      <div data-section-id="tag/Release-Notes/1.353.1">

      ### 1.353.1 - January 7, 2026

      - Updated description for `disputeHandling.autoDefense` field on [all Merchant Acceptor endpoints](#tag/Merchant-Acceptors) with supported card networks.

      </div>

      <div data-section-id="tag/Release-Notes/1.353.0">

      ### 1.353.0 - January 7, 2026

      - Updated regex for `sender.accountNumber` and `receiver.accountNumber` to also accept phone numbers and emails on the following endpoints:
        - [`POST /v1/charges/funding`](#operation/createChargeFunding)
        - [`POST /v1/charges/mitFunding`](#operation/createChargeMitFunding)
        - [`POST /v1/charges/payout`](#operation/createChargePayout)

      </div>

      <div data-section-id="tag/Release-Notes/1.352.1">

      ### 1.352.1 - January 6, 2026

      - Fixed enum value `ReconciliationDetails` and `NetworkFundsTransfers` in the response body of [`POST /v1/reports/reconciliationDetailRecords`](#tag/Settlement-Reports/operation/reconciliationDetails)
        and [`POST /v1/reports/networkFundsTransfers`](#tag/Settlement-Reports/operation/createNetworkFundsTransfersReport) respectively.

      </div>

      <div data-section-id="tag/Release-Notes/1.352.0">

      ### 1.352.0 - January 6, 2026

      - **Experimental**: Added network-specific transaction identifiers retrieved from the ISO response to charge actions with type `authorization` and `refund`.

      </div>

      <div data-section-id="tag/Release-Notes/1.351.1">

      ### 1.351.1 - January 5, 2026

      - Added [Processor Tokenization](#tag/Processor-Tokenization) section back as it was accidentally removed.

      </div>

      <div data-section-id="tag/Release-Notes/1.351.0">

      ### 1.351.0 - January 5, 2026

      - Added new field `transactionType` to the [`POST /v1/charges/payout`](#operation/createChargePayout) endpoint.
      - Removed support for BGN currency as Bulgaria transitions to EUR on January 1, 2026, from all [Charges](#tag/Create-Charges) and [3DS](#tag/3DS-Authentication) endpoints.

      </div>

      <div data-section-id="tag/Release-Notes/1.350.0">

      ### 1.350.0 - December 30, 2025

      - Made corrections to the [Add Dispute Document endpoint](#operation/addDisputeDocumentsMetadata) response body. The fields `filename`, `contentLength`, `contentType` are removed since they are not returned.
      - Made corrections to the Dispute entity on all [Disputes endpoints](#tag/Disputes). Included the missing fields `elaboration` and `messageText` in the `submittedDefense` object and removed the `responseReasonValue` field, as it was not returned.

      </div>

      <div data-section-id="tag/Release-Notes/1.340.0">

      ### 1.340.0 - December 30, 2025

      - Added an explanation for the `marketplaceId` and `rampProviderId` fields on [all Merchant Acceptor endpoints](#tag/Merchant-Acceptors): they are mutually exclusive. If one is provided, the other must not be provided.
      - The fields `marketplaceId` and `rampProviderId` can now be removed from the Merchant Acceptor entity by setting the value to 'null' on the [Update Merchant Acceptor endpoint](#operation/updateAcceptor).

      </div>

      <div data-section-id="tag/Release-Notes/1.339.0">

      ### 1.339.0 - December 18, 2025

      - Added field `foreignRetailer` to the following endpoints:
        - [`POST /v1/charges`](#operation/createCharge)
        - [`POST /v1/charges/mit`](#operation/createChargeMit)
        - [`POST /v1/charges/mitFunding`](#operation/createChargeMitFunding)
        - [`POST /v1/charges/{initialChargeKey}/mit`](#operation/createChargeMitFromInitialCharge)
        - [`POST /v1/charges/funding`](#operation/createChargeFunding)
        - [`POST /v1/charges/payout`](#operation/createChargePayout)
      - Added card validation to the [`POST /v1/charges/{chargeKey}/offlineRefund`](#operation/offlineRefund) endpoint:
        - Returns 409 error with the `type` of `/silverflow/problems/card/invalid` when the card of the original charge no longer is valid.
      - **Deprecation:** From May 4, 2026, the `fraudLiability` field will be optional for payout charges in the responses on the [`GET /v1/charges/{chargeKey}`](#operation/getCharge) and [`GET /v1/charges`](#operation/getCharges) endpoints.
      - **Deprecation:** From May 4, 2026, when using `clearingMode` `auto` the `clearAfter` field will have to be set in order to allow for cancelations of the created charge on all [Charges endpoints](#tag/Create-Charges).
      - **Deprecation:** From May 1, 2026, the `threeDsPriorAuthenticationInfo` field will be required on the [`POST /v1/3ds/3ri`](#operation/create3riAuthentication) endpoint.

      </div>

      <div data-section-id="tag/Release-Notes/1.338.0">

      ### 1.338.0 - December 15, 2025

      - Added support for the event source type `https://silverflow.com/distributions` to [Event Subscriptions](#tag/Event-Subscriptions).

      </div>

      <div data-section-id="tag/Release-Notes/1.337.0">

      ### 1.337.0 - December 11, 2025

      - Added a new screening type `MATCH_PRO` to the [Screening endpoints](#tag/Screenings)

      </div>

      <div data-section-id="tag/Release-Notes/1.336.0">

      ### 1.336.0 - December 11, 2025

      - Added a new 'Event Notifications' section to which the [Event Subscription endpoints](#tag/Event-Subscriptions) have been moved. This section will in the future hold the documentation for all the different event notifications that can be subscribed to.
      - Added documentation for the [Dispute Events](#tag/Dispute-Events) and [Fraud Notification Events](#tag/Fraud-Notification-Events).

      </div>

      <div data-section-id="tag/Release-Notes/1.335.0">

      ### 1.335.0 - December 10, 2025

      - **Deprecation**: Deprecated the `MATCH` screeningType in the [Create Screening Request](#tag/Screenings/operation/postScreening) endpoint.

      </div>

      <div data-section-id="tag/Release-Notes/1.334.0">

      ### 1.334.0 - December 5, 2025

      - Visa support on the [`POST /v1/charges/mitFunding`](#operation/createChargeMitFunding) endpoint is no longer considered experimental.
      - **Experimental**: Added Mastercard support to the [`POST /v1/charges/mitFunding`](#operation/createChargeMitFunding) endpoint.

      </div>

      <div data-section-id="tag/Release-Notes/1.333.1">

      ### 1.333.1 - December 4, 2025

      - The date range on [`POST /v1/reports/reconciliationDetailRecords`](#tag/Settlement-Reports/operation/reconciliationDetails) is now restricted to one week.
      - The following endpoints are no longer considered experimental:
        - [`POST /v1/reports/reconciliationDetailRecords`](#tag/Settlement-Reports/operation/reconciliationDetails)
        - [`POST /v1/reports/networkFundsTransfers`](#tag/Settlement-Reports/operation/createNetworkFundsTransfersReport)

      </div>

      <div data-section-id="tag/Release-Notes/1.333.0">

      ### 1.333.0 - December 3, 2025

      - **Breaking:** Added card network validation for the merchant acceptor to the [`POST /v1/bep`](#operation/bep) endpoint. A merchant acceptor that has a bin with a card network other than `bancontact` will now result in a 409 error with `type` of `/silverflow/problems/bin/unexpected-network`.
      - Added documentation for 409 error with `type` of `/silverflow/problems/referenced-entity-not-found`, which was previously undocumented on the [`POST /v1/bep`](#operation/bep) endpoint.

      </div>

      <div data-section-id="tag/Release-Notes/1.332.1">

      ### 1.332.1 - November 26, 2025

      - **Breaking:** Charges authorized more than 6 months ago can no longer be cleared with the [`POST /v1/charges/{chargeKey}/clear`](#operation/triggerManualClearing) endpoint.
      - **Breaking:** The `clearAfter` property can no longer be set to values more than 6 months in the future on the following endpoints:
        - [`POST /v1/charges`](#operation/createCharge)
        - [`POST /v1/charges/pos`](#operation/createChargePos)
        - [`POST /v1/charges/mit`](#operation/createChargeMit)
        - [`POST /v1/charges/{initialChargeKey}/mit`](#operation/createChargeMitFromInitialCharge)
        - [`POST /v1/charges/funding`](#operation/createChargeFunding)
        - [`POST /v1/charges/payout`](#operation/createChargePayout)
        - [`POST /v1/charges/{chargeKey}/refund`](#operation/refund)

      </div>

      <div data-section-id="tag/Release-Notes/1.332.0">

      ### 1.332.0 - November 25, 2025

      - Added support for ndjson format to the Fraud Notification and Dispute History Events Reports, the reports can be requested in this format using the `application/x-ndjson` mime type.
        - [`POST /v1/reports/fraudNotificationRecords`](#tag/Fraud-Notifications-Reports)
        - [`POST /v1/reports/disputeHistoryEvents`](#tag/Dispute-Reports)

      </div>

      <div data-section-id="tag/Release-Notes/1.331.6">

      ### 1.331.6 - November 24, 2025

      - The field `validationErrors[].instancePath` has been corrected to `validationErrors[].path` in the following endpoints:
        - [`POST /v1/distributions`](#operation/createDistribution)
        - [`GET /v1/distributions`](#operation/listDistributions)
        - [`GET /v1/distributions/{distributionKey}`](#operation/getDistribution)
        - [`PATCH /v1/distributions/{distributionKey}`](#operation/updateDistribution)
        - [`DELETE /v1/distributions/{distributionKey}`](#operation/archiveDistribution)
        - [`POST /v1/distributions/{distributionKey}/distribute/{entityKey}`](#operation/distributeEntity)

      </div>

      <div data-section-id="tag/Release-Notes/1.331.5">

      ### 1.331.5 - November 24, 2025

      - Removed an inaccurate example from the description of the [`POST /v1/charges/{initialChargeKey}/mit`](#operation/createChargeMitFromInitialCharge) endpoint.

      </div>

      <div data-section-id="tag/Release-Notes/1.331.4">

      ### 1.331.4 - November 21, 2025

      - The following endpoints are no longer considered experimental:
        - [`POST /v1/reports/quarterlySchemeReport`](#operation/createQuarterlySchemeReport)
        - [`POST /v1/reports/schemeFeeDetails`](#operation/schemeFeeDetails)
        - [`GET /v1/reports`](#operation/listReport)
        - [`GET /v1/reports/{reportKey}`](#operation/getReport)
        - [`GET /v1/reports/{reportKey}/file`](#operation/getReportFile)
        - [`POST /v1/reportSchedules`](#operation/createReportSchedule)
        - [`GET /v1/reportSchedules`](#operation/listReportSchedules)
        - [`GET /v1/reportSchedules/{reportScheduleKey}`](#operation/getReportSchedule)
        - [`DELETE /v1/reportSchedules/{reportScheduleKey}`](#operation/archiveReportSchedule)
        - [`PATCH /v1/reportSchedules/{reportScheduleKey}`](#operation/updateReportSchedule)

      </div>

      <div data-section-id="tag/Release-Notes/1.331.3">

      ### 1.331.3 - November 20, 2025

      - Updated documentation to accept `merchant` in the `owner` parameter on the [List Dispute Documents](#tag/Disputes/operation/getDisputeDocumentsMetadata) endpoint.

      </div>

      <div data-section-id="tag/Release-Notes/1.331.2">

      ### 1.331.2 - November 13, 2025

      - Updated documentation to specify that the `taxRegistrationId` is required for Discover commercial card transactions in the US on the [Create Merchant endpoint](#tag/Merchants/operation/createMerchant).

      </div>

      <div data-section-id="tag/Release-Notes/1.331.0">

      ### 1.331.0 - November 10, 2025

      - **Breaking**: For all [Charges endpoints](#tag/Create-Charges) the error with `type` of `/silverflow/problems/idempotency/request-is-still-being-processed` now has a 409 status code instead of 503.
      - **Breaking**: For all [Charges endpoints](#tag/Create-Charges) the error with `type` of `/silverflow/problems/idempotency/request-body-mismatch` has been renamed to `/silverflow/problems/idempotency/request-mismatch`.
      - Fixed the documentation for the error with `type` of `/silverflow/problems/invalid-input`. The field `validationErrors[].instancePath` has been corrected to `validationErrors[].path`. This affects the following endpoints:
        - [`GET /v1/bep/{bepKey}`](#operation/getCompleteBep)
        - [`POST /v1/bep`](#operation/bep)
        - [`POST /v1/bep/{bepKey}/authorizationResult`](#operation/finalizeBep)

      </div>

      <div data-section-id="tag/Release-Notes/1.330.0">

      ### 1.330.0 - November 7, 2025

      - Added support for the optional `dynamicDescriptor` field to [`POST /v1/charges/funding`](#operation/createChargeFunding) and [`POST /v1/charges/payout`](#operation/createChargePayout).

      </div>

      <div data-section-id="tag/Release-Notes/1.329.1">

      ### 1.329.1 - November 6, 2025

      - Documented the trimming of address lines for MATCH screenings in the [Create Screening Request endpoint](#tag/Screenings/operation/postScreening).

      </div>

      <div data-section-id="tag/Release-Notes/1.329.0">

      ### 1.329.0 - November 4, 2025

      - **Breaking**: The [`POST /v1/charges/{chargeKey}/clear`](#operation/triggerManualClearing) endpoint can be called at most 6 months after the charge was created.

      </div>

      <div data-section-id="tag/Release-Notes/1.328.0">

      ### 1.328.0 - October 31, 2025

      - The error `/silverflow/problems/idempotency/temporarily-unavailable` is no longer returned on any [Charges endpoints](#tag/Create-Charges). From now on, if our idempotency system malfunctions we are going to allow transactions to continue and they will work the same way as transactions that did not have idempotency specified to begin with.

      </div>

      <div data-section-id="tag/Release-Notes/1.327.0">

      ### 1.327.0 - October 30, 2025

      - The deprecated `feeDateFrom`, `feeDateTo` and `sinceToken` parameters have been removed from the [`POST /v1/reports/schemeFeeDetails`](#tag/Scheme-Fee-Reports/operation/schemeFeeDetails) endpoint.

      </div>

      <div data-section-id="tag/Release-Notes/1.326.0">

      ### 1.326.0 - October 28, 2025

      - The `type.cardEntry` values `token` and `token-on-file` are no longer experimental for American Express on the [`POST /v1/charges`](#operation/createCharge) endpoint.
      - The `type.cardEntry` value `token-on-file` is no longer experimental for American Express on the [`POST /v1/charges/mit`](#operation/createChargeMit) endpoint.

      </div>

      <div data-section-id="tag/Release-Notes/1.325.0">

      ### 1.325.0 - October 28, 2025

      - **Breaking**: Removed the deprecated `acquirerId` field in MATCH Screening responses on [all Screening endpoints](#tag/Screenings).
      - **Breaking**: Removed the deprecated `acquirerBID` field in VMSS Screening requests and responses on [all Screening endpoints](#tag/Screenings).

      </div>

      <div data-section-id="tag/Release-Notes/1.324.1">

      ### 1.324.1 - October 27, 2025

      - The following network tokenization endpoints are no longer considered experimental:
        - [`POST /v1/networkTokens`](#operation/createNetworkToken)
        - [`GET /v1/networkTokens`](#operation/listNetworkTokens)
        - [`GET /v1/networkTokens/{networkTokenKey}`](#operation/getNetworkToken)
        - [`DELETE /v1/networkTokens/{networkTokenKey}`](#operation/archiveNetworkToken)
        - [`GET /v1/networkTokens/{networkTokenKey}/networkTokenData`](#operation/getNetworkTokenData)
        - [`POST /v1/networkTokens/{networkTokenKey}/cryptogram`](#operation/createNetworkTokenCryptogram)

      </div>

      <div data-section-id="tag/Release-Notes/1.324.0">

      ### 1.324.0 - October 17, 2025

      - Added Mastercard support for `general-funds-disbursement` as a `type.fundingType` to the [`POST /v1/charges/funding`](#operation/createChargeFunding) endpoint.

      </div>

      <div data-section-id="tag/Release-Notes/1.323.1">

      ### 1.323.1 - October 14, 2025

      - Updated Reports endpoints documentation with minor fixes for better clarity.

      </div>

      <div data-section-id="tag/Release-Notes/1.323.0">

      ### 1.323.0 - October 14, 2025

      - **Breaking:** Removed the deprecated field `fraudLiability` from the 201 response on the [`POST /v1/charges/payout`](#operation/createChargePayout) endpoint.
      - The field `scaExemptionRequest` on the [`POST /v1/charges/funding`](#operation/createChargeFunding) endpoint is no longer experimental.

      </div>

      <div data-section-id="tag/Release-Notes/1.322.0">

      ### 1.322.0 - October 9, 2025

      - **Experimental**: Added the new optional property `transactionRegionalitySummary` to `firstPresentment-dms` and `firstPresentment-sms` types on the following endpoints:
        - [List Reconciliation Details endpoint](#operation/getReconciliationDetails)
        - [List Reconciliation Details by Funds Transfer Date endpoint](#operation/getReconciliationDetailsFundsTransferDate)
        - [List Reconciliation Details by Network Funds Transfer Key endpoint](#operation/listReconciliationDetailsByNetworkFundsTransferKey)

      </div>

      <div data-section-id="tag/Release-Notes/1.321.0">

      ### 1.321.0 - October 6, 2025

      - **Breaking**: Removed the `issm` type from the [Create Enrollment endpoint](#tag/Enrollments/operation/createEnrollment) as ISSM Merchant Enrollment has been decommissioned by Mastercard.
      - **Deprecation**: Deprecated the `issm` type in the [Get Enrollment](#tag/Enrollments/operation/getEnrollmentByKey) and [List Enrollments](#tag/Enrollments/operation/getEnrollmentByKey) endpoints.

      </div>

      <div data-section-id="tag/Release-Notes/1.320.0">

      ### 1.320.0 - October 3, 2025

      - Added new values `central-bank-digital-currency`, `stablecoin`, `blockchain-native-coin`, `non-fungible-token` to the `transactionType` field on the following endpoints:
        - [`POST /v1/charges/mit`](#operation/createChargeMit)
        - [`POST /v1/charges`](#operation/createCharge)

      </div>

      <div data-section-id="tag/Release-Notes/1.319.1">

      ### 1.319.1 - October 02, 2025

      - Removed the deprecated `POST /v1/merchants/{merchantKey}/acceptors/enrollments/{type}` endpoint.

      </div>

      <div data-section-id="tag/Release-Notes/1.319.0">

      ### 1.319.0 - September 23, 2025

      - Added a new error with type `/silverflow/problems/invalid-input` for 400 responses on the [Transaction Risk endpoint](#tag/Transaction-Risk-Assessment/operation/performRiskAssessment).

      </div>

      <div data-section-id="tag/Release-Notes/1.318.0">

      ### 1.318.0 - September 19, 2025

      - Added the ability to set `clearingMode` and `clearAfter` for Mastercard charges on the following endpoints:
        - [`POST /v1/charges/funding`](#operation/createChargeFunding)
        - [`POST /v1/charges/payout`](#operation/createChargePayout)
      - **Deprecation**: Deprecated `type.sequence` for the [`POST /v1/charges/funding`](#operation/createChargeFunding) endpoint. The property has no effect on the created charge.
      - **Deprecation**: Added a deprecation note for additional properties on several endpoints. From January 29, 2026, these endpoints will reject any undocumented properties they receive with a 400 error. The affected endpoints are:
        - [`POST /v1/charges/bep`](#operation/createChargeBep)
        - [`POST /v1/charges/pos`](#operation/createChargePos)
        - [`POST /v1/charges/{initialChargeKey}/mit`](#operation/createChargeMitFromInitialCharge)

      </div>

      <div data-section-id="tag/Release-Notes/1.317.0">

      ### 1.317.0 - September 15, 2025

      - Updated operation titles for the following endpoints to improve clarity:
        - [`POST /v1/charges/{initialChargeKey}/mit`](#operation/createChargeMitFromInitialCharge) from "Create MIT Charge" to "Create MIT Charge from Initial Charge"
        - [`POST /v1/charges/mit`](#operation/createChargeMit) from "Create Unreferenced MIT Charge" to "Create MIT Charge"
        - [`POST /v1/charges/mitFunding`](#operation/createChargeMitFunding) from "Create Unreferenced MIT Funding Charge" to "Create MIT Funding Charge"
      - Restricted the `cardData.holder.name` field to alphanumeric characters on the [`POST /v1/networkTokens`](#operation/createToken) endpoint.
      - Fixed the documentation of the success response status code on the [`POST /v1/networkTokens/{networkTokenKey}/cryptogram`](#operation/createCryptogram) endpoint. It is now correctly documented as `200`.

      </div>

      <div data-section-id="tag/Release-Notes/1.316.0">

      ### 1.316.0 - September 11, 2025

      - **Experimental:** Added a new optional field `subMerchantAddress` to the Merchant Acceptor entity on [all Merchant Acceptor endpoints](#tag/Merchant-Acceptors). Only supported for Mastercard and Visa when `subMerchantId` is provided.

      </div>

      <div data-section-id="tag/Release-Notes/1.315.0">

      ### 1.315.0 - September 10, 2025

      - **Deprecation**: Marked the `screeningDetail.acquirerId` field in MATCH Screening responses as deprecated on [all Screening endpoints](#tag/Screenings). Introduced the field `screeningDetail.acquirerIdCode` to be used instead.
      - **Deprecation**: Marked the `screeningDetail.acquirerBID` field in VMSS Screening responses as deprecated on [all Screening endpoints](#tag/Screenings). Introduced the field `screeningDetail.bid` to be used instead.

      </div>

      <div data-section-id="tag/Release-Notes/1.314.0">

      ### 1.314.0 - September 3, 2025

      - **Experimental:** Added the boolean `createRefundCharge` to the [`POST /v1/charges/{chargeKey}/refund`](#operation/refund) endpoint. Defaults to `false`. When set to `true`, a full refund charge will be created along with the refund action.
      - **Experimental:** Added the field `clearingMode` to the [`POST /v1/charges/{chargeKey}/refund`](#operation/refund) endpoint. Only supported if `createRefundCharge` is set to `true`

      </div>

      <div data-section-id="tag/Release-Notes/1.313.0">

      ### 1.313.0 - September 1, 2025

      - **Deprecation**: Marked the `acquirerBID` field in VMSS Screening Requests as deprecated on the [Create Screening Request endpoint](#tag/Screenings/operation/postScreening). The `bid` from the Bin will be used instead.
      - Updated the validation pattern of the `doingBusinessAsName` field on the [Create Screening Request endpoint](#tag/Screenings/operation/postScreening) for VMSS Screening Requests.
      - Added a new optional field `errorMessage` to the Screening entity on the [Get Screening](#tag/Screenings/operation/getScreening) and [List Screenings](#tag/Screenings/operation/listScreenings) endpoints.

      </div>

      <div data-section-id="tag/Release-Notes/1.312.1">

      ### 1.312.1 - August 28, 2025

      - Added `withdrawn` to the `disputeStatus` enum on [Disputes](#tag/Disputes) endpoints.

      </div>

      <div data-section-id="tag/Release-Notes/1.312.0">

      ### 1.312.0 - August 21, 2025

      - Changed the structure of `validationErrors` for `/silverflow/problems/invalid-input` errors on the [3DS endpoints](#tag/3DS-Authentication).

      </div>

      <div data-section-id="tag/Release-Notes/1.311.0">

      ### 1.311.0 - August 21, 2025

      - Added support for the `firstChargeback-sms` type on the [Reconciliation Details ](#operation/getReconciliationDetails) endpoints and Reports.
      - Fixed the documentation for the [List Reconciliation Details by Network Funds Transfer Key](#operation/listReconciliationDetailsByNetworkFundsTransferKey) endpoint by including the `sortOrder` and `offsetToken` parameters.

      </div>

      <div data-section-id="tag/Release-Notes/1.310.1">

      ### 1.310.1 - August 20, 2025

      - Updated the `foreignRetailer` field on the [Merchant Acceptor entity](#tag/Merchant-Acceptors/operation/createAcceptor): deleted the validation that this field is mandatory when a `subMerchantId` is provided.

      </div>

      <div data-section-id="tag/Release-Notes/1.310.0">

      ### 1.310.0 - August 19, 2025

      - Added the field `partialApproval` to the [`POST /v1/charges/funding`](#operation/createChargeFunding) endpoint.

      </div>

      <div data-section-id="tag/Release-Notes/1.309.1">

      ### 1.309.1 - August 15, 2025

      - **Experimental:** Added the field `scaExemptionRequest` to the [`POST /v1/charges/funding`](#operation/createChargeFunding) endpoint.

      </div>

      <div data-section-id="tag/Release-Notes/1.308.1">

      ### 1.308.1 - August 13, 2025

      - Added a new field `merchantVolumeIndicator` on the Merchant Acceptor entity on the [Merchant Acceptor endpoints](#tag/Merchant-Acceptors).

      </div>

      <div data-section-id="tag/Release-Notes/1.308.0">

      ### 1.308.0 - August 14, 2025

      - **Breaking:** Removed the deprecated `GET /v1/reports/quarterlyNetwork/:network/:acquirerId/:year/:quarter` endpoint.

      </div>

      <div data-section-id="tag/Release-Notes/1.307.0">

      ### 1.307.0 - August 12, 2025

      - Changed the structure of `validationErrors` for `/silverflow/problems/invalid-input` errors on the [Charges endpoints](#tag/Create-Charges).

      </div>

      <div data-section-id="tag/Release-Notes/1.306.1">

      ### 1.306.1 - August 8, 2025

      - **Experimental:** Added the new endpoint [`POST /v1/reports/ammfReport`](#tag/Card-Network-Reports/operation/createAmmfReport) has been added to create AMMF reports. It was previously added, but not visible in the API Documentation.

      </div>

      <div data-section-id="tag/Release-Notes/1.306.0">

      ### 1.306.0 - August 8, 2025

      - **Experimental:** A new endpoint [`POST /v1/reports/ammfReport`](#tag/Card-Network-Reports/operation/createAmmfReport) has been added to create AMMF reports.
      - **Experimental:** The List Report and Get Report endpoints have been updated to support the retrieval of `AmmfReport` type.
      - **Experimental:** A new permission `reports:DownloadAmmfReport` has been added to download AMMF reports.

      - [`POST /v1/reports/charges`](#tag/Charges-Reports/operation/createChargesReport)

      </div>

      <div data-section-id="tag/Release-Notes/1.305.0">

      ### 1.305.0 - August 7, 2025

      - Changed `card.expiryMonth` and `card.expiryYear` to no longer be required in the request on the [`POST /v1/charges/payout`](#operation/createChargePayout) endpoint.

      </div>

      <div data-section-id="tag/Release-Notes/1.304.0">

      ### 1.304.0 - August 5, 2025

      - **Breaking:** Removed support for the outdated currency code `ANG` (Netherlands Antillean Guilder) from the following endpoints:
        - [`POST /v1/charges`](#operation/createCharge)
        - [`POST /v1/charges/funding`](#operation/createChargeFunding)
        - [`POST /v1/charges/payout`](#operation/createChargePayout)
        - [`POST /v1/charges/pos`](#operation/createChargePos)
        - [`POST /v1/charges/{initialChargeKey}/mit`](#operation/createChargeMitFromInitialCharge)
        - [`POST /v1/charges/mit`](#operation/createChargeMit)
        - [`POST /v1/charges/mitFunding`](#operation/createChargeMitFunding)
        - [`POST /v1/charges/{initialChargeKey}/wip`](#operation/createChargeWip)
        - [`POST /v1/riskAssessments`](#operation/performRiskAssessment)

      </div>

      <div data-section-id="tag/Release-Notes/1.303.0">

      ### 1.303.0 - August 4, 2025

      - **Breaking:** Removed the deprecated `result.requestId` and `result.transactionId` properties from the Fraudio response on the [`POST /v1/riskAssessments`](#operation/performRiskAssessment) endpoint.
      - Added support for the currency `XCG` (Caribbean Guilder) to the [`POST /v1/riskAssessments`](#operation/performRiskAssessment) endpoint.

      </div>

      <div data-section-id="tag/Release-Notes/1.302.1">

      ### 1.302.1 - August 1, 2025

      - Removed the deprecated `/reports/dailySettlementTotals/{binKey}` endpoint and the deprecated `com.silverflow.reconciliation.dailySettlementTotal` event.

      </div>

      <div data-section-id="tag/Release-Notes/1.302.0">

      ### 1.302.0 - July 29, 2025

      - Added support for partial representments by adding the `partialDefenseAmount` to the [`POST /v1/disputes/{disputeKey}/defend`](#tag/Disputes/operation/defendDispute) endpoint.

      </div>

      <div data-section-id="tag/Release-Notes/1.301.0">

      ### 1.301.0 - July 29, 2025

      - Added support for `type.order` `recurring` for Visa to the [`POST /v1/charges/funding`](#operation/createChargeFunding) endpoint.

      </div>

      <div data-section-id="tag/Release-Notes/1.300.0">

      ### 1.300.0 - July 25, 2025

      - **Experimental:** Modified the Update Report Schedule endpoint [`PATCH /v1/reportSchedules/{reportScheduleKey}`](#tag/Report-Scheduling/operation/updateReportSchedule), to utilize `PATCH` instead of `PUT`, to allow partial updates and streamline with other endpoints.

      </div>

      <div data-section-id="tag/Release-Notes/1.299.1">

      ### 1.299.1 - July 23, 2025

      - Fixed the description for the `authenticationContext.browserData.browserIP` field for the [`POST /v1/3ds`](#operation/create3dsAuthentication) endpoint. The statement about not supporting compressed IPv6 addresses was removed.
      - Fixed an error response on [`POST /v1/3ds/3ri`](#operation/create3riAuthentication). A 422 with the type `/silverflow/problems/3ds/unsupported-protocol-version` is now correctly returned if the card does not support 3RI authentication.

      </div>

      <div data-section-id="tag/Release-Notes/1.299.0">

      ### 1.299.0 - July 23, 2025

      - **Experimental:** Added support for updating report schedule entities via a new endpoint: [`PUT /v1/reportSchedules/{reportScheduleKey}`](#tag/Report-Scheduling/operation/updateReportSchedule)
      - Added a new permission: `reportSchedules:Update`, required to access the new endpoint

      </div>

      <div data-section-id="tag/Release-Notes/1.298.0">

      ### 1.298.0 - July 17, 2025

      - The following values of the field `fundingSource` on the [`POST /v1/charges/payout`](#operation/createChargePayout) endpoint are now supported by Mastercard:
        - `cash`
        - `other`

      </div>

      <div data-section-id="tag/Release-Notes/1.297.0">

      ### 1.297.0 - July 16, 2025

      - Added a new required request parameter, `parameters` to the experimental [Create Merchant Payout Schedule](#operation/createReportSchedule) endpoint.
        - Note that this has been updated for existing report schedules, meaning no action is required.

      </div>

      <div data-section-id="tag/Release-Notes/1.296.1">

      ### 1.296.1 - July 10, 2025

      - Added the maximum combined file size for a Dispute to the [Add Dispute Document](#operation/addDisputeDocumentsMetadata) and [Upload Document File](#operation/uploadDocumentFile) endpoints.

      </div>

      <div data-section-id="tag/Release-Notes/1.296.0">

      ### 1.296.0 - July 9, 2025

      - Added new the new field `cashbackAmount` to `firstPresentment-dms` type for Visa and Mastercard on the following endpoints:
        - [List Reconciliation Details endpoint](#operation/getReconciliationDetails)
        - [List Reconciliation Details by Funds Transfer Date endpoint](#operation/getReconciliationDetailsFundsTransferDate)
        - [List Reconciliation Details by Network Funds Transfer Key endpoint](#operation/listReconciliationDetailsByNetworkFundsTransferKey)

      </div>

      <div data-section-id="tag/Release-Notes/1.295.0">

      ### 1.295.0 - July 9, 2025

      - Added new fields `marketplaceId` and `rampProviderId` to [Merchant Acceptors](#tag/Merchant-Acceptors) with EXPERIMENTAL tag.

      </div>

      <div data-section-id="tag/Release-Notes/1.294.0">

      ### 1.294.0 - July 7, 2025

      - **Experimental:** Added the field `reportScheduleKey` to the response of the following endpoints:
        - [`GET /v1/reports`](#tag/Retrieve-Reports/operation/listReport)
        - [`GET /v1/reports/{reportKey}`](#tag/Retrieve-Reports/operation/getReport)

      </div>

      <div data-section-id="tag/Release-Notes/1.293.2">

      ### 1.293.2 - July 2, 2025

      - **Experimental:** Removed field `status` from charge actions of type `clearing`.

      </div>

      <div data-section-id="tag/Release-Notes/1.293.0">

      ### 1.293.0 - July 1, 2025

      - Added missing pagination query parameters `offsetToken` and `limit` to [GET /v1/charges/{chargeKey}/actions](#operation/getActions).
      - **Experimental:** Added a new enum field `status` to charge actions of type `clearing` with these values:
        - `pending`
        - `canceled`
        - `cleared`
        - `abandoned`
        - `unknown`
          - **Note:** for any clearing actions created before _26-06-2025_, `status` will default to `unknown`.

      </div>

      <div data-section-id="tag/Release-Notes/1.292.0">

      ### 1.292.0 - June 24, 2025

      - Updated the [Report Scheduling endpoint](#operation/createReportSchedule) to support the new report types: `Charges`, `FraudNotifications`, and `DisputeHistoryEvents`.
      - Added support for the `THB` currency on the [`POST /v1/reports/quarterlySchemeReport`](#tag/Card-Network-Reports/operation/createQuarterlySchemeReport) endpoint

      </div>

      <div data-section-id="tag/Release-Notes/1.291.1">

      ### 1.291.1 - June 23, 2025

      - Clarified descriptions on the [Create Enrollment endpoint](#tag/Enrollments/operation/createEnrollment) for VTS Enrollments.
      - Renamed 'Acceptor' in endpoint titles to 'Merchant Acceptor'.

      </div>

      <div data-section-id="tag/Release-Notes/1.291.0">

      ### 1.291.0 - June 19, 2025

      - Added the field `sender.nationality` to the [`POST /v1/charges/funding`](#operation/createChargeFunding) endpoint. This field is only relevant for Visa.

      </div>

      <div data-section-id="tag/Release-Notes/1.290.0">

      ### 1.290.0 - June 18, 2025

      - Added the previously deleted `primaryContactEmail` field to the response body of a VTS Enrollment on all [Enrollment endpoints](#tag/Enrollments).

      </div>

      <div data-section-id="tag/Release-Notes/1.289.0">

      ### 1.289.0 - June 17, 2025

      - The query parameters `fromDate` and `toDate` are updated to `date` format on the [Create Disputes Report endpoint](tag/Dispute-Reports/operation/createDisputeHistoryEventsReport).

      </div>

      <div data-section-id="tag/Release-Notes/1.288.0">

      ### 1.288.0 - June 10, 2025

      - The following features are no longer experimental:
        - `pinBlock.format` of `ISO-4` on [`POST /v1/charges/pos`](#operation/createChargePos).
        - Creating charges using a processor token key instead of card input on the following endpoints:
          - [`POST /v1/charges`](#operation/createCharge)
          - [`POST /v1/charges/funding`](#operation/createChargeFunding)
          - [`POST /v1/charges/payout`](#operation/createChargePayout)
          - [`POST /v1/charges/mit`](#operation/createChargeMit)
      - **Experimental:** Added new `type.fundingType` `me-to-me` to the [`POST /v1/charges/funding`](#operation/createChargeFunding) endpoint. This `fundingType` is currently only supported for Mastercard.

      </div>

      <div data-section-id="tag/Release-Notes/1.287.0">

      ### 1.287.0 - June 6, 2025

      - **Breaking**: Removed the deprecated `enroll3ds` field from the following endpoints:
        - [`POST /v1/merchants/`](#operation/createMerchant)
        - [`POST /v1/merchant/{merchantKey}/acceptors`](#operation/createAcceptor)

      </div>

      <div data-section-id="tag/Release-Notes/1.286.0">

      ### 1.286.0 - June 3, 2025

      - Added the `port` field to SFTP distributions. This is set to `22` by default.
        - [`POST /v1/distributions/`](#operation/createDistribution)

      </div>

      <div data-section-id="tag/Release-Notes/1.285.0">

      ### 1.285.0 – June 2, 2025

      - **Experimental:** Added Discover support to the following endpoints:
        - [`POST /v1/charges/{initialChargeKey}/mit`](#operation/createChargeMitFromInitialCharge)
        - [`POST /v1/charges/mit`](#operation/createChargeMit)

      </div>

      <div data-section-id="tag/Release-Notes/1.284.0">

      ### 1.284.0 – May 30, 2025

      - Introduced the `businessIdentification` object in the request body of a VTS Enrollment on the [Create Enrollment endpoint](#operation/createEnrollment) and made the fields `binKey` and `mid` optional.
      - Removed the `primaryContactEmail` field from the response body of a VTS Enrollment on all [Enrollment endpoints](#tag/Enrollments).

      </div>

      <div data-section-id="tag/Release-Notes/1.283.0">

      ### 1.283.0 – May 27, 2025

      - **Breaking**: Removed the deprecated `first6` and `last4` fields of the `card` field of a charge.

      </div>

      <div data-section-id="tag/Release-Notes/1.282.0">

      ### 1.282.0 – May 26, 2025

      - Enabled scheduling for `ReconciliationDetails` reports:
        - [`GET /v1/reportSchedules`](#operation/createReportSchedule)
      - Added support for the `distributions` parameter to the following report endpoints:
        - [`POST /v1/reports/schemeFeeDetails`](#operation/schemeFeeDetails)
        - [`POST /v1/reports/charges`](#tag/Charges-Reports/operation/createChargesReport)
        - [`POST /v1/reports/networkFundsTransfers`](#tag/Settlement-Reports/operation/createNetworkFundsTransfersReport)
        - [`POST /v1/reports/disputeHistoryEvents`](#tag/Dispute-Reports/operation/createDisputeHistoryEventsReport)
        - [`POST /v1/reports/quarterlySchemeReport`](#operation/createQuarterlySchemeReport)
        - [`POST /v1/reports/fraudNotificationRecords`](#tag/Fraud-Notifications-Reports/operation/createFraudNotificationsReport)

      </div>

      <div data-section-id="tag/Release-Notes/1.281.0">

      ### 1.281.0 - May 21, 2025

      - Added support for ndjson format to the Scheme Fee Reports, the reports can be requested in this format using the `application/x-ndjson` mime type.
        - [`POST /v1/reports/schemeFeeDetails`](#operation/schemeFeeDetails)

      </div>

      <div data-section-id="tag/Release-Notes/1.280.1">

      ### 1.280.1 - May 19, 2025

      - Added missing enum values `standing-order` and `installment` for field `type.order` to the following endpoints:
        - [`POST /v1/charges/{initialChargeKey}/mit`](#operation/createChargeMitFromInitialCharge)
        - [`POST /v1/charges/mit`](#operation/createChargeMit)

      </div>

      <div data-section-id="tag/Release-Notes/1.280.0">

      ### 1.280.0 - May 19, 2025

      - Added support for Visa's initial transaction identifier on the [`POST /v1/charges/payout`](#operation/createChargePayout) endpoint, using the new `initialTransactionReferences.initialTransactionIdentifier` property.
      - **Experimental**: Added support for Apple Pay and Google Pay for American Express charges on the following endpoints:
        - [`POST /v1/charges`](#operation/createCharge)
        - [`POST /v1/charges/mit`](#operation/createChargeMit)

      </div>

      <div data-section-id="tag/Release-Notes/1.279.0">

      ### 1.279.0 - May 15, 2025

      - Added support for compressed IPv6 addresses when providing `authenticationContext.browserData.browserIP` on the following endpoints:
        - [`POST /v1/3ds`](#operation/create3dsAuthentication)
        - [`POST /v1/3ds/3ri`](#operation/create3riAuthentication)
      - Added Visa and Mastercard support for `type.order` `standing-order` on the following endpoints:
        - [`POST /v1/charges`](#operation/createCharge)
        - [`POST /v1/charges/{initialChargeKey}/mit`](#operation/createChargeMitFromInitialCharge)
        - [`POST /v1/charges/mit`](#operation/createChargeMit)
      - Added `firstNameMatch`, `middleNameMatch`, and `lastNameMatch` to `authorizationIsoFields.networkSpecificFields` in the response for Visa transactions with `type.intent` `account-status` on the following endpoints:
        - [`POST /v1/charges`](#operation/createCharge)
        - [`POST /v1/charges/{initialChargeKey}/mit`](#operation/createChargeMitFromInitialCharge)
        - [`POST /v1/charges/mit`](#operation/createChargeMit)
      - Added `authorizationIsoFields.networkSpecificFields.transactionLinkId` to the response of Mastercard transactions on the following endpoints:
        - [`POST /v1/charges`](#operation/createCharge)
        - [`POST /v1/charges/funding`](#operation/createChargeFunding)
        - [`POST /v1/charges/payout`](#operation/createChargePayout)
        - [`POST /v1/charges/pos`](#operation/createChargePos)
        - [`POST /v1/charges/{initialChargeKey}/mit`](#operation/createChargeMitFromInitialCharge)
        - [`POST /v1/charges/mit`](#operation/createChargeMit)
        - [`GET /v1/charges/{chargeKey}`](#operation/getCharge)
        - [`GET /v1/charges`](#operation/getCharges)
      - **Experimental**: Added `card.createProcessorToken` flag to [`POST /v1/charges/pos`](#operation/createChargePos) endpoint that requests the creation of a processor token for the provided `card`.
      - **Deprecation**: Marked `type.sequence` as deprecated on the [`POST /v1/3ds`](#operation/create3dsAuthentication) endpoint.

      </div>

      <div data-section-id="tag/Release-Notes/1.278.0">

      ### 1.278.0 - May 15, 2025

      - Added support for creating a Reconciliation Details Report for all details included in a Network Funds Transfer. Such a report can be created by passing the `nftKey` parameter on the [`POST /v1/reports/reconciliationDetailRecords`](#tag/Settlement-Reports/operation/reconciliationDetails) endpoint.

      </div>

      <div data-section-id="tag/Release-Notes/1.277.0">

      ### 1.277.0 - May 13, 2025

      - Added support for `type.payoutType` `account-to-account` for Visa to the [`POST /v1/charges/payout`](#operation/createChargePayout) endpoint. Merchant acceptors with the following `mcc`s are supported:
        - `6211`
        - `6012`
        - `4829`

      </div>

      <div data-section-id="tag/Release-Notes/1.276.0">

      ### 1.276.0 - May 13, 2025

      - **Breaking**: Removed deprecated [`POST /v1/charges/{chargeKey}/cancelOrRefund`](#operation/cancelOrRefundCharge) endpoint.
      - Added `card.processorTokenKey` as optional field to the responses of the following endpoints:
        - [`POST /v1/charges`](#operation/createCharge)
        - [`POST /v1/charges/bep`](#operation/createChargeBep)
        - [`POST /v1/charges/funding`](#operation/createChargeFunding)
        - [`POST /v1/charges/payout`](#operation/createChargePayout)
        - [`POST /v1/charges/pos`](#operation/createChargePos)
        - [`POST /v1/charges/{initialChargeKey}/mit`](#operation/createChargeMitFromInitialCharge)
        - [`POST /v1/charges/mit`](#operation/createChargeMit)
        - [`POST /v1/charges/mitFunding`](#operation/createChargeMitFunding)
        - [`POST /v1/charges/{initialChargeKey}/wip`](#operation/createChargeWip)
        - [`GET /v1/charges/{chargeKey}`](#operation/getCharge)
        - [`GET /v1/charges`](#operation/getCharges)
      - The following endpoints are no longer experimental:
        - [`POST /v1/processorTokens`](#operation/createProcessorToken)
        - [`GET /v1/processorTokens`](#operation/getProcessorTokens)
        - [`GET /v1/processorTokens/{processorTokenKey}`](#operation/getProcessorToken)
        - [`DELETE /v1/processorTokens/{processorTokenKey}`](#operation/archiveProcessorToken)
      - **Deprecation**: Added deprecation tag to `type.sequence` on the following endpoints:
        - [`POST /v1/charges`](#operation/createCharge)
        - [`POST /v1/charges/mit`](#operation/createChargeMit)
        - [`POST /v1/charges/{initialChargeKey}/mit`](#operation/createChargeMitFromInitialCharge)

      </div>

      <div data-section-id="tag/Release-Notes/1.275.1">

      ### 1.275.1 - May 13, 2025

      - Added new optional field `openingDebitBalance` on response object in [`/reports/networkFundsTransfers/fundsTransferDate/{fundsTransferDate}`](#operation/getNetworkFundsTransfers) endpoint.
      - Added new optional field `openingDebitBalance` on response object in [`/reports/networkFundsTransfers/{key}`](#operation/getNetworkFundsTransferByNetworkFundsTransferKey) endpoint.

      </div>

      <div data-section-id="tag/Release-Notes/1.274.0">

      ### 1.274.0 - May 9, 2025

      - Added support for sender identification with date of birth on the [`POST /v1/charges/funding`](#operation/createChargeFunding) endpoint, using the new `sender.identification` property.
      - Added new `type.payoutType` `wallet-transfer` to the [`POST /v1/charges/payout`](#operation/createChargePayout) endpoint for Visa merchant acceptors with the following `mcc`s:
        - `4829`
        - `6012`
        - `6540`

      </div>

      <div data-section-id="tag/Release-Notes/1.273.0">

      ### 1.273.0 - May 9, 2025

      - **Experimental**: Added support for new SFTP distribution type to the Reports Distribution endpoints:
        - [`POST /v1/distributions`](#operation/createDistribution)
        - [`GET /v1/distributions`](#operation/listDistributions)
        - [`PATCH /v1/distributions/{distributionKey}`](#operation/updateDistribution)

      </div>

      <div data-section-id="tag/Release-Notes/1.272.0">

      ### 1.272.0 - May 1, 2025

      - Changed the value of `authorizationIsoFields.networkCode` from `unknown` to `not-applicable` for American Express charges. This applies to all [Charges endpoints](#tag/Create-Charges).
      - **Experimental**: Started disallowing additional subfields not specified by the API specification on the [`POST /v1/processorTokens`](#operation/createProcessorToken) endpoint.
      - **Experimental**: Removed `cardHolderInformation` field from the [`POST /v1/processorTokens`](#operation/createProcessorToken) endpoint.

      </div>

      <div data-section-id="tag/Release-Notes/1.271.1">

      ### 1.271.1 - Apr 25, 2025

      - Added `authorizationIsoFields.networkSpecificFields.avsResponseCode` for Discover to the following endpoints:
        - [`POST /v1/charges`](#operation/createCharge)
        - [`POST /v1/charges/pos`](#operation/createChargePos)
        - [`POST /v1/charges/mit`](#operation/createChargeMit)
        - [`POST /v1/charges/{chargeKey}/mit`](#operation/createChargeMitFromInitialCharge)
      - **Experimental:** Updated validation of `pinBlock.block` when `pinBlock.format` is `ISO-4` to accept values of length 32 on the [`POST /v1/charges/pos`](#operation/createChargePos) endpoint.
      - **Experimental:** Added Discover support for `type.intent` `reservation` to the [`POST /v1/charges`](#operation/createCharge) endpoint.
      - **Experimental:** Added Discover support to the [`POST /v1/charges/pos`](#operation/createChargePos) endpoint.
      - **Experimental:** Added Discover support to the [`POST /v1/charges/{chargeKey}/increment`](#operation/increment) endpoint.

      </div>

      <div data-section-id="tag/Release-Notes/1.271.0">

      ### 1.271.0 - Apr 24, 2025

      - Added support for values `application/json` and `application/x-ndjson` in `mimeType` field on Settlement Reports:
        - [`POST /v1/reports/reconciliationDetailRecords`](#tag/Settlement-Reports/operation/reconciliationDetails)
        - [`POST /v1/reports/networkFundsTransfers`](#tag/Settlement-Reports/operation/createNetworkFundsTransfersReport).

      </div>

      <div data-section-id="tag/Release-Notes/1.270.0">

      ### 1.270.0 - Apr 22, 2025

      - Added examples for the [POST /v1/eventSubscriptions](#operation/createEventSubscription) endpoint.
      - Removed deprecated permissions listed below:
        - `agents:CreateBankAccount`
        - `agents:ListBankAccounts`
        - `agents:GetBankAccount`
        - `agents:UpdateBankAccount`
        - `agents:ArchiveBankAccount`
        - `merchants:CreateBankAccount`
        - `merchants:ListBankAccounts`
        - `merchants:GetBankAccount`
        - `merchants:UpdateBankAccount`
        - `merchants:ArchiveBankAccount`
        - `bankAccounts:Get`
        - `bankAccounts:Update`
        - `bankAccounts:Archive`
        - `bankAccounts:All`

      </div>

      <div data-section-id="tag/Release-Notes/1.269.0">

      ### 1.269.0 - Apr 22, 2025

      - Updated the [POST /v1/eventSubscriptions](#operation/createEventSubscription) endpoint to support a new eventSource: `"https://silverflow.com/enrollments"`.

      </div>

      <div data-section-id="tag/Release-Notes/1.268.0">

      ### 1.268.0 - Apr 18, 2025

      - Updated the [POST /v1/apiKeys](#operation/createApiKey) endpoint to include a new Distributions related `distributions:Distribute` permission.
      - **Experimental:** added new Distribute endpoint, to allow to re-distribute an entity.
        - [`POST /v1/distributions/{distributionKey}/distribute/{entityKey}`](#operation/distributeEntity)

      </div>

      <div data-section-id="tag/Release-Notes/1.267.0">

      ### 1.267.0 - Apr 18, 2025

      - **Experimental**: Report scheduling enabled for `NetworkFundsTranfers` and `MerchantPayout` reports
        - [`GET /v1/reportSchedules`](#operation/createReportSchedule)

      </div>

      <div data-section-id="tag/Release-Notes/1.266.0">

      ### 1.266.0 - Apr 17, 2025

      - Updated the `doingBusinessName` on the `MerchantAcceptor` to support `*` and `=` characters.

      </div>

      <div data-section-id="tag/Release-Notes/1.265.1">

      ### 1.265.1 - Apr 17, 2025

      - Changed the time limit of the `clearAfter` field to be 6 months from the moment the charge was created on all endpoints that support this field.
      - Changed the time limit when manually clearing a charge to be 6 months from the moment the charge was created on the [`POST /v1/charges/{chargeKey}/clear`](#operation/triggerManualClearing) endpoint.

      </div>

      <div data-section-id="tag/Release-Notes/1.265.0">

      ### 1.265.0 - Apr 16, 2025

      - `tags` added to FirstChargebackDMSSpecific, SecondPresentmentDMSSpecific, PreArbitrationDMSSpecific, ArbitrationDMSSpecific for following endpoints:
        - [`GET /v1/reports/reconciliationDetails`](#operation/getReconciliationDetails)
        - [`GET /v1/reports/reconciliationDetails/fundsTransferDate/{fundsTransferDate}`](#operation/getReconciliationDetailsFundsTransferDate)
        - [`GET /v1/reports/reconciliationDetails/networkFundsTransferKey/{networkFundsTransferKey}`](#operation/listReconciliationDetailsByNetworkFundsTransferKey)

      </div>

      <div data-section-id="tag/Release-Notes/1.264.0">

      ### 1.264.0 - Apr 14, 2025

      - **Experimental**: Added support for `ISO-4` `pinBlock.format` on the [`POST /v1/charges/pos`](#operation/createChargePos) endpoint.

      </div>

      <div data-section-id="tag/Release-Notes/1.263.0">

      ### 1.263.0 - Apr 9, 2025

      - Added support for receiving American Express [Disputes](#operation/Disputes):
        - Added the new value `american-express` to the `network`.
        - Added the new value `requestForInformation` to the `disputeStage`.
      - Added the new field `maskedNumber` to the `cardInfo` in all [Disputes](#operation/Disputes).
      - Added validation on the `taxRegistrationId` and `businessType` fields for US merchant onboarding on the following endpoints:
        - [Create Merchant](#operation/createMerchant).
        - [Update Merchant](#operation/updateMerchant).

      </div>

      <div data-section-id="tag/Release-Notes/1.262.0">

      ### 1.262.0 - Apr 9, 2025

      - **Breaking**: `sender` is now optional on the response for the following endpoints:
        - [`POST /v1/charges/funding`](#operation/createChargeFunding)
        - [`POST /v1/charges/mitFunding`](#operation/createChargeMitFunding)

      - `receiver.address.line1`, `receiver.address.city` and `receiver.address.postalCode` are no longer required in the request on the following endpoints:
        - [`POST /v1/charges/funding`](#operation/createChargeFunding)
        - [`POST /v1/charges/mitFunding`](#operation/createChargeMitFunding)

      </div>

      <div data-section-id="tag/Release-Notes/1.261.0">

      ### 1.261.0 - Mar 31, 2025

      - Updated the `isoId` field as optional for Discover enrollment details on the following endpoints:
        - [Get Enrollments](#operation/getAllEnrollments)
        - [Get an Enrollment](#operation/getEnrollmentByKey)
        - [Create an Enrollment](#operation/createEnrollment)
      - Changed the `BETA` tag to `EXPERIMENTAL` on the [Create an Enrollment](#operation/createEnrollment) endpoint.
      - Changed the `BETA` tag to `EXPERIMENTAL` on the `merchantAcceptorTemplate` field in the [Create a Merchant](#operation/createMerchant) endpoint.

      </div>

      <div data-section-id="tag/Release-Notes/1.260.1">

      ### 1.260.1 - Mar 31, 2025

      - Added support for the `PLN` currency on the [`POST /v1/reports/quarterlySchemeReport`](#operation/createQuarterlySchemeReport) endpoint

      </div>

      <div data-section-id="tag/Release-Notes/1.260.0">

      ### 1.260.0 - Mar 28, 2025

      - Added support for the following `fundingSource` types for Visa payouts on the [`POST /v1/charges/payout`](#operation/createChargePayout) endpoint:
        - `credit`
        - `debit`
        - `prepaid`
        - `deposit-account`
        - `cash`
        - `other`

      </div>

      <div data-section-id="tag/Release-Notes/1.259.0">

      ### 1.259.0 - Mar 26, 2025

      - **Breaking**: Removed the `enrollmentKey` field from the [`POST /v1/processorTokens`](#operation/createProcessorToken) endpoint.

      </div>

      <div data-section-id="tag/Release-Notes/1.258.0">

      ### 1.258.0 - Mar 24, 2025

      - **Breaking**: Removed deprecated endpoints from Reports:
        - [`GET /v1/reports/disputesMonitoring`](#operation/getDisputeMonitoringReport)
        - [`GET /v1/reports/fraudNotifications`](#operation/getFraudNotificationsReport)
      - Changed `BETA` tag to `EXPERIMENTAL` on the following endpoint:
        - [`GET /v1/screenings/{screeningKey}`](#tag/Screenings/operation/getScreening)
        - [`GET /v1/screenings`](#tag/Screenings/operation/listScreenings)
        - [`POST /v1/screenings`](#tag/Screenings/operation/postScreening)
      - **Deprecation**: The `cardInfo.last4` will be removed from the responses of the following endpoints on September 28 2025.
        - [`GET /v1/disputes`](#operation/getDisputes)
        - [`GET /v1/disputes/{disputeKey}`](#operation/getDispute)

      </div>

      <div data-section-id="tag/Release-Notes/1.257.0">

      ### 1.257.0 - Mar 21, 2025

      - Updated the [POST /v1/apiKeys](#operation/createApiKey) endpoint to include new Distributions `Distributions:*` related permissions.
      - **Experimental**: Released new Reports Distribution endpoints:
        - [`POST /v1/distributions`](#operation/createDistribution)
        - [`GET /v1/distributions`](#operation/listDistributions)
        - [`GET /v1/distributions/{distributionKey}`](#operation/getDistribution)
        - [`PATCH /v1/distributions/{distributionKey}`](#operation/updateDistribution)
        - [`DELETE /v1/distributions/{distributionKey}`](#operation/archiveDistribution)
      - Updated the [`POST /v1/reportSchedules`](#operation/createReportSchedule) endpoint to:
        - No longer return a `200` response if there is an existing entity with the same properties.
        - Return a `409` error if there's an existing schedule entity with the same properties.
        - Support passing a `distributions` array with distribution key(s) when creating a report schedule.
          - If passed, the scheduled report will be distributed to the targets once the report is completed.
          - If passed, the scheduled report will contain a `distributions` property as reference.
          - Returns a `409` error, if any of the distribution keys are invalid or archived.

      </div>

      <div data-section-id="tag/Release-Notes/1.256.0">

      ### 1.256.0 - Mar 20, 2025

      - **Deprecation**: The `fraudLiability` field on the [`POST /v1/charges/payout`](#operation/createChargePayout) will be removed on August 13 2025.
      - **Deprecation**: For all endpoints that support idempotency, the error with `type` of `/silverflow/problems/idempotency/request-is-still-being-processed` will no longer have an HTTP status code of 503. This will be changed to HTTP 409 on August 13 2025.
      - **Deprecation**: For all endpoints that support idempotency, the error with `type` of `/silverflow/problems/idempotency/request-body-mismatch` will be renamed to `/silverflow/problems/idempotency/request-mismatch` on August 13 2025.
      - Added support for the currency `XCG` (Caribbean Guilder).

      </div>

      <div data-section-id="tag/Release-Notes/1.255.0">

      ### 1.255.0 - Mar 19, 2025

      - Added the Visa Account Attack Intelligence Score under `authorizationIsoFields.networkSpecificFields.vaaiScore` for Visa charges on the following endpoints:
        - [`POST /v1/charges`](#operation/createCharge)
        - [`POST /v1/charges/mit`](#operation/createChargeMit)
        - [`POST /v1/charges/{chargeKey}/mit`](#operation/createChargeMitFromInitialCharge)
        - [`POST /v1/charges/pos`](#operation/createChargePos)
      - Added the `authorizationIsoFields.networkSpecificFields.cidResultCode` for Discover charges on the following endpoints:
        - [`POST /v1/charges`](#operation/createCharge)
        - [`POST /v1/charges/pos`](#operation/createChargePos)
        - [`POST /v1/charges/{chargeKey}/refund`](#operation/refund)

      </div>

      <div data-section-id="tag/Release-Notes/1.254.1">

      ### 1.254.1 - Mar 18, 2025

      - Added enrollment response example for Discover Merchant Profile Registration to the [Get Enrollment](#operation/getEnrollmentByKey) endpoint.

      </div>

      <div data-section-id="tag/Release-Notes/1.254.0">

      ### 1.254.0 - Mar 11, 2025

      - Added `discover-mpr` as a new enrollment type for Discover Merchant Profile Registration to the [Create Enrollment](#operation/createEnrollment) endpoint.

      </div>

      <div data-section-id="tag/Release-Notes/1.253.0">

      ### 1.253.0 - Mar 10, 2025

      - Enhanced support for the `sender.accountNumberType` and `receiver.accountNumberType` fields, now allowing the following values: `rtn-bank-account`, `email`, `phone-number`, `wallet-id`, and `social-network-id`. These changes apply to the following endpoints:
        - [`POST /v1/charges/funding`](#operation/createChargeFunding)
        - [`POST /v1/charges/payout`](#operation/createChargePayout)
      - Added the ANI (Account Name Inquiry) result under `authorizationIsoFields.networkSpecificFields.aniResults` for VISA account status charges on the following endpoints:
        - [`POST /v1/charges`](#operation/createCharge)
        - [`POST /v1/charges/mit`](#operation/createChargeMit)
        - [`POST /v1/charges/{chargeKey}/mit`](#operation/createChargeMitFromInitialCharge)

      </div>

      <div data-section-id="tag/Release-Notes/1.252.4">

      ### 1.252.4 - Mar 04, 2025

      - Added new endpoint [`GET /v1/reports/reconciliationDetails/networkFundsTransferKey/{networkFundsTransferKey}`](#operation/listReconciliationDetailsByNetworkFundsTransferKey).

      - Replaced the word "get" with "list" in the title of the following endpoints:
        - [`GET /v1/reports/reconciliationDetails`](#operation/getReconciliationDetails)
        - [`GET /v1/reports/reconciliationDetails/fundsTransferDate/{fundsTransferDate}`](#operation/getReconciliationDetailsFundsTransferDate)
        - [`GET /v1/reports/networkFundsTransfers/fundsTransferDate/{fundsTransferDate}`](#operation/getNetworkFundsTransfers)

      </div>

      <div data-section-id="tag/Release-Notes/1.252.3">

      ### 1.252.3 - Mar 4, 2025

      - Defined a discriminator on the `BIN` based on the `network` field value.

      </div>

      <div data-section-id="tag/Release-Notes/1.252.2">

      ### 1.252.2 - Feb 28, 2025

      - Changed `BETA` tag to `EXPERIMENTAL` on the following endpoint:
        - [`POST /v1/fees/scheme/estimate`](#tag/Fees/operation/getSchemeFeeEstimation)

      </div>

      <div data-section-id="tag/Release-Notes/1.252.1">

      ### 1.252.1 - Feb 28, 2025

      - Changed remaining `BETA` tags to `EXPERIMENTAL` on the following endpoints:
        - [`POST /v1/3ds`](#operation/create3dsAuthentication)
        - [`POST /v1/3ds/3ri`](#operation/create3riAuthentication)
        - [`POST /v1/3ds/cardRanges`](#operation/3dsCardRanges)
        - [`POST /v1/charges`](#operation/createCharge)
        - [`POST /v1/charges/funding`](#operation/createChargeFunding)
        - [`POST /v1/charges/payout`](#operation/createChargePayout)
        - [`POST /v1/charges/mit`](#operation/createChargeMit)
        - [`POST /v1/charges/mitFunding`](#operation/createChargeMitFunding)
        - [`POST /v1/processorTokens`](#operation/createProcessorToken)
        - [`GET /v1/processorTokens`](#operation/getProcessorTokens)
        - [`GET /v1/processorTokens/{processorTokenKey}`](#operation/getProcessorToken)
        - [`DELETE /v1/processorTokens/{processorTokenKey}`](#operation/archiveProcessorToken)
        - [`POST /v1/networkTokens`](#operation/createToken)
        - [`GET /v1/networkTokens`](#operation/listTokens)
        - [`GET /v1/networkTokens/{networkTokenKey}`](#operation/getToken)
        - [`DELETE /v1/networkTokens/{networkTokenKey}`](#operation/archiveToken)
        - [`GET /v1/networkTokens/{networkTokenKey}/networkTokenData`](#operation/getTokenData)
        - [`POST /v1/networkTokens/{networkTokenKey}/cryptogram`](#operation/createCryptogram)

      </div>

      <div data-section-id="tag/Release-Notes/1.252.0">

      ### 1.252.0 - Feb 27, 2025

      - **Breaking**: Renamed `card.key` to `card.processorTokenKey` for the following endpoints:
        - [`POST /v1/charges`](#operation/createCharge)
        - [`POST /v1/charges/funding`](#operation/createChargeFunding)
        - [`POST /v1/charges/payout`](#operation/createChargePayout)
        - [`POST /v1/charges/mit`](#operation/createChargeMit)
        - [`POST /v1/charges/mitFunding`](#operation/createChargeMitFunding)
        - [`POST /v1/3ds`](#operation/create3dsAuthentication)
        - [`POST /v1/3ds/3ri`](#operation/create3riAuthentication)
        - [`POST /v1/3ds/cardRanges`](#operation/3dsCardRanges)
      - Added support for Visa merchant acceptors with the following `mcc`s for funding charges with `type.fundingType` `account-to-account` on the [`POST /v1/charges/funding`](#operation/createChargeFunding) endpoint:
        - `4829`
        - `6012`
        - `6211`
      - Added new `type.fundingType` `person-to-person` for Mastercard to the [`POST /v1/charges/funding`](#operation/createChargeFunding) endpoint. Merchant acceptors with the following `mcc`s are supported:
        - `6538`
        - `4829`
        - `6540`
      - Added new `type.payoutType` `person-to-person` for Mastercard to the [`POST /v1/charges/payout`](#operation/createChargePayout) endpoint. Merchant acceptors with the following `mcc`s are supported:
        - `6538`
        - `4829`
        - `6540`

      </div>

      <div data-section-id="tag/Release-Notes/1.251.0">

      ### 1.251.0 - Feb 26, 2025

      - Updated the maximum length of `websiteUrl` for VMSS requests to the [`POST /v1/screenings`](#operation/postScreening) endpoint.

      </div>

      <div data-section-id="tag/Release-Notes/1.250.1">

      ### 1.250.1 - Feb 26, 2025

      - Changed `BETA` tags to `EXPERIMENTAL` in documentation for Card Info endpoints.

      </div>

      <div data-section-id="tag/Release-Notes/1.250.0">

      ### 1.250.0 - Feb 26, 2025

      - Added `createdFrom` and `createdTo` query parameters to the [`GET /v1/reports`](#tag/Retrieve-Reports/operation/listReport) endpoint.

      </div>

      <div data-section-id="tag/Release-Notes/1.249.0">

      ### 1.249.0 - Feb 25, 2025

      - Added new book date parameters to the [`POST /v1/reports/schemeFeeDetails`](#tag/Scheme-Fee-Reports/operation/schemeFeeDetails) endpoint.
      - **Deprecation**: The `feeDateFrom`, `feeDateTo` and `sinceToken` on the [`POST /v1/reports/schemeFeeDetails`](#tag/Scheme-Fee-Reports/operation/schemeFeeDetails) endpoint will be removed by Aug 25th, 2025.
      - **Deprecation**: The [`GET /v1/reports/quarterlyNetwork/:network/:acquirerId/:year/:quarter`](#operation/getQuarterlyReport) endpoint will be removed by Aug 13th, 2025.
      - Changed the `BETA` tag to the `EXPERIMENTAL` tag on the following endpoints:
        - [`POST /v1/reports/reconciliationDetailRecords`](#tag/Settlement-Reports/operation/reconciliationDetails)
        - [`POST /v1/reports/networkFundsTransfers`](#tag/Settlement-Reports/operation/createNetworkFundsTransfersReport)
        - [`POST /v1/reports/quarterlySchemeReport`](#tag/Card-Network-Reports/operation/createQuarterlySchemeReport)
        - [`POST /v1/reports/disputeHistoryEvents`](#tag/Dispute-Reports/operation/createDisputeHistoryEventsReport)
        - [`POST /v1/reports/fraudNotificationRecords`](#tag/Fraud-Notifications-Reports/operation/createFraudNotificationsReport)
        - [`POST /v1/reports/charges`](#tag/Charges-Reports/operation/createChargesReport)
        - [`POST /v1/schemeFeeDetails`](#tag/Scheme-Fee-Reports/operation/schemeFeeDetails)
        - [`GET /v1/reports`](#tag/Retrieve-Reports/operation/listReport)
        - [`GET /v1/reports/{reportKey}`](#tag/Retrieve-Reports/operation/getReport)
        - [`GET /v1/reports/{reportKey}/file`](#tag/Retrieve-Reports/operation/getReportFile)
        - [`POST /v1/reportSchedules`](#tag/Report-Scheduling/operation/createReportSchedule)
        - [`GET /v1/reportSchedules`](#tag/Report-Scheduling/operation/listReportSchedules)
        - [`GET /v1/reportSchedules/{reportScheduleKey}`](#tag/Report-Scheduling/operation/getReportSchedule)
        - [`DELETE /v1/reportSchedules/{reportScheduleKey}`](#tag/Report-Scheduling/operation/archiveReportSchedule)

      </div>

      <div data-section-id="tag/Release-Notes/1.248.0">

      ### 1.248.0 - Feb 20, 2025

      - Added the `bid` (Business Identification Number) property to Visa [BINs](#tag/BINs). The BID is used to generate the Quarterly report and in VMSS screening.

      </div>

      <div data-section-id="tag/Release-Notes/1.247.1">

      ### 1.247.1 - Feb 18, 2025

      - Removed `threeDsAuthenticationResult.type` from the following endpoint requests:
        - [`POST /v1/charges`](#operation/createCharge)
        - [`POST /v1/charges/mit`](#operation/createChargeMit)
        - [`POST /v1/charges/{chargeKey}/mit`](#operation/createChargeMitFromInitialCharge)
      - Removed `authentication.sca.result.type` from the response for 3DS-authenticated charges on the following endpoints:
        - [`POST /v1/charges`](#operation/createCharge)
        - [`POST /v1/charges/mit`](#operation/createChargeMit)
        - [`POST /v1/charges/{chargeKey}/mit`](#operation/createChargeMitFromInitialCharge)

      </div>

      <div data-section-id="tag/Release-Notes/1.247.0">

      ### 1.247.0 - Feb 14, 2025

      - Added new enum value `approved-purchase-amount-only` to authorization action field `status.authorization`.
      - The following fields in the `authorizationIsoFields` on the Charge entity are now optional and won't be returned if the field content is missing:
        - `networkReferenceId` for Discover charges
        - `avsResult` and `cvcResult` for American Express charges

      </div>

      <div data-section-id="tag/Release-Notes/1.246.1">

      ### 1.246.1 - Feb 13, 2025

      - Fixed documentation by updating validation rules for `principals` in VMSS screening requests and `doingBusinessAsName`, `address` in MATCH screening requests on the [`POST /v1/screenings`](#operation/postScreening) endpoint.

      </div>

      <div data-section-id="tag/Release-Notes/1.246.0">

      ### 1.246.0 - Feb 11, 2025

      - Added `limited_liability_company` as a new enum value to the `businessType` property on [Merchants](#tag/Merchants) endpoints

      </div>

      <div data-section-id="tag/Release-Notes/1.245.0">

      ### 1.245.0 - Feb 6, 2025

      - The response for the following endpoints related to DisputeEventHistory now includes the `disputeReason`. <br> <b>Note: </b> the `disputeReason` field may be `undefined` for events that occurred before this update.
        - [`GET /v1/disputes/{disputeKey}/eventHistory`](#operation/getDisputeEventHistory)
        - [`GET /v1/disputes/eventHistory/{eventHistoryKey}`](#operation/getEventHistory)

      </div>

      <div data-section-id="tag/Release-Notes/1.244.0">

      ### 1.244.0 - Feb 4, 2025

      - Added support for `type.intent` `reservation` for American Express charges on the [`POST /v1/charges`](#operation/createCharge) endpoint.
      - Added support to refund Visa funding charges on the [`POST v1/charges/{chargeKey}/refund`](#operation/refund) endpoint.

      </div>

      <div data-section-id="tag/Release-Notes/1.243.5">

      ### 1.243.5 - Feb 3, 2025

      - Added `discover` as an enum value to the `cardNetwork` property on the Reconciliation Endpoints.

      </div>

      <div data-section-id="tag/Release-Notes/1.243.4">

      ### 1.243.4 - Jan 30, 2025

      - The specification of the Reconciliation Detail object in responses on the below endpoints has been restructured to be easier to read. Examples have also been updated. Note that there are no changes to the actual format of the data in the responses.
        - [`GET /v1/reports/reconciliationDetails`](#operation/getReconciliationDetails)
        - [`GET /v1/reports/reconciliationDetails/fundsTransferDate/{fundsTransferDate}`](#operation/getReconciliationDetailsFundsTransferDate)

      </div>

      <div data-section-id="tag/Release-Notes/1.243.3">

      ### 1.243.3 - Jan 29, 2025

      - Added the `dynamicDescriptor` to the response of the [`POST /v1/charges/mit`](#operation/createChargeMit) endpoint.
      - Added the `dynamicDescriptor` to the responses of the following endpoints for MIT charges:
        - [`GET /v1/charges/{chargeKey}`](#operation/getCharge)
        - [`GET /v1/charges`](#operation/getCharges)

      </div>

      <div data-section-id="tag/Release-Notes/1.243.2">

      ### 1.243.2 - Jan 28, 2025

      - The following features are no longer considered to be in Beta:
        - [`POST /v1/3ds/3ri`](#operation/create3riAuthentication) endpoint
        - `threeDSMethodURL` field on the [`POST /v1/3ds/cardRanges`](#operation/3dsCardRanges) endpoint
        - `threeDSServerTransID` field on the [`POST /v1/3ds`](#operation/create3dsAuthentication) endpoint
        - The following values for field `type.payoutType` on the [`POST /v1/charges/payout`](#operation/createChargePayout) endpoint:
          - `account-to-account`
          - `merchant-disbursement`
        - `transactionType` field on the [`POST /v1/charges`](#operation/createCharge) and [`POST /v1/charges/mit`](#operation/createChargeMit) endpoints
        - `tokenDetails` field on the following endpoints:
          - [`POST /v1/charges`](#operation/createCharge)
          - [`POST /v1/charges/funding`](#operation/createChargeFunding)
          - [`POST /v1/charges/mit`](#operation/createChargeMit)

      </div>

      <div data-section-id="tag/Release-Notes/1.243.1">

      ### 1.243.1 - Jan 27, 2025

      - **Deprecation**: All Bank Account related properties and permissions will be removed on Feb 10.

      </div>

      <div data-section-id="tag/Release-Notes/1.243.0">

      ### 1.243.0 - Jan 23, 2025

      - **Breaking**: Started disallowing additional subfields not specified by the API specification
        for `merchantAcceptorResolver` on the following endpoints:
        - [`POST /v1/charges`](#operation/createCharge)
        - [`POST /v1/charges/funding`](#operation/createChargeFunding)
        - [`POST /v1/charges/payout`](#operation/createChargePayout)
        - [`POST /v1/charges/pos`](#operation/createChargePos)
        - [`POST /v1/charges/mit`](#operation/createChargeMit)
        - [`POST /v1/charges/mitFunding`](#operation/createChargeMitFunding)

      </div>

      <div data-section-id="tag/Release-Notes/1.242.3">

      ### 1.242.3 - Jan 21, 2025

      - Updated [`GET /v1/reports/{reportKey}/file`](#operation/getReportFile) endpoint description and response specification, to clarify that the contents are `gzip` encoded.

      </div>

      <div data-section-id="tag/Release-Notes/1.242.1">

      ### 1.242.1 - Jan 17, 2025

      - Updated validation on the `acquirerIdCode`, `acquirerBin` and `isoId` fields for `Discover` [BINs](#tag/BINs) to allow up to 11 characters in length.

      </div>

      <div data-section-id="tag/Release-Notes/1.242.0">

      ### 1.242.0 - Jan 17, 2025

      - Added the `threeRiIndicator` field in the response of the [`POST /v1/3ds/3ri`](#operation/create3riAuthentication) endpoint.

      </div>

      <div data-section-id="tag/Release-Notes/1.241.0">

      ### 1.241.0 - Jan 15, 2025

      - **Breaking**: Removed deprecated enum value `subsequent` from `type.sequence` on
        the [`POST /v1/3ds`](#operation/create3dsAuthentication) endpoint.
      - **Breaking**: Started disallowing additional subfields not specified by the API specification
        for `merchantAcceptorResolver` on the [`POST /v1/3ds/3ri`](#operation/create3riAuthentication) endpoint.

      </div>

      <div data-section-id="tag/Release-Notes/1.240.0">

      ### 1.240.0 - Jan 13, 2025

      - Added new `fundingType` `liquid-assets` to the [`POST /v1/charges/funding`](#operation/createChargeFunding) endpoint. This `fundingType` is currently only supported for Visa.

      </div>

      <div data-section-id="tag/Release-Notes/1.239.0">

      ### 1.239.0 - Jan 10, 2025

      - Added new `payoutType` `liquid-assets` to the [`POST /v1/charges/payout`](#operation/createChargePayout) endpoint. This `payoutType` is currently only supported for Visa.

      </div>

      <div data-section-id="tag/Release-Notes/1.238.1">

      ### 1.238.1 - Jan 10, 2025

      - Updated the description of the `gatewayId` field on [Merchant Acceptors](#tag/Merchant-Acceptors).

      </div>

      <div data-section-id="tag/Release-Notes/1.238.0">

      ### 1.238.0 - Jan 9, 2025

      - Added `paymentAccountReference` for Visa and Mastercard if present on the following endpoints:
        - [`POST /v1/charges`](#operation/createCharge)
        - [`POST /v1/charges/funding`](#operation/createChargeFunding)
        - [`POST /v1/charges/pos`](#operation/createChargePos)
        - [`POST /v1/charges/{chargeKey}/mit`](#operation/createChargeMitFromInitialCharge)
        - [`POST /v1/charges/payout`](#operation/createChargePayout)
        - [`POST /v1/charges/mit`](#operation/createChargeMit)
        - [`POST /v1/charges/mitFunding`](#operation/createChargeMitFunding)

      </div>

      <div data-section-id="tag/Release-Notes/1.237.0">

      ### 1.237.0 - Jan 8, 2025

      - Added initial support for Level 2 and Level 3 data for Visa and Mastercard on the [`POST /v1/charges`](#operation/createCharge) endpoint.

      </div>

      <div data-section-id="tag/Release-Notes/1.236.1">

      ### 1.236.1 - Jan 7, 2025

      - Moved Reconciliation Endpoints that don't generate downloadable reports from the Reports section to the Reconciliation section.

      </div>

      <div data-section-id="tag/Release-Notes/1.236.0">

      ### 1.236.0 - Jan 3, 2025

      - Added Mastercard support for the `merchant-disbursement` payout type on the [`POST /v1/charges/payout`](#operation/createChargePayout) endpoint.

      </div>

      <div data-section-id="tag/Release-Notes/1.235.0">

      ### 1.235.0 - Jan 2, 2025

      - **Beta**: Released new Report Scheduling endpoints:
        - [`POST /v1/reportSchedules`](#operation/createReportSchedule)
        - [`GET /v1/reportSchedules`](#operation/listReportSchedules)
        - [`GET /v1/reportSchedules/{reportScheduleKey}`](#operation/getReportSchedule)
        - [`DELETE /v1/reportSchedules/{reportScheduleKey}`](#operation/archiveReportSchedule)
      - Updated the [`GET /v1/reports`](#operation/listReport) endpoint to:
        - Added new specific `InvalidOffsetTokenError` error when the passed offset token is not valid.
        - Changed the name of the `order` query parameter to `sortOrder`, to align with our naming conventions.

      </div>

      <div data-section-id="tag/Release-Notes/1.234.0">

      ### 1.234.0 - Jan 2, 2025

      - **Beta**: Added support for `discover` in the [`GET /v1/cardInfo/{network}`](#operation/getCardInfo) endpoint.

      </div>

      <div data-section-id="tag/Release-Notes/1.233.0">

      ### 1.233.0 - Dec 19, 2024

      - **Beta**: Added support to `discover` in the [`POST /v1/cardInfo`](#operation/postCardInfo) endpoint.

      </div>

      <div data-section-id="tag/Release-Notes/1.232.1">

      ### 1.232.1 - Dec 19, 2024

      - Updated validation on the `mid` field for American Express Merchant Acceptors to allow up to 20 characters in length.

      </div>

      <div data-section-id="tag/Release-Notes/1.232.0">

      ### 1.232.0 - Dec 18, 2024

      - Added cashback support to the [`POST /v1/charges/pos`](#operation/createChargePos) endpoint, using the new `amount.breakdown.cashback` property.

      </div>

      <div data-section-id="tag/Release-Notes/1.231.0">

      ### 1.231.0 - Dec 17, 2024

      - Added `general-funds-disbursement` as a new `type.fundingType` to the [`POST /v1/charges/funding`](#operation/createChargeFunding) endpoint.
      - Added `account-to-account` as a new `type.payoutType` to the [`POST /v1/charges/payout`](#operation/createChargePayout) endpoint.
      - Deprecated the [`POST /v1/charges/{chargeKey}/cancelOrRefund`](#operation/cancelOrRefundCharge) endpoint.

      </div>

      <div data-section-id="tag/Release-Notes/1.230.1">

      ### 1.230.1 - Dec 13, 2024

      - Added the optional properties `feeProgramName` and `cpsProgram` to the `interchangeFeeProgram.designator` object on the responses of following endpoints:
        - [`GET /v1/reports/reconciliationDetails`](#operation/getReconciliationDetails)
        - [`GET /v1/reports/reconciliationDetails/fundsTransferDate/{fundsTransferDate}`](#operation/getReconciliationDetailsFundsTransferDate)

      </div>

      <div data-section-id="tag/Release-Notes/1.230.0">

      ### 1.230.0 - Dec 12, 2024

      - **Breaking**: Removed deprecated field `threeDsAuthenticationResult.acsTransId` from the following endpoints:
        - [`POST /v1/charges`](#operation/createCharge)
        - [`POST /v1/charges/funding`](#operation/createChargeFunding)
        - [`POST /v1/charges/payout`](#operation/createChargePayout)
        - [`POST /v1/charges/{chargeKey}/mit`](#operation/createChargeMitFromInitialCharge)
      - **Breaking**: Removed deprecated enum values `non-authenticated`, `recurring`, and `mit` from `threeDsAuthenticationResult.type` on the following endpoints:
        - [`POST /v1/charges`](#operation/createCharge)
        - [`POST /v1/charges/funding`](#operation/createChargeFunding)
        - [`POST /v1/charges/payout`](#operation/createChargePayout)
        - [`POST /v1/charges/mit`](#operation/createChargeMit)
        - [`POST /v1/charges/{chargeKey}/mit`](#operation/createChargeMitFromInitialCharge)

      </div>

      <div data-section-id="tag/Release-Notes/1.229.0">

      ### 1.229.0 - Dec 6, 2024

      - **Breaking**: Removed the following deprecated fields from the [`POST /v1/charges/{chargeKey}/mit`](#operation/createChargeMitFromInitialCharge) endpoint:
        - The `card` field.
        - The `refund` enum in the `intent` field.
      - Improved error documentation around idempotency.

      </div>

      <div data-section-id="tag/Release-Notes/1.228.2">

      ### 1.228.2 - Dec 6, 2024

      - Update the example for the [`POST /fees/scheme/estimate`](#operation/getSchemeFeeEstimation) endpoint.

      </div>

      <div data-section-id="tag/Release-Notes/1.228.1">

      ### 1.228.1 - Dec 5, 2024

      - Updated `originalFilename` validation to disallow hyphens (-) in filenames while maintaining support for alphanumeric characters, underscores, spaces, and parentheses. [`POST /v1/disputes/{disputeKey}/documents`](#operation/addDisputeDocumentsMetadata)

      </div>

      <div data-section-id="tag/Release-Notes/1.228.0">

      ### 1.228.0 - Dec 3, 2024

      - Added American Express support to the [`GET /v1/cardInfo/{network}`](#operation/getCardInfo) endpoint.

      </div>

      <div data-section-id="tag/Release-Notes/1.227.0">

      ### 1.227.0 - Dec 3, 2024

      - Added a new optional field `transactionType` on the following endpoints:
        - [`POST /v1/charges`](#operation/createCharge)
        - [`POST /v1/charges/mit`](#operation/createChargeMit)
      - **Breaking**: Removed deprecated `status.refunds` and `status.settlement` from charges responses on the following endpoints:
        - [`POST /v1/charges`](#operation/createCharge)
        - [`POST /v1/charges/bep`](#operation/createChargeBep)
        - [`POST /v1/charges/funding`](#operation/createChargeFunding)
        - [`POST /v1/charges/payout`](#operation/createChargePayout)
        - [`POST /v1/charges/pos`](#operation/createChargePos)
        - [`POST /v1/charges/{chargeKey}/mit`](#operation/createChargeMitFromInitialCharge)
        - [`POST /v1/charges/mit`](#operation/createChargeMit)
        - [`POST /v1/charges/mitFunding`](#operation/createChargeMitFunding)
        - [`POST /v1/charges/{initialChargeKey}/wip`](#operation/createChargeWip)
        - [`GET /v1/charges/{chargeKey}`](#operation/getCharge)
        - [`GET /v1/charges`](#operation/getCharges)

      </div>

      <div data-section-id="tag/Release-Notes/1.226.0">

      ### 1.226.0 - Dec 3, 2024

      - **Beta**: Added the [`POST /v1/reports/quarterlySchemeReport`](#operation/createQuarterlySchemeReport) endpoint, which allows you to create a Visa or Mastercard quarterly scheme report. This endpoint requires a new permission, `reports:Create`.
      - Updated the [`GET /v1/reports/{reportKey}/file`](#operation/getReportFile) endpoint to allow you to download this report with the new `reports:DownloadQuarterlySchemeReport` permission.

      </div>

      <div data-section-id="tag/Release-Notes/1.225.1">

      ### 1.225.1 - Dec 03, 2024

      - Removed the deprecated property `settlementService.cutOffTime` from the responses of following endpoints:
        - [`GET /v1/reports/reconciliationDetails`](#operation/getReconciliationDetails)
        - [`GET /v1/reports/reconciliationDetails/fundsTransferDate/{fundsTransferDate}`](#operation/getReconciliationDetailsFundsTransferDate)

      </div>

      <div data-section-id="tag/Release-Notes/1.225.0">

      ### 1.225.0 - Nov 27, 2024

      - Added Mastercard support for the `general-funds-disbursement` payout type on the [`POST /v1/charges/payout`](#operation/createChargePayout) endpoint.

      </div>

      <div data-section-id="tag/Release-Notes/1.224.0">

      ### 1.224.0 - Nov 25, 2024

      - Length of `principal.firstName` is limited to 40 characters on the [`POST /v1/screenings`](#operation/postScreening) endpoint when screening type is `MATCH`.
      - Length of `principal.lastName` is limited to 40 characters on the [`POST /v1/screenings`](#operation/postScreening) endpoint when screening type is `MATCH`.

      </div>

      <div data-section-id="tag/Release-Notes/1.223.0">

      ### 1.223.0 - Nov 21, 2024

      - Added optional `businessType` property to the Merchant. This property can be populated to qualify for L2 scheme fees for Visa and Mastercard in the United States.
      - Added support for VAU (Visa Account Updater) enrollments on the [`POST /v1/enrollments`](#operation/createEnrollment) endpoint.
      - Added a new permission: `reports:CreateSchemeFeeDetailsSchedule`

      </div>

      <div data-section-id="tag/Release-Notes/1.222.0">

      ### 1.222.0 - Nov 15, 2024

      - The [`POST /v1/3ds`](#operation/create3dsAuthentication) endpoint now supports `data-only` in the `challengeIndicator` field.
      - The [`POST /v1/3ds/cardRanges`](#operation/3dsCardRanges) endpoint now generates a `threeDSServerTransID` which can be used to execute the 3DS Method Flow.
      - The [`POST /v1/charges/funding`](#operation/createChargeFunding) endpoint now supports `account-to-account` as a `fundingType` for Mastercard.

      </div>

      <div data-section-id="tag/Release-Notes/1.221.1">

      ### 1.221.1 - Nov 15, 2024

      - Removed the maximum integer value on the reported amount on the [Network Funds Transfers](#operation/getNetworkFundsTransfers).

      </div>

      <div data-section-id="tag/Release-Notes/1.221.0">

      ### 1.221.0 - Nov 13, 2024

      - The [`POST /v1/bep/{bepKey}/authorizationResult`](#operation/finalizeBep) endpoint ensures each BEP authentication is only finalized once, and will respond with a 409 error for invalid finalization requests.

      </div>

      <div data-section-id="tag/Release-Notes/1.220.0">

      ### 1.220.0 - Nov 8, 2024

      - The [`POST /v1/charges/bep`](#operation/createChargeBep) endpoint no longer waits for the BEP authentication to be finalized. Instead, the webhook provided to the [`POST /v1/bep`](#operation/bep) endpoint will be called with `authenticationStatus` `finalized` once the authentication was finalized.

      </div>

      <div data-section-id="tag/Release-Notes/1.219.0">

      ### 1.219.0 - Nov 8, 2024

      - **Beta**: Modified the [Get report file endpoint](#operation/getReportFile) to download reports. This endpoint now responds with a `307` redirect to another URL that serves the file. This optimization allows for faster downloads of files of any size.

      </div>

      <div data-section-id="tag/Release-Notes/1.218.0">

      ### 1.218.0 - Nov 7, 2024

      - Increased the maximum allowed characters of the `authenticationContext.browserData.language` field on the [`POST /v1/3ds`](#operation/create3dsAuthentication) endpoint from 8 characters to 35 characters.
      - Added new fields `amount` and `network` to the [3DS response entity](#tag/3DS-Authentication).

      </div>

      <div data-section-id="tag/Release-Notes/1.217.1">

      ### 1.217.1 - Nov 6, 2024

      - Removed unsupported `bancontact` network from the [Get Quarterly Report](#operation/getQuarterlyReport) endpoint.

      </div>

      <div data-section-id="tag/Release-Notes/1.217.0">

      ### 1.217.0 - Nov 6, 2024

      - Added the ability to retrieve card information by providing a processor token key in the [`POST /v1/cardInfo`](#operation/postCardInfo) endpoint.

      </div>

      <div data-section-id="tag/Release-Notes/1.216.0">

      ### 1.216.0 - Nov 5, 2024

      - Added support for `Discover`[BINs](#tag/BINs) and [Merchant Acceptors](#tag/Merchant-Acceptors).
      - Added `CNH`, `SLE`, and `ZWG` to the common currency codes list.
      - Added `VAU` as a new enrollment type to the [`POST /v1/enrollments`](#operation/createEnrollment) endpoint.
      - Added descriptions to clarify the validation conditions for `stateOrProvince` on the Merchant Acceptor and Merchant entities.
      - Use common `currencyCode` schema for `authorizationCurrency` on `AmexBin`.
      - **Deprecation**: the `restrictions` array on the Merchant Acceptor entity is now deprecated and replaced by the `chargesBlocked` property.

      </div>

      <div data-section-id="tag/Release-Notes/1.215.0">

      ### 1.215.0 - Nov 4, 2024

      - Improved validation of `principles` for VMSS screening requests on the [`POST /v1/screenings`](#operation/postScreening) endpoint.

      </div>

      <div data-section-id="tag/Release-Notes/1.214.0">

      ### 1.214.0 - Nov 1, 2024

      - Improved validation of `initialTransactionReferences.initialTransactionIdentifier` for Visa transactions on the [`POST /v1/charges/mit`](#operation/createChargeMit) endpoint.
      - Deprecated `card.first6` and `card.last4` on responses from the following endpoints:
        - [`POST /v1/charges`](#operation/createCharge)
        - [`POST /v1/charges/bep`](#operation/createChargeBep)
        - [`POST /v1/charges/funding`](#operation/createChargeFunding)
        - [`POST /v1/charges/payout`](#operation/createChargePayout)
        - [`POST /v1/charges/pos`](#operation/createChargePos)
        - [`POST /v1/charges/{chargeKey}/mit`](#operation/createChargeMitFromInitialCharge)
        - [`POST /v1/charges/mit`](#operation/createChargeMit)
        - [`POST /v1/charges/mitFunding`](#operation/createChargeMitFunding)
        - [`POST /v1/charges/{initialChargeKey}/wip`](#operation/createChargeWip)
        - [`GET /v1/charges/{chargeKey}`](#operation/getCharge)
        - [`GET /v1/charges`](#operation/getCharges)

      </div>

      <div data-section-id="tag/Release-Notes/1.213.1">

      ### 1.213.1 - Oct 31, 2024

      - Added input validation errors and examples to the following reports endpoints:
        - [`POST /reports/charges`](#tag/Charges-Reports/operation/createChargesReport)
        - [`POST /reports/disputeHistoryEvents`](#tag/Dispute-Reports/operation/createDisputeHistoryEventsReport)
        - [`POST /reports/fraudNotificationRecords`](#tag/Fraud-Notifications-Reports/operation/createFraudNotificationsReport)
        - [`POST /reports/schemeFeeDetails`](#tag/Scheme-Fee-Reports/operation/schemeFeeDetails)
        - [`POST /reports/reconciliationDetailRecords`](#tag/Settlement-Reports/operation/reconciliationDetails)
        - [`POST /reports/networkFundsTransfers`](#tag/Settlement-Reports/operation/createNetworkFundsTransfersReport)

      </div>

      <div data-section-id="tag/Release-Notes/1.213.0">

      ### 1.213.0 - Oct 18, 2024

      - Added `authorizationCurrency` to the [`GET /v1/bins/{binKey}`](#tag/BINs/operation/getBin) endpoint for `AmexBin`. Authorization Currency is used by American-Express to verify an authorization for provided SE Number.
      - New feature: Disputes created through Visa Rapid Dispute Resolution (RDR) will be present on the platform with the `rapidDisputeResolution` stage.

      </div>

      <div data-section-id="tag/Release-Notes/1.212.0">

      ### 1.212.0 - Oct 17, 2024

      - **Beta:** Added `payoutType` `merchant-disbursement` to the [`POST /v1/charges/payout`](#operation/createChargePayout) endpoint. This allows creating merchant disbursement payout charges.

      </div>

      <div data-section-id="tag/Release-Notes/1.211.2">

      ### 1.211.2 - Oct 15, 2024

      - Added example for a cryptogram in the `authenticationData` field in the [`POST /v1/networkTokens/{networkTokenKey}/cryptogram`](#operation/createCryptogram) endpoint.

      </div>

      <div data-section-id="tag/Release-Notes/1.211.1">

      ### 1.211.1 - Oct 15, 2024

      - Added missing section to [Download Report endpoint](#operation/downloadReportFile) endpoint.

      </div>

      <div data-section-id="tag/Release-Notes/1.211.0">

      ### 1.211.0 - Oct 15, 2024

      - **Beta**: Added new [Download Report endpoint](#operation/downloadReportFile) to download reports. This endpoint is optimized and allows faster downloads of files of any size.

      </div>

      <div data-section-id="tag/Release-Notes/1.210.0">

      ### 1.210.0 - Oct 8, 2024

      - **Breaking:** Renamed the [Network Tokenization](#tag/Network-Tokenization) endpoints from `tokens` to `networkTokens`.

      </div>

      <div data-section-id="tag/Release-Notes/1.209.0">

      ### 1.209.0 - Oct 7, 2024

      - Make regional endpoints the default and list the `.co` domains as an alias

      </div>

      <div data-section-id="tag/Release-Notes/1.208.0">

      ### 1.208.0 - Oct 4, 2024

      - Added the new [`POST /v1/reports/charges`](#operation/createChargesReport) endpoint to generate a Charges report.
      - Renamed `tokens` permissions to `networkTokens` in [`POST /v1/apiKeys`](#operation/createApiKey) and [`POST /v1/agents/{agentKey}/bearerToken`](#operation/createAgentBearerToken) endpoints.

      </div>

      <div data-section-id="tag/Release-Notes/1.207.0">

      ### 1.207.0 - Oct 2, 2024

      - Added validation for Visa Cross-border-only cards on all [Charges endpoints](#tag/Create-Charges).
        Attempting to use such a card for a domestic transaction will result in a 409 error with the type
        `/silverflow/problems/charge/incompatible-card`.

      </div>

      <div data-section-id="tag/Release-Notes/1.206.3">

      ### 1.206.3 - Sep 30, 2024

      - Adds the `cardHolderInformation` field on the body request of [`POST /v1/processorTokens`](#operation/createProcessorToken).

      </div>

      <div data-section-id="tag/Release-Notes/1.206.1">

      ### 1.206.1 - Sep 20, 2024

      - Adjusted `city`, `doingBusinessAsName`, `firstName` and `lastName` fields length in the [`POST /v1/screenings`](#operation/postScreening) endpoint:
        - For MATCH, the `city` field is limited to 20 characters and `doingBusinessAsName` field is limited to 60 characters.
        - For VMSS, the `city` field is limited to 30 characters and `doingBusinessAsName` field is limited to 70 characters.
        - For VMSS, the principal's `firstName` and `lastName` fields are limited to 35 characters

      </div>

      <div data-section-id="tag/Release-Notes/1.206.0">

      ### 1.206.0 - Sep 19, 2024

      - **Beta:** Added the new [`POST /v1/charges/mitFunding`](#operation/createChargeMitFunding) endpoint.
      - Removed the deprecated `riskCheck` property from all charge creation endpoints.

      </div>

      <div data-section-id="tag/Release-Notes/1.204.0">

      ### 1.204.0 - Sep 16, 2024

      - Updated the `CountryCode` to accept only `oneOf`: `alpha3`, `alpha2`, `numeric` in [`POST /v1/screenings`] endpoint for MATCH request.
      - Trimmed the `websiteURL` in [`POST /v1/screenings`] endpoint for VMSS request to ensure it does not exceed 40 characters.

      </div>

      <div data-section-id="tag/Release-Notes/1.203.0">

      ### 1.203.0 - Sep 11, 2024

      - Added support for generating new report types:
        - [`POST /v1/reports/fraudNotificationRecords`](#operation/createFraudNotificationsReport)
        - [`POST /v1/reports/networkFundsTransfers`](#operation/createNetworkFundsTransfersReport)
        - [`POST /v1/reports/disputeHistoryEvents`](#operation/createDisputeHistoryEventsReport)

      </div>

      <div data-section-id="tag/Release-Notes/1.202.0">

      ### 1.202.0 - Sep 9, 2024

      - Added support for UCOF on the [`POST /v1/3ds/3ri`](#operation/create3riAuthentication) endpoint. This can be enabled by using the value `ucof` on the `threeRiIndicator` property.

      </div>

      <div data-section-id="tag/Release-Notes/1.201.2">

      ### 1.201.2 - Sep 5, 2024

      - Added `fraudLiability` and `transactionReference` properties to the `chargeInfo` property of `FraudNotification`
      - Removed `reversalDetails` from the `Dispute` model
      - Fixed declaration of the `submittedDefense.files` property of `Dispute` to match the actual response format

      </div>

      <div data-section-id="tag/Release-Notes/1.201.1">

      ### 1.201.1 - Sep 5, 2024

      - Updated documentation referring to [Processor Tokenization](#tag/Processor-Tokenization) from former Cards Vault naming on the following endpoints:
        - [`POST /v1/charges`](#operation/createCharge)
        - [`POST /v1/charges/funding`](#operation/createChargeFunding)
        - [`POST /v1/charges/payout`](#operation/createChargePayout)
        - [`POST /v1/charges/mit`](#operation/createChargeMit)

      </div>

      <div data-section-id="tag/Release-Notes/1.201.0">

      ### 1.201.0 - Aug 27, 2024

      - Changed the `amount.value` type in the [`POST /fees/scheme/estimate`](#operation/getSchemeFeeEstimation) endpoint from `float` to `integer`.

      </div>

      <div data-section-id="tag/Release-Notes/1.200.0">

      ### 1.200.0 - Aug 23, 2024

      - Added `american-express` Card Network support to `Settlement-Reports`.

      </div>

      <div data-section-id="tag/Release-Notes/1.199.0">

      ### 1.199.0 - Aug 22, 2024

      - **Breaking:** Added validation to require `recurringFrequency` and `recurringExpiry` when `type.sequence` is present on a [`POST /v1/3ds`](#operation/create3dsAuthentication) request.

      </div>

      <div data-section-id="tag/Release-Notes/1.198.2">

      ### 1.198.2 - Aug 21, 2024

      - Updated description for `cardData.cvc` on the following endpoints:
        - [`POST /v1/processorTokens`](#operation/createProcessorToken)
        - [`POST /v1/tokens`](#operation/createToken)

      </div>

      <div data-section-id="tag/Release-Notes/1.198.1">

      ### 1.198.1 - August 20, 2024

      - Fixed the examples for `postalCode` fields on `Accounts` endpoints so that the example matches the schema.

      </div>

      <div data-section-id="tag/Release-Notes/1.198.0">

      ### 1.198.0 - August 15, 2024

      - Updated the following charges endpoints to accept the recently renamed [Processor Tokenization](#tag/Processor-Tokenization) key instead of the Cards Vault key:
        - [`POST /v1/charges`](#operation/createCharge)
        - [`POST /v1/charges/payout`](#operation/createChargePayout)
        - [`POST /v1/charges/funding`](#operation/createChargeFunding)
        - [`POST /v1/charges/mit`](#operation/createChargeMit)

      </div>

      <div data-section-id="tag/Release-Notes/1.197.0">

      ### 1.197.0 - August 14, 2024

      - Added a new mandatory property called acquirerBID to VMSS screening request object [`POST /v1/screenings`](#tag/Screenings/operation/postScreening) endpoint.

      </div>

      <div data-section-id="tag/Release-Notes/1.196.0">

      ### 1.196.0 - August 13, 2024

      - **Breaking:** Removed the deprecated properties `scaExemptionRequest` and
        `authenticationContext.requestChallenge` from the [`POST /v1/3ds`](#operation/create3dsAuthentication) endpoint.
      - **Breaking:** Disallow additional unspecified properties on the [`POST /v1/3ds`](#operation/create3dsAuthentication) endpoint.

      </div>

      <div data-section-id="tag/Release-Notes/1.195.2">

      ### 1.195.2 - August 8, 2024

      - Added `422` error to the possible responses of [`POST /v1/riskAssessments`](#operation/performRiskAssessment) endpoint, when the passed Merchant Acceptor key is not found.

      </div>

      <div data-section-id="tag/Release-Notes/1.195.1">

      ### 1.195.1 - August 5, 2024

      - Modified the minimum length of a PAN from 13 to 12 characters in the following endpoints:
        - [`POST /v1/processorTokens`](#operation/createProcessorToken)
        - [`POST /v1/tokens`](#operation/createToken)
        - [`POST /v1/riskAssessments`](#operation/performRiskAssessment)
        - [`POST /v1/fees/scheme/estimate`](#operation/getSchemeFeeEstimation)
      - Added permission to the [`POST /v1/riskAssessments`](#operation/performRiskAssessment) endpoint description

      </div>

      <div data-section-id="tag/Release-Notes/1.195.0">

      ### 1.195.0 - August 5, 2024

      - Added the new `card-network` value to the `initiator` property in the dispute history object for auto-rejected collaborations [Dispute Events History endpoints](#tag/Disputes/operation/getDisputeEventHistory).

      </div>

      <div data-section-id="tag/Release-Notes/1.194.0">

      ### 1.194.0 - July 31, 2024

      - Added a new field `card.maskedNumber` to all [Charges endpoints](#tag/Create-Charges).

      </div>

      <div data-section-id="tag/Release-Notes/1.193.0">

      ### 1.193.0 - July 30, 2024

      - The following endpoints are no longer in beta:
        - [`POST /v1/charges/{chargeKey}/increment`](#operation/increment)
        - [`POST /v1/charges/{chargeKey}/offlineRefund`](#operation/offlineRefund)

      </div>

      <div data-section-id="tag/Release-Notes/1.192.0">

      ### 1.192.0 - July 26, 2024

      - **Beta:** Added the ability to perform funding transactions using tokens. The following changes were made to the [`POST /v1/charges/funding`](#operation/createChargeFunding) endpoint:
        - Added `token` as possible value for the `type.cardEntry` property.
        - Added `tokenDetails` property.
      - Made `threeDsAuthenticationResult.type` optional and mark it as deprecated on the following endpoints:
        - [`POST /v1/charges`](#operation/createCharge)
        - [`POST /v1/charges/mit`](#operation/createChargeMit)
        - [`POST /v1/charges/{initialChargeKey}/mit`](#operation/createChargeMitFromInitialCharge)

      </div>

      <div data-section-id="tag/Release-Notes/1.191.0">

      ### 1.191.0 - July 24, 2024

      - **Deprecation:** From 6 November, 2024, [`GET /v1/reports/fraudNotifications`](#operation/getFraudNotificationsReport) and [`GET /v1/reports/disputesMonitoring`](#operation/getDisputeMonitoringReport) endpoint will be removed.

      </div>

      <div data-section-id="tag/Release-Notes/1.190.0">

      ### 1.190.0 - July 24, 2024

      - Removed the event source type `https://silverflow.com/cards` from the [Event Subscriptions](#tag/Event-Subscriptions).
      - Added the event source type `https://silverflow.com/processorTokens` to [Event Subscriptions](#tag/Event-Subscriptions).

      </div>

      <div data-section-id="tag/Release-Notes/1.189.3">

      ### 1.189.3 - July 24, 2024

      - Updated the examples of the following endpoints:
        - [POST /v1/reports/schemeFeeDetails](#operation/schemeFeeDetails)
        - [GET /v1/reports/{reportKey}](#operation/getReport)
        - [GET /v1/reports/{reportKey}/file](#operation/getReportFile)

      </div>

      <div data-section-id="tag/Release-Notes/1.189.2">

      ### 1.189.2 - July 22, 2024

      - Moved the [Processor Tokenization](#tag/Processor-Tokenization) and [Network Tokenization](#tag/Network-Tokenization) API endpoints under a new section, `Tokenization`

      </div>

      <div data-section-id="tag/Release-Notes/1.189.1">

      ### 1.189.1 - July 18, 2024

      - Increased the maximum length of the `cvc` in the [POST /v1/processorTokens](#operation/createProcessorToken) request body to `4`, to align with other endpoints.

      </div>

      <div data-section-id="tag/Release-Notes/1.189.0">

      ### 1.189.0 - July 18, 2024

      - Renamed the `Cards Vault` to [Processor Tokenization](#tag/Processor-Tokenization). This means the previous cards vault endpoints have been renamed, however the functionality is the same. This results in the following new endpoint paths:
        - [POST /v1/processorTokens](#operation/createProcessorToken)
        - [GET /v1/processorTokens](#operation/getProcessorTokens)
        - [GET /v1/processorTokens/{processorTokenKey}](#operation/getProcessorToken)
        - [DELETE /v1/processorTokens/{processorTokenKey}](#operation/archiveProcessorToken)

      </div>

      <div data-section-id="tag/Release-Notes/1.188.0">

      ### 1.188.0 - July 18, 2024

      - Added production URL for North America

      </div>

      <div data-section-id="tag/Release-Notes/1.187.0">

      ### 1.187.0 - July 16, 2024

      - Added wallet transfer funding charges to the [`POST /v1/charges/funding`](#operation/createChargeFunding) endpoint.
      - **Deprecation:** From 12 January, 2025, the enum value `subsequent` on `type.sequence` on the [`POST /v1/3ds`](#operation/create3dsAuthentication) endpoint will be removed. Please use the [`POST /v1/3ds/3ri`](#operation/create3riAuthentication) endpoint to perform a 3DS 3RI authentication.
      - **Deprecation:** From 12 January, 2025, the field `merchantAcceptorResolver` will no longer accept additional subfields not specified by the API specification. They will result in a 400 error. The following endpoints are affected:
        - [`POST /v1/3ds/3ri`](#operation/create3riAuthentication)
        - [`POST /v1/charges`](#operation/createCharge)
        - [`POST /v1/charges/funding`](#operation/createChargeFunding)
        - [`POST /v1/charges/payout`](#operation/createChargePayout)
        - [`POST /v1/charges/pos`](#operation/createChargePos)
        - [`POST /v1/charges/mit`](#operation/createChargeMit)

      </div>

      <div data-section-id="tag/Release-Notes/1.186.0">

      ### 1.186.0 - July 16, 2024

      - Collaboration defense options are added as a separate request body to [`POST /v1/disputes/{disputeKey}/defend`](#tag/Disputes/operation/defendDispute).

      </div>

      <div data-section-id="tag/Release-Notes/1.185.0">

      ### 1.185.0 - July 15, 2024

      - Removed deprecated properties `recurringFrequency` and `recurringExpiry` from the [`POST /v1/charges/{initialChargeKey}/mit`](#operation/createChargeMitFromInitialCharge) endpoint.
      - Updated description for `type.sequence` on the following endpoints:
        - [`POST /v1/charges`](#operation/createCharge)
        - [`POST /v1/charges/bep`](#operation/createChargeBep)

      </div>

      <div data-section-id="tag/Release-Notes/1.184.1">

      ### 1.184.1 - July 8, 2024

      - `type.sequence` is now optional on the [`POST /v1/charges/mit`](#operation/createChargeMit) endpoint.
      - Added missing documentation for the `Idempotency-Key` header on the following endpoints:
        - [`POST /v1/charges/bep`](#operation/createChargeBep)
        - [`POST /v1/charges/{initialChargeKey}/wip`](#operation/createChargeWip)

      </div>

      <div data-section-id="tag/Release-Notes/1.184.0">

      ### 1.184.0 - July 2, 2024

      - Added optional `sellerEmail` property on the "Update a Merchant" [PATCH /merchants/{merchantKey}](#tag/Merchants/operation/updateMerchant) endpoint.
      - Added support for AMEX BINs:
        - `acquirerBin` contains the Service Establishment (SE) number
        - `acquirerIdCode` contains the Submitter ID

      </div>

      <div data-section-id="tag/Release-Notes/1.183.0">

      ### 1.183.0 - June 28, 2024

      - **Beta:** Added the new [`GET /v1/screenings/{screeningsKey}/results`](#tag/Screenings/operation/listScreeningResults) endpoint.

      </div>

      <div data-section-id="tag/Release-Notes/1.182.0">

      ### 1.182.0 - June 27, 2024

      - **Beta:** Added the new [`POST /v1/reports/reconciliationDetailRecords`](#tag/Settlement-Reports/operation/reconciliationDetails) endpoint.

      </div>

      <div data-section-id="tag/Release-Notes/1.181.0">

      ### 1.181.0 - June 27, 2024

      - Integrated the following endpoints with the [Cards Vault](#tag/Processor-Tokenization):
        - [`POST /v1/3ds/3ri`](#operation/create3riAuthentication)
        - [`POST /v1/3ds/cardRanges`](#operation/3dsCardRanges)

      </div>

      <div data-section-id="tag/Release-Notes/1.180.0">

      ### 1.180.0 - June 26, 2024

      - **Beta:** Added new Screening endpoints:
        - [`POST /v1/screenings/`](#tag/Screenings/operation/postScreening)
        - [`GET /v1/screenings/`](#tag/Screenings/operation/listScreenings)
        - [`GET /v1/screenings/{screeningKey}`](#tag/Screenings/operation/getScreening)

      </div>

      <div data-section-id="tag/Release-Notes/1.179.0">

      ### 1.179.0 - June 25, 2024

      - Integrated the following endpoints with the [Cards Vault](#tag/Processor-Tokenization):
        - [`POST /v1/3ds`](#operation/create3dsAuthentication)

      </div>

      <div data-section-id="tag/Release-Notes/1.178.0">

      ### 1.178.0 - June 25, 2024

      - Improved documentation for [Cards Vault](#tag/Processor-Tokenization) endpoints.
      - Updated [Network Token and Cryptogram](#tag/Network-Tokenization) endpoints.
        - Added new [`GET /v1/tokens`](#operation/listTokens) endpoint to retrieve all Network tokens.
        - Creation endpoints now include `422` validation errors.

      </div>

      <div data-section-id="tag/Release-Notes/1.177.0">

      ### 1.177.0 - June 24, 2024

      - Added support for 4-digit CVCs for applicable card networks on the following endpoints:
        - [`POST /v1/charges`](#operation/createCharge)
        - [`POST /v1/charges/payout`](#operation/createChargePayout)
        - [`POST /v1/charges/funding`](#operation/createChargeFunding)
        - [`POST /v1/charges/mit`](#operation/createChargeMit)

      </div>

      <div data-section-id="tag/Release-Notes/1.176.0">

      ### 1.176.0 - June 13, 2024

      - **Breaking:** Removed the deprecated `POST /v1/charges/transfer/mit` endpoint.
      - Integrated the following endpoints with the [Cards Vault](#tag/Processor-Tokenization):
        - [`POST /v1/charges`](#operation/createCharge)
        - [`POST /v1/charges/payout`](#operation/createChargePayout)
        - [`POST /v1/charges/funding`](#operation/createChargeFunding)
      - Added new 409 error of type `/silverflow/problems/charge/incompatible-card-network-for-operation` to all [Charges endpoints](#tag/Create-Charges).
      - Removed unused 409 error of type `/silverflow/problems/bin/unexpected-network` from the following endpoints:
        - [`POST /v1/charges/mit`](#operation/createChargeMit)
        - [`POST /v1/charges/{chargeKey}/offlineRefund`](#operation/offlineRefund)
      - Removed unused 409 error of type `/silverflow/problems/charge/incompatible-bin` from the following endpoints:
        - [`POST /v1/charges/payout`](#operation/createChargePayout)

      </div>

      <div data-section-id="tag/Release-Notes/1.175.1">

      ### 1.175.1 - June 5, 2024

      - Removed the BETA label from endpoints that are now considered stable:
        - [`POST /v1/3ds/cardRanges`](#operation/3dsCardRanges)
        - [`GET /v1/bep/{bepKey}`](#operation/getCompleteBep)
        - [`POST /v1/bep`](#operation/bep)
        - [`POST /v1/bep/{bepKey}/authorizationResult`](#operation/finalizeBep)
        - [`POST /v1/charges/bep`](#operation/createChargeBep)
        - [`POST /v1/charges/{chargeKey}/cancel`](#operation/cancel)
        - [`POST /v1/charges/mit`](#operation/createChargeMit)
        - [`POST /v1/charges/{initialChargeKey}/wip`](#operation/createChargeWip)

      - Updated the validation for `cardholderInformation.email` to prevent errors, spaces are no longer allowed.
        Affected endpoints:
        - [`POST /v1/3ds`](#operation/create3dsAuthentication)
        - [`POST /v1/3ds/3ri`](#operation/create3riAuthentication)

      </div>

      <div data-section-id="tag/Release-Notes/1.175.0">

      ### 1.175.0 - June 4, 2024

      - Added new integration with the [Cards Vault](#tag/Processor-Tokenization) on the [`POST /v1/charges/mit`](#tag/Create-Recurring/operation/createChargeMit) endpoint.

      </div>

      <div data-section-id="tag/Release-Notes/1.174.2">

      ### 1.174.2 - June 3, 2024

      - Visa-specific property `initialTransactionIdentifier` restricted to only valid characters on the recurring Charges endpoints.

      </div>

      <div data-section-id="tag/Release-Notes/1.174.1">

      ### 1.174.1 - May 31, 2024

      - Added an `enum` of accepted currency codes to the `amount.currency` field on the [`POST /v1/fees/interchange/estimate`](#operation/estimateInterchangeFee) endpoint.

      </div>

      <div data-section-id="tag/Release-Notes/1.174.0">

      ### 1.174.0 - May 31, 2024

      - **Breaking:** Removed `merchantAcceptorKey` field form all Charges endpoints.

      </div>

      <div data-section-id="tag/Release-Notes/1.173.0">

      ### 1.173.0 - May 30, 2024

      - Updated validation on the `mid` field for AMEX Merchant Acceptors to allow only 20 characters to support providing the AMEX Seller ID.

      </div>

      <div data-section-id="tag/Release-Notes/1.172.0">

      ### 1.172.0 - May 28, 2024

      - **BETA:** Added initial version of the Cards Vault Service to **latest**, to safely store Card Data. We will later add support to other endpoints to do operations using a `cardKey` instead of passing the Card Data itself.
        - [POST /v1/cards](#operation/createCard)
        - [GET /v1/cards](#operation/getCards)
        - [GET /v1/cards/{cardKey}](#operation/getCard)
        - [DELETE /v1/cards/{cardKey}](#operation/archiveCard)

      </div>

      <div data-section-id="tag/Release-Notes/1.171.2">

      ### 1.171.2 - May 28, 2024

      - **Preview Only:** Added the `lastActionDate` property to card vault entities. This property indicates the last time the card has been used.

      </div>

      <div data-section-id="tag/Release-Notes/1.171.1">

      ### 1.171.1 - May 23, 2024

      - **Deprecation:** The `card` property on [`POST /v1/charges/{initialChargeKey}/mit`](#operation/createChargeMitFromInitialCharge) endpoint has been deprecated.
      - **Deprecation:** The enum value `refund` of the property `type.intent` on [`POST /v1/charges/{initialChargeKey}/mit`](#operation/createChargeMitFromInitialCharge) endpoint has been deprecated.
      - **Deprecation:** The `acsTransId` property of `threeDsAuthenticationResult` and the enum values `non-authenticated`, `recurring` and `mit` of the property `threeDsAuthenticationResult.type` have been deprecated.

      </div>

      <div data-section-id="tag/Release-Notes/1.171.0">

      ### 1.171.0 - May 22, 2024

      - **Breaking change:** Added a new required field `threeDsPriorAuthenticationInfo.dsTransId` to the
        [`POST /v1/3ds/3ri`](#operation/create3riAuthentication) endpoint.

      </div>

      <div data-section-id="tag/Release-Notes/1.170.0">

      ### 1.170.0 - May 22, 2024

      - Updated Dispute Reversal logic
        - Added new disputeStatus as `acceptanceFailed` in Dispute entities.
        - Update the functionality for handling reversal events for Dispute.
        - Removed `reversalDetails` optional object from the Dispute entity.
      - Added Defend Visa PreArbitration `DefendPreArbVisa` functionality for dispute categories 12.x and 13.x
      - Added the optional `mid` field to the FraudNotification.

      </div>

      <div data-section-id="tag/Release-Notes/1.169.0">

      ### 1.169.0 - May 21, 2024

      - Added American Express card ranges to [`POST /v1/cardInfo`](#operation/postCardInfo).
        - Accept `american-express` as `infoSource`.
      - Added the properties `terminal` and `pinUsed` to the `ChargeType` object on the [`POST /v1/fees/interchange/estimate`](#operation/estimateInterchangeFee) endpoint.

      </div>

      <div data-section-id="tag/Release-Notes/1.168.0">

      ### 1.168.0 - May 17, 2024

      - Removed deprecated features from the [Charges endpoints](#tag/Charges):
        - Removed the following endpoints:
          - `POST /v1/charges/3ds`
          - `POST /v1/charges/authorize`.
        - Removed the `shippingAddress` field from requests and responses from the following endpoints:
          - [`POST /v1/charges`](#operation/createCharge)
          - [`POST /v1/charges/{initialChargeKey}/mit`](#operation/createChargeMitFromInitialCharge)
          - [`POST /v1/charges/{initialChargeKey}/wip`](#operation/createChargeWip)
          - [`POST /v1/charges/bep`](#operation/createChargeBep)
      - Removed the `threeDsStrategy` field from the requests and responses of all non-deprecated [Charges endpoints](#tag/Charges).
      - Added a new value `abandoned` to the field `status.clearing` on the Charge object for the [Charges endpoints](#tag/Charges).

      </div>

      <div data-section-id="tag/Release-Notes/1.167.3">

      ### 1.167.3 - May 13, 2024

      - Return the first 6 digits of the PAN for Charges.

      </div>

      <div data-section-id="tag/Release-Notes/1.167.2">

      ### 1.167.2 - May 8, 2024

      - Added new response field `moreItems` to list cards [`GET /v1/cards`](#operation/getCards) **preview** endpoint.
      - New feature: It is possible to archive a card via [`DELETE /v1/cards/{cardKey}`](#operation/archiveCard) **preview** endpoint.

      </div>

      <div data-section-id="tag/Release-Notes/1.167.1">

      ### 1.167.1 - May 6, 2024

      - Added new event source `https://silverflow.com/cards` and subscription to [Event Subscriptions](#tag/Event-Subscriptions).

      </div>

      <div data-section-id="tag/Release-Notes/1.167.0">

      ### 1.167.0 - May 6, 2024

      - Added validation to only allow the `EUR` currency code for BEP authentications made through [`POST /v1/bep`](#operation/bep).

      </div>

      <div data-section-id="tag/Release-Notes/1.166.1">

      ### 1.166.1 - May 3, 2024

      - **Deprecated** the `result.requestId` and `result.transactionId` properties from the response of the [POST /v1/riskAssessments](#operation/performRiskAssessment) endpoint, as these properties are no longer provided by Fraudio. **These properties will be removed on 2 November, 2024**

      </div>

      <div data-section-id="tag/Release-Notes/1.166.0">

      ### 1.166.0 - May 2, 2024

      - Updated the [POST /v1/apiKeys](#operation/createApiKey) endpoint to include new Cards Vault related permissions.
      - **BETA:** Added initial version of the Cards Vault Service to **preview**, to safely store Card Data. We will later add support to other endpoints to do operations using a `cardKey` instead of passing the Card Data itself.
        - [POST /v1/cards](#operation/createCard)
        - [GET /v1/cards](#operation/getCards)
        - [GET /v1/cards/{cardKey}](#operation/getCard)

      </div>

      <div data-section-id="tag/Release-Notes/1.165.0">

      ### 1.165.0 - May 2, 2024

      - Updated the "Create Scheme Fee Details Report" endpoint [POST /v1/reports/schemeFeeDetails](#operation/schemeFeeDetails):
        - `status` is now always `scheduled`
        - Removed the following properties:
          - `result`
          - `lastModified`
          - `version`

      </div>

      <div data-section-id="tag/Release-Notes/1.164.0">

      ### 1.164.0 - April 30, 2024

      - Removed property `clearingDelayInMinutes` from all responses on the API, mapping it to `clearAfter` instead. Affected endpoints:
        - [`POST /v1/charges`](#operation/createCharge)
        - [`POST /v1/charges/3ds`](#operation/createCharge3ds)
        - [`POST /v1/charges/{initialChargeKey}/mit`](#operation/createChargeMitFromInitialCharge)
        - [`POST /v1/charges/pos`](#operation/createChargePos)
        - [`GET /v1/charges/{chargeKey}`](#operation/getCharge)
        - [`GET /v1/charges`](#operation/getCharges)
      - Added property `terminal` to responses on the following endpoints:
        - [`POST /v1/charges/pos`](#operation/createChargePos)
        - [`GET /v1/charges/{chargeKey}`](#operation/getCharge)
        - [`GET /v1/charges`](#operation/getCharges)

      </div>

      <div data-section-id="tag/Release-Notes/1.163.0">

      ### 1.163.0 - April 29, 2024

      - Added new optional object `reversalDetails` to the Dispute entity. This object includes the `recallReason` field which explains why the Dispute was reversed.

      </div>

      <div data-section-id="tag/Release-Notes/1.162.1">

      ### 1.162.1 - April 26, 2024

      - Added version links to the [Release Notes page](#tag/Release-Notes).

      </div>

      <div data-section-id="tag/Release-Notes/1.162.0">

      ### 1.162.0 - April 26, 2024

      - Added the "DefendPreArbMastercard" request body type to the endpoint [`POST /v1/disputes/{disputeKey}/defend`](#operation/defendDispute).
      - Added the "SumbitEvidencePreArbMastercard" request body type to the endpoint [`POST /v1/disputes/{disputeKey}/submitEvidence`](#operation/submitEvidence).

      </div>

      <div data-section-id="tag/Release-Notes/1.161.0">

      ### 1.161.0 - April 25, 2024

      - Added new optional `sellerEmail` field to the Merchant, this field will be required upon creating Merchants Acceptors for AMEX.
      - Corrected validation on the `taxRegistrationId` field on the Merchant to have a maximum length of 20 instead of a minimum length.

      </div>

      <div data-section-id="tag/Release-Notes/1.160.3">

      ### 1.160.3 - April 24, 2024

      - Updated the Scheme Fee Reports [`POST /v1/reports/schemeFeeDetails`](#operation/schemeFeeDetails) endpoint
        - The endpoint now returns a `201` status code, instead of `202`, on successful report request.
        - The successful Response now includes a `Location` header pointing to the new resource [`GET /v1/reports/{reportKey}`](#operation/getReport) url.

      </div>

      <div data-section-id="tag/Release-Notes/1.160.2">

      ### 1.160.2 - April 23, 2024

      - Removed invalid currencies from all Charges endpoints.
      - Changed `card.holderName` to no longer be required when `avs` is `true` for all Charges endpoints.
      - Added 409 error of type `/silverflow/problems/charge/cannot-determine-card-network-by-card-number` when failing to determine card network by PAN for the [`POST /v1/charges/mit`](#operation/createChargeMit) endpoint.

      </div>

      <div data-section-id="tag/Release-Notes/1.160.0">

      ### 1.160.0 - April 12, 2024

      - Released the new [`POST /v1/3ds/3ri`](#operation/create3riAuthentication) endpoint.

      </div>

      <div data-section-id="tag/Release-Notes/1.159.6">

      ### 1.159.6 - April 8, 2024

      - Added optional field `correctedDetailKey` to the response reconciliation detail item in [`GET /v1/reports/reconciliationDetails`](#operation/getReconciliationDetails) and [`GET /v1/reports/reconciliationDetails/fundsTransferDate`](#operation/getReconciliationDetailsFundsTransferDate)

      </div>

      <div data-section-id="tag/Release-Notes/1.159.5">

      ### 1.159.5 - April 5, 2024

      - Added documentation for the HTTP 429 (Too Many Requests) error to all endpoints for 3DS Authentication, BEP Authentication and Charges.
      - Now supporting 12 digits in the `card.number` object on several endpoints to create charges.
      - Removed unused enum values from `status.authorization` on all charge action types.

      </div>

      <div data-section-id="tag/Release-Notes/1.159.2">

      ### 1.159.2 - April 3, 2024

      - Removed the [`/reports/settlementDetails/`](#operation/getSettlementDetails) endpoint.

      </div>

      <div data-section-id="tag/Release-Notes/1.159.1">

      ### 1.159.1 - April 2, 2024

      - Added the new [`GET /v1/reports/networkFundsTransfers/{key}`](#operation/getNetworkFundsTransferByNetworkFundsTransferKey) endpoint.

      </div>

      <div data-section-id="tag/Release-Notes/1.159.0">

      ### 1.159.0 - March 27, 2024

      - Breaking change: Empty strings are no longer allowed for the following properties on the [`POST /v1/3ds`](#operation/create3dsAuthentication) endpoint:
        - `billingAddress`
          - `stateOrProvince`
          - `city`
          - `line1`
          - `line2`
        - `shippingAddress`
          - `stateOrProvince`
          - `city`
          - `line1`
          - `line2`

      </div>

      <div data-section-id="tag/Release-Notes/1.158.3">

      ### 1.158.3 - March 27, 2024

      - Added new optional field `taxRegistrationId` to `Merchant` entities.

      </div>

      <div data-section-id="tag/Release-Notes/1.158.2">

      ### 1.158.2 - March 27, 2024

      - Removed previously deprecated properties `name`, `legalName`, `billingAddress`, `registeredAddress` and `vatId` from the [`PATCH /v1/agents/{agentKey}`](#operation/updateAgent) endpoint request payload.

      </div>

      <div data-section-id="tag/Release-Notes/1.158.0">

      ### 1.158.0 - March 26, 2024

      - Removed properties `recurringFrequency` and `recurringExpiry` from the [`POST /v1/charges`](#operation/createCharge) endpoint.
      - Add notices for breaking changes on the [`POST /v1/3ds`](#operation/create3dsAuthentication) endpoint, which will come into effect on August 8, 2024:
        - When the `sequence` field is present both the `recurringFrequency` and `recurringExpiry` fields are going to be mandatory.
        - All requests to this endpoint that contain any fields not specified by the API specification below will fail with a 400 error.
      - Deprecated fields `authenticationContext.requestChallenge` and `scaExemptionRequest` on the [`POST /v1/3ds`](#operation/create3dsAuthentication) endpoint. The fields will get removed on 8 August, 2024.

      </div>

      <div data-section-id="tag/Release-Notes/1.157.2">

      ### 1.157.2 - March 22, 2024

      - Updated permissions for [Network Tokenization](#tag/Network-Tokenization).

      </div>

      <div data-section-id="tag/Release-Notes/1.157.1">

      ### 1.157.1 - March 22, 2024

      - The disputeStatus previously named `closedReversed` has been updated to `reversed`. Issuer can initiate a reversal during various stages, including Chargeback, PreArb, or PreArbResponse. The `reversed` status does not indicate the final stage of a dispute. Instead, it signifies an un-actionable stage for both the Acquirer and the Merchant involved in the dispute resolution process.

      </div>

      <div data-section-id="tag/Release-Notes/1.157.0">

      ### 1.157.0 - March 22, 2024

      - Release [Network Tokenization](#tag/Network-Tokenization) solution.

      </div>

      <div data-section-id="tag/Release-Notes/1.156.0">

      ### 1.156.0 - March 22, 2024

      - Added new field `identification` to both `sender` and `receiver` on the [`POST /v1/charges/payout`](#operation/createChargePayout) endpoint.

      </div>

      <div data-section-id="tag/Release-Notes/1.155.0">

      ### 1.155.0 - March 20, 2024

      - New feature: It is possible to archive an ISSM enrollment via [`DELETE /v1/enrollments/{enrollmentKey}`](#operation/deleteEnrollment).

      </div>

      <div data-section-id="tag/Release-Notes/1.154.0">

      ### 1.154.0 - March 19, 2024

      - New feature: Dispute Reversal
        - Added new functionality for handling reversal events for Dispute.
        - Added new disputeStatus as `closedReversed` in Dispute entities.
      - Added new Dispute Reason code `4841` for Mastercard in `Cardholder Disputes` category.
      - Added new Dispute Stage `collaboration` and `collaborationResponse`.
      - Added new DisputeResponseId `E` for defending a collaboration.

      </div>

      <div data-section-id="tag/Release-Notes/1.153.1">

      ### 1.153.1 - March 18, 2024

      - Added new field `gatewayId` to `MerchantAcceptor` entities.

      </div>

      <div data-section-id="tag/Release-Notes/1.153.0">

      ### 1.153.0 - March 18, 2024

      - Added new field `purposeOfPayment` to the [`POST /v1/charges/funding`](#operation/createChargeFunding) and [`POST /v1/charges/payout`](#operation/createChargePayout) endpoints.
      - The field `authentication` on the responses of the Charge endpoints had the following changes:
        - Removed incorrect field `authenticationValue` from the `ScaBEP` schema.
        - Removed incorrect field `result` from the `AuthenticationOutOfScope` and `AuthenticationExempt` schemas.

      </div>

      <div data-section-id="tag/Release-Notes/1.152.4">

      ### 1.152.4 - March 14, 2024

      - The `typeSpecific.acquirerIdCode` was added to CardNetworkFeeSpecific response object for following endpoints:
        - [`GET /v1/reports/reconciliationDetails`](#operation/getReconciliationDetails)
        - [`GET /v1/reports/reconciliationDetails/fundsTransferDate/{fundsTransferDate}`](#operation/getReconciliationDetailsFundsTransferDate)

      </div>

      <div data-section-id="tag/Release-Notes/1.152.3">

      ### 1.152.3 - March 13, 2024

      - Fixed the Bancontact PAN in the sandbox environment guide.

      </div>

      <div data-section-id="tag/Release-Notes/1.152.2">

      ### 1.152.2 - March 12, 2024

      - Fixed problematic OpenAPI specification for `authenticationContext.browserData.javascriptEnabled` on [`POST /v1/3ds`](#operation/create3dsAuthentication).

      </div>

      <div data-section-id="tag/Release-Notes/1.152.0">

      ### 1.152.0 - March 11, 2024

      - Added new event source `https://silverflow.com/charges` to [Event Subscriptions](#tag/Event-Subscriptions), delivering events of type `com.silverflow.charges.action`.

      </div>

      <div data-section-id="tag/Release-Notes/1.151.1">

      ### 1.151.1 - March 08, 2024

      - Removed mentions of code generation from the introduction page since this is currently not working sufficiently.

      </div>

      <div data-section-id="tag/Release-Notes/1.151.0">

      ### 1.151.0 - March 07, 2024

      - Added Mastercard support to [`POST /v1/charges/payout`](#operation/createChargePayout).

      </div>

      <div data-section-id="tag/Release-Notes/1.150.1">

      ### 1.150.1 - March 04, 2024

      - Fixed regex patterns on field descriptions of Merchant and Merchant Acceptor fields.

      </div>

      <div data-section-id="tag/Release-Notes/1.150.0">

      ### 1.150.0 - March 1, 2024

      - Added support for partial approvals on [`POST /v1/charges`](#operation/createCharge).
      - Added the property `fundingSource` to [`POST /v1/charges/payout`](#operation/createChargePayout) in preparation for Mastercard Payouts.

      </div>

      <div data-section-id="tag/Release-Notes/1.149.5">

      ### 1.149.5 - February 27, 2024

      - Extended the validation of the `authenticationContext.browserData.browserIP` field in the request body of [`POST /v1/3ds`](#operation/create3dsAuthentication) to allow for IPv6 addresses.

      </div>

      <div data-section-id="tag/Release-Notes/1.149.4">

      ### 1.149.4 - February 26, 2024

      - Improved validation of the `amount.value` field in the request body of [`POST /v1/fees/scheme/estimate`](#operation/estimateInterchangeFee).
        - Removes the maximum limit of 900000000

      </div>

      <div data-section-id="tag/Release-Notes/1.149.3">

      ### 1.149.3 - February 22, 2024

      - Added `visaCardInfo.member.cib` and `visaCardInfo.member.iin` to the response of [`POST /v1/cardInfo`](#operation/postCardInfo) and [`GET /v1/cardInfo`](#operation/getCardInfo) endpoints

      </div>

      <div data-section-id="tag/Release-Notes/1.149.2">

      ### 1.149.2 - February 22, 2024

      - Added a Bancontact pan to the sandbox environment guide.

      </div>

      <div data-section-id="tag/Release-Notes/1.149.1">

      ### 1.149.1 - February 21, 2024

      - Updated description of `authorizationIsoData.eci` for Mastercard `201` responses on [`POST /v1/charges`](#operation/createCharge).
      - Added option `other` to `sender.accountNumberType` on [`POST /v1/charges/payout`](#operation/createChargePayout).
      - Improved documentation of `409` errors on the following endpoints:
        - [`POST /v1/charges/{chargeKey}/cancel`](#operation/cancel)
        - [`POST /v1/charges/{chargeKey}/cancelOrRefund`](#operation/cancelOrRefundCharge)

      </div>

      <div data-section-id="tag/Release-Notes/1.149.0">

      ### 1.149.0 - Febuary 20, 2024

      - BETA: updated validation patterns on Merchant Acceptor fields:
        - `name`, `description`, `doingBusinessAsName`, `pointOfSaleAddress.line1`, `pointOfSaleAddress.line2` and `pointOfSaleAddress.city` now support the ISO-8859-15 character set.
        - `pointOfSaleAddress.postalCode` now allows `-`
      - BETA: updated validation patterns on Merchant fields:
        - `name`, `description`, `legalName`, `registeredAddress.line1`, `registeredAddress.line2` and `registeredAddress.city` now support the ISO-8859-15 character set.
        - `registeredAddress.postalCode` now allows `-`.

      These changes only apply to clients enrolled in the "extended character set beta". For other clients the validation patterns remain unchanged (see description of the changed fields).

      </div>

      <div data-section-id="tag/Release-Notes/1.148.2">

      ### 1.148.2 - February 19, 2024

      - The `collaborationRefund` as enum value to preDispute property added to FirstChargebackDMSSpecific for following endpoints:
        - [`GET /v1/reports/reconciliationDetails`](#operation/getReconciliationDetails)
        - [`GET /v1/reports/reconciliationDetails/fundsTransferDate/{fundsTransferDate}`](#operation/getReconciliationDetailsFundsTransferDate)

      </div>

      <div data-section-id="tag/Release-Notes/1.148.1">

      ### 1.148.1 - February 19, 2024

      - The `sender` property on the [`POST /v1/charges/payout`](#operation/createChargePayout) request body is no longer required.

      </div>

      <div data-section-id="tag/Release-Notes/1.148.0">

      ### 1.148.0 - February 19, 2024

      - Renamed property `threeDSMethodId` to `threeDSServerTransID` on [`POST /v1/3ds`](#operation/create3dsAuthentication).
      - Changed validation for when `type.order` is `installment` on [`POST /v1/3ds`](#operation/create3dsAuthentication). Both `recurringExpiry` and `recurringFrequency` are now required in that case.

      </div>

      <div data-section-id="tag/Release-Notes/1.147.0">

      ### 1.147.0 - February 16, 2024

      - Added a new property `completionUrl` to [`POST /v1/bep`](#operation/bep).

      </div>

      <div data-section-id="tag/Release-Notes/1.146.2">

      ### 1.146.2 - February 12, 2024

      Updated Guides section on Reconciliation Details Corrections behaviour to introduce support for `returned` transactions.

      </div>

      <div data-section-id="tag/Release-Notes/1.146.1">

      ### 1.146.1 - January 31, 2024

      - Marked the fields `name`, `legalName`, `billingAddress`, `registeredAddress`, `vatId` as deprecated on the [`PATCH /v1/agents/{agentKey}`](#operation/updateAgent) endpoint. Scheduled removal date is March 25, 2024.

      </div>

      <div data-section-id="tag/Release-Notes/1.146.0">

      ### 1.146.0 - January 30, 2024

      - BETA: Made the following changes to [`POST /v1/reports/schemeFeeDetails`](#operation/schemeFeeDetails):
        - Improved validation of `sinceToken` parameter.

      </div>

      <div data-section-id="tag/Release-Notes/1.145.0">

      ### 1.145.0 - January 29, 2024

      - BETA: Promoted [`POST /v1/fees/scheme/estimate`](#operation/getSchemeFeeEstimation) from **preview** to **latest**, using a new response.
      - BETA: Added the new reporting endpoints
        - BETA: List Reports [`GET /v1/reports`](#operation/listReport)
        - BETA: Get Report [`GET /v1/reports/{reportKey}`](#operation/getReport)
        - BETA: Get Report Data [`GET /v1/reports/{reportKey}/file`](#operation/getReportFile)
        - BETA: Create Scheme Fee Details Report [`POST /v1/reports/schemeFeeDetails`](#operation/schemeFeeDetails)

      </div>

      <div data-section-id="tag/Release-Notes/1.144.0">

      ### 1.144.0 - January 26, 2024

      - BETA: Added new endpoint [`POST /v1/3ds/cardRanges`](#operation/3dsCardRanges).
      - Added a new property `threeDSMethodId` to [`POST /v1/3ds`](#operation/create3dsAuthentication).
      - Improved response naming for [3DS Authentication](#tag/3DS-Authentication).

      </div>

      <div data-section-id="tag/Release-Notes/1.143.0">

      ### 1.143.0 - January 25, 2024

      - Added new event subscription type `com.silverflow.clearing.offlineRefundOutcome` and source `https://silverflow.com/clearing` for offline refund outcome event.
      - Updated the event subscriptions guide section.

      </div>

      <div data-section-id="tag/Release-Notes/1.142.1">

      ### 1.142.1 - January 25, 2024

      - Marked the endpoint `POST /v1/merchants/{merchantKey}/acceptors/enrollments/{type}` as deprecated.
      - Marked the endpoint `GET /v1/acceptors/{acceptorKey}/enrollments` as deprecated.
      - Marked the `enroll3ds` query parameter on the `POST /v1/merchants/{merchantKey}/acceptors` endpoint as deprecated.
      - Marked the `merchantAcceptorTemplate.enroll3ds` property on the `POST /v1/merchants` endpoint as deprecated.

      </div>

      <div data-section-id="tag/Release-Notes/1.142.0">

      ### 1.142.0 - January 23, 2024

      - Added a new property `challengeIndicator` to [`POST /v1/3ds`](#tag/3DS-Authentication/operation/create3dsAuthentication).
        Please refer to the description of the new property for information on how it should be used.
      - Removed the "3DS Challenge (Finished)" entity from the 201 response on [`POST /v1/3ds`](#tag/3DS-Authentication/operation/create3dsAuthentication); it can only be retrieved from the GET endpoint (after the challenge has been finished).
      - Deprecated `recurringExpiry` and `recurringFrequency` on the following endpoints:
        - [`POST /v1/charges`](#operation/createCharge)
        - [`POST /v1/charges/{initialChargeKey}/mit`](#operation/createChargeMitFromInitialCharge)

      </div>

      <div data-section-id="tag/Release-Notes/1.141.9">

      ### 1.141.9 - January 17, 2024

      - Updated the [`POST /v1/fees/scheme/estimate`](#operation/getSchemeFeeEstimation) response on **preview**, to use the newest simplified response.

      </div>

      <div data-section-id="tag/Release-Notes/1.141.8">

      ### 1.141.8 - January 15, 2024

      - Split the request body for Visa and Mastercard disputes on the [`POST /v1/disputes/{disputeKey}/defend`](#operation/defendDispute) and [`POST /v1/disputes/{disputeKey}/submitEvidence`] endpoints.

      </div>

      <div data-section-id="tag/Release-Notes/1.141.7">

      ### 1.141.7 - January 5, 2024

      - Allowlisted the `/` character in `name` and `legalName` fields on ([`Merchant endpoints`](#operation/createMerchant)).

      </div>

      <div data-section-id="tag/Release-Notes/1.141.6">

      ### 1.141.6 - January 2, 2024

      - Added response examples for [Get Dispute](#operation/getDispute).

      </div>

      <div data-section-id="tag/Release-Notes/1.141.5">

      ### 1.141.5 - January 2, 2024

      - Added response examples for [Dispute History Events](#operation/getEventHistory).

      </div>

      <div data-section-id="tag/Release-Notes/1.141.4">

      ### 1.141.4 - December 27, 2023

      - Made the following changes to [`POST /v1/charges/payout`](#operation/createChargePayout):
        - Removed unused request property `threeDsStrategy`.
        - Removed outdated max €50,000 validation on `amount.value`.

      </div>

      <div data-section-id="tag/Release-Notes/1.141.3">

      ### 1.141.3 - December 21, 2023

      - Deprecated `shippingAddress` property for the following endpoints:
        - [`POST /v1/charges`](#operation/createCharge)
        - [`POST /v1/charges/mit`](#operation/createChargeMit)
      - Deprecated `threeDsStrategy` property for all relevant endpoints.
      - Deprecated top-level `merchantAcceptorKey` property for all relevant endpoints.

      </div>

      <div data-section-id="tag/Release-Notes/1.141.2">

      ### 1.141.2 - December 19, 2023

      - Added Bancontact 3DSv2 authenticated charge support to [`POST /v1/fees/interchange/estimate`](#operation/estimateInterchangeFee).

      </div>

      <div data-section-id="tag/Release-Notes/1.141.1">

      ### 1.141.1 - December 11, 2023

      - Added the types `arbitration-dms` and `preArbitration-dms` to the following Reconciliation Details endpoints. The `arbitration-dms` type supersedes the `arbitrationChargeback` type and covers additional scenarios.
        - [`GET /v1/reports/reconciliationDetails`](#operation/getReconciliationDetails)
        - [`GET /v1/reports/reconciliationDetails/fundsTransferDate/{fundsTransferDate}`](#operation/getReconciliationDetailsFundsTransferDate)

      </div>

      <div data-section-id="tag/Release-Notes/1.141.0">

      ### 1.141.0 - December 11, 2023

      - Added new fields `reconciliationAmount` and `transactionReference` to Dispute object: [`GET /v1/disputes`](#operation/getDispute).

      </div>

      <div data-section-id="tag/Release-Notes/1.140.0">

      ### 1.140.0 - December 5, 2023

      - Added a new endpoint [`POST /v1/charges/{chargeKey}/offlineRefund`](#operation/offlineRefund)

      </div>

      <div data-section-id="tag/Release-Notes/1.139.2">

      ### 1.139.2

      - Support whitespace in the `postalCode` for all [Accounts endpoints](#tag/Agents) where you can specify one.

      </div>

      <div data-section-id="tag/Release-Notes/1.139.1">

      ### 1.139.1

      - Clarified that [`POST /v1/charges/payout`](#operation/createChargePayout) only supports Visa at the moment.
      - Restructured [Charges endpoints](#tag/Create-Charges) for easier navigation/findability.

      </div>

      <div data-section-id="tag/Release-Notes/1.139.0">

      ### 1.139.0

      - Added a new optional property `cardholderInformation` to the [`POST /v1/3ds`](#tag/3DS-Authentication/operation/create3dsAuthentication) endpoint.

      </div>

      <div data-section-id="tag/Release-Notes/1.138.8">

      ### 1.138.8

      - Deprecated [`POST /v1/charges/3ds`](#operation/createCharge3ds) and [`POST /v1/charges/{chargeKey}/authorize`](#operation/authorizeChargeAfterChallenge).
      - Removed obsolete properties `billingAddress`, `shippingAddress` and `initialChargeKey` from the [`POST /v1/charges/payout`](#operation/createChargePayout) endpoint.

      </div>

      <div data-section-id="tag/Release-Notes/1.138.7">

      ### 1.138.7

      - Clarified that the values `token` and `token-on-file` for `type.cardEntry` on the applicable [Charges endpoints](#tag/Charges) are in beta.

      </div>

      <div data-section-id="tag/Release-Notes/1.138.6">

      ### 1.138.6

      - Renamed [`POST /v1/currency-conversion-rate/network/:network/effectiveDate/:effectiveDate`](#operation/getCurrencyRates) endpoint to `/v1/currencyConversionRate/network/:network/effectiveDate/:effectiveDate`. This change is not breaking; the old url will continue to be viable until all existing customers have migrated to the newly formatted one.

      </div>

      <div data-section-id="tag/Release-Notes/1.138.5">

      ### 1.138.5

      - Updated documentation for potential errors that the [3DS endpoints](#tag/3DS-Authentication) can return.

      </div>

      <div data-section-id="tag/Release-Notes/1.138.4">

      ### 1.138.4

      - Updated documentation on [`POST /v1/charges/payout`](#operation/createChargePayout).

      </div>

      <div data-section-id="tag/Release-Notes/1.138.3">

      ### 1.138.3

      - Updated the example Reconciliation Detail of type `FirstPresentmentRTCSpecific` to better match practical scenarios.

      </div>

      <div data-section-id="tag/Release-Notes/1.138.2">

      ### 1.138.2

      - Improved the correctness of the 3DS entity response on the [3DS Authentication](#tag/3DS-Authentication) endpoints.
        - It is now possible to see the different states that a 3DS entity can exist in, discriminated
          by the `flow` and `result` properties.
      - Corrected the `status.authorization` for [BEP charges](#operation/createChargeBep).
        - It can only be `approved` or `declined`.
      - Documented the 500 error response on all the [Charges](#tag/Charges) endpoints.

      </div>

      <div data-section-id="tag/Release-Notes/1.138.1">

      ### 1.138.1

      - Added new field `interchangeFeeProgram` to [`GET /v1/reports/reconciliationDetails`](#operation/getReconciliationDetails) (in response types: `FirstPresentmentDMSSpecific`, `FirstPresentmentSMSSpecific`, `FirstPresentmentRTCSpecific`).

      </div>

      <div data-section-id="tag/Release-Notes/1.138.0">

      ### 1.138.0

      - In the `authorizationIsoFields.networkSpecificFields` property in the charge response we added the following properties:
        - `avsResultCode` (Visa) and `avsResponse` (Mastercard)
        - `cvv2ResultCode` (Visa) and `cvcResult` (Mastercard)

      </div>

      <div data-section-id="tag/Release-Notes/1.137.1">

      ### 1.137.1

      - Fixed the documentation for the error responses on the [BEP Authentication](#tag/BEP-Authentication) endpoints.
        Each endpoint now correctly lists which error codes and types can be returned.

      </div>

      <div data-section-id="tag/Release-Notes/1.137.0">

      ### 1.137.0

      - Added `token-on-file` as a possible value for the `type.cardEntry` property on the [`POST /v1/charges/mit`](#operation/createChargeMit) endpoint.
        This allows the creation of MIT charges using network tokens. The `tokenDetails` property is also added as an optional property in case the network token is refreshed.

      </div>

      <div data-section-id="tag/Release-Notes/1.136.0">

      ### 1.136.0

      - Introduced a breaking change to [`GET /v1/bep/{bepKey}`](#operation/getCompleteBep). The endpoint can now return BEP entities in one
        of three states, `initiated`, `authenticated` or `non-authenticated`.

      </div>

      <div data-section-id="tag/Release-Notes/1.135.2">

      ### 1.135.2

      - Added the [documentation](#operation/bepWebhook) for the webhook BEP authentication notification.

      </div>

      <div data-section-id="tag/Release-Notes/1.135.1">

      ### 1.135.1

      - Removed `CE16` from the accepted values for the `disputeSubResponseReasonId` property in [`POST /v1/disputes/{disputeKey}/defend`](#operation/defendDispute) and [`POST /v1/disputes/{disputeKey}/submitEvidence`](#operation/submitEvidence) endpoints in accordance with VROL update 23.2.

      </div>

      <div data-section-id="tag/Release-Notes/1.135.0">

      ### 1.135.0

      - Added `authorizationResponse` to the [Action](#operation/getAction) object. This enhancement provides `responseCode` and `responseCodeDescription` for all authorization-related actions.

      </div>

      <div data-section-id="tag/Release-Notes/1.134.1">

      ### 1.134.1

      - Updated [`POST /v1/merchants`](#operation/createMerchant) and [`POST /v1/merchants/:merchantKey/acceptors`](#operation/createAcceptor) endpoints. The `AddressInput` object, now only validate the country code is one of `CountryCodeAlpha3`, `CountryCodeAlpha2` or `CountryCodeNumeric`. This doesn't change the behavior, and simplifies input validation error messages.

      </div>

      <div data-section-id="tag/Release-Notes/1.134.0">

      ### 1.134.0

      - Added the `clearingMode` and `clearAfter` properties to the [`POST /v1/charges/{chargeKey}/mit`](#operation/createChargeMitFromInitialCharge) endpoint.

      </div>

      <div data-section-id="tag/Release-Notes/1.133.1">

      ### 1.133.1

      - Modify the `CountryCode` component in certain response components:
        - `CardInfoResponse`
        - `BIN`
        - `Merchant`
        - `MerchantMatch`
        - `VtsEnrollmentDetail`
          Previously `oneOf`: `alpha3`, `alpha2`, `numeric` was declared. Now all properties of `CountryCode` are marked as required.

      </div>

      <div data-section-id="tag/Release-Notes/1.133.0">

      ### 1.133.0

      - Introduced a breaking change to [`GET /v1/bep/{bepKey}`](#operation/getCompleteBep) where the `bepaf` value is now returned in base64 instead of hexadecimal.
      - Deprecated the [`POST /v1/charges/transferMit`](#operation/transferMit) endpoint.

      </div>

      <div data-section-id="tag/Release-Notes/1.132.0">

      ### 1.132.0

      - Updated the [`POST /v1/enrollments`](#operation/createEnrollment) endpoint to support ISSM enrollments.
      - Updated `ScofProgramType` with a new type: `commerce_platform_obo`
      - Mention that the `foreignRetailer` field is mandatory when `subMerchantId` is present in an Acceptor.

      </div>

      <div data-section-id="tag/Release-Notes/1.131.2">

      ### 1.131.2

      - Post-processing improvements for [`POST /v1/charges/funding`](#operation/createChargeFunding).

      </div>

      <div data-section-id="tag/Release-Notes/1.131.1">

      ### 1.131.1

      - Updated [Fraud Notifications endpoints](#tag/Fraud-Notifications) to improve the description of the `fraudReportingDate`, the field is required now.

      </div>

      <div data-section-id="tag/Release-Notes/1.131.0">

      ### 1.131.0

      - Added `tra` as a new possible value for the `scaExemptionRequest` property on the following endpoints:
        - [`POST /v1/charges`](#operation/createCharge)
        - [`POST /v1/charges/3ds`](#operation/createCharge3ds)

      </div>

      <div data-section-id="tag/Release-Notes/1.130.1">

      ### 1.130.1

      - Made the **beta** property `tokenDetails.eci` optional when creating charges with tokens on [`POST /v1/charges`](#operation/createCharge).

      </div>

      <div data-section-id="tag/Release-Notes/1.130.0">

      ### 1.130.0

      - Added the `dynamicDescriptor` property to the following endpoint:
        - [`POST /v1/3ds`](#operation/create3dsAuthentication)

      </div>

      <div data-section-id="tag/Release-Notes/1.129.0">

      ### 1.129.0

      - Removed the `clearingDelayInMinutes` property from the following endpoints:
        - [`POST /v1/charges`](#operation/createCharge)
        - [`POST /v1/charges/3ds`](#operation/createCharge3ds)
        - [`POST /v1/charges/pos`](#operation/createChargePos)

      Note that retrieving charges made with this property is still supported and the property is not removed from the response model.

      - We deprecated the unused `charge.status.settlement` and `charge.status.refunds` properties.
      - We removed unused charge status values:
        - For `charge.status.authentication`, we removed the unused `error` value.
        - For `charge.status.authorization`, we removed the unused `expired` and `error` values.
        - For `charge.status.clearing`, we removed the unused `error`, `submitted` and `partial` values.

      </div>

      <div data-section-id="tag/Release-Notes/1.128.0">

      ### 1.128.0

      - Added a new endpoint [`POST /v1/charges/mit`](#operation/createChargeMit).
      - Added support for creating charges using either network or digital wallet (Apple Pay/Google Pay)
        tokens on [`POST /v1/charges`](#operation/createCharge) using the new `tokenDetails` property.

      </div>

      <div data-section-id="tag/Release-Notes/1.127.0">

      ### 1.127.0

      - You can now use the Silverflow API to perform BEP authentications.
        - [`POST /v1/bep`](#operation/bep) is used to start a BEP authentication flow.
        - [`POST /v1/bep/{bepKey}/authorizationResult`](#operation/finalizeBep) is used to update a BEP entity with the authorization result to finalize the BEP flow.
        - [`GET /v1/bep/{bepKey}`](#operation/getCompleteBep) is used to retrieve an authenticated BEP entity.
      - Added the endpoint [`POST /v1/charges/bep`](#operation/createChargeBep). Using this endpoint it is possible to create Bancontact charges by referring to a BEP authentication key.
      - The IBAN is now returned in the `authorizationIsoFields` for approved charges for the following Bancontact charge endpoints:
        - [`POST /v1/charges/bep`](#operation/createChargeBep)
        - [`POST /v1/charges/{initialChargeKey}/wip`](#operation/createChargeWip)
      - Removed beta support for creating charges with tokens to make room for an improved version.
        The change affects the following endpoints:
        - [`POST /v1/charges`](#operation/createCharge)
        - [`POST /v1/charges/3ds`](#operation/createCharge3ds)
        - [`POST /v1/charges/mit`](#operation/createChargeMitFromInitialCharge)
      - Clarified the documentation regarding the `clearAfter` property on the Charges endpoints.

      </div>

      <div data-section-id="tag/Release-Notes/1.126.4">

      ### 1.126.4

      - Added docs for the endpoint [`GET /v1/tokens/{tokenKey}/cardArt`](#operation/getCardArt) endpoint.

      </div>

      <div data-section-id="tag/Release-Notes/1.126.3">

      ### 1.126.3

      - Added example responses for the [`GET /v1/tokens/{tokenKey}/tokenData`](#operation/getTokenData) endpoint.

      </div>

      <div data-section-id="tag/Release-Notes/1.126.2">

      ### 1.126.2

      - Updated description on the [`POST /v1/enrollments`](#operation/createEnrollment) endpoint.
      - Updated examples and descriptions for `actionDueDate` and `disputeDate` in the `Dispute` model.

      </div>

      <div data-section-id="tag/Release-Notes/1.126.1">

      ### 1.126.1

      - Updated references from `enrolment` to `enrollment` for consistency.
      - Mention that enrollment is asynchronous in the Accounts guide (Enrollment entity).

      </div>

      <div data-section-id="tag/Release-Notes/1.126.0">

      ### 1.126.0

      - Added property `clearAfter` to [`POST v1/charges/{chargeKey}/refund`](#operation/refund).
      - Added examples for “Incompatible Card Network for Operation” errors to the following endpoints:
        - [`POST /v1/charges/{chargeKey}/cancel`](#operation/cancel)
        - [`POST /v1/charges/{chargeKey}/increment`](#operation/increment)
        - [`POST /v1/charges/{chargeKey}/reverse`](#operation/reverse)
      - Added support for idempotency to [`POST /v1/charges/{chargeKey}/wip`](#operation/createChargeWip).
      - Added restrictions to billing/shipping address to [`POST /v1/charges/3ds`](#operation/createCharge3ds).
      - Bancontact charges now return the IBAN in the `authorizationIsoFields` for approved transactions.

      </div>

      <div data-section-id="tag/Release-Notes/1.125.1">

      ### 1.125.1

      - Updated the response examples for the [Screenings endpoints](#tag/Screenings) and [Enrollment endpoints](#tag/Enrollments).

      </div>

      <div data-section-id="tag/Release-Notes/1.125.0">

      ### 1.125.0

      - Added a new endpoint [`DELETE /v1/enrollments/{enrollmentKey}`](#operation/deleteEnrollment).
        - This endpoint supports archival of enrollments of type `scof`.
      - Updated the Getting Started section to use the actual permissions used when activating a new agent.
      - Improved the response example of the [Agent Activation endpoint](#operation/activateAgent).

      </div>

      <div data-section-id="tag/Release-Notes/1.124.1">

      ### 1.124.1

      - Changed the [Screenings endpoints](#tag/Screenings) response examples, they were not consistent with the actual API responses.

      </div>

      <div data-section-id="tag/Release-Notes/1.124.0">

      ### 1.124.0

      - Added `isTokenRange` boolean to the response of [`POST /v1/cardInfo`](#operation/postCardInfo) and [`GET /v1/cardInfo`](#operation/getCardInfo) endpoints

      </div>

      <div data-section-id="tag/Release-Notes/1.123.12">

      ### 1.123.12

      - Minor fixes.

      </div>

      <div data-section-id="tag/Release-Notes/1.123.11">

      ### 1.123.11

      - Improved validation of the `shippingAddress` property on the [`POST /v1/charges/3ds`](#operation/createCharge3ds) endpoint.
      - Improved validation of the `billingAddress` property on the [`POST /v1/3ds`](#operation/create3dsAuthentication) and [`POST /v1/charges/3ds`](#operation/createCharge3ds) endpoints.

      </div>

      <div data-section-id="tag/Release-Notes/1.123.10">

      ### 1.123.10

      - Added missing `400` and `409` possible errors in multiple Accounts endpoints.

      </div>

      <div data-section-id="tag/Release-Notes/1.123.9">

      ### 1.123.9

      - Updated internal documentation references for the Accounts pages.

      </div>

      <div data-section-id="tag/Release-Notes/1.123.8">

      ### 1.123.8

      - Deprecate the `settlementService.cutOffTime` field on the [`GET /v1/reports/reconciliationDetails`](#operation/getReconciliationDetails) endpoint.

      </div>

      <div data-section-id="tag/Release-Notes/1.123.7">

      ### 1.123.7

      - Fixed a visual indentation error in the `browserData` property on the [`POST /v1/3ds`](#operation/create3dsAuthentication) endpoint.

      </div>

      <div data-section-id="tag/Release-Notes/1.123.6">

      ### 1.123.6

      - Improved validation of the `amount.value` property for the [`POST /v1/charges/pos`](#operation/createChargePos) endpoint to not allow zero-value authorizations.

      </div>

      <div data-section-id="tag/Release-Notes/1.123.5">

      ### 1.123.5

      - Removed references to bank accounts from permissions list and examples.

      </div>

      <div data-section-id="tag/Release-Notes/1.123.4">

      ### 1.123.4

      - Improved validation for `billingAddress.postalCode` on the [`POST /v1/3ds`](#operation/create3dsAuthentication) endpoint.

      </div>

      <div data-section-id="tag/Release-Notes/1.123.3">

      ### 1.123.3

      - Updated the support email address in documentation and OpenAPI specification.

      </div>

      <div data-section-id="tag/Release-Notes/1.123.2">

      ### 1.123.2

      - Fixed the minimum length for `card.holderName` on the [`POST /v1/3ds`](#operation/create3dsAuthentication) endpoint (it was previously 1, which the protocol does not support).
      - Fixed the validation of `authenticationContext.browserData` when `javascriptEnabled` equals `false` on the [`POST /v1/charges/3ds`](#operation/createCharge3ds) endpoint.

      </div>

      <div data-section-id="tag/Release-Notes/1.123.1">

      ### 1.123.1

      - Improved the descriptions on the following endpoints:
        - [`POST /v1/charges/{chargeKey}/increment`](#operation/increment)
        - [`POST /v1/charges/{chargeKey}/reverse`](#operation/reverse)

      </div>

      <div data-section-id="tag/Release-Notes/1.123.0">

      ### 1.123.0

      - Modified the [`POST /v1/fees/scheme/estimate`](#operation/getSchemeFeeEstimation) endpoint:
        - Added `impact` as a property on the scheme fee, which can be either `credit` or `debit`.
        - Added `category` as a property on a scheme fee, to indicate whether it is an `authentication`, `authorization` or `clearing` scheme fee.

      </div>

      <div data-section-id="tag/Release-Notes/1.122.0">

      ### 1.122.0

      - Changed the [`POST /v1/charges/payout`](#operation/createChargePayout) endpoint:
        - Removed `manual`, `card-on-file`, `token`, `token-on-file` as possible values from the `type.cardEntry` property.
        - Removed `unspecified`, `mail`, `phone`, `one-click`, `recurring`, `ucof`, `installment` as possible values from the `type.order` property.

      </div>

      <div data-section-id="tag/Release-Notes/1.121.0">

      ### 1.121.0

      - Removed the `card.cvc` field on the [`POST /v1/riskAssessments`](#operation/performRiskAssessment) endpoint for a Fraudio request.

      </div>

      <div data-section-id="tag/Release-Notes/1.120.4">

      ### 1.120.4

      - Improved the description and validation on the [`POST /v1/charges/{chargeKey}/reverse`](#operation/reverse) endpoint.

      </div>

      <div data-section-id="tag/Release-Notes/1.120.3">

      ### 1.120.3

      - Added some missing properties for Accounts schemas.

      </div>

      <div data-section-id="tag/Release-Notes/1.120.2">

      ### 1.120.2

      - Removed `advice` as a possible value from the `type.intent` property for the following endpoints:
        - [`POST /v1/charges`](#operation/createCharge)
        - [`POST /v1/charges/3ds`](#operation/createCharge3ds)
        - [`POST /v1/charges/mit`](#operation/createChargeMitFromInitialCharge)

      - Added the `dynamicDescriptor` property for the following endpoints:
        - [`POST /v1/charges`](#operation/createCharge)
        - [`POST /v1/charges/3ds`](#operation/createCharge3ds)
        - [`POST /v1/charges/mit`](#operation/createChargeMitFromInitialCharge)

      </div>

      <div data-section-id="tag/Release-Notes/1.120.1">

      ### 1.120.1

      - [`POST /v1/fees/interchange/estimate`](#operation/estimateInterchangeFee) now supports estimating Bancontact fees with Additional Network Properties.

      </div>

      <div data-section-id="tag/Release-Notes/1.120.0">

      ### 1.120.0

      - Added a new **beta** endpoint [`POST /v1/enrollments`](#operation/createEnrollment)
        - This endpoint supports enrollments of type `scof`.
        - The previous [`POST v1/acceptors/{acceptorKey}/enrollments/{type}`](#operation/createMerchantAcceptorEnrollment) endpoint will be marked as deprecated.
          - Enrollments type `issm` will be added soon.

      </div>

      <div data-section-id="tag/Release-Notes/1.119.3">

      ### 1.119.3

      - Fixed broken links in the documentation.

      </div>

      <div data-section-id="tag/Release-Notes/1.119.2">

      ### 1.119.2

      - Added the `fees:Interchange` permission, which [`POST /v1/fees/interchange/estimate`](#operation/estimateInterchangeFee) now requires.

      </div>

      <div data-section-id="tag/Release-Notes/1.119.1">

      ### 1.119.1

      - Update the text of the Settlement Reports guide.
      - Add `cardInfoSummary` to example Reconciliation Details.

      </div>

      <div data-section-id="tag/Release-Notes/1.119.0">

      ### 1.119.0

      - Added the `cardInfoSummary` object to SMS and DMS First Presentment Reconciliation Details:
        - [`GET /v1/reports/reconciliationDetails`](#operation/getReconciliationDetails)
        - [`GET /v1/reports/reconciliationDetails/fundsTransferDate/{fundsTransferDate}`](#operation/getReconciliationDetailsFundsTransferDate)

      </div>

      <div data-section-id="tag/Release-Notes/1.118.0">

      ### 1.118.0

      - Added new endpoint [`POST /v1/charges/{chargeKey}/wip`](#operation/createChargeWip).
      - Fixed the validation pattern and improved the description for the `track2Data` property on the [`POST /v1/charges/pos`](#operation/createChargePos) endpoint.

      </div>

      <div data-section-id="tag/Release-Notes/1.117.0">

      ### 1.117.0

      - Added support for partial approvals on the [`POST /v1/charges/pos`](#operation/createChargePos) endpoint.

      </div>

      <div data-section-id="tag/Release-Notes/1.116.8">

      ### 1.116.8

      - Added new event source and subscription `networkFundsTransferCompleted` to [Event Subscriptions](#tag/Event-Subscriptions).

      </div>

      <div data-section-id="tag/Release-Notes/1.116.7">

      ### 1.116.7

      - The [`POST /v1/charges/{chargeKey}/clear`](#operation/triggerManualClearing) endpoint has the following changes:
        - Fixed the ability to manually clear a charge that had previously been reversed.
        - Improved error response documentation.

      </div>

      <div data-section-id="tag/Release-Notes/1.116.6">

      ### 1.116.6

      To streamline the browsing experience, we have separated the API Reference into its own dedicated section and added new guides sections to facilitate easier understanding and usage of our API. These guides provide detailed explanations and examples of API usage in specific areas.

      - **Guides Sections:**
        - Accounts: Merchants: Merchant Acceptors, API Keys, BINs, Event Subscriptions, Enrollments, Screening.
        - 3DS & Authentication: 3D-Secure Usage Flows, Standalone, Bancontact BEP.
        - Charges: Authorization, Recurring, Clearing, Cancel or Refund, Tokenization.
        - Reports: Settlement Reports, Card Network Reports, Dispute Reports.
        - Disputes & Fraud: Dispute Operations, Dispute Monitoring, Fraud Operations, Fraud Monitoring, Dispute Application.
        - Insights: Card Info, Fees, Currency Conversion Rates, Risk.
      - **API Reference Section:**
        - This tab is largely unchanged but now focuses solely on providing comprehensive documentation for the API endpoints, including detailed descriptions of each endpoint, required parameters, response formats, and examples.

      </div>

      <div data-section-id="tag/Release-Notes/1.116.5">

      ### 1.116.5

      - Fixed the API Definition of `amount.value` to be `float` instead of `integer` on the Response Body of the [`POST /v1/fees/scheme/estimate`](#operation/getSchemeFeeEstimation) and [`POST /v1/fees/interchange/estimate`](#operation/estimateInterchangeFee) endpoints.

      </div>

      <div data-section-id="tag/Release-Notes/1.116.4">

      ### 1.116.4

      - `preDispute` added to FirstChargebackSpecific for following endpoints:
        - [`GET /v1/reports/reconciliationDetails`](#operation/getReconciliationDetails)
        - [`GET /v1/reports/reconciliationDetails/fundsTransferDate/{fundsTransferDate}`](#operation/getReconciliationDetailsFundsTransferDate)

      </div>

      <div data-section-id="tag/Release-Notes/1.116.3">

      ### 1.116.3

      - Improved description for the [`POST /v1/charges/{chargeKey}/reverse`](#operation/reverse) endpoint.

      </div>

      <div data-section-id="tag/Release-Notes/1.116.2">

      ### 1.116.2

      - Added new `fraudReportingDate` field to the [`/v1/fraudNotifications`](#operation/getFraudNotifications) and [`/v1/fraudNotifications/{fraudNotificationKey}`](#operation/getFraudNotification) endpoints. This is the date when the Fraud was reported to the Card Network.

      </div>

      <div data-section-id="tag/Release-Notes/1.116.1">

      ### 1.116.1

      - Updated explanation of [Book Date and Value Date](#section/Book-Date-and-Value-Date).

      </div>

      <div data-section-id="tag/Release-Notes/1.116.0">

      ### 1.116.0

      - Added new required field `status` on response object `networkFundsTransfer` in [`/reports/networkFundsTransfers/fundsTransferDate/{fundsTransferDate}`](#operation/getNetworkFundsTransfers) endpoint.

      </div>

      <div data-section-id="tag/Release-Notes/1.115.1">

      ### 1.115.1

      - Improved error responses documentation for all charges endpoints.

      </div>

      <div data-section-id="tag/Release-Notes/1.115.0">

      ### 1.115.0

      - Added new optional property `type.sequence` to indicate subsequent charges for the [`POST /v1/charges/pos`](#operation/createChargePos) endpoint.

      </div>

      <div data-section-id="tag/Release-Notes/1.114.0">

      ### 1.114.0

      - Added `bancontact` Card Network support to `Accounts`, network and validations were added to BINs and Merchant Acceptors.

      </div>

      <div data-section-id="tag/Release-Notes/1.113.0">

      ### 1.113.0

      - Added new optional property `terminalAction` to the response on the [`POST /v1/charges/pos`](#operation/createChargePos) endpoint.
      - Loosen the range validation for the `card.expiryYear` property on all relevant Charges endpoints.
      - The maximum value for the `amount.value` property has increased to `999999999`.
      - Updated description of the `tokenCryptogram` property on all relevant Charges endpoints.
      - Fixed the validation pattern for the `tokenCryptogram` property.

      </div>

      <div data-section-id="tag/Release-Notes/1.112.2">

      ### 1.112.2

      - Fixed the examples for the `from` and `to` query parameters for [`/v1/fraudNotifications`](#operation/getFraudNotifications) endpoint.

      </div>

      <div data-section-id="tag/Release-Notes/1.112.0">

      ### 1.112.0

      - Removed `merchantBillingCurrency` from the following **beta** endpoint:
        - [`POST /v1/fees/scheme/estimate`](#operation/getSchemeFeeEstimation)

      </div>

      <div data-section-id="tag/Release-Notes/1.111.0">

      ### 1.111.0

      - Fixed the missing `fraudNotifications:Get` permission.
      - Added a new endpoint [`/v1/fraudNotifications`](#operation/getFraudNotifications) that returns a list of Fraud Notifications.
      - `fraudNotifications:List` permission can now be used.

      </div>

      <div data-section-id="tag/Release-Notes/1.110.0">

      ### 1.110.0

      - Added a new endpoint [`/v1/charges/{chargeKey}/increment`](#operation/increment) to increment the authorization of a charge.

      </div>

      <div data-section-id="tag/Release-Notes/1.109.2">

      ### 1.109.2

      - Added missing information about required properties when the property `avs` is set to `true` on the following endpoints:
        - [`POST /v1/charges`](#operation/createCharge)
        - [`POST /v1/charges/3ds`](#operation/createCharge3ds)
        - [`POST /v1/charges/mit`](#operation/createChargeMitFromInitialCharge)

      </div>

      <div data-section-id="tag/Release-Notes/1.109.0">

      ### 1.109.0

      - Added the [`POST /charges/{chargeKey}/cancel`](#operation/cancel) endpoint to cancel charges.

      </div>

      <div data-section-id="tag/Release-Notes/1.108.2">

      ### 1.108.2

      - `tags` added to FirstPresentmentDMSSpecific, FirstPresentmentSMSSpecific for following endpoints:
        - [`GET /v1/reports/reconciliationDetails`](#operation/getReconciliationDetails)
        - [`GET /v1/reports/reconciliationDetails/fundsTransferDate/{fundsTransferDate}`](#operation/getReconciliationDetailsFundsTransferDate)

      </div>

      <div data-section-id="tag/Release-Notes/1.108.1">

      ### 1.108.1

      - Mandatory fields updated for `cardInfo`, `cardProducts` and `member` for [`/v1/cardInfo`](#operation/postCardInfo).

      </div>

      <div data-section-id="tag/Release-Notes/1.108.0">

      ### 1.108.0

      - Added a [`/reports/fraudNotifications`](#operation/getFraudNotificationsReport) endpoint to obtain a report of the Fraud Notifications received.

      </div>

      <div data-section-id="tag/Release-Notes/1.107.1">

      ### 1.107.1

      - Removed `riskAssessmentKey` from the following endpoints:
        - [`POST /v1/charges/{chargeKey}/cancelOrRefund`](#operation/cancelOrRefundCharge)
        - [`POST /v1/charges/{chargeKey}/reverse`](#operation/reverse)
        - [`POST /v1/charges/{chargeKey}/refund`](#operation/refund)

      </div>

      <div data-section-id="tag/Release-Notes/1.107.0">

      ### 1.107.0

      - Added the option to request a `low-value` SCA exemption via the `scaExemptionRequest` property in the [`POST /v1/charges`](#operation/createCharge) endpoint.

      </div>

      <div data-section-id="tag/Release-Notes/1.106.2">

      ### 1.106.2

      - Moved the [`/reports/networkFundsTransfers/fundsTransferDate/{fundsTransferDate}`](#operation/getNetworkFundsTransfers) out of Beta.
      - Deprecated the [`/reports/dailySettlementTotals/{binKey}`](#operation/getSettlementTotalsBinKey) endpoint.
      - Improve the examples for the Reconciliation Details endpoint.

      </div>

      <div data-section-id="tag/Release-Notes/1.106.1">

      ### 1.106.1

      - Improved descriptions and examples for the `merchantAcceptorResolver` in all charges endpoints.
      - Improved validation for `authenticationContext.notificationUrl` in the [`POST /v1/charges/3ds`](#operation/createCharge3ds) endpoint.
      - Fixed incorrect option `none` for the `clearingMode` on the following endpoints:
        - [`POST /v1/charges`](#operation/createCharge)
        - [`POST /v1/charges/3ds`](#operation/createCharge3ds)
        - [`POST /v1/charges/pos`](#operation/createChargePos)

      </div>

      <div data-section-id="tag/Release-Notes/1.106.0">

      ### 1.106.0

      - Added the ability to provide a `merchantAcceptorResolver` as a way to resolve a merchant acceptor to the following endpoints:
        - [`POST /v1/charges/3ds`](#operations/createCharge3ds)
        - [`POST /v1/charges/funding`](#operations/createChargeFunding)
        - [`POST /v1/charges/payout`](#operations/createChargePayout)
        - [`POST /v1/charges/pos`](#operations/createChargePos)
        - [`POST /v1/charges/transfer/mit`](#operations/transferMit)
      - The `riskCheck` property is deprecated. The change effects the following endpoints:
        - [`POST /v1/charges`](#operation/createCharge)
        - [`POST /v1/charges/3ds`](#operation/createCharge3ds)
        - [`POST /v1/charges/payout`](#operation/createChargePayout)
        - [`POST /v1/charges/funding`](#operation/createChargeFunding)
        - [`POST /v1/charges/{initialChargeKey}/mit`](#operation/createChargeMitFromInitialCharge)
      - Removed the `riskAssessmentKey` property from the [`POST /v1/charges/pos`](#operation/createChargePos) endpoint.
      - Changed the value of `authorizationIsoFields.eci` to `"00"` in the 201 response for the [`POST /v1/charges/pos`](#operation/createChargePos) endpoint.
      - Updated the currency codes documentation to reflect the change of the Iceland Krona currency minor units from 2 to 0.
      - Fixed the date-time examples in the [`GET /v1/charges/`](#operation/getCharges) endpoint.

      </div>

      <div data-section-id="tag/Release-Notes/1.105.0">

      ### 1.105.0

      - Added support for `oneTap` for Mastercard transaction (single-tap) on the [`POST /v1/charges/pos`](#operation/createChargePos) endpoint.

      </div>

      <div data-section-id="tag/Release-Notes/1.104.0">

      ### 1.104.0

      - Added new optional field `networkFundsTransfer` to the response type on the [`GET /v1/reports/reconciliationDetails`](#operation/getReconciliationDetails) endpoint.

      </div>

      <div data-section-id="tag/Release-Notes/1.103.1">

      ### 1.103.1

      - Clarified the description of `cardSequenceNumber` on the [`POST /v1/charges/pos`](#operation/createChargePos) endpoint.

      </div>

      <div data-section-id="tag/Release-Notes/1.103.0">

      ### 1.103.0

      - Added the ability to provide a `merchantAcceptorResolver` as a way to resolve a merchant acceptor to the [`POST /v1/charges`](#operations/createCharge) endpoint.

      </div>

      <div data-section-id="tag/Release-Notes/1.102.0">

      ### 1.102.0

      - Added the [`GET /v1/disputes/eventHistory/{eventHistoryKey}`](#operation/getEventHistory) endpoint.
        - The new `disputes:GetHistory` permission can now be used.
      - Updated the Dispute Response Application paths in the example embedding.

      </div>

      <div data-section-id="tag/Release-Notes/1.101.1">

      ### 1.101.1

      - Fixed the query parameter documentation on the [`GET /v1/reports/networkFundsTransfers/fundsTransferDate/{fundsTransferDate}`](#operation/getNetworkFundsTransfers) endpoint.

      </div>

      <div data-section-id="tag/Release-Notes/1.101.0">

      ### 1.101.0

      - Added the new [`GET /v1/reports/networkFundsTransfers/fundsTransferDate/{fundsTransferDate}`](#operation/getNetworkFundsTransfers) endpoint (beta).

      </div>

      <div data-section-id="tag/Release-Notes/1.100.1">

      ### 1.100.1

      - Fixed issue with the Fraud Notification section not loading in the documentation.

      </div>

      <div data-section-id="tag/Release-Notes/1.100.0">

      ### 1.100.0

      - Added new [`GET /v1/fraudNotifications/{key}`](#operation/getFraudNotification) endpoint. This endpoint lists the Fraud Notifications received from the scheme.
      - Added new event subscription type `com.silverflow.fraudNotification.received` and source `https://silverflow.com/fraudNotifications` for new Fraud Notifications.

      </div>

      <div data-section-id="tag/Release-Notes/1.99.2">

      ### 1.99.2

      - The [`POST /v1/charges/pos`](#operation/createChargePos) endpoint has the following changes:
        - The new `charges:CreatePos` permission can now be used.
        - Lift the validation restrictions of `terminal.capabilities` based on `type.terminalEntryMode`.
      - Added `riskAssessmentKey` property to the [`POST /v1/charges/funding`](#operation/createChargeFunding) endpoint.

      </div>

      <div data-section-id="tag/Release-Notes/1.99.1">

      ### 1.99.1

      - Updated the [Getting Started section](#tag/Getting-Started).

      </div>

      <div data-section-id="tag/Release-Notes/1.99.0">

      ### 1.99.0

      - BETA: Added the [scheme fee estimate endpoint](#operation/getSchemeFeeEstimation). This endpoint can be used to perform a scheme fee estimation, standalone from the transaction flow.
      - Added the [standalone risk assessment endpoint](#tag/Transaction-Risk-Assessment). This endpoint can be used to perform risk assessments, standalone from the transaction flow. This produces a `riskAssessmentKey`.
      - Added support for providing a `riskAssessmentKey` when creating, reversing or refunding a charge.

      </div>

      <div data-section-id="tag/Release-Notes/1.98.0">

      ### 1.98.0

      - `subType` added to CardNetworkFeeSpecific for following endpoints:
        - [`GET /v1/reports/reconciliationDetails`](#operation/getReconciliationDetails)
        - [`GET /v1/reports/reconciliationDetails/fundsTransferDate/{fundsTransferDate}`](#operation/getReconciliationDetailsFundsTransferDate)
      - New examples added for following endpoints:
        - [`GET /v1/reports/reconciliationDetails`](#operation/getReconciliationDetails)
        - [`GET /v1/reports/reconciliationDetails/fundsTransferDate/{fundsTransferDate}`](#operation/getReconciliationDetailsFundsTransferDate)

      </div>

      <div data-section-id="tag/Release-Notes/1.97.0">

      ### 1.97.0

      - Added stricter validation around `terminal.attended` and `terminal.capabilities` based on `type.terminalEntryMode` and
        `terminal.type` for the [`POST /v1/charges/pos`](#operation/createChargePos) endpoint. Please refer to the updated
        documentation on `terminal` for exact specifications.
      - The [`POST /v1/charges/{chargeKey}/clear`](#operation/triggerManualClearing) endpoint has the following changes:
        - Added documentation for idempotency functionality.
        - Clarified the descriptions of both the endpoint itself and the request/response properties.

      </div>

      <div data-section-id="tag/Release-Notes/1.96.1">

      ### 1.96.1

      - Fixed the merchantAcceptor field description in [`GET /v1/reports/reconciliationDetails`](#operation/getReconciliationDetails) endpoint. The `merchantAcceptor.key` was incorrectly documented as having the format `^mct-[a-zA-Z0-9]+$` but is `^mac-[a-zA-Z0-9]+$` instead.

      </div>

      <div data-section-id="tag/Release-Notes/1.96.0">

      ### 1.96.0

      - Added support to request Strong Customer Authentication (SCA) exemptions through authorization in the [`POST /v1/charges`](#operation/createCharge) endpoint. Currently only supports Secure Corporate Payments (SCP) exemption.

      </div>

      <div data-section-id="tag/Release-Notes/1.95.0">

      ### 1.95.0

      - Added support for `magstripe` and `magstripe-fallback` as new options for `type.terminalEntryMode`
        in the [`POST /v1/charges/pos`](#operation/createChargePos) endpoint.
      - Fixed the validation for `authenticationContext.browserData` in the
        [`POST /v1/3ds`](#operation/create3dsAuthentication) endpoint. All the browser-related properties
        are now required when `javascriptEnabled` is `true`, which is in line with what the DS expects.
      - Fixed a bug where the `cardSequenceNumber` in the [`POST /v1/charges/pos`](#operation/createChargePos) endpoint was sent incorrectly in the authorization message.

      </div>

      <div data-section-id="tag/Release-Notes/1.94.0">

      ### 1.94.0

      - BETA: Added the `merchantAcceptorTemplate` property to the [`POST /v1/merchants`](#operation/createMerchant) endpoint that allows to bulk create and 3DS enroll (Mastercard only) up to 30 Merchant Acceptors at a time.
      - Updated the API permissions list:
        - Removed `riskChecks:Create` and `riskChecks:Get`.
        - Added `riskAssesments:Create`, `currencyRate:GetInfo`, `currencyRate:All`.
      - Updated the response body example for the [`GET /v1/acceptors/{acceptorKey}/screenings`](#operation/getScreeningsForAcceptor) endpoint.

      </div>

      <div data-section-id="tag/Release-Notes/1.93.10">

      ### 1.93.10

      - Fixed the response code for the [`GET /v1/charges/{chargeKey}/actions/{actionKey}`](#operations/getAction) endpoint. It was incorrectly documented as 201, but the server actually returns 200.
      - Improved the documentation regarding the 401 and 404 error responses. The `type`, `title`, and `status` properties now describe the exact returned values.

      </div>

      <div data-section-id="tag/Release-Notes/1.93.9">

      ### 1.93.9

      - Removed the "Get Settlement Details per Merchant" endpoint.

      </div>

      <div data-section-id="tag/Release-Notes/1.93.8">

      ### 1.93.8

      - Fixed validation of `authenticationValue`, restricts it to 28 characters length and the regex `^[\w\/+=]+$` for the following endpoints:
        - [`POST /v1/charges`](#operation/createCharge)
        - [`POST /v1/charges/funding`](#operation/createChargeFunding)
        - [`POST /v1/charges/{initialChargeKey}/mit`](#operation/createChargeMitFromInitialCharge)

      </div>

      <div data-section-id="tag/Release-Notes/1.93.7">

      ### 1.93.7

      - The `clearingDelayAfterMinutes` property is deprecated. The change effects the following endpoints:
        - [`POST /v1/charges`](#operation/createCharge)
        - [`POST /v1/charges/3ds`](#operation/createCharge3ds)
        - [`POST /v1/charges/pos`](#operation/createChargePos)
        - [`POST /v1/charges/payout`](#operation/createChargePayout)
        - [`POST /v1/charges/{chargeKey}/clear`](#operation/triggerManualClearing)
      - Documentation improvements for the `clearAfter` property.

      </div>

      <div data-section-id="tag/Release-Notes/1.93.6">

      ### 1.93.6

      - The [`POST /v1/charges/pos`](#operation/createChargePos) endpoint has the following changes:
        - `riskCheck` has been removed from the request.
        - `authorizationIsoFields.eci` has a fixed value of `none` in the response.

      </div>

      <div data-section-id="tag/Release-Notes/1.93.5">

      ### 1.93.5

      - `currencyConversionRates` added to fields grossSettlementAmount and interchangeFeeAmount for FirstPresentmentDMSSpecific, FirstPresentmentSMSSpecific, FirstPresentmentRTCSpecific for following endpoints:
        - [`GET /v1/reports/reconciliationDetails`](#operation/getReconciliationDetails)
        - [`GET /v1/reports/reconciliationDetails/fundsTransferDate/{fundsTransferDate}`](#operation/getReconciliationDetailsFundsTransferDate)

      - `actionKey`, `actionReference` added to FirstPresentmentDMSSpecific, FirstPresentmentSMSSpecific for following endpoints:
        - [`GET /v1/reports/reconciliationDetails`](#operation/getReconciliationDetails)
        - [`GET /v1/reports/reconciliationDetails/fundsTransferDate/{fundsTransferDate}`](#operation/getReconciliationDetailsFundsTransferDate)

      </div>

      <div data-section-id="tag/Release-Notes/1.93.4">

      ### 1.93.4

      - Fixed incorrect payload for the following endpoint:
        - [`POST /v1/fees/scheme/estimate`](#operation/getSchemeFeeEstimation)

      </div>

      <div data-section-id="tag/Release-Notes/1.93.3">

      ### 1.93.3

      - Removed `useBillingAddressForShipping` field from the following endpoints:
        - [`POST /v1/charges`](#operation/createCharge)
        - [`POST /v1/charges/3ds`](#operation/createCharge3ds)
        - [`POST /v1/charges/{chargeKey}/authorize`](#operation/authorizeChargeAfterChallenge)
        - [`POST /v1/charges/payout`](#operation/createChargePayout)
        - [`POST /v1/charges/{initialChargeKey}/mit`](#operation/createChargeMitFromInitialCharge)
        - [`POST /v1/charges/transfer/mit`](#operation/transferMit)

      </div>

      <div data-section-id="tag/Release-Notes/1.93.2">

      ### 1.93.2

      - Added [`POST /v1/currency-conversion-rate/network/:network/effectiveDate/:effectiveDate`](#operation/getCurrencyRates) endpoint.

      </div>

      <div data-section-id="tag/Release-Notes/1.93.1">

      ### 1.93.1

      - Removed duplicated value `recurring` from enum in `threeDsComplianceReason` in the Open API schema.

      </div>

      <div data-section-id="tag/Release-Notes/1.93.0">

      ### 1.93.0

      - The [`POST /v1/charges/pos`](#operation/createChargePos) endpoint has the following changes:
        - `billingAddress`, `shippingAddress`, `authentication`, `fraudLiability`, `threeDsStrategy`, `useBillingAddressForShipping` and `initialChargeKey` have been removed from the request.
        - `charge.status.authentication` now has only one allowed value of `none`.
        - The field `newEmvData` has been added to the response.
        - The fields `terminal` and `terminalEntryMode` are now required in the request.
        - A validation pattern for fields `charge.pinBlock.zoneId` and `charge.pinBlock.keyId` has been added.

      </div>

      <div data-section-id="tag/Release-Notes/1.92.0">

      ### 1.92.0

      - Added field `authorizationIsoFields` to the response of the [`POST /v1/charges/funding`](#operation/createChargeFunding) endpoint.

      </div>

      <div data-section-id="tag/Release-Notes/1.91.1">

      ### 1.91.1

      - Added the `clearAfter` parameter to the [`/v1/charges/clear`](#operation/triggerManualClearing) endpoints.

      </div>

      <div data-section-id="tag/Release-Notes/1.91.0">

      ### 1.91.0

      - Removes HRK (Croatian kuna) as a possible currency to use.
      - Added fields `avs` and `threeDsAuthenticationResult` to the [`POST /v1/charges/:initialChargeKey/mit`](#operation/createChargeMitFromInitialCharge) endpoint.
      - Added field `emvData` to the [`POST /v1/charges/pos`](#operation/createChargePos) endpoint.
      - Added charge types table. To view the table click [here](#section/Charge-Types).
      - Removes validation on `recurringFrequency` and `recurringExpiry` on [`POST /v1/charges`](#operation/createCharge) endpoint for initial MIT charges.
      - The request and response object of the transfer MIT endpoint [`/v1/transfer/mit`](#operation/transferMit) now expects and returns the field `type.sequence` set to "initial" instead of "initial-transfer".
      - Updated API reference to be inline with implementation:
        - The endpoints for creating and getting charges are now showing required fields in the responses accurately, and some undocumented fields have been added.
        - The endpoints for getting and listing charges now accurately show all the different types of charges that the endpoints can return.
        - The values that the Charge's `status.refunds` field can have have been updated.

      </div>

      <div data-section-id="tag/Release-Notes/1.90.14">

      ### 1.90.14

      - Added `fundsTransferBookDate` to the Settlement Reports API.

      </div>

      <div data-section-id="tag/Release-Notes/1.90.13">

      ### 1.90.13

      - Improve default/fallback values for Visa `CardInfo`.

      </div>

      <div data-section-id="tag/Release-Notes/1.90.12">

      ### 1.90.12

      - Added support for co-branded cards response from `CardInfo`.

      </div>

      <div data-section-id="tag/Release-Notes/1.90.11">

      ### 1.90.11

      - Fix inconsistency in inner OpenAPI specification for `ReconciliationDetail`.

      </div>

      <div data-section-id="tag/Release-Notes/1.90.10">

      ### 1.90.10

      - Added the `clearAfter` property to the charge for the following endpoints:
        - [`POST /v1/charges`](#operation/createCharge)
        - [`POST /v1/charges/3ds`](#operation/createCharge3ds)
        - [`POST /v1/charges/pos`](#operation/createChargePos)

      </div>

      <div data-section-id="tag/Release-Notes/1.90.8">

      ### 1.90.8

      - Added field `acquirerIdCode` to the existing `reconciliationCycleEnd` event type.

      </div>

      <div data-section-id="tag/Release-Notes/1.90.7">

      ### 1.90.7

      - Added description of `cardSequenceNumber` on the [`POST /v1/charges/pos`](#operation/createChargePos) endpoint.

      </div>

      <div data-section-id="tag/Release-Notes/1.90.6">

      ### 1.90.6

      - Added a new `route` field to the [`POST /v1/merchants/:merchantKey/acceptors`](#operation/createAcceptor) and [`PATCH /v1/merchants/:merchantKey/acceptors`](#operation/updateAcceptor) endpoints. This field will be used to route charges without needing to specify a Merchant Acceptor Key.
      - Added a new `409 Conflict` error to the list of possible errors for the Merchant Acceptors endpoints.

      </div>

      <div data-section-id="tag/Release-Notes/1.90.5">

      ### 1.90.5

      - Fixed Iceland Krona currency exponent.
      - Fixed account status 3DS example.
      - Updated [`POST /v1/charges/pos`](#operation/createChargePos) endpoint according to the latest draft.

      </div>

      <div data-section-id="tag/Release-Notes/1.90.4">

      ### 1.90.4

      - Added `RealTimeClearing` type to preview.

      </div>

      <div data-section-id="tag/Release-Notes/1.90.3">

      ### 1.90.3

      - Added sandbox URLs to the Dispute Response Application examples.

      </div>

      <div data-section-id="tag/Release-Notes/1.90.2">

      ### 1.90.2

      - Fixed bug with the `BETA` tags not visible in some browsers.

      </div>

      <div data-section-id="tag/Release-Notes/1.90.1">

      ### 1.90.1

      - Added `BETA` tags to the documentation for beta endpoints.

      </div>

      <div data-section-id="tag/Release-Notes/1.90.0">

      ### 1.90.0

      - Updated Accounts documentation.

      </div>

      <div data-section-id="tag/Release-Notes/1.89.9">

      ### 1.89.9

      - Improve document readability.

      </div>

      <div data-section-id="tag/Release-Notes/1.89.8">

      ### 1.89.8

      - Added new event source and subscription `currencyRates`.
      - Extended `reconciliation` event source with a new type - `reconciliationCycleEnd`.

      </div>

      <div data-section-id="tag/Release-Notes/1.89.6">

      ### 1.89.6

      - Added field `totalItems` to the `Get Disputes` endpoint, this is total non-paginated items for the submitted parameters.

      </div>

      <div data-section-id="tag/Release-Notes/1.89.5">

      ### 1.89.5

      - Added missing currency `CNH` as a possible response from `Card Info`.

      </div>

      <div data-section-id="tag/Release-Notes/1.89.4">

      ### 1.89.4

      - Updated regex for `originalFilename` of `Add Dispute Document`.

      </div>

      <div data-section-id="tag/Release-Notes/1.89.2">

      ### 1.89.2

      - Added support for `bancontact` Card Network on the `Card Info` endpoints.

      </div>

      <div data-section-id="tag/Release-Notes/1.89.1">

      ### 1.89.1

      - Change type of field `entry` in Reconciliation Details to `integer`.
      - Change field `type` in Daily Settlement Total to `settlementTotal`.

      </div>

      <div data-section-id="tag/Release-Notes/1.89.0">

      ### 1.89.0

      - Stricter rules for the idempotency-key header, for more information on how idempotency works go [here](#section/Retrying).

      </div>

      <div data-section-id="tag/Release-Notes/1.88.0">

      ### 1.88.0

      - Added new event type `com.silverflow.reconciliation.dailySettlementTotal` example to event source `https://silverflow.com/reconciliation`.
      - Added new field `acquirerAgentKey` to the `Bin` object.

      </div>

      <div data-section-id="tag/Release-Notes/1.87.0">

      ### 1.87.0

      - Added Visa Direct Participation fields to visa card info api responses.

      </div>

      <div data-section-id="tag/Release-Notes/1.86.0">

      ### 1.86.0

      - Added regular expression patterns, minimum and maximum length to string fields.
      - Added minimum and maximum values to numeric fields.

      </div>

      <div data-section-id="tag/Release-Notes/1.85.1">

      ### 1.85.1

      - Updated documentation for [`GET /v1/reports/dailySettlementTotals/:binKey`](#operation/getSettlementTotalsBinKey).

      </div>

      <div data-section-id="tag/Release-Notes/1.85.0">

      ### 1.85.0

      - Added a new endpoint to retrieve an action performed on a charge [`/v1/charges/:chargeKey/actions/:actionKey`](#operation/getAction).
      - Added a new endpoint to retrieve a list of actions performed on a charge [`/v1/charges/:chargeKey/actions`](#operation/getActions).

      </div>

      <div data-section-id="tag/Release-Notes/1.84.0">

      ### 1.84.0

      - The endpoint [`/v1/charges/cancelOrRefund`](#operation/cancelOrRefundCharge) now returns an action entity and a status code of 201.
      - The endpoint [`/v1/charges/clear`](#operation/triggerManualClearing) now returns an action entity and a status code of 201.
      - The `sequence` property of a charge cannot contain the value `initial-transfer` any longer.

      </div>

      <div data-section-id="tag/Release-Notes/1.83.0">

      ### 1.83.0

      - The endpoint [`/v1/eventSubscriptions`](#operation/createEventSubscription) now accepts different sources and returns `eventDataSchema`, `schemaVersion` is removed from response.
      - The endpoint [`/v1/eventSubscriptions`](#operation/getEventSubscriptions) now returns `eventDataSchema`, `schemaVersion` is removed from response.
      - The endpoint [`/v1/eventSubscriptions/:eventSubscriptionKey`](#operation/getSubscription) now returns `eventDataSchema`, `schemaVersion` is removed from response.
      - The endpoint [`/v1/eventSubscriptions`](#operation/updateEventSubscription) now returns `eventDataSchema`, `schemaVersion` is removed from response.
      - Updated event subscriptions examples.

      </div>

      <div data-section-id="tag/Release-Notes/1.82.0">

      ### 1.82.0

      - The endpoint [`/v1/charges/refund`](#operation/refund) now returns an action entity and a status code of 201.
      - The endpoint [`/v1/charges/reverse`](#operation/reverse) now returns an action entity and a status code of 201.

      </div>

      <div data-section-id="tag/Release-Notes/1.81.1">

      ### 1.81.1

      - Updated [`/reports/reconciliationDetails/`](#operation/getReconciliationDetails). Query with data range is added.
      - Type of `authorizationAmount` and `clearingAmount` changed to integer.

      </div>

      <div data-section-id="tag/Release-Notes/1.80.1">

      ### 1.80.1

      - The endpoint for creating funding charges [`/v1/charges/funding`](#operation/createChargeFunding) now requires a merchant acceptor with `mcc` set to 6012.
      - Updated description for funding charges [`/v1/charges/funding`](#operation/createChargeFunding).

      </div>

      <div data-section-id="tag/Release-Notes/1.80.0">

      ### 1.80.0

      - Added ability to list charges by `transactionReference` [`GET /v1/charges`](#operation/getCharges).

      </div>

      <div data-section-id="tag/Release-Notes/1.79.13">

      ### 1.79.13

      Updated corrections documentation.

      </div>

      <div data-section-id="tag/Release-Notes/1.79.12">

      ### 1.79.12

      - Removed fields `impact`, `type` and `description` in FirstChargebackTypeSpecific response object of [`GET /v1/reports/reconciliationDetails`](#operation/getReconciliationDetails).
      - Renamed field `interchangeFeeAmounts` to `interchangeFeeAmount` and changed object type to no longer be an array in FirstChargebackTypeSpecific response object of [`GET /v1/reports/reconciliationDetails`](#operation/getReconciliationDetails).

      </div>

      <div data-section-id="tag/Release-Notes/1.79.11">

      ### 1.79.11

      - Made field `authenticationContext.browserData.browserIP` optional for creating a 3ds charge [`POST /v1/charges/3ds`](#operation/createCharge3ds).

      </div>

      <div data-section-id="tag/Release-Notes/1.79.10">

      ### 1.79.10

      - Deprecated [`/reports/settlementDetails/:merchantKey`](#operation/getSettlementDetailsMerchant).
      - Deprecated [`/reports/settlementDetails/`](#operation/getSettlementDetails).
      - Added [`/reports/reconciliationDetails/`](#operation/getReconciliationDetails).

      </div>

      <div data-section-id="tag/Release-Notes/1.79.8">

      ### 1.79.8

      - Removed fields `calculatedAmount` , `calculatedImpact` and `reconciliationDifference` in response object of [`GET /v1/reports/dailySettlementTotals/:binKey`](#operation/getSettlementTotalsBinKey).

      </div>

      <div data-section-id="tag/Release-Notes/1.79.7">

      ### 1.79.7

      - Renamed required field `modified` to `lastModified` in response object of [`GET /v1/reports/dailySettlementTotals/:binKey`](#operation/getSettlementTotalsBinKey).

      </div>

      <div data-section-id="tag/Release-Notes/1.79.5">

      ### 1.79.5

      - Changed `type` field for creating funding charges [`POST /v1/charges/funding`](#operation/createChargeFunding). From now on subfields `type.intent` `type.intent` `type.intent` can only be `funding` `e-commerce` and `checkout` respectively.
      - Removed `type.fundingType` field from all [charges](#tag/Create-Charges) except funding charges [`POST /v1/charges/funding`](#operation/createChargeFunding).

      </div>

      <div data-section-id="tag/Release-Notes/1.79.4">

      ### 1.79.4

      - Added new required fields `created` and `modified` to response object of [`GET /v1/reports/dailySettlementTotals/:binKey`](#operation/getSettlementTotalsBinKey).

      </div>

      <div data-section-id="tag/Release-Notes/1.79.2">

      ### 1.79.2

      - Added new required field `filename` to `typeSpecific` attribute in response object of [`GET /v1/reports/reconciliationDetails/fundsTransferDate/:fundsTransferDate`].
      - Added new optional field `transactionReference` to `typeSpecific` attribute in response object of [`GET /v1/reports/reconciliationDetails/fundsTransferDate/:fundsTransferDate`].

      </div>

      <div data-section-id="tag/Release-Notes/1.79.1">

      ### 1.79.1

      - When creating a bearer token with [`POST /v1/agents/{agentKey}/bearerToken`](#operation/createAgentBearerToken), the HTTP response code is now 201 instead of 200.

      </div>

      <div data-section-id="tag/Release-Notes/1.79.0">

      ### 1.79.0

      - Added 3DS as a standalone service.

      </div>

      <div data-section-id="tag/Release-Notes/1.78.0">

      ### 1.78.0

      - Added a new endpoint for creating funding charges [`POST /v1/charges/funding`](#operation/createChargeFunding).
      - Removed the `receiverDetails` property from the request and response objects of [`POST /v1/charges`](#operation/createCharge), and [`POST /v1/charges/3ds`](#operation/createCharge3ds) endpoints.
      - Removed the `senderDetails` property from the request and response objects of [`POST /v1/charges/3ds`](#operation/createChargePayout), and from the response object of [`POST /v1/charges/transferMit`](#operation/transferMit).
      - Added a new `type.fundingType` property to all [charges](#tag/Create-Charges). The property describes the funding type of funding charges. It is required and used only for funding charges.

      </div>

      <div data-section-id="tag/Release-Notes/1.77.0">

      ### 1.77.0

      - A new Card Info endpoint is now available at [`/v1/cardInfo/:network`](#operation/getCardInfo). This endpoint allows downloading of all available Card Ranges for a particular Card Network. The format of each range is the same as when retrieving a single range.
      - Fix merchantKey validation for the [`/reports/settlementDetails/:merchantKey`](#operation/getSettlementDetailsMerchant).
      - Adds support for the `application/vnd.openxmlformats-officedocument.spreadsheetml.sheet` format for the [`/reports/quarterlyNetwork/:network/:acquirerId/:year/:quarter`](#operation/getQuarterlyReport).

      </div>

      <div data-section-id="tag/Release-Notes/1.76.0">

      ### 1.76.0

      - Cardholder name is an optional property across all [charges](#tag/Create-Charges).

      </div>

      <div data-section-id="tag/Release-Notes/1.75.2">

      ### 1.75.2

      - We are adding a new restrictions for cardholder name you can read more about it here: [Cardholder name restrictions](#section/Cardholder-name-restrictions).

      </div>

      <div data-section-id="tag/Release-Notes/1.74.1">

      ### 1.74.1

      - We are releasing the new enrollment service for more information navigate here [Enrollments](#tag/Enrollments).

      </div>

      <div data-section-id="tag/Release-Notes/1.70.2">

      ### 1.70.2

      - The maximum allowed size of `authenticationContext.browserData.userAgent` has been increased to 2048.
      - The `merchantAdviceCode` is returned when doing a charge (Mastercard only, within `authorizationIsoFields.networkSpecificFields`).
      - A charge can now be (partially) refunded multiple times.
      - It is possible to enable or disable disputes auto-defense functionality on merchant acceptor level (`/v1/merchants/:merchantKey/acceptors`).
      - Dispute monitoring report endpoint added (`/v1/reports/disputesMonitoring`).

      </div>

      <div data-section-id="tag/Release-Notes/1.65.0">

      ### 1.65.0

      - It is now possible to get a risk assessment from a risk provider while creating a charge. To enable this `riskCheck` has to be present in the request.

      </div>

      <div data-section-id="tag/Release-Notes/1.63.1">

      ### 1.63.1

      - It is now possible to subscribe to `documents` events. See new event source: `/v1/eventSubscriptions`.
      - A Merchant's `merchantReference` can now be updated (`PATCH /v1/merchants/:merchantKey`).
      - Merchants can now be filtered by their `merchantReference` (`GET /v1/merchants`).
      - `merchantReference` is now properly saved during creation of a Merchant (`POST /v1/merchants`).

      </div>

      <div data-section-id="tag/Release-Notes/1.60.3">

      ### 1.60.3

      - New feature: Dispute Auto Defense. When the issuer has the liability we will defend the fraud disputes for you.
      - `creditOrReversalDetail` is mandatory when defending a Visa dispute with 'Credit or Reversal Processed' as disputeResponseReasonId.

      </div>

      <div data-section-id="tag/Release-Notes/1.60.1">

      ### 1.60.1

      - Added new endpoint `/v1/bins/:binKey/configurations` to view BIN configurations
        BIN configurations were introduced to manage settings related to a BIN that can
        change over time. BIN configurations have a `validFrom` date, to indicate when
        the configuration is effective.

      - Endpoints `/v1/charges/:chargeKey/reverse` and `/v1/charges/:chargeKey/refund`
        now return 204 response codes upon success.

      - Added approval workflow to dispute defense submission. Endpoint `/v1/disputes/:disputeKey/submitEvidence`
        will let users provide evidence for approval. Reviewers can reject the evidence by calling
        `/v1/disputes/:disputeKey/rejectEvidence` or approve by calling `/v1/disputes/:disputeKey/defend`.
        It is possible to bypass the approval workflow by defending directly via endpoint
        `/v1/disputes/:disputeKey/defend`. This action will accept the evidence and defend the dispute in one go.

      - The following fields in endpoint `/v1/reports/settlementDetails` response object (SettlementDetails) are now required: `clearableTime`, `filename`, `reportingFor`, `grossSettlementCurrency`, `grossSettlementAmount`, `interchangeFeesCurrency`, `interchangeFeesAmount`, `netSettlementCurrency`, `netSettlementAmount`, `processingDate`, `fundsTransferDate`, `settlementCycle`, `settlementServiceCode`, `settlementServiceName`, `settlementServiceId`, `settlementServiceCutOffTime`, `acquirerIdCode`, `transactionType`, `transactionTask`.

      - The following field in endpoint `/v1/reports/dailySettlementTotals/{binKey}` response object is now required: `acquirerIdCode`.

      - Added required fields to the endpoint `/v1/reports/dailySettlementTotals/{binKey}` response object: `calculatedAmount`, `reconciliationDifference`.

      - The following fields in endpoint `/v1/reports/settlementDetails` response object (SettlementDetails) are now floats: `interchangeFeeAmount`, `grossSettlementAmount` and `netSettlementAmount`.

      </div>

      <button id="view-past-release-notes">View past release notes</button>
    x-traitTag: true
  - name: Card Info
    description: Provides information from the card networks about Card Ranges.
  - name: Currency Conversion Rates
  - name: Fees
  - name: Transaction Risk Assessment
    description: Transaction Risk Assessment
  - name: Network Tokenization
    description: Network Tokenization
  - name: Disputes Events
    description: ' '
  - name: Compliance Cases Events
    description: ' '
  - name: Fraud Notification Events
    description: ' '
  - name: Processor Tokens Events
    description: ' '
  - name: Network Tokens Events
    description: ' '
  - name: Distribution Events
    description: ' '
  - name: AMMF Submission Events
    description: ' '
  - name: Reconciliation Events
    description: ' '
  - name: Charges Events
    description: ' '
  - name: Clearing Events
    description: ' '
paths:
  /merchants/{merchantKey}/acceptors:
    post:
      operationId: createAcceptor
      summary: Create Merchant Acceptor
      description: |
        This operation creates a new Acceptor for the specified Merchant.
        A newly created Acceptor always has `status` set to `active`.

        Requires `merchants:CreateAcceptor` permission.
      tags:
        - Merchant Acceptors
      parameters:
        - $ref: '#/components/parameters/merchantKey'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/AcceptorCreate'
      responses:
        '201':
          description: The created Acceptor
          headers:
            Location:
              description: The URL of the newly created Merchant Acceptor
              schema:
                type: string
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Acceptor'
        '400':
          $ref: '#/components/responses/BadRequestError'
        '401':
          $ref: '#/components/responses/UnauthorizedError'
        '403':
          $ref: '#/components/responses/ForbiddenError'
        '404':
          $ref: '#/components/responses/NotFoundError'
        '409':
          $ref: '#/components/responses/ConflictError'
        '429':
          $ref: '#/components/responses/TooManyRequestsError'
    get:
      operationId: getMerchantAcceptors
      summary: List Merchant Acceptors by Merchant
      description: |
        This operation returns a (paged) list of all (active) Merchant Acceptors for the specified Merchant.

        Requires `merchants:ListAcceptors` permission.
      tags:
        - Merchant Acceptors
      parameters:
        - $ref: '#/components/parameters/sortOrder'
        - $ref: '#/components/parameters/limit'
        - $ref: '#/components/parameters/offsetToken'
        - $ref: '#/components/parameters/merchantKey'
      responses:
        '200':
          description: A (paged) list of Merchant Acceptors
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AcceptorsPage'
        '400':
          $ref: '#/components/responses/BadRequestError'
        '401':
          $ref: '#/components/responses/UnauthorizedError'
        '403':
          $ref: '#/components/responses/ForbiddenError'
        '404':
          $ref: '#/components/responses/NotFoundError'
        '429':
          $ref: '#/components/responses/TooManyRequestsError'
  /acceptors:
    get:
      operationId: getAcceptors
      summary: List Merchant Acceptors
      description: |
        This operation returns a paged list of all Merchant Acceptors for the authenticated Agent.

        Requires `merchants:ListAcceptors` permission.
      tags:
        - Merchant Acceptors
      parameters:
        - $ref: '#/components/parameters/sortOrder'
        - $ref: '#/components/parameters/limit'
        - $ref: '#/components/parameters/offsetToken'
        - $ref: '#/components/parameters/reference'
      responses:
        '200':
          description: A paged list of Merchant Acceptors
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/AcceptorsPage'
        '400':
          $ref: '#/components/responses/BadRequestError'
        '401':
          $ref: '#/components/responses/UnauthorizedError'
        '403':
          $ref: '#/components/responses/ForbiddenError'
        '429':
          $ref: '#/components/responses/TooManyRequestsError'
  /acceptors/{acceptorKey}:
    get:
      operationId: getAcceptor
      summary: Get Merchant Acceptor
      description: |
        This operation returns the active Merchant Acceptor.

        Requires `acceptors:Get` permission.
      tags:
        - Merchant Acceptors
      parameters:
        - $ref: '#/components/parameters/acceptorKey'
      responses:
        '200':
          description: The active Acceptor version
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Acceptor'
        '400':
          $ref: '#/components/responses/BadRequestError'
        '401':
          $ref: '#/components/responses/UnauthorizedError'
        '403':
          $ref: '#/components/responses/ForbiddenError'
        '404':
          $ref: '#/components/responses/NotFoundError'
        '412':
          $ref: '#/components/responses/PreconditionFailedError'
        '429':
          $ref: '#/components/responses/TooManyRequestsError'
    patch:
      operationId: updateAcceptor
      summary: Update Merchant Acceptor
      description: |
        Update a Merchant Acceptor using JSON Merge Patch (RFC 7386).
        Set a field to `null` to remove it. Example:
        ```json
        { "webshopUrl": null }
        ```

        Requires `acceptors:Update` permission.
      tags:
        - Merchant Acceptors
      parameters:
        - $ref: '#/components/parameters/acceptorKey'
      requestBody:
        description: |
          Set the status of this Merchant Acceptor Version
        required: true
        content:
          application/merge-patch+json:
            schema:
              $ref: '#/components/schemas/AcceptorMergeUpdate'
      responses:
        '201':
          description: The updated Merchant Acceptor version
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Acceptor'
        '400':
          $ref: '#/components/responses/BadRequestError'
        '401':
          $ref: '#/components/responses/UnauthorizedError'
        '403':
          $ref: '#/components/responses/ForbiddenError'
        '404':
          $ref: '#/components/responses/NotFoundError'
        '409':
          $ref: '#/components/responses/ConflictError'
        '412':
          $ref: '#/components/responses/PreconditionFailedError'
        '429':
          $ref: '#/components/responses/TooManyRequestsError'
    delete:
      operationId: deleteAcceptorVersion
      summary: Archive Merchant Acceptor
      description: |
        This operation archives the specified Merchant Acceptor. An archived Merchant Acceptor cannot be used to create 
        new charge requests. Charges can still be refunded and disputes can still occur.

        Requires `acceptors:Archive` permission.
      tags:
        - Merchant Acceptors
      parameters:
        - $ref: '#/components/parameters/acceptorKey'
      responses:
        '204':
          description: Merchant Acceptor version deleted successfully
        '401':
          $ref: '#/components/responses/UnauthorizedError'
        '403':
          $ref: '#/components/responses/ForbiddenError'
        '404':
          $ref: '#/components/responses/NotFoundError'
        '409':
          $ref: '#/components/responses/ConflictError'
        '412':
          $ref: '#/components/responses/PreconditionFailedError'
        '429':
          $ref: '#/components/responses/TooManyRequestsError'
  /acceptors/{acceptorKey}/versions/{acceptorVersion}:
    get:
      operationId: getAcceptorVersion
      summary: Get Merchant Acceptor Version
      description: |
        This operation returns a particular Merchant Acceptor version.

        Requires `acceptors:Get` permission.
      tags:
        - Merchant Acceptors
      parameters:
        - $ref: '#/components/parameters/acceptorKey'
        - $ref: '#/components/parameters/acceptorVersion'
      responses:
        '200':
          description: The referenced Merchant Acceptor version
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Acceptor'
        '400':
          $ref: '#/components/responses/BadRequestError'
        '401':
          $ref: '#/components/responses/UnauthorizedError'
        '403':
          $ref: '#/components/responses/ForbiddenError'
        '404':
          $ref: '#/components/responses/NotFoundError'
        '429':
          $ref: '#/components/responses/TooManyRequestsError'
  /acceptors/{acceptorKey}/versions/draft:
    patch:
      operationId: activateAcceptor
      summary: Activate Merchant Acceptor
      description: |
        This operation activates the latest draft Merchant Acceptor.

        Requires `acceptors:Activate` permission.
      tags:
        - Merchant Acceptors
      parameters:
        - $ref: '#/components/parameters/acceptorKey'
      requestBody:
        description: |
          Set the status of this Merchant Acceptor version
        required: true
        content:
          application/merge-patch+json:
            schema:
              $ref: '#/components/schemas/AcceptorActivate'
      responses:
        '201':
          description: The referenced Merchant Acceptor version
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Acceptor'
        '400':
          $ref: '#/components/responses/BadRequestError'
        '401':
          $ref: '#/components/responses/UnauthorizedError'
        '403':
          $ref: '#/components/responses/ForbiddenError'
        '404':
          $ref: '#/components/responses/NotFoundError'
        '409':
          $ref: '#/components/responses/ConflictError'
        '429':
          $ref: '#/components/responses/TooManyRequestsError'
    get:
      operationId: getDraftAcceptorVersion
      summary: Get Draft Merchant Acceptor Version
      description: |
        This operation returns the draft Merchant Acceptor version.

        Requires `acceptors:Get` permission.
      tags:
        - Merchant Acceptors
      parameters:
        - $ref: '#/components/parameters/acceptorKey'
      responses:
        '200':
          description: The referenced Merchant Acceptor version
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Acceptor'
        '401':
          $ref: '#/components/responses/UnauthorizedError'
        '403':
          $ref: '#/components/responses/ForbiddenError'
        '404':
          $ref: '#/components/responses/NotFoundError'
        '429':
          $ref: '#/components/responses/TooManyRequestsError'
  /enrollments:
    get:
      operationId: getAllEnrollments
      summary: List Enrollments
      description: |
        This operation returns a (paged) list of all (active) Enrollments for the authenticated Agent,
        optionally filtered to a single Merchant with the `merchantKey` query parameter.

        Requires `enrollments:List` permission.
      tags:
        - Enrollments
      parameters:
        - $ref: '#/components/parameters/sortOrder'
        - $ref: '#/components/parameters/limit'
        - $ref: '#/components/parameters/offsetToken'
        - $ref: '#/components/parameters/archived'
        - $ref: '#/components/parameters/merchantKeyQs'
      responses:
        '200':
          description: A (paged) list of Enrollments
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/EnrollmentsPage'
        '400':
          $ref: '#/components/responses/BadRequestError'
        '401':
          $ref: '#/components/responses/UnauthorizedError'
        '403':
          $ref: '#/components/responses/ForbiddenError'
        '429':
          $ref: '#/components/responses/TooManyRequestsError'
    post:
      operationId: createEnrollment
      summary: Create Enrollment [EXPERIMENTAL]
      description: |
        This operation creates a new Enrollment for the specified type and variables.
        Enrollment is an asynchronous process. It may take some time to complete depending on the enrollment type.

        Requires `enrollments:Create` permission.
      tags:
        - Enrollments
      requestBody:
        description: |
          The request body allows to create an Enrollment.
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CreateEnrollment'
            examples:
              amex_sm:
                $ref: '#/components/examples/create-amex-sm-enrollment'
              discover-mpr:
                $ref: '#/components/examples/create-discover-mpr-enrollment'
              scof:
                $ref: '#/components/examples/create-scof-enrollment'
              vau:
                $ref: '#/components/examples/create-vau-enrollment'
              vts:
                $ref: '#/components/examples/create-vts-enrollment'
      responses:
        '201':
          description: The created enrollment with pending status
          headers:
            Location:
              description: The URL of the newly created Enrollment
              schema:
                type: string
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/StandaloneEnrollment'
              examples:
                createdEnrollment:
                  $ref: '#/components/examples/create-enrollment-scof'
        '400':
          $ref: '#/components/responses/BadRequestError'
        '401':
          $ref: '#/components/responses/UnauthorizedError'
        '403':
          $ref: '#/components/responses/ForbiddenError'
        '404':
          $ref: '#/components/responses/NotFoundError'
        '409':
          $ref: '#/components/responses/ConflictError'
        '429':
          $ref: '#/components/responses/TooManyRequestsError'
  /enrollments/{enrollmentKey}:
    get:
      operationId: getEnrollmentByKey
      summary: Get Enrollment
      description: |
        This operation returns an Enrollment by key.

        Requires `enrollments:Get` permission.
      tags:
        - Enrollments
      parameters:
        - $ref: '#/components/parameters/enrollmentKey'
      responses:
        '200':
          description: The Enrollment that corresponds to the specified key.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/StandaloneEnrollment'
        '400':
          $ref: '#/components/responses/BadRequestError'
        '401':
          $ref: '#/components/responses/UnauthorizedError'
        '403':
          $ref: '#/components/responses/ForbiddenError'
        '404':
          $ref: '#/components/responses/NotFoundError'
        '429':
          $ref: '#/components/responses/TooManyRequestsError'
    delete:
      operationId: deleteEnrollment
      summary: Archive Enrollment
      description: |
        This operation starts the archival process of an Enrollment.
        The Enrollment entity will be marked as `archived` and have `pendingUnenroll` as `enrollmentStatus`.
        Confirmed and successful unenrollments have `unenrolled` as `enrollmentStatus`.
        **ISSM**: The entity will be removed from the list endpoint but will not unenroll from ISSM Merchant Enrollment, as it has been decommissioned by Mastercard.

        Requires `enrollments:Archive` permission.
      tags:
        - Enrollments
      parameters:
        - $ref: '#/components/parameters/enrollmentKey'
      requestBody:
        required: false
        description: |
          Required to archive ISSM or AMEX enrollments.
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ArchiveEnrollment'
      responses:
        '204':
          description: Enrollment archived successfully
        '400':
          $ref: '#/components/responses/BadRequestError'
        '401':
          $ref: '#/components/responses/UnauthorizedError'
        '403':
          $ref: '#/components/responses/ForbiddenError'
        '404':
          $ref: '#/components/responses/NotFoundError'
        '405':
          $ref: '#/components/responses/MethodNotAllowed'
        '409':
          $ref: '#/components/responses/ConflictError'
        '429':
          $ref: '#/components/responses/TooManyRequestsError'
    patch:
      operationId: updateEnrollment
      summary: Update Enrollment [EXPERIMENTAL]
      description: |
        This operation starts the update process of an Enrollment.
        The Enrollment entity will have `pending` as `enrollmentStatus`.
        Confirmed and successful updates have `enrolled` as `enrollmentStatus`.
        This operation is currently only supported by AMEX Sponsored Merchant Enrollments.

        Requires `enrollments:Update` permission.
      tags:
        - Enrollments
      parameters:
        - $ref: '#/components/parameters/enrollmentKey'
      requestBody:
        description: |
          Required to update AMEX Sponsored Merchant enrollments.
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/UpdateEnrollment'
      responses:
        '200':
          description: The updated Enrollment
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/StandaloneEnrollment'
        '400':
          $ref: '#/components/responses/BadRequestError'
        '401':
          $ref: '#/components/responses/UnauthorizedError'
        '403':
          $ref: '#/components/responses/ForbiddenError'
        '404':
          $ref: '#/components/responses/NotFoundError'
        '405':
          $ref: '#/components/responses/MethodNotAllowed'
        '409':
          $ref: '#/components/responses/ConflictError'
        '429':
          $ref: '#/components/responses/TooManyRequestsError'
  /screenings:
    post:
      operationId: postScreening
      summary: Create Screening Request
      description: |
        Submit merchant information to initiate a merchant screening request.
        This will trigger a Mastercard MATCH_PRO or a Visa VMSS screening submission.
        Processing is asynchronous. Results are generally available in under two minutes, but may be delayed depending on the type of screening and the load on the card scheme screening services.
        <br> **Note**: The website URL and address are retrieved from the Merchant entity.
        - "https://", "www", and excess subdomains might be trimmed while preserving key URL components for VMSS screening requests to ensure it does not exceed 84 characters.
        - city will be trimmed to ensure it does not exceed 20 characters for MATCH_PRO or 30 characters for VMSS.
        - address lines from the merchant will be trimmed to ensure it does not exceed 60 characters for MATCH.
        - duplicate principals with the same firstName and lastName (case-insensitive) will be deduplicated for VMSS screening requests, keeping only the first occurrence.

        <br>Please contact your technical account manager before screening with MATCH_PRO for the first time.
        Requires `screenings:Create` permission.
      tags:
        - Screenings
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ScreeningRequest'
            examples:
              MATCH_PRO:
                $ref: '#/components/examples/screening-submit-request-mc-pro'
              VMSS:
                $ref: '#/components/examples/screening-submit-request-visa'
      responses:
        '201':
          description: Information on the submitted screening request.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Screening'
              examples:
                MATCH_PRO:
                  $ref: '#/components/examples/screening-submit-response-mc-pro'
                VMSS:
                  $ref: '#/components/examples/screening-submit-response-visa'
        '400':
          $ref: '#/components/responses/InvalidInputError'
        '401':
          $ref: '#/components/responses/responses-UnauthorizedError'
        '403':
          $ref: '#/components/responses/responses-ForbiddenError'
        '404':
          $ref: '#/components/responses/responses-NotFoundError'
        '429':
          $ref: '#/components/responses/responses-TooManyRequestsError'
    get:
      operationId: listScreenings
      summary: List Screenings
      description: |
        List screening entities created by an agent.

        Requires `screenings:List` permission.
      tags:
        - Screenings
      parameters:
        - $ref: '#/components/parameters/sortOrder'
        - $ref: '#/components/parameters/limit'
        - $ref: '#/components/parameters/offsetToken'
        - $ref: '#/components/parameters/from'
        - $ref: '#/components/parameters/to'
      responses:
        '200':
          description: Page of screenings.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ScreeningsPage'
              examples:
                submit:
                  $ref: '#/components/examples/list-screenings-response'
        '400':
          $ref: '#/components/responses/InvalidInputError'
        '401':
          $ref: '#/components/responses/responses-UnauthorizedError'
        '403':
          $ref: '#/components/responses/responses-ForbiddenError'
        '404':
          $ref: '#/components/responses/responses-NotFoundError'
        '429':
          $ref: '#/components/responses/responses-TooManyRequestsError'
  /screenings/{screeningsKey}:
    get:
      operationId: getScreening
      summary: Get a Screening
      description: |
        Retrieve a screening entity.

        Requires `screenings:Get` permission.
      tags:
        - Screenings
      parameters:
        - $ref: '#/components/parameters/screeningKey'
      responses:
        '200':
          description: Information on the requested screening.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Screening'
              examples:
                MATCH:
                  $ref: '#/components/examples/get-screening-response-mc'
                VMSS:
                  $ref: '#/components/examples/get-screening-response-visa'
                MATCH_PRO:
                  $ref: '#/components/examples/get-screening-response-mc-pro'
        '400':
          $ref: '#/components/responses/InvalidInputError'
        '401':
          $ref: '#/components/responses/responses-UnauthorizedError'
        '403':
          $ref: '#/components/responses/responses-ForbiddenError'
        '404':
          $ref: '#/components/responses/responses-NotFoundError'
        '429':
          $ref: '#/components/responses/responses-TooManyRequestsError'
  /screenings/{screeningsKey}/results:
    get:
      operationId: listScreeningResults
      summary: List Screening Results
      description: |
        Retrieves the results of a screening request.

        Requires `screenings:List` permission.
      tags:
        - Screenings
      parameters:
        - $ref: '#/components/parameters/screeningKey'
        - $ref: '#/components/parameters/sortOrder'
        - $ref: '#/components/parameters/limit'
        - $ref: '#/components/parameters/offsetToken'
      responses:
        '200':
          description: List of screening results.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ScreeningResultsPage'
              examples:
                noMatch:
                  $ref: '#/components/examples/list-screenings-no-match-response'
                partialMatch:
                  $ref: '#/components/examples/list-screenings-partial-match-response'
        '400':
          $ref: '#/components/responses/InvalidInputError'
        '401':
          $ref: '#/components/responses/responses-UnauthorizedError'
        '403':
          $ref: '#/components/responses/responses-ForbiddenError'
        '404':
          $ref: '#/components/responses/responses-NotFoundError'
        '409':
          $ref: '#/components/responses/responses-ConflictError'
        '429':
          $ref: '#/components/responses/responses-TooManyRequestsError'
  /agents/{agentKey}:
    get:
      operationId: getAgent
      summary: Get Agent
      description: |
        Requires `agents:Get` permission.
      tags:
        - Agents
      parameters:
        - $ref: '#/components/parameters/agentKey'
      responses:
        '200':
          description: The referenced Agent
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Agent'
              examples:
                getAgent:
                  $ref: '#/components/examples/get-agent'
        '400':
          $ref: '#/components/responses/BadRequestError'
        '401':
          $ref: '#/components/responses/UnauthorizedError'
        '403':
          $ref: '#/components/responses/ForbiddenError'
        '404':
          $ref: '#/components/responses/NotFoundError'
        '429':
          $ref: '#/components/responses/TooManyRequestsError'
    patch:
      operationId: updateAgent
      summary: Update Agent
      description: |
        Requires `agents:Update` permission.
      tags:
        - Agents
      parameters:
        - $ref: '#/components/parameters/agentKey'
        - $ref: '#/components/parameters/ifMatch'
      requestBody:
        description: |
          The request body allows to change certain values on this Agent.
          Note that to update a property that is marked as 'Deprecated'
          you will need to contact your technical account manager for support.
        required: true
        content:
          application/merge-patch+json:
            schema:
              $ref: '#/components/schemas/AgentMergeUpdate'
            examples:
              updateEmailAddress:
                $ref: '#/components/examples/update-agent-change-emails'
      responses:
        '200':
          description: successful operation
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Agent'
              examples:
                updateAddress:
                  $ref: '#/components/examples/update-agent-change-emails-response'
        '400':
          $ref: '#/components/responses/BadRequestError'
        '401':
          $ref: '#/components/responses/UnauthorizedError'
        '403':
          $ref: '#/components/responses/ForbiddenError'
        '404':
          $ref: '#/components/responses/NotFoundError'
        '412':
          $ref: '#/components/responses/PreconditionFailedError'
        '429':
          $ref: '#/components/responses/TooManyRequestsError'
  /agents/{agentKey}/activate:
    post:
      operationId: activateAgent
      summary: Activate Agent
      description: |
        Requires `agents:Activate` permission.
      tags:
        - Agents
      security:
        - BearerToken: []
      parameters:
        - $ref: '#/components/parameters/agentKey'
      responses:
        '201':
          description: The created _key management_ API Key
          headers:
            Location:
              description: The URL of the newly created API Key
              schema:
                type: string
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiKey'
              examples:
                agentActivationApiKey:
                  $ref: '#/components/examples/agent-activation'
        '400':
          $ref: '#/components/responses/BadRequestError'
        '401':
          $ref: '#/components/responses/UnauthorizedError'
        '403':
          $ref: '#/components/responses/ForbiddenError'
        '404':
          $ref: '#/components/responses/NotFoundError'
        '429':
          $ref: '#/components/responses/TooManyRequestsError'
  /agents/{agentKey}/bearerToken:
    post:
      operationId: createAgentBearerToken
      summary: Create Bearer Token
      description: |
        Requires `agents:CreateBearerToken` permission.
      tags:
        - Agents
      parameters:
        - $ref: '#/components/parameters/agentKey'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/BearerTokenCreate'
            examples:
              agentScope:
                $ref: '#/components/examples/create-agent-bearer-token'
              merchantScope:
                $ref: '#/components/examples/create-agent-bearer-token-merchant'
      responses:
        '201':
          description: The created Bearer Token
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BearerToken'
        '400':
          $ref: '#/components/responses/BadRequestError'
        '401':
          $ref: '#/components/responses/UnauthorizedError'
        '403':
          $ref: '#/components/responses/ForbiddenError'
        '404':
          $ref: '#/components/responses/NotFoundError'
        '409':
          $ref: '#/components/responses/ConflictError'
        '429':
          $ref: '#/components/responses/TooManyRequestsError'
  /apiKeys:
    post:
      operationId: createApiKey
      summary: Create API Key
      description: |
        This operation creates a new API key with the specified permissions.
        When the `status` is set to `active` the API Key is immediately usable.

        Requires `apiKeys:Create` permission.
      tags:
        - API Keys
      requestBody:
        description: |
          The request body allows to set certain values on this API Key.
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ApiKeyCreate'
            examples:
              ipRanges:
                $ref: '#/components/examples/create-api-key-ip-ranges'
      responses:
        '201':
          description: The created API Key
          headers:
            Location:
              description: The URL of the newly created API Key
              schema:
                type: string
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiKey'
        '400':
          $ref: '#/components/responses/BadRequestError'
        '401':
          $ref: '#/components/responses/UnauthorizedError'
        '403':
          $ref: '#/components/responses/ForbiddenError'
        '409':
          $ref: '#/components/responses/ConflictError'
        '429':
          $ref: '#/components/responses/TooManyRequestsError'
    get:
      operationId: getApiKeys
      summary: List API Keys
      description: |
        This operation returns a (paged) list of all API Keys for the authenticated Agent.

        Requires `apiKeys:List` permission.
      tags:
        - API Keys
      parameters:
        - $ref: '#/components/parameters/sortOrder'
        - $ref: '#/components/parameters/limit'
        - $ref: '#/components/parameters/offsetToken'
      responses:
        '200':
          description: A (paged) list of API Keys
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiKeysPage'
        '400':
          $ref: '#/components/responses/BadRequestError'
        '401':
          $ref: '#/components/responses/UnauthorizedError'
        '403':
          $ref: '#/components/responses/ForbiddenError'
        '429':
          $ref: '#/components/responses/TooManyRequestsError'
  /apiKeys/{apiKey}:
    get:
      operationId: getApiKey
      summary: Get API Key
      description: |
        Requires `apiKeys:Get` permission.
      tags:
        - API Keys
      parameters:
        - $ref: '#/components/parameters/apiKey'
      responses:
        '200':
          description: The referenced API Key
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiKey'
        '400':
          $ref: '#/components/responses/BadRequestError'
        '401':
          $ref: '#/components/responses/UnauthorizedError'
        '403':
          $ref: '#/components/responses/ForbiddenError'
        '404':
          $ref: '#/components/responses/NotFoundError'
        '429':
          $ref: '#/components/responses/TooManyRequestsError'
    patch:
      operationId: updateApiKey
      summary: Update API Key
      description: |
        Updates can take up to 5 minutes to become effective.

        Setting `mtlsEnabled` to `true` requires mTLS for the API Key <a class="experimental-tag-link" href="https://docs.silverflow.com/guides/api-lifecycle#tag/EXPERIMENTAL-Tag"><span class="tag experimental-tag">EXPERIMENTAL</span></a>. **This is not reversible.** The
        secret of the API Key is replaced by one that is never shown, so the old secret stops working and the API Key
        can only be used with a client certificate. Bind at least one active certificate first, or the request fails
        with 422. An API Key can't enable mTLS for itself: use another API Key. Send `mtlsEnabled` on its own: a request
        that also contains other fields is refused with 400.

        Requires `apiKeys:Update` permission.
      tags:
        - API Keys
      parameters:
        - $ref: '#/components/parameters/apiKey'
        - $ref: '#/components/parameters/ifMatch'
      requestBody:
        description: |
          All mutable fields of an API key are optional
        required: true
        content:
          application/merge-patch+json:
            schema:
              $ref: '#/components/schemas/ApiKeyMergeUpdate'
            examples:
              removeIpRanges:
                $ref: '#/components/examples/update-api-key-remove-ip-ranges'
              enableMtls:
                $ref: '#/components/examples/update-api-key-enable-mtls'
      responses:
        '200':
          description: The updated API Key
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiKey'
        '400':
          $ref: '#/components/responses/BadRequestError'
        '401':
          $ref: '#/components/responses/UnauthorizedError'
        '403':
          $ref: '#/components/responses/ForbiddenError'
        '404':
          $ref: '#/components/responses/NotFoundError'
        '409':
          $ref: '#/components/responses/ConflictError'
        '412':
          $ref: '#/components/responses/PreconditionFailedError'
        '422':
          $ref: '#/components/responses/UnprocessableEntityError'
        '429':
          $ref: '#/components/responses/TooManyRequestsError'
    delete:
      operationId: deleteApiKey
      summary: Delete an API Key
      description: |
        Deleting an API Key can take up to 5 minutes to become effective.

        Requires `apiKeys:Archive` permission.
      tags:
        - API Keys
      parameters:
        - $ref: '#/components/parameters/apiKey'
        - $ref: '#/components/parameters/ifMatch'
      responses:
        '204':
          description: API Key deleted successfully
        '401':
          $ref: '#/components/responses/UnauthorizedError'
        '403':
          $ref: '#/components/responses/ForbiddenError'
        '404':
          $ref: '#/components/responses/NotFoundError'
        '409':
          $ref: '#/components/responses/ConflictError'
        '412':
          $ref: '#/components/responses/PreconditionFailedError'
        '429':
          $ref: '#/components/responses/TooManyRequestsError'
  /apiKeys/{apiKey}/certificates:
    get:
      operationId: getApiKeyCertificates
      summary: List API Key certificates [EXPERIMENTAL]
      description: |
        This operation returns the client certificates bound to the API Key. Active certificates are returned unless
        `archived` is set to true. Archived certificates are no longer accepted for authentication.

        Requires `apiKeys:Get` permission.
      tags:
        - API Keys
      parameters:
        - $ref: '#/components/parameters/apiKey'
        - $ref: '#/components/parameters/archived'
      responses:
        '200':
          description: The certificates bound to the API Key
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiKeyCertificatesList'
        '401':
          $ref: '#/components/responses/UnauthorizedError'
        '403':
          $ref: '#/components/responses/ForbiddenError'
        '404':
          $ref: '#/components/responses/NotFoundError'
        '429':
          $ref: '#/components/responses/TooManyRequestsError'
    post:
      operationId: addApiKeyCertificate
      summary: Add API Key certificate [EXPERIMENTAL]
      description: |
        This operation binds a client certificate to the API Key. The certificate must be trusted by one of the Agent's
        Trust Anchors, either because a Trust Anchor issued it, or through the intermediate certificates sent with the
        request. A certificate that is itself a Trust Anchor is accepted as well. The response contains the
        `certificateKey` of the certificate, which identifies it when you archive it.

        **An API Key can have at most two active certificates.** The limit exists so that a certificate can be rotated
        without downtime: add the new certificate, test it, then archive the old one. If two certificates are already
        active, archive one before adding another. A certificate that was archived can be added again.

        Adding a certificate does not enable mTLS. To do that, update the API Key with `mtlsEnabled`. If mTLS is already
        enabled, the certificate can be used once the change has propagated. Changes to certificates, Trust Anchors and
        mTLS settings take a short time to take effect, so allow for a delay before you rely on them.

        Requires `apiKeys:Update` permission.
      tags:
        - API Keys
      parameters:
        - $ref: '#/components/parameters/apiKey'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ApiKeyCertificateCreate'
            examples:
              withIntermediate:
                $ref: '#/components/examples/create-api-key-certificate'
      responses:
        '201':
          description: The added certificate
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiKeyCertificate'
        '400':
          description: The request was malformed. See the response body for details
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BadRequestProblemDetail'
        '401':
          $ref: '#/components/responses/UnauthorizedError'
        '403':
          $ref: '#/components/responses/ForbiddenError'
        '404':
          $ref: '#/components/responses/NotFoundError'
        '409':
          $ref: '#/components/responses/ConflictError'
        '422':
          $ref: '#/components/responses/UnprocessableEntityError'
        '429':
          $ref: '#/components/responses/TooManyRequestsError'
  /apiKeys/{apiKey}/certificates/{certificateKey}:
    delete:
      operationId: archiveApiKeyCertificate
      summary: Archive API Key certificate [EXPERIMENTAL]
      description: |
        This operation archives an active certificate of the API Key, identified by the `certificateKey` that was
        returned when it was added. It stays in the list with the status `archived`
        and is no longer accepted for authentication. Archiving frees one of the two active certificate slots, which
        is the last step of rotating a certificate.

        The last active certificate of an API Key with mTLS enabled can't be archived.

        The change takes a short time to take effect, so an archived certificate can still be accepted for a while.

        Requires `apiKeys:Archive` permission.
      tags:
        - API Keys
      parameters:
        - $ref: '#/components/parameters/apiKey'
        - $ref: '#/components/parameters/certificateKey'
      responses:
        '204':
          description: Certificate archived successfully
        '401':
          $ref: '#/components/responses/UnauthorizedError'
        '403':
          $ref: '#/components/responses/ForbiddenError'
        '404':
          $ref: '#/components/responses/NotFoundError'
        '409':
          $ref: '#/components/responses/ConflictError'
        '429':
          $ref: '#/components/responses/TooManyRequestsError'
  /trustAnchors:
    get:
      operationId: getTrustAnchors
      summary: List Trust Anchors [EXPERIMENTAL]
      description: |
        This operation returns a paged list of the Agent's Trust Anchors: the CA certificates trusted for mTLS
        authentication. Active Trust Anchors are returned unless `archived` is set to true.

        Requires `trustAnchors:List` permission.
      tags:
        - Trust Anchors
      parameters:
        - $ref: '#/components/parameters/archived'
        - $ref: '#/components/parameters/sortOrder'
        - $ref: '#/components/parameters/limit'
        - $ref: '#/components/parameters/offsetToken'
      responses:
        '200':
          description: A paged list of Trust Anchors
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/TrustAnchorsPage'
        '400':
          $ref: '#/components/responses/BadRequestError'
        '401':
          $ref: '#/components/responses/UnauthorizedError'
        '403':
          $ref: '#/components/responses/ForbiddenError'
        '404':
          $ref: '#/components/responses/NotFoundError'
        '429':
          $ref: '#/components/responses/TooManyRequestsError'
    post:
      operationId: createTrustAnchor
      summary: Create Trust Anchor [EXPERIMENTAL]
      description: |
        This operation registers a CA certificate as a Trust Anchor for the Agent. Client certificates bound to the
        Agent's API keys must chain to one of its Trust Anchors.

        **An Agent can have at most two active Trust Anchors.** The limit exists so that a CA can be rotated without
        downtime: register the new CA as the second Trust Anchor, move your client certificates over to it, then archive
        the old one. If two Trust Anchors are already active, archive one before creating another.

        The fingerprint and validity period are taken from the certificate. Changes can take up to 15 minutes to take
        effect.

        Requires `trustAnchors:Create` permission.
      tags:
        - Trust Anchors
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/TrustAnchorCreate'
            examples:
              rootCa:
                $ref: '#/components/examples/create-agent-trust-anchor'
      responses:
        '201':
          description: The created Trust Anchor
          headers:
            Location:
              description: The URL of the newly created Trust Anchor
              schema:
                type: string
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/TrustAnchor'
        '400':
          description: The request was malformed. See the response body for details
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BadRequestProblemDetail'
              examples:
                notACa:
                  $ref: '#/components/examples/create-agent-trust-anchor-not-a-ca'
                expired:
                  $ref: '#/components/examples/create-agent-trust-anchor-expired'
        '401':
          $ref: '#/components/responses/UnauthorizedError'
        '403':
          $ref: '#/components/responses/ForbiddenError'
        '404':
          $ref: '#/components/responses/NotFoundError'
        '409':
          $ref: '#/components/responses/ConflictError'
        '429':
          $ref: '#/components/responses/TooManyRequestsError'
  /trustAnchors/{trustAnchorKey}:
    get:
      operationId: getTrustAnchor
      summary: Get Trust Anchor [EXPERIMENTAL]
      description: |
        This operation returns the referenced Trust Anchor.

        Requires `trustAnchors:Get` permission.
      tags:
        - Trust Anchors
      parameters:
        - $ref: '#/components/parameters/trustAnchorKey'
      responses:
        '200':
          description: The referenced Trust Anchor
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/TrustAnchor'
        '400':
          $ref: '#/components/responses/BadRequestError'
        '401':
          $ref: '#/components/responses/UnauthorizedError'
        '403':
          $ref: '#/components/responses/ForbiddenError'
        '404':
          $ref: '#/components/responses/NotFoundError'
        '429':
          $ref: '#/components/responses/TooManyRequestsError'
    delete:
      operationId: archiveTrustAnchor
      summary: Archive Trust Anchor [EXPERIMENTAL]
      description: |
        This operation archives the referenced Trust Anchor. It fails when a certificate bound to one of the Agent's
        API keys still depends on this Trust Anchor; remove or replace those certificates first.

        Archiving frees one of the Agent's two active Trust Anchor slots, which is the last step of rotating a CA.

        Changes can take up to 15 minutes to take effect.

        Requires `trustAnchors:Archive` permission.
      tags:
        - Trust Anchors
      parameters:
        - $ref: '#/components/parameters/trustAnchorKey'
      responses:
        '204':
          description: Trust Anchor archived successfully
        '401':
          $ref: '#/components/responses/UnauthorizedError'
        '403':
          $ref: '#/components/responses/ForbiddenError'
        '404':
          $ref: '#/components/responses/NotFoundError'
        '409':
          $ref: '#/components/responses/ConflictError'
        '429':
          $ref: '#/components/responses/TooManyRequestsError'
  /bins:
    get:
      operationId: getBins
      summary: List Bins
      description: |
        This operation can return all Agent Bins, one page at a time.

        Requires `agents:ListBins` permission.
      tags:
        - Bins
      parameters:
        - $ref: '#/components/parameters/sortOrder'
        - $ref: '#/components/parameters/limit'
        - $ref: '#/components/parameters/offsetToken'
      responses:
        '200':
          description: A (paged) list of Bins
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BinsPage'
        '400':
          $ref: '#/components/responses/BadRequestError'
        '401':
          $ref: '#/components/responses/UnauthorizedError'
        '403':
          $ref: '#/components/responses/ForbiddenError'
        '429':
          $ref: '#/components/responses/TooManyRequestsError'
  /bins/{binKey}:
    get:
      operationId: getBin
      summary: Get Bin
      description: |
        Requires `agents:GetBin` permission.
      tags:
        - Bins
      parameters:
        - $ref: '#/components/parameters/binKey'
      responses:
        '200':
          description: The referenced Bin
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Bin'
        '400':
          $ref: '#/components/responses/BadRequestError'
        '401':
          $ref: '#/components/responses/UnauthorizedError'
        '403':
          $ref: '#/components/responses/ForbiddenError'
        '404':
          $ref: '#/components/responses/NotFoundError'
        '429':
          $ref: '#/components/responses/TooManyRequestsError'
  /bins/{binKey}/configurations:
    get:
      operationId: getBinConfigurations
      summary: List Bin Configurations
      description: |
        This operation can return all Bin Configurations, one page at a time.

        Requires `agents:GetBin` permission.
      tags:
        - Bins
      parameters:
        - $ref: '#/components/parameters/binKey'
        - $ref: '#/components/parameters/sortOrder'
        - $ref: '#/components/parameters/limit'
        - $ref: '#/components/parameters/offsetToken'
        - $ref: '#/components/parameters/validFrom'
      responses:
        '200':
          description: A (paged) list of Bin Configurations
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BinConfigurationsPage'
        '400':
          $ref: '#/components/responses/BadRequestError'
        '401':
          $ref: '#/components/responses/UnauthorizedError'
        '403':
          $ref: '#/components/responses/ForbiddenError'
        '404':
          $ref: '#/components/responses/NotFoundError'
        '429':
          $ref: '#/components/responses/TooManyRequestsError'
  /3ds:
    post:
      operationId: create3dsAuthentication
      summary: Create 3DS Authentication
      description: |
        Create a new 3DS authentication. This endpoint can potentially trigger a 3DS challenge flow.

        Requires the `threeDs:Create` permission.

        Diners support is <a class="experimental-tag-link" href="https://docs.silverflow.com/guides/api-lifecycle#tag/EXPERIMENTAL-Tag"><span class="tag experimental-tag">EXPERIMENTAL</span></a>.

        Standalone merchant info (`merchantInfo`) is <a class="experimental-tag-link" href="https://docs.silverflow.com/guides/api-lifecycle#tag/EXPERIMENTAL-Tag"><span class="tag experimental-tag">EXPERIMENTAL</span></a>.
      tags:
        - 3DS Authentication
      requestBody:
        description: |
          Create a 3DS authentication.
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PublicCreate3dsRequest'
            examples:
              threeDsWithMerchantAcceptor:
                $ref: '#/components/examples/ThreeDsRequestWithMerchantAcceptorExample'
              threeDsWithMerchantInfo:
                $ref: '#/components/examples/ThreeDsRequestWithMerchantInfoExample'
      responses:
        '201':
          description: The 3DS authentication entity
          headers:
            Location:
              description: The URL of the newly created 3DS authentication
              schema:
                type: string
          content:
            application/json:
              schema:
                oneOf:
                  - $ref: '#/components/schemas/ThreeDsFrictionlessAuthenticated'
                  - $ref: '#/components/schemas/ThreeDsChallenge'
                  - $ref: '#/components/schemas/ThreeDsNoFlowNoAuth'
                  - $ref: '#/components/schemas/ThreeDsDataOnly'
              examples:
                challenge:
                  $ref: '#/components/examples/ThreeDsFrictionlessResponseWithMerchantAcceptorExample'
                frictionless:
                  $ref: '#/components/examples/ThreeDsChallengeResponseWithMerchantAcceptorExample'
                frictionlessWithMerchantInfo:
                  $ref: '#/components/examples/ThreeDsFrictionlessResponseWithMerchantInfoExample'
                challengeWithMerchantInfo:
                  $ref: '#/components/examples/ThreeDsChallengeResponseWithMerchantInfoExample'
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                oneOf:
                  - $ref: '#/components/schemas/InvalidRequestErrorDetails'
                  - $ref: '#/components/schemas/schemas-InvalidInputErrorDetails'
              examples:
                InvalidRequestErrorExample:
                  $ref: '#/components/examples/InvalidRequestExample'
                InvalidInputErrorExample:
                  $ref: '#/components/examples/InvalidInputErrorExample'
        '401':
          $ref: '#/components/responses/components-responses-UnauthorizedError'
        '409':
          description: Conflict
          content:
            application/json:
              schema:
                oneOf:
                  - $ref: '#/components/schemas/ReferencedEntityNotFoundErrorDetails'
                  - $ref: '#/components/schemas/UnsupportedCardNetworkErrorDetails'
                  - $ref: '#/components/schemas/UnsupportedCardNetworkRegionErrorDetails'
              examples:
                ReferencedEntityNotFoundErrorExample:
                  $ref: '#/components/examples/ReferencedEntityNotFoundErrorExample'
                UnsupportedCardNetwork:
                  $ref: '#/components/examples/UnsupportedCardNetwork'
                UnsupportedCardNetworkRegion:
                  $ref: '#/components/examples/UnsupportedCardNetworkRegion'
        '422':
          description: Unprocessable Content
          content:
            application/json:
              schema:
                oneOf:
                  - $ref: '#/components/schemas/UnsupportedProtocolVersionErrorDetails'
                  - $ref: '#/components/schemas/UnenrolledAccountNumberErrorDetails'
                  - $ref: '#/components/schemas/UnenrolledAcquireOrMerchantErrorDetails'
              examples:
                UnsupportedProtocolVersionCardExample:
                  $ref: '#/components/examples/UnsupportedProtocolVersionCardExample'
                UnenrolledAccountNumberExample:
                  $ref: '#/components/examples/UnenrolledAccountNumberExample'
                UnenrolledAcquireOrMerchantExample:
                  $ref: '#/components/examples/UnenrolledAcquireOrMerchantExample'
        '429':
          $ref: '#/components/responses/components-responses-TooManyRequestsError'
        '500':
          $ref: '#/components/responses/InternalServerError'
    get:
      operationId: get3dsAuthentications
      summary: List 3DS Authentications
      description: |
        List 3DS transactions. 3DS authentications returned from this endpoint
        will never have the `authenticationValue` property in either `ares` or `rreq` properties.

        Requires the `threeDs:List` permission.
      tags:
        - 3DS Authentication
      parameters:
        - $ref: '#/components/parameters/parameters-offsetToken'
        - $ref: '#/components/parameters/sortOrder'
        - $ref: '#/components/parameters/limit'
      responses:
        '200':
          description: A (paged) list of 3DS authentications.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/threeDsPage'
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InvalidOffsetTokenErrorDetails'
              examples:
                InvalidOffsetToken:
                  $ref: '#/components/examples/InvalidOffsetTokenExample'
        '401':
          $ref: '#/components/responses/components-responses-UnauthorizedError'
        '429':
          $ref: '#/components/responses/components-responses-TooManyRequestsError'
        '500':
          $ref: '#/components/responses/InternalServerError'
  /3ds/3ri:
    post:
      operationId: create3riAuthentication
      summary: Create 3RI Authentication
      description: |
        Create a new 3RI authentication. Also known as merchant-initiated authentications, allows merchants to authenticate a transaction without the direct involvement of the cardholder.

        Requires the `threeDs:Create` permission.

        Diners support is <a class="experimental-tag-link" href="https://docs.silverflow.com/guides/api-lifecycle#tag/EXPERIMENTAL-Tag"><span class="tag experimental-tag">EXPERIMENTAL</span></a>. 

        Standalone merchant info (`merchantInfo`) is <a class="experimental-tag-link" href="https://docs.silverflow.com/guides/api-lifecycle#tag/EXPERIMENTAL-Tag"><span class="tag experimental-tag">EXPERIMENTAL</span></a>.
      tags:
        - 3DS Authentication
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ThreeRiRequest'
            examples:
              threeRiWithMerchantAcceptor:
                $ref: '#/components/examples/RequestWithMerchantAcceptor'
              threeRiWithMerchantInfo:
                $ref: '#/components/examples/RequestWithMerchantInfo'
      responses:
        '201':
          description: The 3RI authentication entity
          headers:
            Location:
              description: The URL of the newly created 3RI authentication
              schema:
                type: string
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ThreeRiResponse'
              examples:
                authenticated:
                  $ref: '#/components/examples/ResponseWithMerchantAcceptor'
                authenticatedWithMerchantInfo:
                  $ref: '#/components/examples/ResponseWithMerchantInfo'
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                oneOf:
                  - $ref: '#/components/schemas/InvalidRequestErrorDetails'
                  - $ref: '#/components/schemas/schemas-InvalidInputErrorDetails'
              examples:
                InvalidRequestErrorExample:
                  $ref: '#/components/examples/InvalidRequestExample'
                InvalidInputErrorExample:
                  $ref: '#/components/examples/InvalidInputErrorExample'
        '401':
          $ref: '#/components/responses/components-responses-UnauthorizedError'
        '409':
          description: Conflict
          content:
            application/json:
              schema:
                oneOf:
                  - $ref: '#/components/schemas/ReferencedEntityNotFoundErrorDetails'
                  - $ref: '#/components/schemas/UnsupportedCardNetworkErrorDetails'
                  - $ref: '#/components/schemas/UnsupportedCardNetworkRegionErrorDetails'
              examples:
                ReferencedEntityNotFoundErrorExample:
                  $ref: '#/components/examples/ReferencedEntityNotFoundErrorExample'
                UnsupportedCardNetwork:
                  $ref: '#/components/examples/UnsupportedCardNetwork'
                UnsupportedCardNetworkRegion:
                  $ref: '#/components/examples/UnsupportedCardNetworkRegion'
        '422':
          description: Unprocessable Content
          content:
            application/json:
              schema:
                oneOf:
                  - $ref: '#/components/schemas/UnsupportedProtocolVersionErrorDetails'
                  - $ref: '#/components/schemas/UnenrolledAccountNumberErrorDetails'
                  - $ref: '#/components/schemas/UnenrolledAcquireOrMerchantErrorDetails'
              examples:
                UnsupportedProtocolVersion3riExample:
                  $ref: '#/components/examples/UnsupportedProtocolVersion3riExample'
                UnsupportedProtocolVersionCardExample:
                  $ref: '#/components/examples/UnsupportedProtocolVersionCardExample'
                UnenrolledAccountNumberExample:
                  $ref: '#/components/examples/UnenrolledAccountNumberExample'
                UnenrolledAcquireOrMerchantExample:
                  $ref: '#/components/examples/UnenrolledAcquireOrMerchantExample'
        '429':
          $ref: '#/components/responses/components-responses-TooManyRequestsError'
        '500':
          $ref: '#/components/responses/InternalServerError'
  /3ds/{threedsKey}:
    get:
      operationId: get3dsAuthentication
      summary: Get 3DS Authentication
      description: |
        Returns the 3DS authentication indentified by the key.

        Requires `threeDs:Get` permission.
      tags:
        - 3DS Authentication
      parameters:
        - $ref: '#/components/parameters/threedsKey'
      responses:
        '200':
          description: The 3DS authentication
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ThreeDs'
              examples:
                frictionlessWithMerchantAcceptor:
                  $ref: '#/components/examples/ThreeDsFrictionlessResponseWithMerchantAcceptorExample'
                challengeWithMerchantAcceptor:
                  $ref: '#/components/examples/ThreeDsChallengeResponseWithMerchantAcceptorExample'
                authenticatedChallengeWithMerchantAcceptor:
                  $ref: '#/components/examples/ThreeDsAuthenticatedChallengeResponseWithMerchantAcceptorExample'
                threeRiWithMerchantAcceptor:
                  $ref: '#/components/examples/ResponseWithMerchantAcceptor'
                frictionlessWithMerchantInfo:
                  $ref: '#/components/examples/ThreeDsFrictionlessResponseWithMerchantInfoExample'
                challengeWithMerchantInfo:
                  $ref: '#/components/examples/ThreeDsChallengeResponseWithMerchantInfoExample'
                authenticatedChallengeWithMerchantInfo:
                  $ref: '#/components/examples/ThreeDsAuthenticatedChallengeResponseWithMerchantInfoExample'
                threeRiWithMerchantInfo:
                  $ref: '#/components/examples/ResponseWithMerchantInfo'
        '401':
          $ref: '#/components/responses/components-responses-UnauthorizedError'
        '404':
          description: Entity not found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/EntityNotFoundErrorDetails'
              examples:
                InternalServerErrorExample:
                  $ref: '#/components/examples/EntityNotFoundExample'
        '429':
          $ref: '#/components/responses/components-responses-TooManyRequestsError'
        '500':
          $ref: '#/components/responses/InternalServerError'
  /3ds/cardRanges:
    post:
      operationId: 3dsCardRanges
      summary: Retrieve Card Ranges
      description: |
        Obtain information about which 3DS versions and features are supported for the given PAN. In case of co-branded cards information from both brands is retrieved.

        Requires `threeDs:Create` permission.
      tags:
        - 3DS Authentication
      requestBody:
        description: |
          Details of the PAN to retrieve information about.
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ThreeDsCardRangesRequest'
            examples:
              withoutNetwork:
                $ref: '#/components/examples/Request'
      responses:
        '200':
          description: PAN information.
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/ThreeDsCardRangesResponse'
              examples:
                withoutNetwork:
                  $ref: '#/components/examples/Response'
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                oneOf:
                  - $ref: '#/components/schemas/InvalidRequestErrorDetails'
                  - $ref: '#/components/schemas/schemas-InvalidInputErrorDetails'
              examples:
                InvalidRequestErrorExample:
                  $ref: '#/components/examples/InvalidRequestExample'
                InvalidInputErrorExample:
                  $ref: '#/components/examples/InvalidInputErrorExample'
        '401':
          $ref: '#/components/responses/components-responses-UnauthorizedError'
        '409':
          description: Conflict
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ReferencedEntityNotFoundErrorDetails'
              examples:
                ReferencedEntityNotFoundErrorExample:
                  $ref: '#/components/examples/ReferencedEntityNotFoundErrorExample'
        '429':
          $ref: '#/components/responses/components-responses-TooManyRequestsError'
        '500':
          $ref: '#/components/responses/InternalServerError'
  /bep/{bepKey}:
    get:
      operationId: getCompleteBep
      summary: Get BEP
      description: |
        Retrieve a BEP entity. If it is authenticated, it will contain the authentication information necessary 
        to create charges with Bancontact.

        Requires the `bep:Get` permission.
      tags:
        - BEP Authentication
      parameters:
        - $ref: '#/components/parameters/bepKey'
      responses:
        '200':
          description: The BEP entity
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BepResponse'
        '400':
          $ref: '#/components/responses/BadRequestErrorResponse'
        '401':
          $ref: '#/components/responses/AuthenticationRequiredErrorResponse'
        '403':
          $ref: '#/components/responses/ForbiddenErrorResponse'
        '404':
          description: Entity Not Found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/schemas-EntityNotFoundErrorDetails'
              examples:
                EntityNotFoundErrorExample:
                  $ref: '#/components/examples/EntityNotFoundErrorExample'
        '429':
          $ref: '#/components/responses/TooManyRequestsErrorResponse'
        '500':
          $ref: '#/components/responses/InternalServerErrorResponse'
  /bep:
    post:
      operationId: bep
      summary: Create BEP Authentication Intent
      description: |
        Generate a unique BEP payment initiation and return a QR code and an app intent to be used 
        by the Bancontact app.

        Requires the `bep:Create` permission.
      tags:
        - BEP Authentication
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/InitiateBEPRequest'
      responses:
        '201':
          description: A BEP Intent
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InitiateBEPResponse'
        '400':
          $ref: '#/components/responses/BadRequestErrorResponse'
        '401':
          $ref: '#/components/responses/AuthenticationRequiredErrorResponse'
        '403':
          $ref: '#/components/responses/ForbiddenErrorResponse'
        '404':
          description: Entity Not Found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/schemas-EntityNotFoundErrorDetails'
              examples:
                EntityNotFoundErrorExample:
                  $ref: '#/components/examples/EntityNotFoundErrorExample'
        '409':
          description: Conflict
          content:
            application/json:
              schema:
                oneOf:
                  - $ref: '#/components/schemas/schemas-ReferencedEntityNotFoundErrorDetails'
                  - $ref: '#/components/schemas/IncompatibleCardNetworkErrorDetails'
              examples:
                ReferencedEntityNotFoundErrorExample:
                  $ref: '#/components/examples/examples-ReferencedEntityNotFoundErrorExample'
                IncompatibleCardNetworkErrorExample:
                  $ref: '#/components/examples/IncompatibleCardNetworkErrorExample'
        '429':
          $ref: '#/components/responses/TooManyRequestsErrorResponse'
        '500':
          $ref: '#/components/responses/InternalServerErrorResponse'
  /bep/{bepKey}/authorizationResult:
    post:
      operationId: finalizeBep
      summary: Finalize BEP Authentication
      description: |
        Finalize a BEP authentication flow by providing the authorization result.

        Requires the `bep:Update` permission.
      tags:
        - BEP Authentication
      parameters:
        - $ref: '#/components/parameters/bepKey'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/AuthorizationResult'
      responses:
        '200':
          description: OK
        '400':
          $ref: '#/components/responses/BadRequestErrorResponse'
        '401':
          $ref: '#/components/responses/AuthenticationRequiredErrorResponse'
        '403':
          $ref: '#/components/responses/ForbiddenErrorResponse'
        '404':
          description: Entity Not Found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/schemas-EntityNotFoundErrorDetails'
              examples:
                EntityNotFoundErrorExample:
                  $ref: '#/components/examples/EntityNotFoundErrorExample'
        '409':
          description: Conflict
          content:
            application/json:
              schema:
                oneOf:
                  - $ref: '#/components/schemas/UnauthenticatedBepEntityErrorDetails'
                  - $ref: '#/components/schemas/AuthorizationResultAlreadySubmittedErrorDetails'
              examples:
                UnauthenticatedBepEntityErrorExample:
                  $ref: '#/components/examples/UnauthenticatedBepEntityErrorExample'
                AuthorizationResultAlreadySubmittedErrorExample:
                  $ref: '#/components/examples/AuthorizationResultAlreadySubmittedErrorExample'
        '429':
          $ref: '#/components/responses/TooManyRequestsErrorResponse'
        '500':
          $ref: '#/components/responses/InternalServerErrorResponse'
  /charges/{chargeKey}:
    get:
      operationId: getCharge
      summary: Get Charge
      description: |
        Returns the charge identified by the charge key.

        Requires `charges:Get` permission.
      tags:
        - Retrieve Charges
      parameters:
        - $ref: '#/components/parameters/chargeKey'
      responses:
        '200':
          description: The charge
          headers:
            X-SF-Trace-ID:
              $ref: '#/components/headers/XSFTraceId'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Charge'
        '400':
          $ref: '#/components/responses/responses-InvalidInputError'
        '401':
          $ref: '#/components/responses/openapi_components-responses-UnauthorizedError'
        '403':
          $ref: '#/components/responses/components-responses-ForbiddenError'
        '404':
          $ref: '#/components/responses/EntityNotFoundError'
        '429':
          $ref: '#/components/responses/openapi_components-responses-TooManyRequestsError'
        '500':
          $ref: '#/components/responses/responses-InternalServerError'
  /charges:
    get:
      operationId: getCharges
      summary: List Charges
      description: |
        This operation supports 2 distinct use cases:

        1. Get a paged list of all charges, optionally filtered by `date` or period (`from`, `to`).
        2. Get a paged list of the charges with the specified `transactionReference`.

        Requires `charges:List` permission.
      tags:
        - Retrieve Charges
      parameters:
        - $ref: '#/components/parameters/components-parameters-offsetToken'
        - $ref: '#/components/parameters/sortOrder'
        - $ref: '#/components/parameters/limit'
        - $ref: '#/components/parameters/parameters-from'
        - $ref: '#/components/parameters/parameters-to'
        - $ref: '#/components/parameters/date'
        - $ref: '#/components/parameters/transactionReferenceQs'
      responses:
        '200':
          description: A (paged) list of charges
          headers:
            X-SF-Trace-ID:
              $ref: '#/components/headers/XSFTraceId'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ChargesPage'
        '400':
          $ref: '#/components/responses/InvalidToOrFromDateError'
        '401':
          $ref: '#/components/responses/openapi_components-responses-UnauthorizedError'
        '403':
          $ref: '#/components/responses/components-responses-ForbiddenError'
        '429':
          $ref: '#/components/responses/openapi_components-responses-TooManyRequestsError'
        '500':
          $ref: '#/components/responses/responses-InternalServerError'
    post:
      operationId: createCharge
      summary: Create Charge
      description: |
        Create a new charge.

        Optionally providing a 3DS result is supported in case 3DS was done using the
        [3DS Authentication endpoint](#operation/create3dsAuthentication) or with an external party.

        Diners support is <a class="experimental-tag-link" href="https://docs.silverflow.com/guides/api-lifecycle#tag/EXPERIMENTAL-Tag"><span class="tag experimental-tag">EXPERIMENTAL</span></a>.

        Requires the `charges:Create` permission.
      tags:
        - Create Charges
      parameters:
        - $ref: '#/components/parameters/IdempotencyKey'
      requestBody:
        description: |
          Create a charge.
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ChargeRequest'
            examples:
              moto:
                $ref: '#/components/examples/examples-Request'
              3dsprovided:
                $ref: '#/components/examples/3ds-provided_Request'
              avs:
                $ref: '#/components/examples/avs_Request'
              recurring:
                $ref: '#/components/examples/recurring_Request'
              reservation:
                $ref: '#/components/examples/reservation_Request'
              googlePay:
                $ref: '#/components/examples/google-pay_Request'
              networkToken:
                $ref: '#/components/examples/network-token_Request'
              networkToken3ds:
                $ref: '#/components/examples/network-token-3ds_Request'
      responses:
        '201':
          description: The created charge
          headers:
            Location:
              description: The URL of the newly created charge
              schema:
                type: string
            X-SF-Trace-ID:
              $ref: '#/components/headers/XSFTraceId'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ChargeResponse'
              examples:
                moto:
                  $ref: '#/components/examples/moto_Response'
                3dsprovided:
                  $ref: '#/components/examples/3ds-provided_Response'
                avs:
                  $ref: '#/components/examples/avs_Response'
                recurring:
                  $ref: '#/components/examples/recurring_Response'
                reservation:
                  $ref: '#/components/examples/reservation_Response'
                googlePay:
                  $ref: '#/components/examples/google-pay_Response'
                networkToken:
                  $ref: '#/components/examples/network-token_Response'
                networkToken3ds:
                  $ref: '#/components/examples/network-token-3ds_Response'
        '400':
          description: Bad Request
          headers:
            X-SF-Trace-ID:
              $ref: '#/components/headers/XSFTraceId'
          content:
            application/json:
              schema:
                oneOf:
                  - $ref: '#/components/schemas/openapi_components-schemas-InvalidInputErrorDetails'
                  - $ref: '#/components/schemas/schemas-InvalidRequestErrorDetails'
              examples:
                InvalidInputErrorExample:
                  $ref: '#/components/examples/components-examples-InvalidInputErrorExample'
                InvalidRequestErrorExample:
                  $ref: '#/components/examples/InvalidRequestErrorExample'
        '401':
          $ref: '#/components/responses/openapi_components-responses-UnauthorizedError'
        '403':
          $ref: '#/components/responses/components-responses-ForbiddenError'
        '409':
          description: Conflict
          headers:
            X-SF-Trace-ID:
              $ref: '#/components/headers/XSFTraceId'
          content:
            application/json:
              schema:
                oneOf:
                  - $ref: '#/components/schemas/components-schemas-ReferencedEntityNotFoundErrorDetails'
                  - $ref: '#/components/schemas/CannotDetermineCardNetworkErrorDetails'
                  - $ref: '#/components/schemas/schemas-IncompatibleCardNetworkErrorDetails'
                  - $ref: '#/components/schemas/BlockedMerchantAcceptorErrorDetails'
                  - $ref: '#/components/schemas/NonMatchingIdempotentRequestErrorDetails'
                  - $ref: '#/components/schemas/UnexpectedMessageSystem'
                  - $ref: '#/components/schemas/IncompatibleCardNetworkForOperation'
                  - $ref: '#/components/schemas/IncompatibleCardErrorDetails'
                  - $ref: '#/components/schemas/IdempotentRequestIsStillBeingProcessedErrorDetails'
                  - $ref: '#/components/schemas/UnexpectedCurrencyErrorDetails'
              examples:
                ReferencedEntityNotFoundErrorExample:
                  $ref: '#/components/examples/components-examples-ReferencedEntityNotFoundErrorExample'
                CannotDetermineCardNetworkErrorExample:
                  $ref: '#/components/examples/CannotDetermineCardNetworkErrorExample'
                IncompatibleCardNetworkErrorExample:
                  $ref: '#/components/examples/examples-IncompatibleCardNetworkErrorExample'
                BlockedMerchantAcceptorErrorExample:
                  $ref: '#/components/examples/BlockedMerchantAcceptorErrorExample'
                BlockedBinErrorExample:
                  $ref: '#/components/examples/BlockedBinErrorExample'
                NonMatchingIdempontentRequestErrorExample:
                  $ref: '#/components/examples/NonMatchingIdempontentRequestErrorExample'
                UnexpectedMessageSystemExample:
                  $ref: '#/components/examples/UnexpectedMessageSystemExample'
                IncompatibleCardNetworkForOperationErrorExample:
                  $ref: '#/components/examples/IncompatibleCardNetworkForOperationExample'
                IncompatibleCardErrorDetails:
                  $ref: '#/components/examples/IncompatibleCardErrorExample'
                IdempotentRequestIsStillBeingProcessedErrorExample:
                  $ref: '#/components/examples/IdempotentRequestIsStillBeingProcessedExample'
                UnexpectedCurrencyErrorDetails:
                  $ref: '#/components/examples/UnexpectedCurrencyErrorExample'
        '429':
          $ref: '#/components/responses/openapi_components-responses-TooManyRequestsError'
        '500':
          $ref: '#/components/responses/responses-InternalServerError'
  /charges/bep:
    post:
      operationId: createChargeBep
      summary: Create BEP Charge
      description: |
        Create a new charge for an existing and complete BEP authentication.
        This will also initiate the [finalization](#operation/finalizeBep) of the BEP authentication flow.

        **From November 22, 2026, if a valid card is not found using `card.number` in the request, the response will be a 409 with type `/silverflow/problems/card/invalid`.**

        Requires `charges:Create` permission.
      tags:
        - Create Charges
      parameters:
        - $ref: '#/components/parameters/IdempotencyKey'
      requestBody:
        description: |
          Create a charge.
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ChargeCreateBEPRequest'
      responses:
        '201':
          description: The created charge
          headers:
            Location:
              description: The URL of the newly created Charge
              schema:
                type: string
            X-SF-Trace-ID:
              $ref: '#/components/headers/XSFTraceId'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ChargeCreateBEPResponse'
        '400':
          $ref: '#/components/responses/responses-InvalidInputError'
        '401':
          $ref: '#/components/responses/openapi_components-responses-UnauthorizedError'
        '403':
          $ref: '#/components/responses/components-responses-ForbiddenError'
        '409':
          description: Conflict
          headers:
            X-SF-Trace-ID:
              $ref: '#/components/headers/XSFTraceId'
          content:
            application/json:
              schema:
                oneOf:
                  - $ref: '#/components/schemas/components-schemas-ReferencedEntityNotFoundErrorDetails'
                  - $ref: '#/components/schemas/IncompatibleAuthenticationStatus'
                  - $ref: '#/components/schemas/UnexpectedMessageSystem'
                  - $ref: '#/components/schemas/IncompatibleCardNetworkForOperation'
                  - $ref: '#/components/schemas/BlockedMerchantAcceptorErrorDetails'
                  - $ref: '#/components/schemas/NonMatchingIdempotentRequestErrorDetails'
                  - $ref: '#/components/schemas/IdempotentRequestIsStillBeingProcessedErrorDetails'
              examples:
                ReferencedEntityNotFoundErrorExample:
                  $ref: '#/components/examples/components-examples-ReferencedEntityNotFoundErrorExample'
                IncompatibleAuthenticationStatusExample:
                  $ref: '#/components/examples/IncompatibleAuthenticationStatusExample'
                UnexpectedMessageSystemExample:
                  $ref: '#/components/examples/UnexpectedMessageSystemExample'
                IncompatibleCardNetworkForOperationErrorExample:
                  $ref: '#/components/examples/IncompatibleCardNetworkForOperationExample'
                BlockedBinErrorExample:
                  $ref: '#/components/examples/BlockedBinErrorExample'
                NonMatchingIdempotentRequestErrorExample:
                  $ref: '#/components/examples/NonMatchingIdempontentRequestErrorExample'
                IdempotentRequestIsStillBeingProcessedErrorExample:
                  $ref: '#/components/examples/IdempotentRequestIsStillBeingProcessedExample'
        '429':
          $ref: '#/components/responses/openapi_components-responses-TooManyRequestsError'
        '500':
          $ref: '#/components/responses/responses-InternalServerError'
  /charges/funding:
    post:
      operationId: createChargeFunding
      summary: Create Funding Charge
      description: |
        Create a new funding charge. For more information on use-cases, [see here](https://docs.silverflow.com/guides/payouts-and-funding#tag/Funding).

        Visa DMS support is <a class="experimental-tag-link" href="https://docs.silverflow.com/guides/api-lifecycle#tag/EXPERIMENTAL-Tag"><span class="tag experimental-tag">EXPERIMENTAL</span></a>.

        **NOTE**: This endpoint requires configuration on a per client basis and may be subject to additional approvals and implementation with the card schemes. Contact your Silverflow representative before integrating with this endpoint.

        Requires `charges:Create` permission.
      tags:
        - Create Charges
      parameters:
        - $ref: '#/components/parameters/IdempotencyKey'
      requestBody:
        description: |
          Create a funding charge.
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/FundingChargeRequest'
            examples:
              funding:
                $ref: '#/components/examples/funding_Request'
      responses:
        '201':
          description: The created funding charge
          headers:
            Location:
              description: The URL of the newly created charge
              schema:
                type: string
            X-SF-Trace-ID:
              $ref: '#/components/headers/XSFTraceId'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/FundingChargeResponse'
              examples:
                funding:
                  $ref: '#/components/examples/funding_Response'
        '400':
          description: Bad Request
          headers:
            X-SF-Trace-ID:
              $ref: '#/components/headers/XSFTraceId'
          content:
            application/json:
              schema:
                oneOf:
                  - $ref: '#/components/schemas/openapi_components-schemas-InvalidInputErrorDetails'
                  - $ref: '#/components/schemas/schemas-InvalidRequestErrorDetails'
              examples:
                InvalidInputErrorExample:
                  $ref: '#/components/examples/components-examples-InvalidInputErrorExample'
                InvalidRequestErrorExample:
                  $ref: '#/components/examples/InvalidRequestErrorExample'
        '401':
          $ref: '#/components/responses/openapi_components-responses-UnauthorizedError'
        '403':
          $ref: '#/components/responses/components-responses-ForbiddenError'
        '409':
          description: Conflict
          headers:
            X-SF-Trace-ID:
              $ref: '#/components/headers/XSFTraceId'
          content:
            application/json:
              schema:
                oneOf:
                  - $ref: '#/components/schemas/components-schemas-ReferencedEntityNotFoundErrorDetails'
                  - $ref: '#/components/schemas/NonMatchingIdempotentRequestErrorDetails'
                  - $ref: '#/components/schemas/CannotDetermineCardNetworkErrorDetails'
                  - $ref: '#/components/schemas/IncompatibleCardNetworkForOperation'
                  - $ref: '#/components/schemas/schemas-IncompatibleCardNetworkErrorDetails'
                  - $ref: '#/components/schemas/BlockedMerchantAcceptorErrorDetails'
                  - $ref: '#/components/schemas/IncompatibleCardErrorDetails'
                  - $ref: '#/components/schemas/IncompatibleMccErrorDetails'
                  - $ref: '#/components/schemas/IdempotentRequestIsStillBeingProcessedErrorDetails'
              examples:
                ReferencedEntityNotFoundErrorExample:
                  $ref: '#/components/examples/components-examples-ReferencedEntityNotFoundErrorExample'
                NonMatchingIdempontentRequestErrorExample:
                  $ref: '#/components/examples/NonMatchingIdempontentRequestErrorExample'
                CannotDetermineCardNetworkErrorExample:
                  $ref: '#/components/examples/CannotDetermineCardNetworkErrorExample'
                IncompatibleCardNetworkErrorExample:
                  $ref: '#/components/examples/examples-IncompatibleCardNetworkErrorExample'
                IncompatibleCardNetworkForOperationErrorExample:
                  $ref: '#/components/examples/IncompatibleCardNetworkForOperationExample'
                BlockedMerchantAcceptorErrorExample:
                  $ref: '#/components/examples/BlockedMerchantAcceptorErrorExample'
                BlockedBinErrorExample:
                  $ref: '#/components/examples/BlockedBinErrorExample'
                IncompatibleCardErrorDetails:
                  $ref: '#/components/examples/IncompatibleCardErrorExample'
                IncompatibleMccErrorExample:
                  $ref: '#/components/examples/IncompatibleMccErrorExample'
                IdempotentRequestIsStillBeingProcessedErrorExample:
                  $ref: '#/components/examples/IdempotentRequestIsStillBeingProcessedExample'
        '429':
          $ref: '#/components/responses/openapi_components-responses-TooManyRequestsError'
        '500':
          $ref: '#/components/responses/responses-InternalServerError'
  /charges/payout:
    post:
      operationId: createChargePayout
      summary: Create Payout Charge
      description: |
        Create a new payout charge. For more information on use-cases, [see here](https://docs.silverflow.com/guides/payouts-and-funding#tag/Payouts).

        **NOTE:** This endpoint requires configuration on a per client basis and may be subject to additional approvals and implementation with the card schemes. Contact your Silverflow representative before integrating with this endpoint.

        **Currently only supported for Visa and Mastercard.**

        Requires the `charges:CreatePayout` or `charges:Create` permission.
      tags:
        - Create Charges
      parameters:
        - $ref: '#/components/parameters/IdempotencyKey'
      requestBody:
        description: |
          Create a charge.
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PayoutChargeRequest'
            examples:
              chargePayoutGamingResponse:
                $ref: '#/components/examples/payout_Request'
      responses:
        '201':
          description: The created charge
          headers:
            Location:
              description: The URL of the newly created charge
              schema:
                type: string
            X-SF-Trace-ID:
              $ref: '#/components/headers/XSFTraceId'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PayoutChargeResponse'
              examples:
                chargePayoutGamingResponse:
                  $ref: '#/components/examples/payout_Response'
        '400':
          description: Bad Request
          headers:
            X-SF-Trace-ID:
              $ref: '#/components/headers/XSFTraceId'
          content:
            application/json:
              schema:
                oneOf:
                  - $ref: '#/components/schemas/openapi_components-schemas-InvalidInputErrorDetails'
                  - $ref: '#/components/schemas/schemas-InvalidRequestErrorDetails'
              examples:
                InvalidInputErrorExample:
                  $ref: '#/components/examples/components-examples-InvalidInputErrorExample'
                InvalidRequestErrorExample:
                  $ref: '#/components/examples/InvalidRequestErrorExample'
        '401':
          $ref: '#/components/responses/openapi_components-responses-UnauthorizedError'
        '403':
          $ref: '#/components/responses/components-responses-ForbiddenError'
        '409':
          description: Conflict
          headers:
            X-SF-Trace-ID:
              $ref: '#/components/headers/XSFTraceId'
          content:
            application/json:
              schema:
                oneOf:
                  - $ref: '#/components/schemas/components-schemas-ReferencedEntityNotFoundErrorDetails'
                  - $ref: '#/components/schemas/CannotDetermineCardNetworkErrorDetails'
                  - $ref: '#/components/schemas/BlockedMerchantAcceptorErrorDetails'
                  - $ref: '#/components/schemas/NonMatchingIdempotentRequestErrorDetails'
                  - $ref: '#/components/schemas/IncompatibleCardNetworkForOperation'
                  - $ref: '#/components/schemas/schemas-IncompatibleCardNetworkErrorDetails'
                  - $ref: '#/components/schemas/IncompatibleMccErrorDetails'
                  - $ref: '#/components/schemas/IncompatibleCardErrorDetails'
                  - $ref: '#/components/schemas/IdempotentRequestIsStillBeingProcessedErrorDetails'
              examples:
                ReferencedEntityNotFoundErrorExample:
                  $ref: '#/components/examples/components-examples-ReferencedEntityNotFoundErrorExample'
                CannotDetermineCardNetworkErrorExample:
                  $ref: '#/components/examples/CannotDetermineCardNetworkErrorExample'
                IncompatibleCardNetworkForOperationErrorExample:
                  $ref: '#/components/examples/IncompatibleCardNetworkForOperationExample'
                IncompatibleCardNetworkErrorExample:
                  $ref: '#/components/examples/examples-IncompatibleCardNetworkErrorExample'
                BlockedMerchantAcceptorErrorExample:
                  $ref: '#/components/examples/BlockedMerchantAcceptorErrorExample'
                BlockedBinErrorExample:
                  $ref: '#/components/examples/BlockedBinErrorExample'
                NonMatchingIdempontentRequestErrorExample:
                  $ref: '#/components/examples/NonMatchingIdempontentRequestErrorExample'
                IncompatibleMccErrorExample:
                  $ref: '#/components/examples/IncompatibleMccErrorExample'
                IncompatibleCardErrorDetails:
                  $ref: '#/components/examples/IncompatibleCardErrorExample'
                IdempotentRequestIsStillBeingProcessedErrorExample:
                  $ref: '#/components/examples/IdempotentRequestIsStillBeingProcessedExample'
        '429':
          $ref: '#/components/responses/openapi_components-responses-TooManyRequestsError'
        '500':
          $ref: '#/components/responses/responses-InternalServerError'
  /charges/pos:
    post:
      operationId: createChargePos
      summary: Create POS Charge
      description: |
        Create a new card-present charge.

        Requires one of the following permissions:
        * `charges:Create`
        * `charges:CreatePos`
      parameters:
        - $ref: '#/components/parameters/IdempotencyKey'
      tags:
        - Create Charges
      requestBody:
        description: Create a new POS charge.
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ChargeCreatePos'
            examples:
              onlinePin:
                $ref: '#/components/examples/online-pin_Request'
              manualEntry:
                $ref: '#/components/examples/manual-entry_Request'
      responses:
        '201':
          description: The created charge
          headers:
            Location:
              description: The URL of the newly created charge
              schema:
                type: string
            X-SF-Trace-ID:
              $ref: '#/components/headers/XSFTraceId'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ChargeCreatePosResponse'
              examples:
                onlinePin:
                  $ref: '#/components/examples/examples-Response'
                manualEntry:
                  $ref: '#/components/examples/manual-entry_Response'
        '400':
          description: Bad Request
          headers:
            X-SF-Trace-ID:
              $ref: '#/components/headers/XSFTraceId'
          content:
            application/json:
              schema:
                oneOf:
                  - $ref: '#/components/schemas/openapi_components-schemas-InvalidInputErrorDetails'
                  - $ref: '#/components/schemas/schemas-InvalidRequestErrorDetails'
              examples:
                InvalidInputErrorExample:
                  $ref: '#/components/examples/components-examples-InvalidInputErrorExample'
                InvalidRequestErrorExample:
                  $ref: '#/components/examples/InvalidRequestErrorExample'
        '401':
          $ref: '#/components/responses/openapi_components-responses-UnauthorizedError'
        '403':
          $ref: '#/components/responses/components-responses-ForbiddenError'
        '409':
          description: Conflict
          headers:
            X-SF-Trace-ID:
              $ref: '#/components/headers/XSFTraceId'
          content:
            application/json:
              schema:
                oneOf:
                  - $ref: '#/components/schemas/components-schemas-ReferencedEntityNotFoundErrorDetails'
                  - $ref: '#/components/schemas/CannotDetermineCardNetworkErrorDetails'
                  - $ref: '#/components/schemas/IncompatibleCardNetworkForOperation'
                  - $ref: '#/components/schemas/schemas-IncompatibleCardNetworkErrorDetails'
                  - $ref: '#/components/schemas/BlockedMerchantAcceptorErrorDetails'
                  - $ref: '#/components/schemas/NonMatchingIdempotentRequestErrorDetails'
                  - $ref: '#/components/schemas/MissingPosAddressErrorDetails'
                  - $ref: '#/components/schemas/UnexpectedMessageSystem'
                  - $ref: '#/components/schemas/IncompatibleCardErrorDetails'
                  - $ref: '#/components/schemas/IdempotentRequestIsStillBeingProcessedErrorDetails'
                  - $ref: '#/components/schemas/UnexpectedCurrencyErrorDetails'
              examples:
                ReferencedEntityNotFoundErrorExample:
                  $ref: '#/components/examples/components-examples-ReferencedEntityNotFoundErrorExample'
                CannotDetermineCardNetworkErrorExample:
                  $ref: '#/components/examples/CannotDetermineCardNetworkErrorExample'
                IncompatibleCardNetworkForOperationErrorExample:
                  $ref: '#/components/examples/IncompatibleCardNetworkForOperationExample'
                IncompatibleCardNetworkErrorExample:
                  $ref: '#/components/examples/examples-IncompatibleCardNetworkErrorExample'
                BlockedMerchantAcceptorErrorExample:
                  $ref: '#/components/examples/BlockedMerchantAcceptorErrorExample'
                BlockedBinErrorExample:
                  $ref: '#/components/examples/BlockedBinErrorExample'
                NonMatchingIdempontentRequestErrorExample:
                  $ref: '#/components/examples/NonMatchingIdempontentRequestErrorExample'
                MissingPosAddressProblemExample:
                  $ref: '#/components/examples/MissingPosAddressForPosChargeErrorExample'
                UnexpectedMessageSystemExample:
                  $ref: '#/components/examples/UnexpectedMessageSystemExample'
                IncompatibleCardErrorDetails:
                  $ref: '#/components/examples/IncompatibleCardErrorExample'
                IdempotentRequestIsStillBeingProcessedErrorExample:
                  $ref: '#/components/examples/IdempotentRequestIsStillBeingProcessedExample'
                UnexpectedCurrencyErrorDetails:
                  $ref: '#/components/examples/UnexpectedCurrencyErrorExample'
        '429':
          $ref: '#/components/responses/openapi_components-responses-TooManyRequestsError'
        '500':
          $ref: '#/components/responses/responses-InternalServerError'
  /charges/atm:
    post:
      operationId: createChargeAtm
      summary: Create ATM Charge [EXPERIMENTAL]
      description: |
        Create a new ATM withdrawal charge.

        Requires one of the following permissions:
        * `charges:Create`
        * `charges:CreateAtm`
      parameters:
        - $ref: '#/components/parameters/IdempotencyKey'
      tags:
        - Create Charges
      requestBody:
        description: Create a new ATM charge.
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ChargeCreateAtm'
      responses:
        '201':
          description: The created ATM charge
          headers:
            Location:
              description: The URL of the newly created charge
              schema:
                type: string
            X-SF-Trace-ID:
              $ref: '#/components/headers/XSFTraceId'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ChargeCreateAtmResponse'
        '400':
          description: Bad Request
          headers:
            X-SF-Trace-ID:
              $ref: '#/components/headers/XSFTraceId'
          content:
            application/json:
              schema:
                oneOf:
                  - $ref: '#/components/schemas/openapi_components-schemas-InvalidInputErrorDetails'
                  - $ref: '#/components/schemas/schemas-InvalidRequestErrorDetails'
              examples:
                InvalidInputErrorExample:
                  $ref: '#/components/examples/components-examples-InvalidInputErrorExample'
                InvalidRequestErrorExample:
                  $ref: '#/components/examples/InvalidRequestErrorExample'
        '401':
          $ref: '#/components/responses/openapi_components-responses-UnauthorizedError'
        '403':
          $ref: '#/components/responses/components-responses-ForbiddenError'
        '409':
          description: Conflict
          headers:
            X-SF-Trace-ID:
              $ref: '#/components/headers/XSFTraceId'
          content:
            application/json:
              schema:
                oneOf:
                  - $ref: '#/components/schemas/components-schemas-ReferencedEntityNotFoundErrorDetails'
                  - $ref: '#/components/schemas/CannotDetermineCardNetworkErrorDetails'
                  - $ref: '#/components/schemas/IncompatibleCardNetworkForOperation'
                  - $ref: '#/components/schemas/schemas-IncompatibleCardNetworkErrorDetails'
                  - $ref: '#/components/schemas/BlockedMerchantAcceptorErrorDetails'
                  - $ref: '#/components/schemas/NonMatchingIdempotentRequestErrorDetails'
                  - $ref: '#/components/schemas/MissingPosAddressErrorDetails'
                  - $ref: '#/components/schemas/IncompatibleMccErrorDetails'
                  - $ref: '#/components/schemas/IncompatibleCardErrorDetails'
                  - $ref: '#/components/schemas/IdempotentRequestIsStillBeingProcessedErrorDetails'
              examples:
                ReferencedEntityNotFoundErrorExample:
                  $ref: '#/components/examples/components-examples-ReferencedEntityNotFoundErrorExample'
                CannotDetermineCardNetworkErrorExample:
                  $ref: '#/components/examples/CannotDetermineCardNetworkErrorExample'
                IncompatibleCardNetworkForOperationExample:
                  $ref: '#/components/examples/IncompatibleCardNetworkForOperationExample'
                IncompatibleCardNetworkErrorExample:
                  $ref: '#/components/examples/examples-IncompatibleCardNetworkErrorExample'
                BlockedMerchantAcceptorErrorExample:
                  $ref: '#/components/examples/BlockedMerchantAcceptorErrorExample'
                NonMatchingIdempontentRequestErrorExample:
                  $ref: '#/components/examples/NonMatchingIdempontentRequestErrorExample'
                MissingPosAddressProblemExample:
                  $ref: '#/components/examples/MissingPosAddressErrorExample'
                IncompatibleMccErrorExample:
                  $ref: '#/components/examples/IncompatibleMccErrorExample'
                IncompatibleCardErrorExample:
                  $ref: '#/components/examples/IncompatibleCardErrorExample'
                IdempotentRequestIsStillBeingProcessedErrorExample:
                  $ref: '#/components/examples/IdempotentRequestIsStillBeingProcessedExample'
        '429':
          $ref: '#/components/responses/openapi_components-responses-TooManyRequestsError'
        '500':
          $ref: '#/components/responses/responses-InternalServerError'
  /charges/{initialChargeKey}/mit:
    post:
      operationId: createChargeMitFromInitialCharge
      summary: Create MIT Charge from Initial Charge
      description: |
        Create a new charge that was initiated by the merchant, without the presence of the cardholder.
        The request body can remain fully empty; this means the subsequent charge has the same type, amount and card data.

        If transaction data changes for the subsequent charges, the relevant data can be modified by providing new values. For example, the recurring amount could change monthly.

        Diners support is <a class="experimental-tag-link" href="https://docs.silverflow.com/guides/api-lifecycle#tag/EXPERIMENTAL-Tag"><span class="tag experimental-tag">EXPERIMENTAL</span></a>.

        Requires `charges:Create` permission.
      parameters:
        - $ref: '#/components/parameters/initialChargeKey'
        - $ref: '#/components/parameters/IdempotencyKey'
      tags:
        - Create Recurring
      requestBody:
        description: |
          Create a charge.
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CreateMitChargeFromInitialChargeRequest'
            examples:
              chargeMit:
                $ref: '#/components/examples/mit-from-initial-charge_Request'
      responses:
        '201':
          description: The created charge
          headers:
            Location:
              description: The URL of the newly created charge
              schema:
                type: string
            X-SF-Trace-ID:
              $ref: '#/components/headers/XSFTraceId'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/MitChargeFromInitialChargeResponse'
              examples:
                chargeMit:
                  $ref: '#/components/examples/mit-from-initial-charge_Response'
        '400':
          description: Bad Request
          headers:
            X-SF-Trace-ID:
              $ref: '#/components/headers/XSFTraceId'
          content:
            application/json:
              schema:
                oneOf:
                  - $ref: '#/components/schemas/openapi_components-schemas-InvalidInputErrorDetails'
                  - $ref: '#/components/schemas/schemas-InvalidRequestErrorDetails'
                  - $ref: '#/components/schemas/UnexpectedSequenceErrorDetails'
              examples:
                InvalidInputErrorExample:
                  $ref: '#/components/examples/components-examples-InvalidInputErrorExample'
                InvalidRequestErrorExample:
                  $ref: '#/components/examples/InvalidRequestErrorExample'
                UnexpectedSequenceErrorExample:
                  $ref: '#/components/examples/UnexpectedSequenceErrorExample'
        '401':
          $ref: '#/components/responses/openapi_components-responses-UnauthorizedError'
        '403':
          $ref: '#/components/responses/components-responses-ForbiddenError'
        '404':
          $ref: '#/components/responses/EntityNotFoundError'
        '409':
          description: Conflict
          headers:
            X-SF-Trace-ID:
              $ref: '#/components/headers/XSFTraceId'
          content:
            application/json:
              schema:
                oneOf:
                  - $ref: '#/components/schemas/components-schemas-ReferencedEntityNotFoundErrorDetails'
                  - $ref: '#/components/schemas/BlockedMerchantAcceptorErrorDetails'
                  - $ref: '#/components/schemas/NonMatchingIdempotentRequestErrorDetails'
                  - $ref: '#/components/schemas/IncompatibleCardNetworkForOperation'
                  - $ref: '#/components/schemas/IncompatibleCardErrorDetails'
                  - $ref: '#/components/schemas/IdempotentRequestIsStillBeingProcessedErrorDetails'
                  - $ref: '#/components/schemas/UnexpectedCurrencyErrorDetails'
                  - $ref: '#/components/schemas/MissingNetworkReferenceErrorDetails'
              examples:
                ReferencedEntityNotFoundErrorExample:
                  $ref: '#/components/examples/components-examples-ReferencedEntityNotFoundErrorExample'
                BlockedMerchantAcceptorErrorExample:
                  $ref: '#/components/examples/BlockedMerchantAcceptorErrorExample'
                BlockedBinErrorExample:
                  $ref: '#/components/examples/BlockedBinErrorExample'
                NonMatchingIdempontentRequestErrorExample:
                  $ref: '#/components/examples/NonMatchingIdempontentRequestErrorExample'
                IncompatibleCardNetworkForOperationErrorExample:
                  $ref: '#/components/examples/IncompatibleCardNetworkForOperationExample'
                IncompatibleCardErrorDetails:
                  $ref: '#/components/examples/IncompatibleCardErrorExample'
                IdempotentRequestIsStillBeingProcessedErrorExample:
                  $ref: '#/components/examples/IdempotentRequestIsStillBeingProcessedExample'
                UnexpectedCurrencyErrorDetails:
                  $ref: '#/components/examples/UnexpectedCurrencyErrorExample'
                MissingNetworkReferenceErrorExample:
                  $ref: '#/components/examples/MissingNetworkReferenceErrorExample'
        '429':
          $ref: '#/components/responses/openapi_components-responses-TooManyRequestsError'
        '500':
          $ref: '#/components/responses/responses-InternalServerError'
  /charges/mit:
    post:
      operationId: createChargeMit
      summary: Create MIT Charge
      description: |
        Create a new charge that was initiated by the merchant, without the presence of the cardholder.

        This endpoint can be used by clients that want to be responsible of storing the card credentials themselves. 
        If you want to rely on Silverflow to store the card credentials, refer to the [Create a MIT Charge from Initial Charge endpoint](#operation/createChargeMitFromInitialCharge) .

        Diners support is <a class="experimental-tag-link" href="https://docs.silverflow.com/guides/api-lifecycle#tag/EXPERIMENTAL-Tag"><span class="tag experimental-tag">EXPERIMENTAL</span></a>.

        Requires `charges:Create` permission.
      parameters:
        - $ref: '#/components/parameters/IdempotencyKey'
      tags:
        - Create Recurring
      requestBody:
        description: |
          Create a charge.
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CreateMitChargeRequest'
            examples:
              Visa:
                $ref: '#/components/examples/visa_Request'
              Mastercard:
                $ref: '#/components/examples/mastercard_Request'
              NetworkToken:
                $ref: '#/components/examples/mastercard-network-token_Request'
      responses:
        '201':
          description: The created charge
          headers:
            Location:
              description: The URL of the newly created charge
              schema:
                type: string
            X-SF-Trace-ID:
              $ref: '#/components/headers/XSFTraceId'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/MitChargeResponse'
              examples:
                Visa:
                  $ref: '#/components/examples/visa_Response'
                Mastercard:
                  $ref: '#/components/examples/mastercard_Response'
                NetworkToken:
                  $ref: '#/components/examples/mastercard-network-token_Response'
        '400':
          description: Bad Request
          headers:
            X-SF-Trace-ID:
              $ref: '#/components/headers/XSFTraceId'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/openapi_components-schemas-InvalidInputErrorDetails'
              examples:
                InvalidInputErrorExample:
                  $ref: '#/components/examples/components-examples-InvalidInputErrorExample'
        '401':
          $ref: '#/components/responses/openapi_components-responses-UnauthorizedError'
        '403':
          $ref: '#/components/responses/components-responses-ForbiddenError'
        '409':
          description: Conflict
          headers:
            X-SF-Trace-ID:
              $ref: '#/components/headers/XSFTraceId'
          content:
            application/json:
              schema:
                oneOf:
                  - $ref: '#/components/schemas/components-schemas-ReferencedEntityNotFoundErrorDetails'
                  - $ref: '#/components/schemas/BlockedMerchantAcceptorErrorDetails'
                  - $ref: '#/components/schemas/NonMatchingIdempotentRequestErrorDetails'
                  - $ref: '#/components/schemas/CannotDetermineCardNetworkErrorDetails'
                  - $ref: '#/components/schemas/IncompatibleCardNetworkForOperation'
                  - $ref: '#/components/schemas/schemas-IncompatibleCardNetworkErrorDetails'
                  - $ref: '#/components/schemas/IncompatibleCardErrorDetails'
                  - $ref: '#/components/schemas/IdempotentRequestIsStillBeingProcessedErrorDetails'
                  - $ref: '#/components/schemas/UnexpectedCurrencyErrorDetails'
              examples:
                ReferencedEntityNotFoundErrorExample:
                  $ref: '#/components/examples/components-examples-ReferencedEntityNotFoundErrorExample'
                IncompatibleCardNetworkForOperationErrorExample:
                  $ref: '#/components/examples/IncompatibleCardNetworkForOperationExample'
                IncompatibleCardNetworkErrorExample:
                  $ref: '#/components/examples/examples-IncompatibleCardNetworkErrorExample'
                BlockedMerchantAcceptorErrorExample:
                  $ref: '#/components/examples/BlockedMerchantAcceptorErrorExample'
                BlockedBinErrorExample:
                  $ref: '#/components/examples/BlockedBinErrorExample'
                NonMatchingIdempontentRequestErrorExample:
                  $ref: '#/components/examples/NonMatchingIdempontentRequestErrorExample'
                CannotDetermineCardNetworkErrorExample:
                  $ref: '#/components/examples/CannotDetermineCardNetworkErrorExample'
                IncompatibleCardErrorDetails:
                  $ref: '#/components/examples/IncompatibleCardErrorExample'
                IdempotentRequestIsStillBeingProcessedErrorExample:
                  $ref: '#/components/examples/IdempotentRequestIsStillBeingProcessedExample'
                UnexpectedCurrencyErrorDetails:
                  $ref: '#/components/examples/UnexpectedCurrencyErrorExample'
        '429':
          $ref: '#/components/responses/openapi_components-responses-TooManyRequestsError'
        '500':
          $ref: '#/components/responses/responses-InternalServerError'
  /charges/mitFunding:
    post:
      operationId: createChargeMitFunding
      summary: Create MIT Funding Charge
      description: |
        Create a new funding charge that was initiated by the merchant, without the presence of the cardholder.

        For more information on use-cases, [see here](https://docs.silverflow.com/guides/payouts-and-funding#tag/Funding).

        Mastercard support is <a class="experimental-tag-link" href="https://docs.silverflow.com/guides/api-lifecycle#tag/EXPERIMENTAL-Tag"><span class="tag experimental-tag">EXPERIMENTAL</span></a>.

        Visa DMS support is <a class="experimental-tag-link" href="https://docs.silverflow.com/guides/api-lifecycle#tag/EXPERIMENTAL-Tag"><span class="tag experimental-tag">EXPERIMENTAL</span></a>.

        Requires the `charges:CreateMitFunding` permission.
      tags:
        - Create Recurring
      parameters:
        - $ref: '#/components/parameters/IdempotencyKey'
      requestBody:
        description: |
          Create a MIT funding charge.
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/MitFundingChargeRequest'
            examples:
              funding:
                $ref: '#/components/examples/mit-funding-visa_Request'
      responses:
        '201':
          description: The created MIT funding charge
          headers:
            Location:
              description: The URL of the newly created charge
              schema:
                type: string
            X-SF-Trace-ID:
              $ref: '#/components/headers/XSFTraceId'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/MitFundingChargeResponse'
              examples:
                funding:
                  $ref: '#/components/examples/mit-funding-visa_Response'
        '400':
          description: Bad Request
          headers:
            X-SF-Trace-ID:
              $ref: '#/components/headers/XSFTraceId'
          content:
            application/json:
              schema:
                oneOf:
                  - $ref: '#/components/schemas/openapi_components-schemas-InvalidInputErrorDetails'
                  - $ref: '#/components/schemas/schemas-InvalidRequestErrorDetails'
              examples:
                InvalidInputErrorExample:
                  $ref: '#/components/examples/components-examples-InvalidInputErrorExample'
                InvalidRequestErrorExample:
                  $ref: '#/components/examples/InvalidRequestErrorExample'
        '401':
          $ref: '#/components/responses/openapi_components-responses-UnauthorizedError'
        '403':
          $ref: '#/components/responses/components-responses-ForbiddenError'
        '409':
          description: Conflict
          headers:
            X-SF-Trace-ID:
              $ref: '#/components/headers/XSFTraceId'
          content:
            application/json:
              schema:
                oneOf:
                  - $ref: '#/components/schemas/components-schemas-ReferencedEntityNotFoundErrorDetails'
                  - $ref: '#/components/schemas/BlockedMerchantAcceptorErrorDetails'
                  - $ref: '#/components/schemas/NonMatchingIdempotentRequestErrorDetails'
                  - $ref: '#/components/schemas/CannotDetermineCardNetworkErrorDetails'
                  - $ref: '#/components/schemas/IncompatibleCardNetworkForOperation'
                  - $ref: '#/components/schemas/schemas-IncompatibleCardNetworkErrorDetails'
                  - $ref: '#/components/schemas/IncompatibleCardErrorDetails'
                  - $ref: '#/components/schemas/IncompatibleMccErrorDetails'
                  - $ref: '#/components/schemas/IdempotentRequestIsStillBeingProcessedErrorDetails'
              examples:
                ReferencedEntityNotFoundErrorExample:
                  $ref: '#/components/examples/components-examples-ReferencedEntityNotFoundErrorExample'
                BlockedMerchantAcceptorErrorExample:
                  $ref: '#/components/examples/BlockedMerchantAcceptorErrorExample'
                BlockedBinErrorExample:
                  $ref: '#/components/examples/BlockedBinErrorExample'
                NonMatchingIdempontentRequestErrorExample:
                  $ref: '#/components/examples/NonMatchingIdempontentRequestErrorExample'
                CannotDetermineCardNetworkErrorExample:
                  $ref: '#/components/examples/CannotDetermineCardNetworkErrorExample'
                IncompatibleCardNetworkForOperationErrorExample:
                  $ref: '#/components/examples/IncompatibleCardNetworkForOperationExample'
                IncompatibleCardNetworkErrorExample:
                  $ref: '#/components/examples/examples-IncompatibleCardNetworkErrorExample'
                IncompatibleCardErrorDetails:
                  $ref: '#/components/examples/IncompatibleCardErrorExample'
                IncompatibleMccErrorExample:
                  $ref: '#/components/examples/IncompatibleMccErrorExample'
                IdempotentRequestIsStillBeingProcessedErrorExample:
                  $ref: '#/components/examples/IdempotentRequestIsStillBeingProcessedExample'
        '429':
          $ref: '#/components/responses/openapi_components-responses-TooManyRequestsError'
        '500':
          $ref: '#/components/responses/responses-InternalServerError'
  /charges/{initialChargeKey}/wip:
    post:
      operationId: createChargeWip
      summary: Create WIP Charge
      description: |
        Create a new Wallet Initiated Payment ("WIP") charge with the Bancontact network. WIP charges allows Bancontact PAN-based e-commerce transactions to be performed without the need for Strong Customer Authentication. There are two use cases for WIP charges:

          - One click express checkout
          - Recurring payments

        If transaction data changes for the subsequent charges, the relevant data can be modified by providing new values. For example, the recurring amount could change monthly.

        **From November 22, 2026, if a valid card is not found using `card.number` in the request, the response will be a 409 with type `/silverflow/problems/card/invalid`.**
      tags:
        - Create Recurring
      parameters:
        - $ref: '#/components/parameters/initialChargeKey'
        - $ref: '#/components/parameters/IdempotencyKey'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/WipChargeRequest'
            examples:
              wip:
                $ref: '#/components/examples/wip_Request'
      responses:
        '201':
          description: The created charge
          headers:
            Location:
              description: The URL of the newly created charge
              schema:
                type: string
            X-SF-Trace-ID:
              $ref: '#/components/headers/XSFTraceId'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/WipChargeResponse'
              examples:
                wip:
                  $ref: '#/components/examples/wip_Response'
        '400':
          $ref: '#/components/responses/responses-InvalidInputError'
        '401':
          $ref: '#/components/responses/openapi_components-responses-UnauthorizedError'
        '409':
          description: Conflict
          headers:
            X-SF-Trace-ID:
              $ref: '#/components/headers/XSFTraceId'
          content:
            application/json:
              schema:
                oneOf:
                  - $ref: '#/components/schemas/components-schemas-ReferencedEntityNotFoundErrorDetails'
                  - $ref: '#/components/schemas/IncompatibleCardNetworkForOperation'
                  - $ref: '#/components/schemas/BlockedMerchantAcceptorErrorDetails'
                  - $ref: '#/components/schemas/NonMatchingIdempotentRequestErrorDetails'
                  - $ref: '#/components/schemas/IdempotentRequestIsStillBeingProcessedErrorDetails'
              examples:
                ReferencedEntityNotFoundErrorExample:
                  $ref: '#/components/examples/components-examples-ReferencedEntityNotFoundErrorExample'
                IncompatibleCardNetworkForOperationExample:
                  $ref: '#/components/examples/IncompatibleCardNetworkForOperationExample'
                BlockedMerchantAcceptorErrorExample:
                  $ref: '#/components/examples/BlockedBinErrorExample'
                NonMatchingIdempotentRequestErrorExample:
                  $ref: '#/components/examples/NonMatchingIdempontentRequestErrorExample'
                IdempotentRequestIsStillBeingProcessedErrorExample:
                  $ref: '#/components/examples/IdempotentRequestIsStillBeingProcessedExample'
        '429':
          $ref: '#/components/responses/openapi_components-responses-TooManyRequestsError'
        '500':
          $ref: '#/components/responses/responses-InternalServerError'
  /charges/{chargeKey}/cancel:
    post:
      operationId: cancel
      summary: Cancel Charge
      description: |
        This operation:
        1. Tries to cancel the clearing of the referenced charge. If this is not possible due to the clearing already being submitted, this endpoint will return an HTTP 409 error.
        2. If clearing has been cancelled, performs a reversal of the charge. This means that the authorization will be reversed.

        This operation is only possible for charges with `clearingMode` set to `auto`.

        Diners and ATM Charge support is <a class="experimental-tag-link" href="https://docs.silverflow.com/guides/api-lifecycle#tag/EXPERIMENTAL-Tag"><span class="tag experimental-tag">EXPERIMENTAL</span></a>.

        Requires one of the following permissions:
        * `charges:Cancel`
        * `charges:CancelOrRefund`
      tags:
        - Charge Actions
      parameters:
        - $ref: '#/components/parameters/chargeKey'
        - $ref: '#/components/parameters/IdempotencyKey'
      requestBody:
        description: |
          Request a charge cancellation
        required: false
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ChargeCancel'
      responses:
        '201':
          description: The resulting reversal action.
          headers:
            X-SF-Trace-ID:
              $ref: '#/components/headers/XSFTraceId'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ReversalAction'
        '400':
          $ref: '#/components/responses/responses-InvalidInputError'
        '401':
          $ref: '#/components/responses/openapi_components-responses-UnauthorizedError'
        '403':
          $ref: '#/components/responses/components-responses-ForbiddenError'
        '404':
          $ref: '#/components/responses/EntityNotFoundError'
        '409':
          description: Conflict
          headers:
            X-SF-Trace-ID:
              $ref: '#/components/headers/XSFTraceId'
          content:
            application/json:
              schema:
                oneOf:
                  - $ref: '#/components/schemas/ChargeTooOldForClearingErrorDetails'
                  - $ref: '#/components/schemas/ClearingAlreadySubmittedErrorDetails'
                  - $ref: '#/components/schemas/IdempotentRequestIsStillBeingProcessedErrorDetails'
                  - $ref: '#/components/schemas/IncompatibleCardNetworkForOperation'
                  - $ref: '#/components/schemas/NonMatchingIdempotentRequestErrorDetails'
                  - $ref: '#/components/schemas/UnexpectedAuthorizationErrorDetails'
                  - $ref: '#/components/schemas/UnexpectedClearingModeErrorDetails'
                  - $ref: '#/components/schemas/UnexpectedClearingStatusErrorDetails'
                  - $ref: '#/components/schemas/UnexpectedIntentErrorDetails'
              examples:
                NonMatchingIdempotentRequestErrorExample:
                  $ref: '#/components/examples/NonMatchingIdempontentRequestErrorExample'
                ClearingAlreadySubmittedErrorExample:
                  $ref: '#/components/examples/ClearingAlreadySubmittedExample'
                IncompatibleCardNetworkForOperation:
                  $ref: '#/components/examples/IncompatibleCardNetworkForOperationExample'
                UnexpectedIntentErrorDetails:
                  $ref: '#/components/examples/UnexpectedIntentErrorExample'
                IdempotentRequestIsStillBeingProcessedErrorExample:
                  $ref: '#/components/examples/IdempotentRequestIsStillBeingProcessedExample'
        '429':
          $ref: '#/components/responses/openapi_components-responses-TooManyRequestsError'
        '500':
          $ref: '#/components/responses/responses-InternalServerError'
  /charges/{chargeKey}/refund:
    post:
      operationId: refund
      summary: Refund Charge
      description: |
        Performs a refund of a charge.

        It is only possible to refund charges with the following `type.intent`:
        - `purchase`
        - `reservation`
        - `funding`

        Diners support is <a class="experimental-tag-link" href="https://docs.silverflow.com/guides/api-lifecycle#tag/EXPERIMENTAL-Tag"><span class="tag experimental-tag">EXPERIMENTAL</span></a>.

        Requires `charges:Refund` permission.

        For more information, see [the guide page](https://docs.silverflow.com/guides/charge-actions#tag/Refunds).
      tags:
        - Charge Actions
      parameters:
        - $ref: '#/components/parameters/chargeKey'
        - $ref: '#/components/parameters/IdempotencyKey'
      requestBody:
        description: |
          Request a charge refund
        required: false
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ChargeRefund'
      responses:
        '201':
          description: The resulting refund action.
          headers:
            X-SF-Trace-ID:
              $ref: '#/components/headers/XSFTraceId'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RefundAction'
        '400':
          $ref: '#/components/responses/responses-InvalidInputError'
        '401':
          $ref: '#/components/responses/openapi_components-responses-UnauthorizedError'
        '403':
          $ref: '#/components/responses/components-responses-ForbiddenError'
        '404':
          $ref: '#/components/responses/EntityNotFoundError'
        '409':
          description: Conflict
          headers:
            X-SF-Trace-ID:
              $ref: '#/components/headers/XSFTraceId'
          content:
            application/json:
              schema:
                oneOf:
                  - $ref: '#/components/schemas/NonMatchingIdempotentRequestErrorDetails'
                  - $ref: '#/components/schemas/UnexpectedAuthorizationErrorDetails'
                  - $ref: '#/components/schemas/UnexpectedClearingStatusErrorDetails'
                  - $ref: '#/components/schemas/UnexpectedIntentErrorDetails'
                  - $ref: '#/components/schemas/UnexpectedMessageSystem'
                  - $ref: '#/components/schemas/IncompatibleCardNetworkForOperation'
                  - $ref: '#/components/schemas/IdempotentRequestIsStillBeingProcessedErrorDetails'
              examples:
                NonMatchingIdempontentRequestErrorExample:
                  $ref: '#/components/examples/NonMatchingIdempontentRequestErrorExample'
                UnexpectedAuthorizationErrorExample:
                  $ref: '#/components/examples/UnexpectedAuthorizationErrorExample'
                UnexpectedClearingStatusErrorExample:
                  $ref: '#/components/examples/UnexpectedClearingStatusErrorExample'
                UnexpectedIntentErrorExample:
                  $ref: '#/components/examples/UnexpectedIntentErrorExample'
                UnexpectedMessageSystemExample:
                  $ref: '#/components/examples/UnexpectedMessageSystemExample'
                IncompatibleCardNetworkForOperationErrorExample:
                  $ref: '#/components/examples/IncompatibleCardNetworkForOperationExample'
                IdempotentRequestIsStillBeingProcessedErrorExample:
                  $ref: '#/components/examples/IdempotentRequestIsStillBeingProcessedExample'
        '429':
          $ref: '#/components/responses/openapi_components-responses-TooManyRequestsError'
        '500':
          $ref: '#/components/responses/responses-InternalServerError'
  /charges/{chargeKey}/offlineRefund:
    post:
      operationId: offlineRefund
      summary: Offline-Refund Charge
      description: |
        Performs an offline-refund of an authorized charge. This refund will be cleared without issuer authorization.

        For American Express and Diners, this endpoint supports refunding charges for up to 6 months after their creation. When trying to refund a charge older than that, it will return an HTTP 409 error with type `/silverflow/problems/charge/invalid-operation`.

        Requires `charges:OfflineRefund` permission.
      tags:
        - Charge Actions
      parameters:
        - $ref: '#/components/parameters/chargeKey'
        - $ref: '#/components/parameters/IdempotencyKey'
      requestBody:
        description: |
          Request an offline charge refund
        required: false
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ChargeOfflineRefundRequest'
            examples:
              partial:
                $ref: '#/components/examples/partial_Request'
      responses:
        '201':
          description: The resulting offline refund action
          headers:
            X-SF-Trace-ID:
              $ref: '#/components/headers/XSFTraceId'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/OfflineRefundAction'
              examples:
                partial:
                  $ref: '#/components/examples/partial_Response'
        '400':
          $ref: '#/components/responses/responses-InvalidInputError'
        '401':
          $ref: '#/components/responses/openapi_components-responses-UnauthorizedError'
        '403':
          $ref: '#/components/responses/components-responses-ForbiddenError'
        '404':
          $ref: '#/components/responses/EntityNotFoundError'
        '409':
          description: Conflict
          headers:
            X-SF-Trace-ID:
              $ref: '#/components/headers/XSFTraceId'
          content:
            application/json:
              schema:
                oneOf:
                  - $ref: '#/components/schemas/NonMatchingIdempotentRequestErrorDetails'
                  - $ref: '#/components/schemas/UnexpectedAuthorizationErrorDetails'
                  - $ref: '#/components/schemas/UnexpectedClearingStatusErrorDetails'
                  - $ref: '#/components/schemas/UnexpectedIntentErrorDetails'
                  - $ref: '#/components/schemas/UnexpectedMessageSystem'
                  - $ref: '#/components/schemas/IncompatibleCardNetworkForOperation'
                  - $ref: '#/components/schemas/IdempotentRequestIsStillBeingProcessedErrorDetails'
                  - $ref: '#/components/schemas/InvalidCardErrorDetails'
                  - $ref: '#/components/schemas/ChargeInvalidOperationErrorDetails'
              examples:
                NonMatchingIdempontentRequestErrorExample:
                  $ref: '#/components/examples/NonMatchingIdempontentRequestErrorExample'
                UnexpectedAuthorizationErrorExample:
                  $ref: '#/components/examples/UnexpectedAuthorizationErrorExample'
                UnexpectedClearingStatusErrorExample:
                  $ref: '#/components/examples/UnexpectedClearingStatusErrorExample'
                UnexpectedIntentErrorExample:
                  $ref: '#/components/examples/UnexpectedIntentErrorExample'
                UnexpectedMessageSystemExample:
                  $ref: '#/components/examples/UnexpectedMessageSystemExample'
                IncompatibleCardNetworkForOperationErrorExample:
                  $ref: '#/components/examples/IncompatibleCardNetworkForOperationExample'
                IdempotentRequestIsStillBeingProcessedErrorExample:
                  $ref: '#/components/examples/IdempotentRequestIsStillBeingProcessedExample'
                InvalidCardErrorExample:
                  $ref: '#/components/examples/InvalidCardErrorExample'
                ChargeInvalidOperationErrorExample:
                  $ref: '#/components/examples/ChargeInvalidOperationErrorExample'
        '429':
          $ref: '#/components/responses/openapi_components-responses-TooManyRequestsError'
        '500':
          $ref: '#/components/responses/responses-InternalServerError'
        '503':
          $ref: '#/components/responses/TemporaryServerError'
  /charges/{chargeKey}/reverse:
    post:
      operationId: reverse
      summary: Reverse Charge
      description: |
        Performs a reversal of a charge. This means that the authorization will be reversed.
        If no request body is provided, the full current charge amount will be reversed (taking into account reversals and increments).

        Note that there are currently no restrictions on the amount you can reverse in relation
        to previous clearings; this is the responsibility of the client.

        Diners and ATM Charge support is <a class="experimental-tag-link" href="https://docs.silverflow.com/guides/api-lifecycle#tag/EXPERIMENTAL-Tag"><span class="tag experimental-tag">EXPERIMENTAL</span></a>.

        Requires the `charges:Reverse` permission.
      tags:
        - Charge Actions
      parameters:
        - $ref: '#/components/parameters/chargeKey'
        - $ref: '#/components/parameters/IdempotencyKey'
      requestBody:
        description: |
          Request a charge reversal.
        required: false
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ChargeReverse'
      responses:
        '201':
          description: The resulting reversal action.
          headers:
            X-SF-Trace-ID:
              $ref: '#/components/headers/XSFTraceId'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ReversalAction'
        '400':
          $ref: '#/components/responses/responses-InvalidInputError'
        '401':
          $ref: '#/components/responses/openapi_components-responses-UnauthorizedError'
        '403':
          $ref: '#/components/responses/components-responses-ForbiddenError'
        '404':
          $ref: '#/components/responses/EntityNotFoundError'
        '409':
          description: Conflict
          headers:
            X-SF-Trace-ID:
              $ref: '#/components/headers/XSFTraceId'
          content:
            application/json:
              schema:
                oneOf:
                  - $ref: '#/components/schemas/NonMatchingIdempotentRequestErrorDetails'
                  - $ref: '#/components/schemas/UnexpectedAuthorizationErrorDetails'
                  - $ref: '#/components/schemas/UnexpectedClearingModeErrorDetails'
                  - $ref: '#/components/schemas/UnexpectedIntentErrorDetails'
                  - $ref: '#/components/schemas/InvalidAmountErrorDetails'
                  - $ref: '#/components/schemas/IncompatibleCardNetworkForOperation'
                  - $ref: '#/components/schemas/IdempotentRequestIsStillBeingProcessedErrorDetails'
              examples:
                NonMatchingIdempontentRequestErrorExample:
                  $ref: '#/components/examples/NonMatchingIdempontentRequestErrorExample'
                UnexpectedAuthorizationErrorExample:
                  $ref: '#/components/examples/UnexpectedAuthorizationErrorExample'
                UnexpectedClearingModeErrorExample:
                  $ref: '#/components/examples/UnexpectedClearingModeErrorExample'
                UnexpectedIntentErrorExample:
                  $ref: '#/components/examples/UnexpectedIntentErrorExample'
                InvalidAmountErrorExample:
                  $ref: '#/components/examples/InvalidAmountErrorExample'
                IncompatibleCardNetworkForOperation:
                  $ref: '#/components/examples/IncompatibleCardNetworkForOperationExample'
                IdempotentRequestIsStillBeingProcessedErrorExample:
                  $ref: '#/components/examples/IdempotentRequestIsStillBeingProcessedExample'
        '429':
          $ref: '#/components/responses/openapi_components-responses-TooManyRequestsError'
        '500':
          $ref: '#/components/responses/responses-InternalServerError'
  /charges/{chargeKey}/increment:
    post:
      operationId: increment
      summary: Increment Charge
      description: |
        Performs an increment on a charge. Note that this is not allowed if the charge has 
        previously been cleared (either partially or fully).

        Increment support for Diners is <a class="experimental-tag-link" href="https://docs.silverflow.com/guides/api-lifecycle#tag/EXPERIMENTAL-Tag"><span class="tag experimental-tag">EXPERIMENTAL</span></a>.

        For decreasing the authorization amount, please see [Reverse charge](#operation/reverse).

        Requires the `charges:Increment` permission.
      tags:
        - Charge Actions
      parameters:
        - $ref: '#/components/parameters/chargeKey'
        - $ref: '#/components/parameters/IdempotencyKey'
      requestBody:
        description: |
          Request a charge increment.
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ChargeIncrement'
      responses:
        '201':
          description: The resulting increment action
          headers:
            X-SF-Trace-ID:
              $ref: '#/components/headers/XSFTraceId'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/IncrementAction'
        '400':
          $ref: '#/components/responses/responses-InvalidInputError'
        '401':
          $ref: '#/components/responses/openapi_components-responses-UnauthorizedError'
        '403':
          $ref: '#/components/responses/components-responses-ForbiddenError'
        '404':
          $ref: '#/components/responses/EntityNotFoundError'
        '409':
          description: Conflict
          headers:
            X-SF-Trace-ID:
              $ref: '#/components/headers/XSFTraceId'
          content:
            application/json:
              schema:
                oneOf:
                  - $ref: '#/components/schemas/NonMatchingIdempotentRequestErrorDetails'
                  - $ref: '#/components/schemas/UnexpectedClearingModeErrorDetails'
                  - $ref: '#/components/schemas/UnexpectedClearingStatusErrorDetails'
                  - $ref: '#/components/schemas/UnexpectedAuthorizationErrorDetails'
                  - $ref: '#/components/schemas/UnexpectedRefundStatusErrorDetails'
                  - $ref: '#/components/schemas/UnexpectedIntentErrorDetails'
                  - $ref: '#/components/schemas/InvalidAmountErrorDetails'
                  - $ref: '#/components/schemas/IncompatibleCardNetworkForOperation'
                  - $ref: '#/components/schemas/IdempotentRequestIsStillBeingProcessedErrorDetails'
              examples:
                NonMatchingIdempontentRequestErrorExample:
                  $ref: '#/components/examples/NonMatchingIdempontentRequestErrorExample'
                UnexpectedClearingModeErrorExample:
                  $ref: '#/components/examples/UnexpectedClearingModeErrorExample'
                UnexpectedClearingStatusErrorExample:
                  $ref: '#/components/examples/UnexpectedClearingStatusErrorExample'
                UnexpectedAuthorizationErrorExample:
                  $ref: '#/components/examples/UnexpectedAuthorizationErrorExample'
                UnexpectedRefundStatusErrorExample:
                  $ref: '#/components/examples/UnexpectedRefundStatusErrorExample'
                UnexpectedIntentErrorExample:
                  $ref: '#/components/examples/UnexpectedIntentErrorExample'
                InvalidAmountErrorExample:
                  $ref: '#/components/examples/InvalidAmountErrorExample'
                IncompatibleCardNetworkForOperation:
                  $ref: '#/components/examples/IncompatibleCardNetworkForOperationExample'
                IdempotentRequestIsStillBeingProcessedErrorExample:
                  $ref: '#/components/examples/IdempotentRequestIsStillBeingProcessedExample'
        '429':
          $ref: '#/components/responses/openapi_components-responses-TooManyRequestsError'
        '500':
          $ref: '#/components/responses/responses-InternalServerError'
  /charges/{chargeKey}/clear:
    post:
      operationId: triggerManualClearing
      summary: Manually Clear Charge
      description: |
        Manually clear the charge after its creation. This endpoint also allows for (multiple) partial
        clearing, by providing an amount that is different from the original amount. 

        Please note that there are currently no restrictions on the amount or the number of times you
        can clear a charge; this is the responsibility of the client.

        This endpoint supports clearing charges for up to 6 months after their creation. When trying to clear a charge older than that, it will return an HTTP 409 error with type `/silverflow/problems/charge/too-old`.

        Requires `charges:Clear` permission.
      tags:
        - Charge Actions
      parameters:
        - $ref: '#/components/parameters/chargeKey'
        - $ref: '#/components/parameters/IdempotencyKey'
      requestBody:
        description: |
          Clear the referenced charge with additional parameters.
        required: false
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ManualClearing'
      responses:
        '201':
          description: The resulting clearing action.
          headers:
            X-SF-Trace-ID:
              $ref: '#/components/headers/XSFTraceId'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ClearingAction'
        '400':
          $ref: '#/components/responses/responses-InvalidInputError'
        '401':
          $ref: '#/components/responses/openapi_components-responses-UnauthorizedError'
        '403':
          $ref: '#/components/responses/components-responses-ForbiddenError'
        '404':
          $ref: '#/components/responses/EntityNotFoundError'
        '409':
          description: Conflict
          headers:
            X-SF-Trace-ID:
              $ref: '#/components/headers/XSFTraceId'
          content:
            application/json:
              schema:
                oneOf:
                  - $ref: '#/components/schemas/ClearingCurrentZeroAmountErrorDetails'
                  - $ref: '#/components/schemas/ChargeTooOldForClearingErrorDetails'
                  - $ref: '#/components/schemas/UnexpectedAuthorizationErrorDetails'
                  - $ref: '#/components/schemas/UnexpectedClearingModeErrorDetails'
                  - $ref: '#/components/schemas/UnexpectedClearingStatusErrorDetails'
                  - $ref: '#/components/schemas/UnexpectedIntentErrorDetails'
                  - $ref: '#/components/schemas/IncompatibleCardNetworkForOperation'
                  - $ref: '#/components/schemas/IdempotentRequestIsStillBeingProcessedErrorDetails'
                  - $ref: '#/components/schemas/NonMatchingIdempotentRequestErrorDetails'
              examples:
                ClearingCurrentZeroAmountErrorExample:
                  $ref: '#/components/examples/ClearingCurrentZeroAmountErrorExample'
                ChargeTooOldForClearingErrorExample:
                  $ref: '#/components/examples/ChargeTooOldForClearingErrorExample'
                UnexpectedAuthorizationErrorExample:
                  $ref: '#/components/examples/UnexpectedAuthorizationErrorExample'
                UnexpectedClearingModeErrorExample:
                  $ref: '#/components/examples/UnexpectedClearingModeErrorExample'
                UnexpectedClearingStatusErrorExample:
                  $ref: '#/components/examples/UnexpectedClearingStatusErrorExample'
                UnexpectedIntentErrorExample:
                  $ref: '#/components/examples/UnexpectedIntentErrorExample'
                IncompatibleCardNetworkForOperationErrorExample:
                  $ref: '#/components/examples/IncompatibleCardNetworkForOperationExample'
                IdempotentRequestIsStillBeingProcessedErrorExample:
                  $ref: '#/components/examples/IdempotentRequestIsStillBeingProcessedExample'
                NonMatchingIdempontentRequestErrorExample:
                  $ref: '#/components/examples/NonMatchingIdempontentRequestErrorExample'
        '429':
          $ref: '#/components/responses/openapi_components-responses-TooManyRequestsError'
        '500':
          $ref: '#/components/responses/responses-InternalServerError'
  /charges/{chargeKey}/actions/{actionKey}:
    get:
      operationId: getAction
      summary: Get Action
      description: |
        Retrieve an action performed on a charge.

        Requires `charges:Get` permission.
      tags:
        - Charge Actions
      parameters:
        - $ref: '#/components/parameters/actionKey'
        - $ref: '#/components/parameters/chargeKey'
      responses:
        '200':
          description: The action
          headers:
            X-SF-Trace-ID:
              $ref: '#/components/headers/XSFTraceId'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Action'
        '400':
          $ref: '#/components/responses/responses-InvalidInputError'
        '401':
          $ref: '#/components/responses/openapi_components-responses-UnauthorizedError'
        '403':
          $ref: '#/components/responses/components-responses-ForbiddenError'
        '404':
          $ref: '#/components/responses/EntityNotFoundError'
        '429':
          $ref: '#/components/responses/openapi_components-responses-TooManyRequestsError'
        '500':
          $ref: '#/components/responses/responses-InternalServerError'
  /charges/{chargeKey}/actions:
    get:
      operationId: getActions
      summary: List Charge Actions
      description: |
        This endpoint returns a list of actions performed on a charge.

        Requires `charges:Get` permission.
      tags:
        - Charge Actions
      parameters:
        - $ref: '#/components/parameters/chargeKey'
        - $ref: '#/components/parameters/components-parameters-offsetToken'
        - $ref: '#/components/parameters/limit'
      responses:
        '200':
          description: A list of actions
          headers:
            X-SF-Trace-ID:
              $ref: '#/components/headers/XSFTraceId'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ActionsPage'
        '400':
          $ref: '#/components/responses/responses-InvalidInputError'
        '401':
          $ref: '#/components/responses/openapi_components-responses-UnauthorizedError'
        '403':
          $ref: '#/components/responses/components-responses-ForbiddenError'
        '404':
          $ref: '#/components/responses/EntityNotFoundError'
        '429':
          $ref: '#/components/responses/openapi_components-responses-TooManyRequestsError'
        '500':
          $ref: '#/components/responses/responses-InternalServerError'
  /cardManagement/actions/pinChange:
    post:
      operationId: CreatePinChange
      summary: Change PIN [EXPERIMENTAL]
      description: |
        Change the PIN on a card.

        Permissions: `cardManagement:Create`, `cardManagement:All`
      tags:
        - Card Management
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CreatePinChangeRequest'
      responses:
        '201':
          description: Created
          headers:
            X-SF-Trace-ID:
              $ref: '#/components/headers/XSFTraceId'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CreatePinChangeResponse'
        '400':
          description: Bad Request
          headers:
            X-SF-Trace-ID:
              $ref: '#/components/headers/XSFTraceId'
          content:
            application/json:
              schema:
                oneOf:
                  - $ref: '#/components/schemas/InvalidInputError'
                  - $ref: '#/components/schemas/InvalidRequestError'
                  - $ref: '#/components/schemas/IncompatibleMccError'
                  - $ref: '#/components/schemas/IncompatibleNetworkForOperationError'
                  - $ref: '#/components/schemas/CannotDetermineCardNetworkError'
        '401':
          description: Unauthorized
          headers:
            X-SF-Trace-ID:
              $ref: '#/components/headers/XSFTraceId'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UnauthorizedError'
        '403':
          description: Forbidden
          headers:
            X-SF-Trace-ID:
              $ref: '#/components/headers/XSFTraceId'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ForbiddenError'
        '409':
          description: Conflict
          headers:
            X-SF-Trace-ID:
              $ref: '#/components/headers/XSFTraceId'
          content:
            application/json:
              schema:
                oneOf:
                  - $ref: '#/components/schemas/BlockedMerchantAcceptorError'
                  - $ref: '#/components/schemas/ReferencedEntityNotFoundError'
                  - $ref: '#/components/schemas/ReferencedAcceptorNotFoundByRouteError'
                  - $ref: '#/components/schemas/IdempotentRequestMismatchError'
                  - $ref: '#/components/schemas/IdempotentRequestIsStillBeingProcessedError'
        '429':
          description: Too Many Requests
          headers:
            X-SF-Trace-ID:
              $ref: '#/components/headers/XSFTraceId'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/TooManyRequestsError'
        '500':
          description: Internal Server Error
          headers:
            X-SF-Trace-ID:
              $ref: '#/components/headers/XSFTraceId'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InternalServerError'
  /cardManagement/actions/{actionKey}/reverse:
    post:
      operationId: ReversePinChange
      summary: Reverse PIN Change [EXPERIMENTAL]
      description: |
        Reverse a previously approved PIN change. The reversal can itself be declined.

        Permissions: `cardManagement:Create`, `cardManagement:All`
      tags:
        - Card Management
      parameters:
        - name: actionKey
          in: path
          required: true
          description: The key of the PIN change action to reverse.
          schema:
            $ref: '#/components/schemas/ActionKey'
      responses:
        '201':
          description: Created
          headers:
            X-SF-Trace-ID:
              $ref: '#/components/headers/XSFTraceId'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ReversePinChangeResponse'
              examples:
                ApprovedMastercard:
                  $ref: '#/components/examples/ReversePinChangeResponse'
        '400':
          description: Bad Request
          headers:
            X-SF-Trace-ID:
              $ref: '#/components/headers/XSFTraceId'
          content:
            application/json:
              schema:
                oneOf:
                  - $ref: '#/components/schemas/InvalidInputError'
                  - $ref: '#/components/schemas/IncompatibleMccError'
                  - $ref: '#/components/schemas/IncompatibleNetworkForOperationError'
        '401':
          description: Unauthorized
          headers:
            X-SF-Trace-ID:
              $ref: '#/components/headers/XSFTraceId'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UnauthorizedError'
        '403':
          description: Forbidden
          headers:
            X-SF-Trace-ID:
              $ref: '#/components/headers/XSFTraceId'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ForbiddenError'
        '404':
          description: Not Found
          headers:
            X-SF-Trace-ID:
              $ref: '#/components/headers/XSFTraceId'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/EntityNotFoundError'
        '409':
          description: Conflict
          headers:
            X-SF-Trace-ID:
              $ref: '#/components/headers/XSFTraceId'
          content:
            application/json:
              schema:
                oneOf:
                  - $ref: '#/components/schemas/BlockedMerchantAcceptorError'
                  - $ref: '#/components/schemas/ReferencedEntityNotFoundError'
                  - $ref: '#/components/schemas/IdempotentRequestMismatchError'
                  - $ref: '#/components/schemas/IdempotentRequestIsStillBeingProcessedError'
                  - $ref: '#/components/schemas/ActionAlreadyReversedError'
                  - $ref: '#/components/schemas/ActionNotReversibleError'
        '429':
          description: Too Many Requests
          headers:
            X-SF-Trace-ID:
              $ref: '#/components/headers/XSFTraceId'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/TooManyRequestsError'
        '500':
          description: Internal Server Error
          headers:
            X-SF-Trace-ID:
              $ref: '#/components/headers/XSFTraceId'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InternalServerError'
  /cardManagement/actions/pinUnblock:
    post:
      operationId: CreatePinUnblock
      summary: Unblock PIN [EXPERIMENTAL]
      description: |
        Unblock the PIN on a card.

        Permissions: `cardManagement:Create`, `cardManagement:All`
      tags:
        - Card Management
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/PinUnblockRequest'
      responses:
        '201':
          description: Created
          headers:
            X-SF-Trace-ID:
              $ref: '#/components/headers/XSFTraceId'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CreatePinUnblockResponse'
        '400':
          description: Bad Request
          headers:
            X-SF-Trace-ID:
              $ref: '#/components/headers/XSFTraceId'
          content:
            application/json:
              schema:
                oneOf:
                  - $ref: '#/components/schemas/InvalidInputError'
                  - $ref: '#/components/schemas/InvalidRequestError'
                  - $ref: '#/components/schemas/CannotDetermineCardNetworkError'
                  - $ref: '#/components/schemas/IncompatibleMccError'
                  - $ref: '#/components/schemas/IncompatibleNetworkForOperationError'
        '401':
          description: Unauthorized
          headers:
            X-SF-Trace-ID:
              $ref: '#/components/headers/XSFTraceId'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UnauthorizedError'
        '403':
          description: Forbidden
          headers:
            X-SF-Trace-ID:
              $ref: '#/components/headers/XSFTraceId'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ForbiddenError'
        '409':
          description: Conflict
          headers:
            X-SF-Trace-ID:
              $ref: '#/components/headers/XSFTraceId'
          content:
            application/json:
              schema:
                oneOf:
                  - $ref: '#/components/schemas/BlockedMerchantAcceptorError'
                  - $ref: '#/components/schemas/ReferencedEntityNotFoundError'
                  - $ref: '#/components/schemas/ReferencedAcceptorNotFoundByRouteError'
                  - $ref: '#/components/schemas/IdempotentRequestMismatchError'
                  - $ref: '#/components/schemas/IdempotentRequestIsStillBeingProcessedError'
        '429':
          description: Too Many Requests
          headers:
            X-SF-Trace-ID:
              $ref: '#/components/headers/XSFTraceId'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/TooManyRequestsError'
        '500':
          description: Internal Server Error
          headers:
            X-SF-Trace-ID:
              $ref: '#/components/headers/XSFTraceId'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InternalServerError'
  /cardManagement/actions/balanceInquiry:
    post:
      operationId: CreateBalanceInquiry
      summary: Balance Inquiry [EXPERIMENTAL]
      description: |
        Retrieve the balance available on a card.

        Permissions: `cardManagement:Create`, `cardManagement:All`
      tags:
        - Card Management
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/BalanceInquiryRequest'
      responses:
        '201':
          description: Created
          headers:
            X-SF-Trace-ID:
              $ref: '#/components/headers/XSFTraceId'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CreateBalanceInquiryResponse'
        '400':
          description: Bad Request
          headers:
            X-SF-Trace-ID:
              $ref: '#/components/headers/XSFTraceId'
          content:
            application/json:
              schema:
                oneOf:
                  - $ref: '#/components/schemas/InvalidInputError'
                  - $ref: '#/components/schemas/InvalidRequestError'
                  - $ref: '#/components/schemas/CannotDetermineCardNetworkError'
                  - $ref: '#/components/schemas/IncompatibleMccError'
                  - $ref: '#/components/schemas/IncompatibleNetworkForOperationError'
        '401':
          description: Unauthorized
          headers:
            X-SF-Trace-ID:
              $ref: '#/components/headers/XSFTraceId'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UnauthorizedError'
        '403':
          description: Forbidden
          headers:
            X-SF-Trace-ID:
              $ref: '#/components/headers/XSFTraceId'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ForbiddenError'
        '409':
          description: Conflict
          headers:
            X-SF-Trace-ID:
              $ref: '#/components/headers/XSFTraceId'
          content:
            application/json:
              schema:
                oneOf:
                  - $ref: '#/components/schemas/BlockedMerchantAcceptorError'
                  - $ref: '#/components/schemas/ReferencedEntityNotFoundError'
                  - $ref: '#/components/schemas/ReferencedAcceptorNotFoundByRouteError'
                  - $ref: '#/components/schemas/IdempotentRequestMismatchError'
                  - $ref: '#/components/schemas/IdempotentRequestIsStillBeingProcessedError'
        '429':
          description: Too Many Requests
          headers:
            X-SF-Trace-ID:
              $ref: '#/components/headers/XSFTraceId'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/TooManyRequestsError'
        '500':
          description: Internal Server Error
          headers:
            X-SF-Trace-ID:
              $ref: '#/components/headers/XSFTraceId'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InternalServerError'
  /cardManagement/actions/{actionKey}:
    get:
      operationId: GetCardManagementAction
      summary: Get Card Management Action [EXPERIMENTAL]
      description: |
        Retrieve a single action by its key.

        Permissions: `cardManagement:Get`, `cardManagement:All`
      tags:
        - Card Management
      parameters:
        - name: actionKey
          in: path
          required: true
          description: The key of the action to retrieve.
          schema:
            $ref: '#/components/schemas/ActionKey'
      responses:
        '200':
          description: OK
          headers:
            X-SF-Trace-ID:
              $ref: '#/components/headers/XSFTraceId'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GetCardManagementActionResponse'
              examples:
                Response:
                  $ref: '#/components/examples/PinChangeActionResponse'
        '400':
          description: Bad Request
          headers:
            X-SF-Trace-ID:
              $ref: '#/components/headers/XSFTraceId'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InvalidInputError'
        '401':
          description: Unauthorized
          headers:
            X-SF-Trace-ID:
              $ref: '#/components/headers/XSFTraceId'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UnauthorizedError'
        '403':
          description: Forbidden
          headers:
            X-SF-Trace-ID:
              $ref: '#/components/headers/XSFTraceId'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ForbiddenError'
        '404':
          description: Not Found
          headers:
            X-SF-Trace-ID:
              $ref: '#/components/headers/XSFTraceId'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/EntityNotFoundError'
        '429':
          description: Too Many Requests
          headers:
            X-SF-Trace-ID:
              $ref: '#/components/headers/XSFTraceId'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/TooManyRequestsError'
        '500':
          description: Internal Server Error
          headers:
            X-SF-Trace-ID:
              $ref: '#/components/headers/XSFTraceId'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InternalServerError'
  /cardManagement/actions:
    get:
      operationId: ListCardManagementActions
      summary: List Card Management Actions [EXPERIMENTAL]
      description: |
        Allows you to list and paginate through all the card management actions that have been created, with optional filtering.

        Permissions: `cardManagement:Get`, `cardManagement:All`
      tags:
        - Card Management
      parameters:
        - name: query
          in: query
          required: false
          description: Query parameters for listing and filtering card management actions.
          style: form
          explode: true
          schema:
            oneOf:
              - $ref: '#/components/schemas/InitialRequestByDatesQuery'
              - $ref: '#/components/schemas/InitialRequestByTransactionReferenceQuery'
              - $ref: '#/components/schemas/OffsetTokenQuery'
          examples:
            ListRequestByDateRange:
              $ref: '#/components/examples/ListRequestByDateRange'
            ListRequestByTransactionReference:
              $ref: '#/components/examples/ListRequestByTransactionReference'
            ListRequestWithOffsetToken:
              $ref: '#/components/examples/ListRequestWithOffsetToken'
      responses:
        '200':
          description: OK
          headers:
            X-SF-Trace-ID:
              $ref: '#/components/headers/XSFTraceId'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ListCardManagementActionsResponse'
              examples:
                MoreItemsResponse:
                  $ref: '#/components/examples/ListResponseMoreItems'
                FinalResponse:
                  $ref: '#/components/examples/ListResponseFinal'
        '400':
          description: Bad Request
          headers:
            X-SF-Trace-ID:
              $ref: '#/components/headers/XSFTraceId'
          content:
            application/json:
              schema:
                oneOf:
                  - $ref: '#/components/schemas/InvalidInputError'
                  - $ref: '#/components/schemas/InvalidToOrFromDateError'
        '401':
          description: Unauthorized
          headers:
            X-SF-Trace-ID:
              $ref: '#/components/headers/XSFTraceId'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UnauthorizedError'
        '403':
          description: Forbidden
          headers:
            X-SF-Trace-ID:
              $ref: '#/components/headers/XSFTraceId'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ForbiddenError'
        '429':
          description: Too Many Requests
          headers:
            X-SF-Trace-ID:
              $ref: '#/components/headers/XSFTraceId'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/TooManyRequestsError'
        '500':
          description: Internal Server Error
          headers:
            X-SF-Trace-ID:
              $ref: '#/components/headers/XSFTraceId'
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InternalServerError'
  /cardInfo:
    post:
      operationId: postCardInfo
      summary: Request Card Info
      description: |
        Request information provided by the card networks on a Card Range.
        Requires `cardInfo:GetInfo` permission.
      tags:
        - Card Info
      requestBody:
        required: true
        description: A request for information on a certain card range based on a (partial) card number, an encrypted card number, or a processor token key.
        content:
          application/json:
            schema:
              oneOf:
                - $ref: '#/components/schemas/CardInfoRequestByCard'
                - $ref: '#/components/schemas/CardInfoRequestByProcessorToken'
            examples:
              cardNumberMasterCard:
                $ref: '#/components/examples/request-card-info-mastercard'
      responses:
        '200':
          description: Information on the requested Card Range
          content:
            application/json:
              schema:
                oneOf:
                  - $ref: '#/components/schemas/MultiSourceResponse'
                  - $ref: '#/components/schemas/SingleSourceResponse'
              examples:
                mastercard:
                  $ref: '#/components/examples/card-info-response-mastercard'
                visa:
                  $ref: '#/components/examples/card-info-response-visa'
        '400':
          $ref: '#/components/responses/responses-BadRequestError'
        '401':
          $ref: '#/components/responses/responses-UnauthorizedError'
        '403':
          $ref: '#/components/responses/responses-ForbiddenError'
        '404':
          $ref: '#/components/responses/responses-NotFoundError'
        '429':
          $ref: '#/components/responses/responses-TooManyRequestsError'
  /cardInfo/{network}:
    get:
      operationId: getCardInfo
      summary: Request all card info for a card network
      description: |
        Request information provided by the card network on all available Card Ranges.

        Since the response can be very large, this endpoint supports HTTP Compression with the `gzip` format.

        Requires `cardInfo:GetInfo` permission.
      tags:
        - Card Info
      parameters:
        - $ref: '#/components/parameters/bulkCardInfoNetwork'
      responses:
        '200':
          description: Information on all Card Ranges of Card Network
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CardInfoCardNetworkResponse'
              examples:
                mastercard:
                  $ref: '#/components/examples/card-info-card-network-response-mastercard'
                visa:
                  $ref: '#/components/examples/card-info-card-network-response-visa'
        '400':
          $ref: '#/components/responses/responses-BadRequestError'
        '401':
          $ref: '#/components/responses/responses-UnauthorizedError'
        '403':
          $ref: '#/components/responses/responses-ForbiddenError'
        '429':
          $ref: '#/components/responses/responses-TooManyRequestsError'
  /currencyConversionRate/network/{network}/effectiveDate/{effectiveDate}:
    get:
      operationId: getCurrencyRates
      summary: Get a list of currency conversion rates
      description: |

        Get all currency conversion rates for a specific effective date.

        Requires `currencyRate:GetInfo` permission.
      tags:
        - Currency Conversion Rates
      parameters:
        - $ref: '#/components/parameters/network'
        - $ref: '#/components/parameters/effectiveDate'
        - $ref: '#/components/parameters/limit'
        - $ref: '#/components/parameters/openapi_components-parameters-offsetToken'
      responses:
        '200':
          description: A (paged) list of currency rates
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CurrencyRatePage'
              examples:
                visaExample:
                  $ref: '#/components/examples/response-currency-rates-visa'
        '400':
          $ref: '#/components/responses/responses-BadRequestError'
        '401':
          $ref: '#/components/responses/responses-UnauthorizedError'
        '403':
          $ref: '#/components/responses/responses-ForbiddenError'
        '429':
          $ref: '#/components/responses/responses-TooManyRequestsError'
  /processorTokens:
    post:
      operationId: createProcessorToken
      summary: Create Processor Token
      description: |
        This operation safely stores a PAN, and returns a proprietary representation of it in the form of a processorTokenKey.

        Requires the `processorTokens:Create` permission.
      tags:
        - Processor Tokenization
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CreateProcessorTokenRequest'
            example:
              reference: VEQNS4L35E6IU1TN
              cardData:
                number: '1111222233334444'
                expiryMonth: 1
                expiryYear: 2047
                cvc: '123'
                holderName: John Doe
      responses:
        '201':
          description: The created Processor Token entity.
          headers:
            Location:
              description: The URL of the newly created processor token
              schema:
                type: string
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PublicProcessorTokenObject'
              example:
                key: ptk-1e1dA2fgs1YTUhlhyPOp
                agentKey: cgt-1hPdFhmgaBzMS85d4QcG
                last4: '4444'
                status: active
                reference: VEQNS4L35E6IU1TN
                cardInfo:
                  - infoSource: mastercard
                    network: mastercard
                    primaryNetwork: true
                created: '2023-08-14T12:23:43.014Z'
                cvcPresent: true
                version: 1
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                oneOf:
                  - $ref: '#/components/schemas/BadRequestErrorDetails'
              examples:
                BadRequestErrorExample:
                  $ref: '#/components/examples/BadRequestErrorExample'
        '401':
          $ref: '#/components/responses/openapi_components-responses-UnauthorizedError-2'
        '403':
          $ref: '#/components/responses/openapi_components-responses-ForbiddenError'
        '409':
          description: Conflict
          content:
            application/json:
              schema:
                oneOf:
                  - $ref: '#/components/schemas/InvalidProcessorTokenErrorDetails'
              examples:
                BadRequestErrorExample:
                  $ref: '#/components/examples/InvalidProcessorTokenErrorExample'
        '422':
          $ref: '#/components/responses/UnprocessableContentError'
        '429':
          $ref: '#/components/responses/openapi_components-responses-TooManyRequestsError-2'
        '500':
          $ref: '#/components/responses/components-responses-InternalServerError'
        '503':
          $ref: '#/components/responses/ServiceUnavailableError'
    get:
      operationId: getProcessorTokens
      summary: List Processor Tokens
      description: |
        This operation returns a (paged) list of all the stored Processor Tokens for the authenticated Agent.

        Requires `processorTokens:List` permission.
      tags:
        - Processor Tokenization
      parameters:
        - $ref: '#/components/parameters/openapi_components-parameters-offsetToken'
        - $ref: '#/components/parameters/limit'
        - $ref: '#/components/parameters/parameters-reference'
      responses:
        '200':
          description: A (paged) list of Processor Tokens
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ProcessorTokensPage'
        '401':
          $ref: '#/components/responses/openapi_components-responses-UnauthorizedError-2'
        '403':
          $ref: '#/components/responses/openapi_components-responses-ForbiddenError'
        '429':
          $ref: '#/components/responses/openapi_components-responses-TooManyRequestsError-2'
  /processorTokens/{processorTokenKey}:
    get:
      operationId: getProcessorToken
      summary: Get Processor Token
      description: |
        Returns a Processor Token by its key.

        Requires the `processorTokens:Get` permission.
      tags:
        - Processor Tokenization
      parameters:
        - $ref: '#/components/parameters/processorTokenKey'
      responses:
        '200':
          description: Processor token.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PublicProcessorTokenObject'
              example:
                key: ptk-1e1dA2fgs1YTUhlhyPOp
                agentKey: cgt-1hPdFhmgaBzMS85d4QcG
                last4: '4444'
                status: active
                reference: VEQNS4L35E6IU1TN
                cardInfo:
                  - infoSource: mastercard
                    network: mastercard
                    primaryNetwork: true
                created: '2023-08-14T12:23:43.014Z'
                cvcPresent: true
                version: 1
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                oneOf:
                  - $ref: '#/components/schemas/BadRequestErrorDetails'
              examples:
                BadRequestErrorExample:
                  $ref: '#/components/examples/BadRequestErrorExample'
        '404':
          $ref: '#/components/responses/components-responses-NotFoundError'
        '429':
          $ref: '#/components/responses/openapi_components-responses-TooManyRequestsError-2'
        '500':
          $ref: '#/components/responses/components-responses-InternalServerError'
        '503':
          $ref: '#/components/responses/ServiceUnavailableError'
    delete:
      operationId: archiveProcessorToken
      summary: Archive Processor Token
      description: |
        Archives a Processor Token by its key.

        Requires the `processorTokens:Archive` permission.
      tags:
        - Processor Tokenization
      parameters:
        - $ref: '#/components/parameters/processorTokenKey'
      responses:
        '202':
          description: Processor Token archived.
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                oneOf:
                  - $ref: '#/components/schemas/BadRequestErrorDetails'
              examples:
                BadRequestErrorExample:
                  $ref: '#/components/examples/BadRequestErrorExample'
        '404':
          $ref: '#/components/responses/components-responses-NotFoundError'
        '429':
          $ref: '#/components/responses/openapi_components-responses-TooManyRequestsError-2'
        '500':
          $ref: '#/components/responses/components-responses-InternalServerError'
        '503':
          $ref: '#/components/responses/ServiceUnavailableError'
  /processorTokens/{processorTokenKey}/cardData:
    get:
      operationId: getProcessorTokenCardData
      summary: Get Processor Token's Card Data [EXPERIMENTAL]
      description: |
        Returns the card data associated with a Processor Token by its key.

        The client must use their private key to decrypt the data key. Once done, the decrypted data key and the IV can be used to decrypt the card data using AES-256-CBC. See the **[Retrieve Card Data](https://docs.silverflow.com/guides/card-tokenization#tag/Retrieve-Card-Data)** guide for more information.

        Requires the `processorTokens:GetCardData` permission.
      tags:
        - Processor Tokenization
      parameters:
        - $ref: '#/components/parameters/processorTokenKey'
        - $ref: '#/components/parameters/processorTokenPublicKey'
      responses:
        '200':
          description: The card data associated with the Processor Token
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GetCardDataResponse'
              example:
                processorTokenPublicKey: ppk-1e1dAHhgstYTUhlphPzZ
                encryptedCardData: yHNjofET1CnOUg6kQlpbvTSretnZ9yepjhb/KP+Yz1eaNs81Hzl3XmnYARXs9q+8rCQyToT8grTAYLgkAIuRHw+Ee+uiRLTeKUCD/lUeT4DHL9J9hI3D1dOLgnpxF/SSIexeh1jQtVlTU1Codt6Lhw==
                encryptedDataKey: l0GWYje5XA9MvmWzujGwmvU74+XHv/WdKcWF7P0VSF8yvTXG2pa9s/qZq48uB+YmvIP/4jC1O+q7MwvQubtpObUr89/Qj6DjMsvctv4xr7wIpY2NZlV83HlbjI43WeEHjjhanv5lD+vEfqEMfOiN0vTq1E/aMCJHGQ+T3ZFSi/bCesfrnO5DEN/XOIDxZqcx7PormJ0rvHlOl4nrRvoOFNM2iI8Qt8lNyq1uLtPPfEkQhKqm4KiemH8Vtvh9FdtAz56OPxiYxF6nnwoY1xfZDhjx1iLelCQbB5U3BJlROCjaBJw1crnbSNKWrrgKDOsgcCCz8G1RITgaLw1GKzogOg==
                iv: GIIPrVbeh8e3h9XQeRN1QQ==
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                oneOf:
                  - $ref: '#/components/schemas/BadRequestErrorDetails'
              examples:
                BadRequestErrorExample:
                  $ref: '#/components/examples/BadRequestErrorExample'
        '401':
          $ref: '#/components/responses/openapi_components-responses-UnauthorizedError-2'
        '403':
          $ref: '#/components/responses/openapi_components-responses-ForbiddenError'
        '404':
          $ref: '#/components/responses/components-responses-NotFoundError'
        '409':
          description: Conflict
          content:
            application/json:
              schema:
                oneOf:
                  - $ref: '#/components/schemas/InvalidProcessorTokenErrorDetails'
              examples:
                BadRequestErrorExample:
                  $ref: '#/components/examples/InvalidProcessorTokenErrorExample'
        '422':
          $ref: '#/components/responses/UnprocessableContentError'
        '429':
          $ref: '#/components/responses/openapi_components-responses-TooManyRequestsError-2'
        '500':
          $ref: '#/components/responses/components-responses-InternalServerError'
        '503':
          $ref: '#/components/responses/ServiceUnavailableError'
  /pos/charges:
    servers:
      - url: https://devices.eu-west-1.api.silverflow.com/v1
        description: Production environment
    get:
      operationId: listPosCharges
      summary: List Charges [EXPERIMENTAL]
      security:
        - MutualTLS: []
      description: |
        > **Notice:** This endpoint has different server URLs and authorization method than the rest of the API.

        Retrieve charge history for a merchant, optionally filtered by terminal.
      parameters:
        - $ref: '#/components/parameters/parameters-merchantKey'
        - $ref: '#/components/parameters/terminalId'
        - $ref: '#/components/parameters/limit'
        - $ref: '#/components/parameters/components-parameters-offsetToken'
      tags:
        - Retrieve POS Charges
      responses:
        '200':
          description: A list of POS charges
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ChargeListResponse'
              examples:
                listCharges:
                  $ref: '#/components/examples/components-examples-Response'
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/openapi_components-schemas-InvalidInputErrorDetails-2'
        '401':
          $ref: '#/components/responses/openapi_components-responses-UnauthorizedError-3'
        '403':
          $ref: '#/components/responses/openapi_components-responses-ForbiddenError-2'
        '500':
          $ref: '#/components/responses/openapi_components-responses-InternalServerError'
        '503':
          $ref: '#/components/responses/responses-ServiceUnavailableError'
    post:
      operationId: createPosCharge
      summary: Create Charge [EXPERIMENTAL]
      security:
        - MutualTLS: []
      description: |
        > **Notice:** This endpoint has different server URLs and authorization method than the rest of the API.

        Create a new POS charge.
      parameters:
        - $ref: '#/components/parameters/IdempotencyKey'
      tags:
        - Create POS Charges
      requestBody:
        description: Create a new POS charge.
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CreateChargeRequest'
      responses:
        '201':
          description: The created charge
          headers:
            Location:
              description: The URL of the newly created charge
              schema:
                type: string
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CreateChargeResponse'
              examples:
                onlinePin:
                  $ref: '#/components/examples/OnlinePinResponse'
                manualEntry:
                  $ref: '#/components/examples/ManualEntryResponse'
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                oneOf:
                  - $ref: '#/components/schemas/openapi_components-schemas-InvalidInputErrorDetails-2'
                  - $ref: '#/components/schemas/components-schemas-InvalidRequestErrorDetails'
              examples:
                InvalidInputErrorExample:
                  $ref: '#/components/examples/components-examples-InvalidInputErrorExample'
                InvalidRequestErrorExample:
                  $ref: '#/components/examples/InvalidRequestErrorExample'
        '401':
          $ref: '#/components/responses/openapi_components-responses-UnauthorizedError-3'
        '403':
          $ref: '#/components/responses/openapi_components-responses-ForbiddenError-2'
        '409':
          description: Conflict
          content:
            application/json:
              schema:
                oneOf:
                  - $ref: '#/components/schemas/schemas-ReferencedEntityNotFoundErrorDetails'
                  - $ref: '#/components/schemas/schemas-CannotDetermineCardNetworkErrorDetails'
                  - $ref: '#/components/schemas/schemas-IncompatibleCardNetworkForOperation'
                  - $ref: '#/components/schemas/components-schemas-IncompatibleCardNetworkErrorDetails'
                  - $ref: '#/components/schemas/schemas-BlockedMerchantAcceptorErrorDetails'
                  - $ref: '#/components/schemas/schemas-NonMatchingIdempotentRequestErrorDetails'
                  - $ref: '#/components/schemas/schemas-MissingPosAddressErrorDetails'
                  - $ref: '#/components/schemas/schemas-UnexpectedMessageSystem'
                  - $ref: '#/components/schemas/schemas-IncompatibleCardErrorDetails'
                  - $ref: '#/components/schemas/schemas-IdempotentRequestIsStillBeingProcessedErrorDetails'
                  - $ref: '#/components/schemas/schemas-UnexpectedCurrencyErrorDetails'
              examples:
                ReferencedEntityNotFoundErrorExample:
                  $ref: '#/components/examples/components-examples-ReferencedEntityNotFoundErrorExample'
                CannotDetermineCardNetworkErrorExample:
                  $ref: '#/components/examples/CannotDetermineCardNetworkErrorExample'
                IncompatibleCardNetworkForOperationErrorExample:
                  $ref: '#/components/examples/IncompatibleCardNetworkForOperationExample'
                IncompatibleCardNetworkErrorExample:
                  $ref: '#/components/examples/examples-IncompatibleCardNetworkErrorExample'
                BlockedMerchantAcceptorErrorExample:
                  $ref: '#/components/examples/BlockedMerchantAcceptorErrorExample'
                BlockedBinErrorExample:
                  $ref: '#/components/examples/BlockedBinErrorExample'
                NonMatchingIdempotentRequestErrorExample:
                  $ref: '#/components/examples/NonMatchingIdempotentRequestErrorExample'
                MissingPosAddressProblemExample:
                  $ref: '#/components/examples/MissingPosAddressErrorExample'
                UnexpectedMessageSystemExample:
                  $ref: '#/components/examples/UnexpectedMessageSystemExample'
                IncompatibleCardErrorDetails:
                  $ref: '#/components/examples/IncompatibleCardErrorExample'
                IdempotentRequestIsStillBeingProcessedErrorExample:
                  $ref: '#/components/examples/IdempotentRequestIsStillBeingProcessedExample'
                UnexpectedCurrencyErrorDetails:
                  $ref: '#/components/examples/UnexpectedCurrencyErrorExample'
        '429':
          $ref: '#/components/responses/components-responses-TooManyRequestsError'
        '500':
          $ref: '#/components/responses/openapi_components-responses-InternalServerError'
  /pos/charges/{chargeKey}/cancel:
    servers:
      - url: https://devices.eu-west-1.api.silverflow.com/v1
        description: Production environment
    post:
      operationId: cancelPosCharge
      summary: Cancel Charge [EXPERIMENTAL]
      security:
        - MutualTLS: []
      description: |
        > **Notice:** This endpoint has different server URLs and authorization method than the rest of the API.
        Cancel a previously created POS charge by reversing its authorization.

        The cancel operation:

        1. Attempts to cancel the clearing of the referenced charge
        2. If clearing cannot be canceled (already submitted), returns HTTP 409
        3. If clearing is canceled successfully, performs a reversal of the authorization

        This operation is only possible for charges with `clearingMode` set to `auto`.
      parameters:
        - $ref: '#/components/parameters/IdempotencyKey'
        - $ref: '#/components/parameters/chargeKey'
      tags:
        - POS Charge Actions
      requestBody:
        description: Optional cancellation metadata
        required: false
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CancelRequest'
            examples:
              cancel:
                $ref: '#/components/examples/components-examples-Request'
      responses:
        '201':
          description: The reversal action representing the cancellation
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/schemas-ReversalAction'
              examples:
                cancel:
                  $ref: '#/components/examples/cancel_Response'
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                oneOf:
                  - $ref: '#/components/schemas/openapi_components-schemas-InvalidInputErrorDetails-2'
                  - $ref: '#/components/schemas/components-schemas-InvalidRequestErrorDetails'
              examples:
                InvalidInputErrorExample:
                  $ref: '#/components/examples/components-examples-InvalidInputErrorExample'
                InvalidRequestErrorExample:
                  $ref: '#/components/examples/InvalidRequestErrorExample'
        '401':
          $ref: '#/components/responses/openapi_components-responses-UnauthorizedError-3'
        '403':
          $ref: '#/components/responses/openapi_components-responses-ForbiddenError-2'
        '404':
          description: Charge not found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/schemas-ReferencedEntityNotFoundErrorDetails'
              examples:
                EntityNotFoundExample:
                  $ref: '#/components/examples/components-examples-ReferencedEntityNotFoundErrorExample'
        '409':
          description: |
            Conflict - charge already canceled, clearing already submitted, or other conflict
          content:
            application/json:
              schema:
                oneOf:
                  - $ref: '#/components/schemas/schemas-ClearingAlreadySubmittedErrorDetails'
                  - $ref: '#/components/schemas/schemas-UnexpectedClearingStatusErrorDetails'
                  - $ref: '#/components/schemas/schemas-NonMatchingIdempotentRequestErrorDetails'
                  - $ref: '#/components/schemas/schemas-IdempotentRequestIsStillBeingProcessedErrorDetails'
              examples:
                ClearingAlreadySubmittedExample:
                  $ref: '#/components/examples/ClearingAlreadySubmittedExample'
                UnexpectedClearingStatusExample:
                  $ref: '#/components/examples/UnexpectedClearingStatusExample'
                NonMatchingIdempotentRequestExample:
                  $ref: '#/components/examples/NonMatchingIdempotentRequestErrorExample'
                IdempotentRequestIsStillBeingProcessedExample:
                  $ref: '#/components/examples/IdempotentRequestIsStillBeingProcessedExample'
        '429':
          $ref: '#/components/responses/components-responses-TooManyRequestsError'
        '500':
          $ref: '#/components/responses/openapi_components-responses-InternalServerError'
  /pos/charges/{chargeKey}/refund:
    servers:
      - url: https://devices.eu-west-1.api.silverflow.com/v1
        description: Production environment
    post:
      operationId: refundPosCharge
      summary: Refund Charge [EXPERIMENTAL]
      security:
        - MutualTLS: []
      tags:
        - POS Charge Actions
      description: |
        > **Notice:** This endpoint has different server URLs and authorization method than the rest of the API.

        Refunds a POS charge.
      parameters:
        - $ref: '#/components/parameters/IdempotencyKey'
        - $ref: '#/components/parameters/chargeKey'
      requestBody:
        description: Optional refund metadata
        required: false
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/RefundRequest'
            examples:
              refund:
                $ref: '#/components/examples/refund_Request'
      responses:
        '201':
          description: Refund action created (either reversal or refund)
          content:
            application/json:
              schema:
                oneOf:
                  - $ref: '#/components/schemas/schemas-ReversalAction'
                  - $ref: '#/components/schemas/schemas-RefundAction'
              examples:
                refund:
                  $ref: '#/components/examples/refund_Response'
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                oneOf:
                  - $ref: '#/components/schemas/openapi_components-schemas-InvalidInputErrorDetails-2'
                  - $ref: '#/components/schemas/components-schemas-InvalidRequestErrorDetails'
              examples:
                InvalidInputErrorExample:
                  $ref: '#/components/examples/components-examples-InvalidInputErrorExample'
                InvalidRequestErrorExample:
                  $ref: '#/components/examples/InvalidRequestErrorExample'
        '401':
          $ref: '#/components/responses/openapi_components-responses-UnauthorizedError-3'
        '403':
          $ref: '#/components/responses/openapi_components-responses-ForbiddenError-2'
        '404':
          description: Charge not found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/schemas-ReferencedEntityNotFoundErrorDetails'
              examples:
                EntityNotFoundExample:
                  $ref: '#/components/examples/components-examples-ReferencedEntityNotFoundErrorExample'
        '409':
          description: |
            Conflict - charge already refunded, already canceled, or other conflict
          content:
            application/json:
              schema:
                oneOf:
                  - $ref: '#/components/schemas/AlreadyRefundedErrorDetails'
                  - $ref: '#/components/schemas/AlreadyCanceledErrorDetails'
                  - $ref: '#/components/schemas/schemas-NonMatchingIdempotentRequestErrorDetails'
                  - $ref: '#/components/schemas/schemas-IdempotentRequestIsStillBeingProcessedErrorDetails'
              examples:
                NonMatchingIdempotentRequestExample:
                  $ref: '#/components/examples/NonMatchingIdempotentRequestErrorExample'
                IdempotentRequestIsStillBeingProcessedExample:
                  $ref: '#/components/examples/IdempotentRequestIsStillBeingProcessedExample'
        '429':
          $ref: '#/components/responses/components-responses-TooManyRequestsError'
        '500':
          $ref: '#/components/responses/openapi_components-responses-InternalServerError'
  /disputes:
    get:
      operationId: getDisputes
      summary: List Disputes
      description: |
        This operation returns a (paged) list of all Disputes for the authenticated Agent.

        Requires `disputes:List` permission.
      tags:
        - Disputes
      parameters:
        - $ref: '#/components/parameters/disputesSort'
        - $ref: '#/components/parameters/amountFrom'
        - $ref: '#/components/parameters/amountTo'
        - $ref: '#/components/parameters/disputeDateFrom'
        - $ref: '#/components/parameters/disputeDateTo'
        - $ref: '#/components/parameters/actionDueDateFrom'
        - $ref: '#/components/parameters/actionDueDateTo'
        - $ref: '#/components/parameters/disputeStatuses'
        - $ref: '#/components/parameters/disputeStages'
        - $ref: '#/components/parameters/networkQps'
        - $ref: '#/components/parameters/parameters-merchantKeyQs'
        - $ref: '#/components/parameters/acceptorKeyQp'
        - $ref: '#/components/parameters/searchKeyword'
        - $ref: '#/components/parameters/closed'
        - $ref: '#/components/parameters/actionRequired'
        - $ref: '#/components/parameters/limit'
        - $ref: '#/components/parameters/components-parameters-offsetToken'
      responses:
        '200':
          description: A (paged) list of Disputes
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/DisputesPage'
        '401':
          $ref: '#/components/responses/responses-UnauthorizedError'
        '403':
          $ref: '#/components/responses/responses-ForbiddenError'
        '429':
          $ref: '#/components/responses/openapi_components-responses-TooManyRequestsError-3'
  /disputes/{disputeKey}:
    get:
      operationId: getDispute
      summary: Get Dispute
      description: |
        This operations returns the Dispute identified by the specified key.

        Requires `disputes:Get` permission.
      tags:
        - Disputes
      parameters:
        - $ref: '#/components/parameters/disputeKey'
      responses:
        '200':
          description: The referenced Dispute
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Dispute'
              examples:
                received-dispute:
                  $ref: '#/components/examples/visa-dispute-received'
                dispute-liability-accepted:
                  $ref: '#/components/examples/dispute-liability-accepted'
                dispute-expires:
                  $ref: '#/components/examples/dispute-expires'
                dispute-won:
                  $ref: '#/components/examples/dispute-closedWon'
                dispute-awaiting-response:
                  $ref: '#/components/examples/dispute-awaiting-response'
        '401':
          $ref: '#/components/responses/responses-UnauthorizedError'
        '403':
          $ref: '#/components/responses/responses-ForbiddenError'
        '404':
          $ref: '#/components/responses/responses-NotFoundError'
        '429':
          $ref: '#/components/responses/openapi_components-responses-TooManyRequestsError-3'
  /disputes/{disputeKey}/documents:
    get:
      operationId: getDisputeDocumentsMetadata
      summary: List Dispute Documents
      description: |
        This operation returns a (paged) list of (active) Documents (metadata) for a Dispute.

        Requires `disputes:ListDocuments` permission.
      tags:
        - Disputes
      parameters:
        - $ref: '#/components/parameters/disputeKey'
        - $ref: '#/components/parameters/parameters-sortOrder'
        - $ref: '#/components/parameters/limit'
        - $ref: '#/components/parameters/components-parameters-offsetToken'
        - $ref: '#/components/parameters/owner'
        - $ref: '#/components/parameters/status'
      responses:
        '200':
          description: A (paged) list of Documents (metadata)
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/DisputeDocumentsPage'
        '401':
          $ref: '#/components/responses/responses-UnauthorizedError'
        '403':
          $ref: '#/components/responses/responses-ForbiddenError'
        '404':
          $ref: '#/components/responses/responses-NotFoundError'
        '429':
          $ref: '#/components/responses/openapi_components-responses-TooManyRequestsError-3'
    post:
      operationId: addDisputeDocumentsMetadata
      summary: Add Dispute Document
      description: |
        This operations adds a new Document (metadata) for the associated Dispute.

        The maximum file size is **10MB** and the maximum combined size of all documents uploaded for a Dispute is **14.5MB**.

        Requires `disputes:AddDocument` permission.
      tags:
        - Disputes
      parameters:
        - $ref: '#/components/parameters/disputeKey'
      requestBody:
        description: |
          The request body allows to set metadata information for the Dispute document.
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/DocumentCreate'
            examples:
              create-dispute-document:
                $ref: '#/components/examples/create-dispute-document'
      responses:
        '200':
          description: A document metadata object.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/DisputeDocumentWithoutFile'
        '401':
          $ref: '#/components/responses/responses-UnauthorizedError'
        '403':
          $ref: '#/components/responses/responses-ForbiddenError'
        '404':
          $ref: '#/components/responses/responses-NotFoundError'
        '429':
          $ref: '#/components/responses/openapi_components-responses-TooManyRequestsError-3'
  /disputes/{disputeKey}/accept:
    post:
      operationId: acceptDispute
      summary: Accept Dispute
      description: |
        This operation is to accept liability of a dispute.

        Requires `disputes:Accept` permission.
      tags:
        - Disputes
      parameters:
        - $ref: '#/components/parameters/disputeKey'
        - $ref: '#/components/parameters/ifMatch'
      responses:
        '200':
          description: The accepted dispute
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Dispute'
        '400':
          $ref: '#/components/responses/responses-BadRequestError'
        '401':
          $ref: '#/components/responses/responses-UnauthorizedError'
        '403':
          $ref: '#/components/responses/responses-ForbiddenError'
        '404':
          $ref: '#/components/responses/responses-NotFoundError'
        '409':
          $ref: '#/components/responses/responses-ConflictError'
        '412':
          $ref: '#/components/responses/responses-PreconditionFailedError'
        '429':
          $ref: '#/components/responses/openapi_components-responses-TooManyRequestsError-3'
  /disputes/{disputeKey}/submitEvidence:
    post:
      operationId: submitEvidence
      summary: Submit Evidence
      description: |
        Evidence submission is required to defend a Dispute. Evidence can be submitted if the Dispute is in `received`, `evidenceRejected` or `defenseFailed` status.

        Requires `disputes:submitEvidence` permission.
      tags:
        - Disputes
      parameters:
        - $ref: '#/components/parameters/disputeKey'
        - $ref: '#/components/parameters/ifMatch'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/SubmitEvidence'
      responses:
        '200':
          description: The dispute
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Dispute'
        '400':
          $ref: '#/components/responses/responses-BadRequestError'
        '401':
          $ref: '#/components/responses/responses-UnauthorizedError'
        '403':
          $ref: '#/components/responses/responses-ForbiddenError'
        '404':
          $ref: '#/components/responses/responses-NotFoundError'
        '409':
          $ref: '#/components/responses/responses-ConflictError'
        '412':
          $ref: '#/components/responses/responses-PreconditionFailedError'
        '429':
          $ref: '#/components/responses/openapi_components-responses-TooManyRequestsError-3'
  /disputes/{disputeKey}/rejectEvidence:
    post:
      operationId: rejectEvidence
      summary: Reject Evidence
      description: |
        Evidence rejection will move the Dispute to `evidenceRejected` status to allow the Merchant or Acquirer to update their defense.

        Requires `disputes:rejectEvidence` permission.
      tags:
        - Disputes
      parameters:
        - $ref: '#/components/parameters/disputeKey'
        - $ref: '#/components/parameters/ifMatch'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/RejectDispute'
      responses:
        '200':
          description: The dispute
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Dispute'
        '400':
          $ref: '#/components/responses/responses-BadRequestError'
        '401':
          $ref: '#/components/responses/responses-UnauthorizedError'
        '403':
          $ref: '#/components/responses/responses-ForbiddenError'
        '404':
          $ref: '#/components/responses/responses-NotFoundError'
        '409':
          $ref: '#/components/responses/responses-ConflictError'
        '412':
          $ref: '#/components/responses/responses-PreconditionFailedError'
        '429':
          $ref: '#/components/responses/openapi_components-responses-TooManyRequestsError-3'
  /disputes/{disputeKey}/defend:
    post:
      operationId: defendDispute
      summary: Defend Dispute
      description: |
        Defending a Dispute will publish all documents that have been uploaded. Disputes in `received`, `evidenceSubmitted` or `defenseFailed` status can be defended, `actionRequired` flag will be true for these Disputes.
        It is possible to submit evidence while defending a Dispute. In that case the required information needs to be send in the body.

        Defending a Visa Fraud (10.x) or Authorization (11.x) Dispute in the `preArbitrationResponse` stage escalates it to arbitration. `elaboration` is required and is sent to Visa as the reason for filing the arbitration, and at least one document uploaded in this stage is required.

        Requires `disputes:Defend` permission.
      tags:
        - Disputes
      parameters:
        - $ref: '#/components/parameters/disputeKey'
        - $ref: '#/components/parameters/ifMatch'
      requestBody:
        required: false
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/DisputeDefense'
      responses:
        '200':
          description: The defended dispute
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Dispute'
        '400':
          $ref: '#/components/responses/responses-BadRequestError'
        '401':
          $ref: '#/components/responses/responses-UnauthorizedError'
        '403':
          $ref: '#/components/responses/responses-ForbiddenError'
        '404':
          $ref: '#/components/responses/responses-NotFoundError'
        '409':
          $ref: '#/components/responses/responses-ConflictError'
        '412':
          $ref: '#/components/responses/responses-PreconditionFailedError'
        '429':
          $ref: '#/components/responses/openapi_components-responses-TooManyRequestsError-3'
  /disputes/{disputeKey}/eventHistory:
    get:
      operationId: getDisputeEventHistory
      summary: List Dispute History Events
      description: |
        This operation returns a (paged) Dispute History Events for a Dispute.

        Requires `disputes:ListHistory` permission.
      tags:
        - Disputes
      parameters:
        - $ref: '#/components/parameters/disputeKey'
        - $ref: '#/components/parameters/parameters-sortOrder'
        - $ref: '#/components/parameters/limit'
        - $ref: '#/components/parameters/components-parameters-offsetToken'
        - $ref: '#/components/parameters/initiator'
        - name: status
          description: The status of a Dispute Document. [Removal date is 06.12.2026]
          in: query
          deprecated: true
          required: false
          schema:
            type: string
            enum:
              - pending
              - active
              - archived
      responses:
        '200':
          description: A (paged) list of Dispute History Events
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/DisputeEventHistoryPage'
        '401':
          $ref: '#/components/responses/responses-UnauthorizedError'
        '403':
          $ref: '#/components/responses/responses-ForbiddenError'
        '404':
          $ref: '#/components/responses/responses-NotFoundError'
        '429':
          $ref: '#/components/responses/openapi_components-responses-TooManyRequestsError-3'
  /disputes/eventHistory/{eventHistoryKey}:
    get:
      operationId: getEventHistory
      summary: Get Dispute History Event
      description: |
        Returns the Dispute History Event identified by the specified key.

        Requires `disputes:GetHistory` permission.
      tags:
        - Disputes
      parameters:
        - $ref: '#/components/parameters/eventHistoryKey'
      responses:
        '200':
          description: The referenced Dispute History Event
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/DisputeEventHistory'
              examples:
                defenseSuccessfullyProcessedMastercard:
                  $ref: '#/components/examples/mc-defense-successfully-processed'
                defenseSuccessfullyProcessedVisa:
                  $ref: '#/components/examples/visa-defense-successfully-processed'
                disputeExpirerAcquirerSide:
                  $ref: '#/components/examples/dispute-expires-acquirer-side'
                disputeWon:
                  $ref: '#/components/examples/dispute-won'
                liabilityAccepted:
                  $ref: '#/components/examples/liability-accepted'
                mastercardChargebackReceived:
                  $ref: '#/components/examples/mc-chargeback-received'
                mastercardCollaborationRequestReceived:
                  $ref: '#/components/examples/collaboration-request-received'
                mastercardPrearbitrationReceived:
                  $ref: '#/components/examples/mc-prearbitration-received'
                visaChargebackReceived:
                  $ref: '#/components/examples/visa-chargeback-received'
                visaPrearbitrationReceived:
                  $ref: '#/components/examples/visa-prearbitration-received'
                visaPrearbitrationResponseReceived:
                  $ref: '#/components/examples/prearbitration-response-received'
        '401':
          $ref: '#/components/responses/responses-UnauthorizedError'
        '403':
          $ref: '#/components/responses/responses-ForbiddenError'
        '404':
          $ref: '#/components/responses/responses-NotFoundError'
        '429':
          $ref: '#/components/responses/openapi_components-responses-TooManyRequestsError-3'
  /documents/{documentKey}:
    get:
      operationId: getDocument
      summary: Get Document Metadata
      description: |
        This operations returns the Document metadata identified by the specified key.

        Requires `disputes:GetDocument` or `documents:Get` permissions.
      tags:
        - Documents
      parameters:
        - $ref: '#/components/parameters/documentKey'
      responses:
        '200':
          description: A Document metadata object.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Document'
        '401':
          $ref: '#/components/responses/responses-UnauthorizedError'
        '403':
          $ref: '#/components/responses/responses-ForbiddenError'
        '404':
          $ref: '#/components/responses/responses-NotFoundError'
        '429':
          $ref: '#/components/responses/openapi_components-responses-TooManyRequestsError-3'
    delete:
      operationId: archiveDocument
      summary: Archive Document
      description: |
        This operation archives a Document.

        Requires `disputes:ArchiveDocument` or `documents:Archive` permission.
      tags:
        - Documents
      parameters:
        - $ref: '#/components/parameters/documentKey'
        - $ref: '#/components/parameters/ifMatch'
      responses:
        '204':
          description: Document deleted successfully
        '401':
          $ref: '#/components/responses/responses-UnauthorizedError'
        '403':
          $ref: '#/components/responses/responses-ForbiddenError'
        '404':
          $ref: '#/components/responses/responses-NotFoundError'
        '412':
          $ref: '#/components/responses/responses-PreconditionFailedError'
        '429':
          $ref: '#/components/responses/openapi_components-responses-TooManyRequestsError-3'
  /documents/{documentKey}/file:
    get:
      operationId: downloadDocumentFile
      summary: Download Document File
      description: |
        This operation downloads the file for the specified key.

        Requires `disputes:DownloadFile` or `documents:Download` permission.
      tags:
        - Documents
      parameters:
        - $ref: '#/components/parameters/documentKey'
      responses:
        '200':
          description: The content of the file.
        '401':
          $ref: '#/components/responses/responses-UnauthorizedError'
        '403':
          $ref: '#/components/responses/responses-ForbiddenError'
        '404':
          $ref: '#/components/responses/responses-NotFoundError'
        '429':
          $ref: '#/components/responses/openapi_components-responses-TooManyRequestsError-3'
    put:
      operationId: uploadDocumentFile
      summary: Upload Document File
      description: |
        This operation uploads a file. A Document with matching content type and content length must have been created prior to that call. See [Add Dispute Document](#operation/addDisputeDocumentsMetadata).

        The maximum file size is **10MB** and the maximum combined size of all documents uploaded for a Dispute is **14.5MB**.

        Requires `disputes:UploadFile` or `documents:Upload` permission.
      tags:
        - Documents
      parameters:
        - $ref: '#/components/parameters/documentKey'
      requestBody:
        description: |
          The content of the file to upload.
        required: true
        content:
          image/jpeg:
            schema:
              type: string
              format: binary
          application/pdf:
            schema:
              type: string
              format: binary
          image/tiff:
            schema:
              type: string
              format: binary
      responses:
        '204':
          description: (No-Content) File has been uploaded successfully.
        '401':
          $ref: '#/components/responses/responses-UnauthorizedError'
        '403':
          $ref: '#/components/responses/responses-ForbiddenError'
        '404':
          $ref: '#/components/responses/responses-NotFoundError'
        '409':
          $ref: '#/components/responses/responses-ConflictError'
        '411':
          $ref: '#/components/responses/LengthRequiredError'
        '413':
          $ref: '#/components/responses/PayloadTooLargeError'
        '415':
          $ref: '#/components/responses/UnsupportedMediaTypeError'
        '429':
          $ref: '#/components/responses/openapi_components-responses-TooManyRequestsError-3'
  /fraudNotifications/{fraudNotificationKey}:
    get:
      operationId: getFraudNotification
      summary: Get Fraud Notification
      description: |
        Returns the Fraud Notification identified by the specified key.

        Requires `fraudNotifications:Get` permission.
      tags:
        - Fraud Notifications
      parameters:
        - $ref: '#/components/parameters/fraudNotificationKey'
      responses:
        '200':
          description: The referenced Fraud Notification
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/FraudNotification'
        '401':
          $ref: '#/components/responses/responses-UnauthorizedError'
        '403':
          $ref: '#/components/responses/responses-ForbiddenError'
        '404':
          $ref: '#/components/responses/responses-NotFoundError'
        '429':
          $ref: '#/components/responses/openapi_components-responses-TooManyRequestsError-3'
  /fraudNotifications:
    get:
      operationId: getFraudNotifications
      summary: List Fraud Notifications
      description: |
        This operation returns a (paged) list of all Fraud Notifications for the authenticated Agent.

        Requires `fraudNotifications:List` permission.
      tags:
        - Fraud Notifications
      parameters:
        - $ref: '#/components/parameters/parameters-merchantKeyQs'
        - $ref: '#/components/parameters/limit'
        - $ref: '#/components/parameters/components-parameters-offsetToken'
        - $ref: '#/components/parameters/parameters-sortOrder'
        - $ref: '#/components/parameters/components-parameters-from'
        - $ref: '#/components/parameters/components-parameters-to'
      responses:
        '200':
          description: A (paged) list of Fraud Notifications
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/FraudNotificationsPage'
        '401':
          $ref: '#/components/responses/responses-UnauthorizedError'
        '403':
          $ref: '#/components/responses/responses-ForbiddenError'
        '429':
          $ref: '#/components/responses/openapi_components-responses-TooManyRequestsError-3'
  /eventSubscriptions:
    get:
      operationId: getEventSubscriptions
      summary: List Event Subscriptions
      description: |
        This operation returns a paged list of all Event Subscriptions for the authenticated Agent.

        Requires `eventSubscriptions:List` permission.
      tags:
        - Event Subscriptions
      parameters:
        - $ref: '#/components/parameters/sortOrder'
        - $ref: '#/components/parameters/limit'
        - $ref: '#/components/parameters/offsetToken'
      responses:
        '200':
          description: A paged list of Event Subscriptions
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/EventSubscriptionsPage'
        '400':
          $ref: '#/components/responses/BadRequestError'
        '401':
          $ref: '#/components/responses/UnauthorizedError'
        '403':
          $ref: '#/components/responses/ForbiddenError'
        '429':
          $ref: '#/components/responses/TooManyRequestsError'
    post:
      operationId: createEventSubscription
      summary: Create Event Subscription
      description: |
        This operation creates a new Event Subscription for the given event source.
        When the subscription is created successfully, a test event will be sent to the `targetUrl`.

        Requires `eventSubscriptions:Create` permission.
      tags:
        - Event Subscriptions
      requestBody:
        description: |
          The request body allows to set certain values on this Event Subscription.
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/EventSubscriptionCreate'
            examples:
              disputesSubs:
                $ref: '#/components/examples/create-event-subscription-dispute-events'
      responses:
        '201':
          description: The created Event Subscription
          headers:
            Location:
              description: The URL of the newly created Event Subscription
              schema:
                type: string
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/EventSubscription'
        '400':
          $ref: '#/components/responses/BadRequestError'
        '401':
          $ref: '#/components/responses/UnauthorizedError'
        '403':
          $ref: '#/components/responses/ForbiddenError'
        '429':
          $ref: '#/components/responses/TooManyRequestsError'
  /eventSubscriptions/{eventSubscriptionKey}:
    get:
      operationId: getSubscription
      summary: Get Event Subscription
      description: |
        This operation returns the referenced Event Subscription.

        Requires `eventSubscriptions:Get` permission.
      tags:
        - Event Subscriptions
      parameters:
        - $ref: '#/components/parameters/eventSubscriptionKey'
      responses:
        '200':
          description: The updated Event Subscription version
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/EventSubscription'
        '400':
          $ref: '#/components/responses/BadRequestError'
        '401':
          $ref: '#/components/responses/UnauthorizedError'
        '403':
          $ref: '#/components/responses/ForbiddenError'
        '404':
          $ref: '#/components/responses/NotFoundError'
        '412':
          $ref: '#/components/responses/PreconditionFailedError'
        '429':
          $ref: '#/components/responses/TooManyRequestsError'
    delete:
      operationId: deleteEventSubscription
      summary: Archive Event Subscription
      description: |
        This operation archives the specified Event Subscription.
        When the subscription is deleted successfully, a test event will be sent to the `targetUrl`.

        Requires `eventSubscriptions:Archive` permission.
      tags:
        - Event Subscriptions
      parameters:
        - $ref: '#/components/parameters/eventSubscriptionKey'
      responses:
        '204':
          description: Event Subscription deleted successfully
        '401':
          $ref: '#/components/responses/UnauthorizedError'
        '403':
          $ref: '#/components/responses/ForbiddenError'
        '404':
          $ref: '#/components/responses/NotFoundError'
        '412':
          $ref: '#/components/responses/PreconditionFailedError'
        '429':
          $ref: '#/components/responses/TooManyRequestsError'
    patch:
      operationId: updateEventSubscription
      summary: Update Event Subscription
      description: |
        When the subscription is created successfully, a test event will be sent to the `targetUrl`.

        Requires `eventSubscriptions:Update` permission.
      tags:
        - Event Subscriptions
      parameters:
        - $ref: '#/components/parameters/eventSubscriptionKey'
      requestBody:
        required: true
        content:
          application/merge-patch+json:
            schema:
              $ref: '#/components/schemas/EventSubscriptionMergeUpdate'
      responses:
        '200':
          description: The updated Event Subscription version
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/EventSubscription'
        '400':
          $ref: '#/components/responses/BadRequestError'
        '401':
          $ref: '#/components/responses/UnauthorizedError'
        '403':
          $ref: '#/components/responses/ForbiddenError'
        '404':
          $ref: '#/components/responses/NotFoundError'
        '412':
          $ref: '#/components/responses/PreconditionFailedError'
        '429':
          $ref: '#/components/responses/TooManyRequestsError'
  /fees/interchange/estimate:
    post:
      operationId: estimateInterchangeFee
      summary: Estimate interchange fee
      description: |-
        Obtain an estimate for the interchange fee of a future transaction.

        Requires `fees:Interchange` permission.
        <!-- 
        The resulting estimate will be inaccurate due to any of the following sources:
        * Graduated products
        * Authorization fallbacks
        * Foreign exchange rate dates

        ### Interchange product 
        The selected interchange program is surfaced in the API response in the `designator` field which is not scheme agnostic and will return different sub-fields for Visa `feeDescriptor` and Mastercard `ird`. More information on the fee programs can be found in the interchange manuals of the respective scheme. 

        ### Fee components and amount
        The API endpoint will return the total interchange fee amount in the `amount` field and this information should be sufficient for interchange fee estimation.

        All individual fee components will  be returned in a `segments` structure which contains the elements used in the calculation of the total amount. This could consist of a fixed component as well as a variable component. The variable component might be capped. 

        * `fixed` - Fixed component of the interchange fee in minor units
        * `basisPoints` - Variable component of the interchange fee in basis points (0.01%)
        * `max` - Maximum fee amount in minor units, fee capped at this amount also if transaction amount is higher 
        * `min` - Minimum fee amount in minor units, fee will not get lower also if transaction amount is lower

        It is advised to use the `amount` field where all of this logic has already been applied. These elements are returned in order to give a complete picture of the interchange fee inner workings and allows for reconstruction of the interchange fee.

        ### Currency conversion
        The fee components are not necessarily in the same currency as the transaction currency but the fee service takes care of this conversion to simplify the usage of this endpoint. The used currency conversion rates are sourced from the card scheme rate tables which are published and updated on a daily basis. The version of the used rate table file is returned in `feeDate`.

        The `amount` is always in the transaction currency and the conversion rates used are listed in the `rates` structure containing all necessary elements to reconstruct the conversion operation. -->
      tags:
        - Fees
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/InterchangeFeeEstimateRequest'
            examples:
              visaRequest:
                $ref: '#/components/examples/fee-request-visa'
      responses:
        '200':
          description: Interchange Fee estimate
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/InterchangeFeeEstimateResponse'
              examples:
                response1:
                  $ref: '#/components/examples/fees-interchange-estimate-response'
        '400':
          $ref: '#/components/responses/responses-BadRequestError'
        '401':
          $ref: '#/components/responses/responses-UnauthorizedError'
        '403':
          $ref: '#/components/responses/responses-ForbiddenError'
        '404':
          $ref: '#/components/responses/responses-NotFoundError'
        '429':
          $ref: '#/components/responses/responses-TooManyRequestsError'
  /fees/scheme/estimate:
    post:
      operationId: getSchemeFeeEstimation
      summary: Estimate scheme fee [EXPERIMENTAL]
      description: |-
        **This endpoint is still under development; it currently has a limited library of scheme fees, and will not provide fee estimates for all supported card networks.**

        This API endpoint will perform a scheme fee estimation, returning a list of predicted scheme fees when passing some parameters similar to a charge.
        <!-- These scheme fees can be either a `fixed` or `basisPoints` scheme fee, and contain a calculated `amount` based on the input amount and the scheme fee amount.

        There is no currency conversion applied; the amounts of these individual scheme fees will always be denominated in the currency of the scheme fee itself. -->
      tags:
        - Fees
      requestBody:
        description: |
          The POST body needs to have all the necessary information required to evaluate all scheme fees that apply.
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/SchemeFeeRequest'
            example:
              cardNumber: '4200350000000801'
              amount:
                value: 3000
                currency: EUR
              merchantAcceptorKey: mac-1JRadf2ffdfrdPMf2XrS2
              chargeType:
                intent: purchase
                cardEntry: e-commerce
                order: checkout
              threeDsAuthentication: none
      responses:
        '200':
          description: Scheme fee estimation response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PublicSchemeFeeEstimate'
              examples:
                tieredFee:
                  $ref: '#/components/examples/tiered-fee'
                nonTieredFee:
                  $ref: '#/components/examples/non-tiered-fee'
        '400':
          description: Card network mismatch
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CardNetworkMismatchErrorDetails'
        '404':
          description: Not found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/NotFoundErrorDetails'
  /merchants:
    get:
      operationId: getMerchants
      summary: List Merchants
      description: |
        This operation returns a (paged) list of all Merchants for the authenticated Agent.

        Requires `merchants:List` permission.
      tags:
        - Merchants
      parameters:
        - $ref: '#/components/parameters/sortOrder'
        - $ref: '#/components/parameters/limit'
        - $ref: '#/components/parameters/offsetToken'
        - $ref: '#/components/parameters/merchantReference'
      responses:
        '200':
          description: A (paged) list of Merchants
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/MerchantsPage'
        '400':
          $ref: '#/components/responses/BadRequestError'
        '401':
          $ref: '#/components/responses/UnauthorizedError'
        '403':
          $ref: '#/components/responses/ForbiddenError'
        '404':
          $ref: '#/components/responses/NotFoundError'
        '429':
          $ref: '#/components/responses/TooManyRequestsError'
    post:
      operationId: createMerchant
      summary: Create Merchant
      description: |
        This operation creates a new Merchant.

        Requires `merchants:Create` permission.
      tags:
        - Merchants
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/MerchantCreate'
            examples:
              simpleMerchant:
                $ref: '#/components/examples/create-merchant-simple'
      responses:
        '201':
          description: The created Merchant
          headers:
            Location:
              description: The URL of the newly created Merchant
              schema:
                type: string
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/MerchantWithAcceptors'
        '400':
          $ref: '#/components/responses/BadRequestError'
        '401':
          $ref: '#/components/responses/UnauthorizedError'
        '403':
          $ref: '#/components/responses/ForbiddenError'
        '409':
          $ref: '#/components/responses/ConflictError'
        '429':
          $ref: '#/components/responses/TooManyRequestsError'
  /merchants/{merchantKey}:
    get:
      operationId: getMerchant
      summary: Get Merchant
      description: |
        Requires `merchants:Get` permission.
      tags:
        - Merchants
      parameters:
        - $ref: '#/components/parameters/merchantKey'
      responses:
        '200':
          description: The referenced Merchant
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Merchant'
        '400':
          $ref: '#/components/responses/BadRequestError'
        '401':
          $ref: '#/components/responses/UnauthorizedError'
        '403':
          $ref: '#/components/responses/ForbiddenError'
        '404':
          $ref: '#/components/responses/NotFoundError'
        '429':
          $ref: '#/components/responses/TooManyRequestsError'
    patch:
      operationId: updateMerchant
      summary: Update Merchant
      description: |
        Requires `merchants:Update` permission.
      tags:
        - Merchants
      parameters:
        - $ref: '#/components/parameters/merchantKey'
        - $ref: '#/components/parameters/ifMatch'
      requestBody:
        description: |
          All mutable fields of a Merchant are optional
        required: true
        content:
          application/merge-patch+json:
            schema:
              $ref: '#/components/schemas/MerchantMergeUpdate'
            examples:
              changeAddress:
                $ref: '#/components/examples/update-merchant-change-address'
      responses:
        '200':
          description: The updated Merchant
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Merchant'
        '400':
          $ref: '#/components/responses/BadRequestError'
        '401':
          $ref: '#/components/responses/UnauthorizedError'
        '403':
          $ref: '#/components/responses/ForbiddenError'
        '404':
          $ref: '#/components/responses/NotFoundError'
        '412':
          $ref: '#/components/responses/PreconditionFailedError'
        '429':
          $ref: '#/components/responses/TooManyRequestsError'
    delete:
      operationId: deleteMerchant
      summary: Archive Merchant
      description: |
        This operation archives the specified Merchant.

        Requires `merchants:Archive` permission.
      tags:
        - Merchants
      parameters:
        - $ref: '#/components/parameters/merchantKey'
        - $ref: '#/components/parameters/ifMatch'
      responses:
        '204':
          description: Merchant archived successfully
        '401':
          $ref: '#/components/responses/UnauthorizedError'
        '403':
          $ref: '#/components/responses/ForbiddenError'
        '404':
          $ref: '#/components/responses/NotFoundError'
        '412':
          $ref: '#/components/responses/PreconditionFailedError'
        '429':
          $ref: '#/components/responses/TooManyRequestsError'
  /reports/reconciliationDetails:
    get:
      operationId: getReconciliationDetails
      summary: List Reconciliation Details
      description: |
        List all reconciliation records for all Merchants in a provided timerange

        Requires `reports:SettlementDetails` permission. When no `from` parameter is used, the API will default to a `from` of three months before today. The `to` parameter defaults to now.
      tags:
        - Reconciliation Details
      parameters:
        - $ref: '#/components/parameters/openapi_components-parameters-from'
        - $ref: '#/components/parameters/openapi_components-parameters-to'
        - $ref: '#/components/parameters/sortOrder'
        - $ref: '#/components/parameters/limit'
        - $ref: '#/components/parameters/binPageOffsetToken'
      responses:
        '200':
          description: A (paged) list of Reconciliation Details
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ReconciliationDetailsPage'
              examples:
                firstPresentment-dms:
                  $ref: '#/components/examples/report-reconciliation-details-firstPresentment-dms'
                firstPresentment-sms:
                  $ref: '#/components/examples/report-reconciliation-details-firstPresentment-sms'
                firstPresentment-rtc:
                  $ref: '#/components/examples/report-reconciliation-details-firstPresentment-RTC'
                cardNetworkFee:
                  $ref: '#/components/examples/report-reconciliation-details-cardNetworkFee'
                firstChargeback-dms:
                  $ref: '#/components/examples/report-reconciliation-details-firstChargeback-dms'
                firstChargeback-sms:
                  $ref: '#/components/examples/report-reconciliation-details-firstChargeback-sms'
                secondPresentment-dms:
                  $ref: '#/components/examples/report-reconciliation-details-secondPresentment-dms'
                preArbitration-dms:
                  $ref: '#/components/examples/report-reconciliation-details-preArbitration-dms'
                arbitration-dms:
                  $ref: '#/components/examples/report-reconciliation-details-arbitration-dms'
        '400':
          $ref: '#/components/responses/components-responses-BadRequestError'
        '401':
          $ref: '#/components/responses/openapi_components-responses-UnauthorizedError-4'
        '403':
          $ref: '#/components/responses/openapi_components-responses-ForbiddenError-3'
        '429':
          $ref: '#/components/responses/openapi_components-responses-TooManyRequestsError-4'
  /reports/reconciliationDetails/fundsTransferDate/{fundsTransferDate}:
    get:
      operationId: getReconciliationDetailsFundsTransferDate
      summary: List Reconciliation Details by Funds Transfer Date
      description: |

        List all reconciliation records for all Merchants with a specific funds transfer date.

        Requires `reports:SettlementDetails` permission.
      tags:
        - Reconciliation Details
      parameters:
        - $ref: '#/components/parameters/fundsTransferDatePath'
        - $ref: '#/components/parameters/limit'
        - $ref: '#/components/parameters/binPageOffsetToken'
      responses:
        '200':
          description: A (paged) list of Reconciliation Details
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ReconciliationDetailsPage'
              examples:
                firstPresentment-dms:
                  $ref: '#/components/examples/report-reconciliation-details-firstPresentment-dms'
                firstPresentment-sms:
                  $ref: '#/components/examples/report-reconciliation-details-firstPresentment-sms'
                firstPresentment-rtc:
                  $ref: '#/components/examples/report-reconciliation-details-firstPresentment-RTC'
                cardNetworkFee:
                  $ref: '#/components/examples/report-reconciliation-details-cardNetworkFee'
                firstChargeback-dms:
                  $ref: '#/components/examples/report-reconciliation-details-firstChargeback-dms'
                secondPresentment-dms:
                  $ref: '#/components/examples/report-reconciliation-details-secondPresentment-dms'
                preArbitration-dms:
                  $ref: '#/components/examples/report-reconciliation-details-preArbitration-dms'
                arbitration-dms:
                  $ref: '#/components/examples/report-reconciliation-details-arbitration-dms'
        '400':
          $ref: '#/components/responses/components-responses-BadRequestError'
        '401':
          $ref: '#/components/responses/openapi_components-responses-UnauthorizedError-4'
        '403':
          $ref: '#/components/responses/openapi_components-responses-ForbiddenError-3'
        '429':
          $ref: '#/components/responses/openapi_components-responses-TooManyRequestsError-4'
  /reports/reconciliationDetails/networkFundsTransferKey/{networkFundsTransferKey}:
    get:
      operationId: listReconciliationDetailsByNetworkFundsTransferKey
      summary: List Reconciliation Details by Network Funds Transfer Key
      description: |
        List all reconciliation records for a specific network funds transfer key.
        Requires `reports:SettlementDetails` permission.
      tags:
        - Reconciliation Details
      parameters:
        - $ref: '#/components/parameters/networkFundsTransferKey'
        - $ref: '#/components/parameters/sortOrder'
        - $ref: '#/components/parameters/limit'
        - $ref: '#/components/parameters/binPageOffsetToken'
      responses:
        '200':
          description: A (paged) list of Reconciliation Details by Network Funds Transfer Key.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ReconciliationDetailsPage'
              examples:
                firstPresentment-dms:
                  $ref: '#/components/examples/report-reconciliation-details-firstPresentment-dms'
                firstPresentment-sms:
                  $ref: '#/components/examples/report-reconciliation-details-firstPresentment-sms'
                firstPresentment-rtc:
                  $ref: '#/components/examples/report-reconciliation-details-firstPresentment-RTC'
                cardNetworkFee:
                  $ref: '#/components/examples/report-reconciliation-details-cardNetworkFee'
                firstChargeback-dms:
                  $ref: '#/components/examples/report-reconciliation-details-firstChargeback-dms'
                secondPresentment-dms:
                  $ref: '#/components/examples/report-reconciliation-details-secondPresentment-dms'
                preArbitration-dms:
                  $ref: '#/components/examples/report-reconciliation-details-preArbitration-dms'
                arbitration-dms:
                  $ref: '#/components/examples/report-reconciliation-details-arbitration-dms'
        '400':
          $ref: '#/components/responses/components-responses-BadRequestError'
        '401':
          $ref: '#/components/responses/openapi_components-responses-UnauthorizedError-4'
        '403':
          $ref: '#/components/responses/openapi_components-responses-ForbiddenError-3'
        '429':
          $ref: '#/components/responses/openapi_components-responses-TooManyRequestsError-4'
  /reports/networkFundsTransfers/fundsTransferDate/{fundsTransferDate}:
    get:
      operationId: getNetworkFundsTransfers
      summary: List Network Funds Transfers
      description: |

        Requires `reports:NetworkFundsTransfers` permission.

        Returns a list of Network Funds Transfer Objects. Each objects corresponds to an expected Funds Transfer between the Card Network and the Acquirer.
      tags:
        - Network Funds Transfers
      parameters:
        - $ref: '#/components/parameters/fundsTransferDatePath'
        - $ref: '#/components/parameters/limit'
        - $ref: '#/components/parameters/openapi_components-parameters-offsetToken-2'
        - $ref: '#/components/parameters/sortOrder'
      responses:
        '200':
          description: A list of networkFundsTransfer objects
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/NetworkFundsTransfersPage'
              examples:
                network-funds-transfers:
                  $ref: '#/components/examples/report-network-funds-transfers'
        '400':
          $ref: '#/components/responses/components-responses-BadRequestError'
        '401':
          $ref: '#/components/responses/openapi_components-responses-UnauthorizedError-4'
        '403':
          $ref: '#/components/responses/openapi_components-responses-ForbiddenError-3'
        '429':
          $ref: '#/components/responses/openapi_components-responses-TooManyRequestsError-4'
  /reports/networkFundsTransfers/{key}:
    get:
      operationId: getNetworkFundsTransferByNetworkFundsTransferKey
      summary: Get Network Funds Transfer
      description: |

        Requires `reports:NetworkFundsTransfers` permission.

        Returns a Network Funds Transfer Object. It corresponds to an expected Funds Transfer between the Card Network and the Acquirer.
      tags:
        - Network Funds Transfers
      parameters:
        - $ref: '#/components/parameters/networkFundsTransferKeyPath'
      responses:
        '200':
          description: A networkFundsTransfer object
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/NetworkFundsTransfer'
              examples:
                network-funds-transfer:
                  $ref: '#/components/examples/report-network-funds-transfer'
        '400':
          $ref: '#/components/responses/components-responses-BadRequestError'
        '401':
          $ref: '#/components/responses/openapi_components-responses-UnauthorizedError-4'
        '403':
          $ref: '#/components/responses/openapi_components-responses-ForbiddenError-3'
        '404':
          $ref: '#/components/responses/openapi_components-responses-NotFoundError'
        '429':
          $ref: '#/components/responses/openapi_components-responses-TooManyRequestsError-4'
  /reports/reconciliationDetailRecords:
    post:
      operationId: reconciliationDetails
      summary: Create Reconciliation Details Report
      description: |
        Schedules the creation of a Reconciliation Details Report.

        When using `createdFrom` and `createdTo`, take into account the following:
          - The created timestamp range cannot exceed one week.

        Requires the `reports:CreateReconciliationDetails` permission.

        Please check our detailed guide on the report content and other considerations [here](https://docs.silverflow.com/guides/reconciliation-details-report).
      tags:
        - Reconciliation Details
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ReconciliationDetailsReportRequest'
            examples:
              By created:
                $ref: '#/components/examples/ReconciliationDetailsRequestByCreated'
              By nftKey:
                $ref: '#/components/examples/ReconciliationDetailsRequestByNftKey'
      responses:
        '201':
          description: The scheduled Reconciliation Details Report
          headers:
            Location:
              description: The URL of the newly created Reconciliation Details Report
              schema:
                type: string
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CreateReconciliationDetailsReportResponse'
              example:
                reportName: ReconciliationDetails
                parameters:
                  createdFrom: '2025-04-09T14:00:00Z'
                  createdTo: '2025-04-10T14:00:00Z'
                reference: Report Reference
                mimeType: application/x-ndjson
                key: rep-2a1dAHhgstYTUhlphPzZ
                agentKey: cgt-1UF2NafdfrdPMf2XrS2
                status: scheduled
                created: '2019-08-24T14:15:22Z'
                distributions:
                  - dst-1e1dAHhgstYTUhlphPzZ
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                oneOf:
                  - $ref: '#/components/schemas/InvalidDateRangeErrorDetails'
                  - $ref: '#/components/schemas/InvalidReportNameErrorDetails'
                  - $ref: '#/components/schemas/InputValidationError'
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/NotAuthorizedErrorDetails'
        '403':
          $ref: '#/components/responses/openapi_components-responses-ForbiddenError-4'
        '429':
          $ref: '#/components/responses/openapi_components-responses-TooManyRequestsError-5'
  /reports/disputeHistoryEvents:
    post:
      operationId: createDisputeHistoryEventsReport
      summary: Create Disputes Report
      description: |
        Schedules the creation of a Dispute History Events Report.

        Requires the `reports:CreateDisputeHistoryEvents` permission.

        Please check our detailed guide on the report content and other considerations [here](https://docs.silverflow.com/guides/disputes-report).
      tags:
        - Dispute Reports
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/DisputeHistoryEventsReportRequest'
      responses:
        '201':
          description: The scheduled Disputes Report
          headers:
            Location:
              description: The URL of the newly created Disputes Report
              schema:
                type: string
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CreateDisputeHistoryEventsReportResponse'
              example:
                key: rep-1e1dAHhgstYTUhlphPzZ
                reportName: DisputeHistoryEvents
                parameters:
                  createdFrom: '2025-04-24'
                  createdTo: '2025-04-25'
                mimeType: text/csv
                agentKey: cgt-1e1dAHhgstYTUhlphPzZ
                reference: Report Reference
                status: scheduled
                created: '2019-08-24T14:15:22Z'
                distributions:
                  - dst-1e1dAHhgstYTUhlphPzZ
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                oneOf:
                  - $ref: '#/components/schemas/InvalidDateRangeErrorDetails'
                  - $ref: '#/components/schemas/InvalidReportNameErrorDetails'
                  - $ref: '#/components/schemas/InputValidationError'
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/NotAuthorizedErrorDetails'
        '403':
          $ref: '#/components/responses/openapi_components-responses-ForbiddenError-4'
        '404':
          description: Bin not found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BinNotFoundErrorDetails'
              example:
                type: /silverflow/problems/report/bin-not-found
                title: Bin not found
                status: 404
                detail: The bin bin-1e1dAHhgstYTUhlphPzZ is not found
                instance: /silverflow/b4cc37a0-ab24-46b4-aa8c-cc2d6eddf1b6
        '429':
          $ref: '#/components/responses/openapi_components-responses-TooManyRequestsError-5'
  /reports/fraudNotificationRecords:
    post:
      operationId: createFraudNotificationsReport
      summary: Create Fraud Notifications Report
      description: |
        Schedules the creation of a Fraud Notifications Report.

        Requires the `reports:CreateFraudNotifications` permission.

        Please check our detailed guide on the report content and other considerations [here](https://docs.silverflow.com/guides/fraud-report).
      tags:
        - Fraud Notifications Reports
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/FraudNotificationsReportRequest'
      responses:
        '201':
          description: The scheduled Fraud Notifications Report
          headers:
            Location:
              description: The URL of the newly created Fraud Notifications Report
              schema:
                type: string
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CreateFraudNotificationsReportResponse'
              example:
                key: rep-1e1dAHhgstYTUhlphPzZ
                reportName: FraudNotifications
                parameters:
                  createdFrom: '2019-08-24T14:15:22Z'
                  createdTo: '2019-08-24T14:15:22Z'
                mimeType: text/csv
                agentKey: cgt-1e1dAHhgstYTUhlphPzZ
                reference: Report Reference
                status: scheduled
                created: '2019-08-24T14:15:22Z'
                distributions:
                  - dst-1e1dAHhgstYTUhlphPzZ
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                oneOf:
                  - $ref: '#/components/schemas/InvalidDateRangeErrorDetails'
                  - $ref: '#/components/schemas/InvalidReportNameErrorDetails'
                  - $ref: '#/components/schemas/InputValidationError'
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/NotAuthorizedErrorDetails'
        '403':
          $ref: '#/components/responses/openapi_components-responses-ForbiddenError-4'
        '429':
          $ref: '#/components/responses/openapi_components-responses-TooManyRequestsError-5'
  /reports/settlementDetails:
    post:
      operationId: createSettlementDetailsReport
      summary: Create Settlement Details Report
      description: |
        Schedules the creation of a Settlement Details Report.

        Requires the `reports:Create` permission.

        Please check our detailed guide on the report content and other considerations [here](https://docs.silverflow.com/guides/settlement-details-report).
      tags:
        - Settlement Reports
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CreateSettlementDetailsReportRequest'
      responses:
        '201':
          description: The scheduled Settlement Details Report
          headers:
            Location:
              description: The URL of the newly created Settlement Details Report
              schema:
                type: string
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CreateSettlementDetailsReportResponse'
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                oneOf:
                  - $ref: '#/components/schemas/InvalidDateRangeErrorDetails'
                  - $ref: '#/components/schemas/InvalidReportNameErrorDetails'
                  - $ref: '#/components/schemas/InputValidationError'
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/NotAuthorizedErrorDetails'
        '403':
          $ref: '#/components/responses/openapi_components-responses-ForbiddenError-4'
        '429':
          $ref: '#/components/responses/openapi_components-responses-TooManyRequestsError-5'
  /reports/networkFundsTransfers:
    post:
      operationId: createNetworkFundsTransfersReport
      summary: Create Network Funds Transfers Report
      description: |
        Schedules the creation of a Network Funds Transfers report.

        Requires the `reports:CreateNetworkFundsTransfers` permission.

        Please check our detailed guide on the report content and other considerations [here](https://docs.silverflow.com/guides/network-funds-transfers-report).
      tags:
        - Settlement Reports
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CreateNetworkFundsTransfersReportRequest'
      responses:
        '201':
          description: The scheduled Network Funds Transfers Report
          headers:
            Location:
              description: The URL of the newly created Network Funds Transfers Report
              schema:
                type: string
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CreateNetworkFundsTransfersReportResponse'
              example:
                key: rep-1e1dAHhgstYTUhlphPzZ
                reportName: NetworkFundsTransfers
                parameters:
                  fundsTransferDate: '2019-08-24T14:15:22Z'
                mimeType: application/json
                agentKey: cgt-1e1dAHhgstYTUhlphPzZ
                reference: Report Reference
                status: scheduled
                created: '2019-08-24T14:15:22Z'
                distributions:
                  - dst-1e1dAHhgstYTUhlphPzZ
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                oneOf:
                  - $ref: '#/components/schemas/InvalidDateRangeErrorDetails'
                  - $ref: '#/components/schemas/InvalidReportNameErrorDetails'
                  - $ref: '#/components/schemas/InputValidationError'
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/NotAuthorizedErrorDetails'
        '403':
          $ref: '#/components/responses/openapi_components-responses-ForbiddenError-4'
        '429':
          $ref: '#/components/responses/openapi_components-responses-TooManyRequestsError-5'
  /reports/schemeFeeDetails:
    post:
      operationId: schemeFeeDetails
      summary: Create Scheme Fee Details Report
      description: |
        Schedules the creation of a Scheme Fee Details Report.

        When using book dates, take into account the following:
          - In case no `bookDateTo` is specified, we use the current date-time.
          - The book date range cannot exceed one week.

        Requires the `reports:CreateSchemeFeeDetails` permission.

        Please check our detailed guide on the report content and other considerations [here](https://docs.silverflow.com/guides/scheme-fee-details-report).
      tags:
        - Scheme Fee Reports
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CreateSchemeFeeDetailsReportRequest'
            example:
              parameters:
                bookDateFrom: '2019-08-24T14:15:22Z'
                bookDateTo: '2019-08-24T14:15:22Z'
              reference: Report Reference
              mimeType: application/json
      responses:
        '201':
          description: The scheduled Scheme Fee Details Report
          headers:
            Location:
              description: The URL of the newly created Scheme Fee Details Report
              schema:
                type: string
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CreateSchemeFeeDetailsReportResponse'
              example:
                reportName: SchemeFeeDetails
                parameters:
                  bookDateFrom: '2019-08-24T14:15:22Z'
                  bookDateTo: '2019-08-24T14:15:22Z'
                mimeType: application/json
                key: rep-1e1dAHhgstYTUhlphPzZ
                agentKey: cgt-1e1dAHhgstYTUhlphPzZ
                reference: Report Reference
                status: scheduled
                created: '2019-08-24T14:15:22Z'
                distributions:
                  - dst-1e1dAHhgstYTUhlphPzZ
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                oneOf:
                  - $ref: '#/components/schemas/InvalidDateRangeErrorDetails'
                  - $ref: '#/components/schemas/InvalidReportNameErrorDetails'
                  - $ref: '#/components/schemas/MissingBookDateFromErrorDetails'
                  - $ref: '#/components/schemas/InvalidBookDateRangeErrorDetails'
                  - $ref: '#/components/schemas/InputValidationError'
              examples:
                InvalidDateRange:
                  $ref: '#/components/examples/InvalidDateRangeError'
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/NotAuthorizedErrorDetails'
              example:
                type: /silverflow/problems/report/not-authorized
                title: Not authorized
                status: 401
                detail: The agent is not authorized to perform this action
                instance: /silverflow/8e445b2e-d745-4b38-a38d-781fc998e442
        '403':
          $ref: '#/components/responses/openapi_components-responses-ForbiddenError-4'
        '429':
          $ref: '#/components/responses/openapi_components-responses-TooManyRequestsError-5'
  /reports/charges:
    post:
      operationId: createChargesReport
      summary: Create Charges Report [EXPERIMENTAL]
      description: |
        Schedules the creation of a Charges Report.

        Requires the `reports:CreateCharges` permission.

        Please check our detailed guide on the report content and other considerations [here](https://docs.silverflow.com/guides/charges-report).
      tags:
        - Charges Reports
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ChargesReportRequest'
      responses:
        '201':
          description: The scheduled Charges Report
          headers:
            Location:
              description: The URL of the newly created Charges Report
              schema:
                type: string
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CreateChargesReportResponse'
              example:
                key: rep-1e1dAHhgstYTUhlphPzZ
                reportName: Charges
                parameters:
                  createdFrom: '2019-08-24T14:15:22Z'
                  createdTo: '2019-08-24T14:15:22Z'
                mimeType: text/csv
                agentKey: cgt-1e1dAHhgstYTUhlphPzZ
                reference: Report Reference
                status: scheduled
                created: '2019-08-24T14:15:22Z'
                distributions:
                  - dst-1e1dAHhgstYTUhlphPzZ
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                oneOf:
                  - $ref: '#/components/schemas/InvalidDateRangeErrorDetails'
                  - $ref: '#/components/schemas/InvalidReportNameErrorDetails'
                  - $ref: '#/components/schemas/InputValidationError'
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/NotAuthorizedErrorDetails'
        '403':
          $ref: '#/components/responses/openapi_components-responses-ForbiddenError-4'
        '429':
          $ref: '#/components/responses/openapi_components-responses-TooManyRequestsError-5'
  /reports:
    get:
      operationId: listReport
      summary: List Reports
      description: |
        Returns a list of reports.

        Requires the `reports:List` permission.
      tags:
        - Retrieve Reports
      parameters:
        - $ref: '#/components/parameters/createdFrom'
        - $ref: '#/components/parameters/createdTo'
        - $ref: '#/components/parameters/parameters-limit'
        - $ref: '#/components/parameters/openapi_components-parameters-offsetToken-3'
        - $ref: '#/components/parameters/components-parameters-sortOrder'
      responses:
        '200':
          description: List of reports
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ListReportResponse'
              example:
                items:
                  - reportName: SchemeFeeDetails
                    parameters:
                      bookDateFrom: '2019-08-24T14:15:22Z'
                      bookDateTo: '2019-08-24T14:15:22Z'
                    mimeType: application/json
                    key: rep-1e1dAHhgstYTUhlphPzZ
                    agentKey: cgt-1e1dAHhgstYTUhlphPzZ
                    reference: Report Reference
                    status: completed
                    result:
                      size: 1337
                      lastToken: ZfDH6YfTwPU2TweAN6a5Rk6cLZ1Xxyms
                    created: '2019-08-24T14:15:22Z'
                    lastModified: '2019-08-25T14:15:22Z'
                    version: 2
                moreItems: true
                offsetToken: eyJMaXN0SW5kZXhLZXkiOiJjZ3QtMTIzNDU2IiwiTGlzdEluZGV4U29ydEtleSI6IjIwMjMtMTEtMTdUMTQ6NDA6MjcuOTcwWiIsIlR5cGVLZXkiOiJSZXBvcnQiLCJPYmplY3RLZXkiOiJyZXAtMTIzNDU2In0
        '204':
          description: No report found
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                oneOf:
                  - $ref: '#/components/schemas/InputValidationError'
                  - $ref: '#/components/schemas/schemas-InvalidOffsetTokenError'
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/NotAuthorizedErrorDetails'
              example:
                type: /silverflow/problems/report/not-authorized
                title: Not authorized
                status: 401
                detail: The agent is not authorized to perform this action
                instance: /silverflow/8e445b2e-d745-4b38-a38d-781fc998e442
        '403':
          $ref: '#/components/responses/openapi_components-responses-ForbiddenError-4'
        '429':
          $ref: '#/components/responses/openapi_components-responses-TooManyRequestsError-5'
  /reports/{reportKey}:
    get:
      operationId: getReport
      summary: Get Report
      description: |
        Returns a report.

        Requires the `reports:Get` permission

        For the **SchemeFeeDetails** and **ReconciliationDetails** reports, their respective permissions are also accepted as alternatives to `reports:Get`.
          - `reports:GetSchemeFeeDetails`
          - `reports:GetReconciliationDetails`
      tags:
        - Retrieve Reports
      parameters:
        - in: path
          name: reportKey
          required: true
          schema:
            $ref: '#/components/schemas/reportKey'
      responses:
        '200':
          description: A report object
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Report'
              examples:
                schemeFeeDetails:
                  $ref: '#/components/examples/SchemeFeeDetailsReport'
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                oneOf:
                  - $ref: '#/components/schemas/InputValidationError'
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/NotAuthorizedErrorDetails'
              example:
                type: /silverflow/problems/report/not-authorized
                title: Not authorized
                status: 401
                detail: The agent is not authorized to perform this action
                instance: /silverflow/8e445b2e-d745-4b38-a38d-781fc998e442
        '403':
          $ref: '#/components/responses/openapi_components-responses-ForbiddenError-4'
        '404':
          description: Report not found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ReportNotFoundErrorDetails'
              example:
                type: /silverflow/problems/report/report-not-found
                title: Report not found
                status: 404
                detail: The report rep-1e1dAHhgstYTUhlphPzZ is not found
                instance: /silverflow/b4cc37a0-ab24-46b4-aa8c-cc2d6eddf1b6
        '429':
          $ref: '#/components/responses/openapi_components-responses-TooManyRequestsError-5'
  /reports/{reportKey}/file:
    get:
      operationId: getReportFile
      summary: Get Report File
      description: |
        Returns the Report data as a downloadable file. This will return a `307` (redirect) status code, redirecting the request to the location of the file.

        To optimize the file download, the contents are `gzip` encoded. The Response contents need to be unzipped.

        Not every report is in `application/json` format, thus there aren't response schema's available for every report type.

        The file URL the request is redirected to, will remain **available for 1 hour**. After this time, you need to call this endpoint to generate a new URL. Make sure your HTTP client is configured to follow redirects, so you can correctly obtain the file.

        Requires one of the following permissions depending on the report:
          - `reports:Download`
          - `reports:DownloadSchemeFeeDetails`
          - `reports:DownloadReconciliationDetails`
          - `reports:DownloadQuarterlySchemeReport`
          - `reports:DownloadNetworkFundsTransfers`
          - `reports:DownloadCharges`
          - `reports:DownloadFraudNotifications`
          - `reports:DownloadDisputeHistoryEvents`

        Please check our detailed reporting guide including best practices integration and other considerations [here](https://docs.silverflow.com/guides/reporting).
      tags:
        - Retrieve Reports
      parameters:
        - in: path
          name: reportKey
          required: true
          schema:
            $ref: '#/components/schemas/reportKey'
      responses:
        '204':
          description: The report is not available to download yet
        '307':
          description: Report file
          content:
            application/json:
              schema:
                oneOf:
                  - $ref: '#/components/schemas/SchemeFeeDetailsReportFile'
              examples:
                schemeFeeDetailsReport:
                  $ref: '#/components/examples/JSON'
            application/x-ndjson:
              schema:
                oneOf:
                  - type: string
                    title: SchemeFeeDetails
                  - $ref: '#/components/schemas/SettlementDetailsRecord'
              examples:
                schemeFeeDetailsReport:
                  $ref: '#/components/examples/NDJSON'
                settlementDetailsReport:
                  $ref: '#/components/examples/settlement-details_NDJSON'
            text/csv:
              schema:
                type: string
              examples:
                schemeFeeDetailsReport:
                  $ref: '#/components/examples/CSV'
            application/vnd.ms-excel:
              schema:
                oneOf:
                  - type: string
                    title: VisaQuarterlySchemeReport
                  - type: string
                    title: MastercardQuarterlySchemeReport
          headers:
            Content-Disposition:
              schema:
                type: string
                enum:
                  - attachment
            Content-Encoding:
              schema:
                type: string
                enum:
                  - gzip
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                oneOf:
                  - $ref: '#/components/schemas/InputValidationError'
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/NotAuthorizedErrorDetails'
              example:
                type: /silverflow/problems/report/not-authorized
                title: Not authorized
                status: 401
                detail: The agent is not authorized to perform this action
                instance: /silverflow/8e445b2e-d745-4b38-a38d-781fc998e442
        '403':
          $ref: '#/components/responses/openapi_components-responses-ForbiddenError-4'
        '404':
          description: Report not found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ReportNotFoundErrorDetails'
              example:
                type: /silverflow/problems/report/report-not-found
                title: Report not found
                status: 404
                detail: The report rep-1e1dAHhgstYTUhlphPzZ is not found
                instance: /silverflow/b4cc37a0-ab24-46b4-aa8c-cc2d6eddf1b6
        '415':
          description: Unsupported mimeType
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UnsupportedMimeTypeErrorDetails'
              example:
                type: /silverflow/problems/report/unsupported-mime-type
                title: Unsupported mimeType
                status: 415
                detail: Unsupported mimeType 'text/csv'
                instance: /silverflow/b4cc37a0-ab24-46b4-aa8c-cc2d6eddf1b6
        '429':
          $ref: '#/components/responses/openapi_components-responses-TooManyRequestsError-5'
  /reports/ammfReport:
    post:
      operationId: createAmmfReport
      summary: Create AMMF Report
      description: |
        Schedules the creation of an AMMF Report.

        Requires the `reports:Create` permission to **create** the report, but for downloading the report you need the `reports:DownloadAmmfReport` permission.

        Please check our detailed guide on the report content and other considerations [here](https://docs.silverflow.com/guides/ammf-report).
      tags:
        - Card Network Reports
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CreateAmmfReportRequest'
            examples:
              AmmfReportExample:
                $ref: '#/components/examples/CreateAmmfReportRequest'
      responses:
        '201':
          description: The scheduled AMMF Report
          headers:
            Location:
              description: The URL of the newly created AMMF Report
              schema:
                type: string
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/CreateAmmfReportResponse'
              examples:
                AmmfReportExample:
                  $ref: '#/components/examples/CreateAmmfReportResponse'
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                oneOf:
                  - $ref: '#/components/schemas/InvalidDateRangeErrorDetails'
                  - $ref: '#/components/schemas/InvalidReportNameErrorDetails'
                  - $ref: '#/components/schemas/InputValidationError'
              examples:
                InvalidDateRange:
                  $ref: '#/components/examples/InvalidDateRangeError'
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/NotAuthorizedErrorDetails'
              example:
                type: /silverflow/problems/report/not-authorized
                title: Not authorized
                status: 401
                detail: The agent is not authorized to perform this action
                instance: /silverflow/8e445b2e-d745-4b38-a38d-781fc998e442
        '403':
          $ref: '#/components/responses/openapi_components-responses-ForbiddenError-4'
        '429':
          $ref: '#/components/responses/openapi_components-responses-TooManyRequestsError-5'
  /reports/quarterlySchemeReport:
    post:
      operationId: createQuarterlySchemeReport
      summary: Create Quarterly Scheme Report
      description: |
        Schedules the creation of a Quarterly Scheme Report by acquirer and card scheme.

        Reports can only be created for quarters that ended within the last 2 years.

        Requires the `reports:Create` permission to **create** the report, but for downloading the report you need the `reports:DownloadQuarterlySchemeReport` permission.

        Please check our detailed guide on the report content and other considerations [here](https://docs.silverflow.com/guides/card-network-reports).
      tags:
        - Card Network Reports
      requestBody:
        required: true
        content:
          application/json:
            schema:
              oneOf:
                - $ref: '#/components/schemas/VisaQuarterlySchemeReportRequest'
                - $ref: '#/components/schemas/MastercardQuarterlySchemeReportRequest'
            examples:
              VisaQuarterlySchemeReport:
                $ref: '#/components/examples/VisaQuarterlySchemeReportRequest'
              MastercardQuarterlySchemeReport:
                $ref: '#/components/examples/MastercardQuarterlySchemeReportRequest'
      responses:
        '201':
          description: The scheduled Quarterly Scheme Report
          headers:
            Location:
              description: The URL of the newly created Quarterly Scheme Report
              schema:
                type: string
          content:
            application/json:
              schema:
                oneOf:
                  - $ref: '#/components/schemas/VisaQuarterlySchemeReportResponse'
                  - $ref: '#/components/schemas/MastercardQuarterlySchemeReportResponse'
              examples:
                VisaQuarterlySchemeReport:
                  $ref: '#/components/examples/VisaQuarterlySchemeReportResponse'
                MastercardQuarterlySchemeReport:
                  $ref: '#/components/examples/MastercardQuarterlySchemeReportResponse'
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                oneOf:
                  - $ref: '#/components/schemas/InvalidDateRangeErrorDetails'
                  - $ref: '#/components/schemas/InvalidReportNameErrorDetails'
                  - $ref: '#/components/schemas/InputValidationError'
              examples:
                InvalidDateRange:
                  $ref: '#/components/examples/InvalidDateRangeError'
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/NotAuthorizedErrorDetails'
              example:
                type: /silverflow/problems/report/not-authorized
                title: Not authorized
                status: 401
                detail: The agent is not authorized to perform this action
                instance: /silverflow/8e445b2e-d745-4b38-a38d-781fc998e442
        '403':
          $ref: '#/components/responses/openapi_components-responses-ForbiddenError-4'
        '429':
          $ref: '#/components/responses/openapi_components-responses-TooManyRequestsError-5'
  /reportSchedules:
    post:
      operationId: createReportSchedule
      summary: Create a Report Schedule
      description: |
        Creates a new report schedule for generating various types of reports.

        It requires the `reportSchedules:Create` permission in the API key.

        Please check our detailed reporting guide including best practices integration and other considerations [here](https://docs.silverflow.com/guides/scheduling-reports).

        The date range for the report is based on the `trigger` configuration and uses the standard UTC format for all times and timestamps.
        However, to ensure completeness, the report schedule may execute with a slight delay.
        This delay allows the system to capture any last-minute records and ensure accurate and comprehensive data.

        Once the report schedule is executed, a new report will be created, and can be retrieved by calling the [List Reports](#operation/listReport) or [Get Report](#operation/getReport) endpoint.

        To be notified of the creation of these reports, you can subscribe to the reports events using the `eventSource` `https://silverflow.com/reports` on [`POST /v1/eventSubscriptions`](#operation/createEventSubscription).

        When a scheduled report is completed, if it has one of more related distribution objects, it will trigger the distribution to the specified targets.
      tags:
        - Report Scheduling
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CreateReportScheduleRequest'
            examples:
              Scheme Fee Details - Hourly Interval:
                $ref: '#/components/examples/HourlySchemeFeeDetails'
              Scheme Fee Details - Daily Interval:
                $ref: '#/components/examples/DailySchemeFeeDetails'
              Scheme Fee Details - Daily with distributions:
                $ref: '#/components/examples/DailySchemeFeeDetailsWithDistributions'
              Merchant Payout:
                $ref: '#/components/examples/MerchantPayoutRequest'
              Settlement Details - Hourly Interval:
                $ref: '#/components/examples/HourlySettlementDetails'
              Settlement Details - Daily Interval:
                $ref: '#/components/examples/DailySettlementDetails'
              AMMF - Monthly Interval:
                $ref: '#/components/examples/AmmfRequest'
      responses:
        '201':
          description: The newly created report schedule object
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ReportScheduleResponse'
              examples:
                Scheme Fee Details - Hourly Interval:
                  $ref: '#/components/examples/Hourly'
                Scheme Fee Details - Daily Interval:
                  $ref: '#/components/examples/Daily'
                Scheme Fee Details - Daily with distributions:
                  $ref: '#/components/examples/DailyWithDistributions'
                Merchant Payout:
                  $ref: '#/components/examples/MerchantPayoutResponse'
                Settlement Details - Hourly Interval:
                  $ref: '#/components/examples/settlement-details_Hourly'
                Settlement Details - Daily Interval:
                  $ref: '#/components/examples/settlement-details_Daily'
                AMMF - Monthly Interval:
                  $ref: '#/components/examples/AmmfResponse'
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                oneOf:
                  - $ref: '#/components/schemas/InputValidationError'
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/NotAuthorizedErrorDetails'
        '403':
          $ref: '#/components/responses/openapi_components-responses-ForbiddenError-4'
        '409':
          description: Conflict
          content:
            application/json:
              schema:
                oneOf:
                  - $ref: '#/components/schemas/EntityAlreadyExistsErrorDetails'
                  - $ref: '#/components/schemas/openapi_components-schemas-ReferencedEntityNotFoundErrorDetails'
                  - $ref: '#/components/schemas/ReferencedEntityArchivedErrorDetails'
              examples:
                EntityAlreadyExistsErrorDetails:
                  $ref: '#/components/examples/EntityAlreadyExistsErrorExample'
                ReferencedEntityNotFoundErrorDetails:
                  $ref: '#/components/examples/openapi_components-examples-ReferencedEntityNotFoundErrorExample'
                ReferencedEntityArchivedErrorDetails:
                  $ref: '#/components/examples/ReferencedEntityArchivedErrorExample'
        '429':
          $ref: '#/components/responses/openapi_components-responses-TooManyRequestsError-5'
    get:
      operationId: listReportSchedules
      summary: List Report Schedules
      description: |
        Lists all active report schedules.

        It requires the `reportSchedules:List` permission in the API key.
      tags:
        - Report Scheduling
      parameters:
        - $ref: '#/components/parameters/reportName'
        - $ref: '#/components/parameters/parameters-limit'
        - $ref: '#/components/parameters/openapi_components-parameters-offsetToken-3'
        - $ref: '#/components/parameters/components-parameters-sortOrder'
      responses:
        '200':
          description: The report schedules
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ListReportSchedulesResponse'
              example:
                items:
                  - reportName: SchemeFeeDetails
                    trigger:
                      type: interval
                      cadence: hourly
                    mimeType: application/json
                    key: rsk-1e1dAHhgstYTUhlphPzZ
                    status: active
                    agentKey: cgt-1e1dAHhgstYTUhlphPzZ
                    created: '2019-08-24T14:15:22Z'
                    lastModified: '2019-08-25T14:15:22Z'
                    version: 2
                    reference: Report Reference
                  - reportName: NetworkFundsTransfers
                    trigger:
                      type: interval
                      cadence: daily
                      hour: 15
                    mimeType: text/csv
                    key: rsk-1e1dAHhgstYTUhlphPzZ
                    status: active
                    agentKey: cgt-1e1dAHhgstYTUhlphPzZ
                    created: '2019-08-24T14:15:22Z'
                    lastModified: '2019-08-25T14:15:22Z'
                    version: 2
                    reference: Report Reference
                moreItems: true
                offsetToken: eyJMaXN0SW5kZXhLZXkiOiJjZ3QtMTIzNDU2IiwiTGlzdEluZGV4U29ydEtleSI6IjIwMjMtMTEtMTdUMTQ6NDA6MjcuOTcwWiIsIlR5cGVLZXkiOiJSZXBvcnQiLCJPYmplY3RLZXkiOiJyZXAtMTIzNDU2In0
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                oneOf:
                  - $ref: '#/components/schemas/InputValidationError'
                  - $ref: '#/components/schemas/schemas-InvalidOffsetTokenError'
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/NotAuthorizedErrorDetails'
        '403':
          $ref: '#/components/responses/openapi_components-responses-ForbiddenError-4'
        '429':
          $ref: '#/components/responses/openapi_components-responses-TooManyRequestsError-5'
  /reportSchedules/{reportScheduleKey}:
    get:
      operationId: getReportSchedule
      summary: Get Report Schedule
      description: |
        Retrieves a specific report schedule identified by its `reportScheduleKey`.

        Requirements:
          - The API key must include the `reportSchedules:Get` permission.
      tags:
        - Report Scheduling
      parameters:
        - in: path
          name: reportScheduleKey
          required: true
          schema:
            $ref: '#/components/schemas/reportScheduleKey'
      responses:
        '200':
          description: Successfully retrieved the report schedule.
          content:
            application/json:
              schema:
                oneOf:
                  - $ref: '#/components/schemas/SchemeFeeDetailsReportSchedule'
                  - $ref: '#/components/schemas/NetworkFundsTransferReportSchedule'
                  - $ref: '#/components/schemas/MerchantPayoutReportSchedule'
                  - $ref: '#/components/schemas/ReconciliationDetailsReportSchedule'
                  - $ref: '#/components/schemas/SettlementDetailsReportSchedule'
                  - $ref: '#/components/schemas/AmmfReportSchedule'
              example:
                reportName: SchemeFeeDetails
                trigger:
                  type: interval
                  cadence: hourly
                mimeType: application/json
                key: rsk-1e1dAHhgstYTUhlphPzZ
                status: active
                agentKey: cgt-1e1dAHhgstYTUhlphPzZ
                created: '2019-08-24T14:15:22Z'
                lastModified: '2019-08-25T14:15:22Z'
                version: 2
                reference: Report Reference
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                oneOf:
                  - $ref: '#/components/schemas/InputValidationError'
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/NotAuthorizedErrorDetails'
        '403':
          $ref: '#/components/responses/openapi_components-responses-ForbiddenError-4'
        '404':
          description: Report schedule not found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ReportScheduleNotFoundErrorDetails'
              example:
                type: /silverflow/problems/report/report-schedule-not-found
                title: Report schedule not found
                status: 404
                detail: The report schedule rsk-1e1dAHhgstYTUhlphPzZ is not found
                instance: /silverflow/b4cc37a0-ab24-46b4-aa8c-cc2d6eddf1b6
        '429':
          $ref: '#/components/responses/openapi_components-responses-TooManyRequestsError-5'
    delete:
      operationId: archiveReportSchedule
      summary: Archive a Report Schedule
      description: |
        Archives a report schedule, meaning it will no longer be generating reports.

        It requires the `reportSchedules:Archive` permission in the API key.
      tags:
        - Report Scheduling
      parameters:
        - in: path
          name: reportScheduleKey
          required: true
          schema:
            $ref: '#/components/schemas/reportScheduleKey'
      responses:
        '204':
          description: Successfully archived report schedule
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                oneOf:
                  - $ref: '#/components/schemas/InputValidationError'
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/NotAuthorizedErrorDetails'
        '403':
          $ref: '#/components/responses/openapi_components-responses-ForbiddenError-4'
        '404':
          description: Report schedule not found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ReportScheduleNotFoundErrorDetails'
              example:
                type: /silverflow/problems/report/report-schedule-not-found
                title: Report schedule not found
                status: 404
                detail: The report schedule rsk-1e1dAHhgstYTUhlphPzZ is not found
                instance: /silverflow/b4cc37a0-ab24-46b4-aa8c-cc2d6eddf1b6
        '429':
          $ref: '#/components/responses/openapi_components-responses-TooManyRequestsError-5'
    patch:
      operationId: updateReportSchedule
      summary: Update a Report Schedule
      description: |
        Updates an existing report schedule configuration.

        It requires the `reportSchedules:Update` permission in the API key.

        Only active report schedules can be updated. If the schedule is already deleted or archived, the request will result in an error.
      tags:
        - Report Scheduling
      parameters:
        - in: path
          name: reportScheduleKey
          required: true
          schema:
            $ref: '#/components/schemas/reportScheduleKey'
      requestBody:
        required: true
        content:
          application/merge-patch+json:
            schema:
              $ref: '#/components/schemas/UpdateReportScheduleRequest'
            examples:
              UpdateReportSchedule:
                $ref: '#/components/examples/UpdateReportSchedule'
      responses:
        '200':
          description: The report schedule updated
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ReportScheduleResponse'
              example:
                reportName: SchemeFeeDetails
                key: rsk-1e1dAHhgstYTUhlphPzZ
                status: active
                agentKey: cgt-1UF2NafdfrdPMf2XrS2
                created: '2019-08-24T14:15:22Z'
                lastModified: '2019-08-24T14:15:22Z'
                version: 0
                reference: string
                distributions:
                  - dst-1e1dAHhgstYTUhlphPzZ
                mimeType: application/json
                trigger:
                  type: interval
                  cadence: hourly
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                oneOf:
                  - $ref: '#/components/schemas/InputValidationError'
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/NotAuthorizedErrorDetails'
        '403':
          $ref: '#/components/responses/openapi_components-responses-ForbiddenError-4'
        '404':
          description: Report schedule not found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ReportScheduleNotFoundErrorDetails'
              example:
                type: /silverflow/problems/report/report-schedule-not-found
                title: Report schedule not found
                status: 404
                detail: The report schedule rsk-1e1dAHhgstYTUhlphPzZ is not found
                instance: /silverflow/b4cc37a0-ab24-46b4-aa8c-cc2d6eddf1b6
        '409':
          description: Conflict
          content:
            application/json:
              schema:
                oneOf:
                  - $ref: '#/components/schemas/EntityAlreadyExistsErrorDetails'
                  - $ref: '#/components/schemas/openapi_components-schemas-ReferencedEntityNotFoundErrorDetails'
                  - $ref: '#/components/schemas/ReferencedEntityArchivedErrorDetails'
              examples:
                EntityAlreadyExistsErrorDetails:
                  $ref: '#/components/examples/EntityAlreadyExistsErrorExample'
                ReferencedEntityNotFoundErrorDetails:
                  $ref: '#/components/examples/openapi_components-examples-ReferencedEntityNotFoundErrorExample'
                ReferencedEntityArchivedErrorDetails:
                  $ref: '#/components/examples/ReferencedEntityArchivedErrorExample'
        '415':
          description: Unsupported mimeType
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/UnsupportedMimeTypeErrorDetails'
              example:
                type: /silverflow/problems/report/unsupported-mime-type
                title: Unsupported mimeType
                status: 415
                detail: Unsupported mimeType 'text/csv'
                instance: /silverflow/b4cc37a0-ab24-46b4-aa8c-cc2d6eddf1b6
        '429':
          $ref: '#/components/responses/openapi_components-responses-TooManyRequestsError-5'
  /distributions:
    post:
      operationId: createDistribution
      summary: Create a Distribution Object
      description: |
        Creates a distribution object.

        When a report associated to the distribution is completed, we will send a link to the generated report to distribution object specified targets.

        Requires the `distributions:Create` permission.

        Please check our detailed reporting guide including best practices integration and other considerations [here](https://docs.silverflow.com/guides/distributing-reports).
      tags:
        - Distributions
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CreateDistributionRequest'
            examples:
              EmailDistribution:
                $ref: '#/components/examples/CreateEmailDistributionRequest'
              SftpDistribution:
                $ref: '#/components/examples/CreateSftpDistributionRequest'
              S3Distribution:
                $ref: '#/components/examples/CreateS3DistributionRequest'
      responses:
        '201':
          description: The created distribution object
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Distribution'
              examples:
                EmailReportDistribution:
                  $ref: '#/components/examples/CreateEmailDistributionResponse'
                SftpReportDistribution:
                  $ref: '#/components/examples/CreateSftpDistributionResponse'
                S3ReportDistribution:
                  $ref: '#/components/examples/CreateS3DistributionResponse'
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                oneOf:
                  - $ref: '#/components/schemas/schemas-InputValidationError'
              examples:
                InputValidationError:
                  $ref: '#/components/examples/InputValidationError'
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/NotAuthorizedError'
              examples:
                NotAuthorizedError:
                  $ref: '#/components/examples/UnauthorizedError'
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/schemas-ForbiddenError'
              examples:
                ForbiddenError:
                  $ref: '#/components/examples/ForbiddenError'
        '429':
          description: Too Many Requests
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/schemas-TooManyRequestsError'
              examples:
                TooManyRequestsError:
                  $ref: '#/components/examples/TooManyRequestsError'
    get:
      operationId: listDistributions
      summary: List Distribution Objects
      description: |
        Lists all active distributions objects.

        Requires the `distributions:List` permission.
      tags:
        - Distributions
      parameters:
        - $ref: '#/components/parameters/type'
        - $ref: '#/components/parameters/parameters-status'
        - $ref: '#/components/parameters/openapi_components-parameters-sortOrder'
        - $ref: '#/components/parameters/openapi_components-parameters-offsetToken'
        - $ref: '#/components/parameters/limit'
      responses:
        '200':
          description: A list of distribution objects
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ListDistributionResponse'
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                oneOf:
                  - $ref: '#/components/schemas/schemas-InputValidationError'
              examples:
                InputValidationError:
                  $ref: '#/components/examples/InputValidationError'
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/NotAuthorizedError'
              examples:
                NotAuthorizedError:
                  $ref: '#/components/examples/UnauthorizedError'
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/schemas-ForbiddenError'
              examples:
                ForbiddenError:
                  $ref: '#/components/examples/ForbiddenError'
        '429':
          description: Too Many Requests
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/schemas-TooManyRequestsError'
              examples:
                TooManyRequestsError:
                  $ref: '#/components/examples/TooManyRequestsError'
  /distributions/{distributionKey}:
    get:
      operationId: getDistribution
      summary: Get a Distribution Object
      description: |
        Returns a distribution object.

        Requires the `distributions:Get` permission.
      tags:
        - Distributions
      parameters:
        - in: path
          name: distributionKey
          required: true
          schema:
            $ref: '#/components/schemas/distributionKey'
      responses:
        '200':
          description: The distribution object
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Distribution'
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                oneOf:
                  - $ref: '#/components/schemas/schemas-InputValidationError'
              examples:
                InputValidationError:
                  $ref: '#/components/examples/InputValidationError'
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/NotAuthorizedError'
              examples:
                NotAuthorizedError:
                  $ref: '#/components/examples/UnauthorizedError'
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/schemas-ForbiddenError'
              examples:
                ForbiddenError:
                  $ref: '#/components/examples/ForbiddenError'
        '404':
          description: Distribution not found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/DistributionNotFoundError'
              examples:
                ReportDistributionNotFoundError:
                  $ref: '#/components/examples/DistributionNotFoundError'
        '429':
          description: Too Many Requests
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/schemas-TooManyRequestsError'
              examples:
                TooManyRequestsError:
                  $ref: '#/components/examples/TooManyRequestsError'
    patch:
      operationId: updateDistribution
      summary: Update a Distribution Object
      description: |
        Updates a distribution object reference and targets.

        Requires the `distributions:Update` permission.
      tags:
        - Distributions
      parameters:
        - in: path
          name: distributionKey
          required: true
          schema:
            $ref: '#/components/schemas/distributionKey'
      requestBody:
        required: true
        content:
          application/merge-patch+json:
            schema:
              $ref: '#/components/schemas/UpdateDistributionRequest'
      responses:
        '200':
          description: The updated distribution object
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Distribution'
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                oneOf:
                  - $ref: '#/components/schemas/schemas-InputValidationError'
              examples:
                InputValidationError:
                  $ref: '#/components/examples/InputValidationError'
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/NotAuthorizedError'
              examples:
                NotAuthorizedError:
                  $ref: '#/components/examples/UnauthorizedError'
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/schemas-ForbiddenError'
              examples:
                ForbiddenError:
                  $ref: '#/components/examples/ForbiddenError'
        '404':
          description: Distribution not found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/DistributionNotFoundError'
              examples:
                ReportDistributionNotFoundError:
                  $ref: '#/components/examples/DistributionNotFoundError'
        '429':
          description: Too Many Requests
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/schemas-TooManyRequestsError'
              examples:
                TooManyRequestsError:
                  $ref: '#/components/examples/TooManyRequestsError'
    delete:
      operationId: archiveDistribution
      summary: Archive a Distribution Object
      description: |
        Archives a distribution object. Distributions will not be used by their associated entities if they are archived.

        Requires the `distributions:Archive` permission.
      tags:
        - Distributions
      parameters:
        - in: path
          name: distributionKey
          required: true
          schema:
            $ref: '#/components/schemas/distributionKey'
      responses:
        '204':
          description: Distribution archived.
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                oneOf:
                  - $ref: '#/components/schemas/schemas-InputValidationError'
              examples:
                InputValidationError:
                  $ref: '#/components/examples/InputValidationError'
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/NotAuthorizedError'
              examples:
                NotAuthorizedError:
                  $ref: '#/components/examples/UnauthorizedError'
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/schemas-ForbiddenError'
              examples:
                ForbiddenError:
                  $ref: '#/components/examples/ForbiddenError'
        '404':
          description: Distribution not found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/DistributionNotFoundError'
              examples:
                ReportDistributionNotFoundError:
                  $ref: '#/components/examples/DistributionNotFoundError'
        '429':
          description: Too Many Requests
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/schemas-TooManyRequestsError'
              examples:
                TooManyRequestsError:
                  $ref: '#/components/examples/TooManyRequestsError'
  /fileSubscription:
    get:
      operationId: ListFileSubscriptions
      summary: List File Subscriptions
      description: |
        Retrieves all file subscriptions for the authenticated agent. 

        Requires the `fileSubscription:List` permission.
      tags:
        - File Subscriptions
      responses:
        '200':
          description: List of file subscriptions
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ListFileSubscriptionsResponse'
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/schemas-InvalidInputError'
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/schemas-UnauthorizedError'
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/components-schemas-ForbiddenError'
        '500':
          description: Internal Server Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/schemas-InternalServerError'
    post:
      operationId: CreateFileSubscription
      summary: Create File Subscription
      description: |
        Creates a new subscription based on the provided list of supported file types along with the `distributionKey`.

        Note: Distributions configured for email deliveries are not supported.

        Requires the `fileSubscription:Create` permission.
      tags:
        - File Subscriptions
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/CreateFileSubscriptionRequest'
      responses:
        '201':
          description: The created file subscription
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/FileSubscription'
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BadRequestError'
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/schemas-UnauthorizedError'
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/components-schemas-ForbiddenError'
        '409':
          description: Conflict
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ConflictError'
        '500':
          description: Internal Server Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/schemas-InternalServerError'
  /fileSubscription/{subscriptionKey}:
    put:
      operationId: PutFileSubscription
      summary: Update File Subscription
      description: |
        Updates an existing subscription.

        Note: Distributions configured for email deliveries are not supported.

        Requires the `fileSubscription:Update` permission.
      tags:
        - File Subscriptions
      parameters:
        - name: subscriptionKey
          in: path
          required: true
          schema:
            $ref: '#/components/schemas/SubscriptionKey'
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/UpdateFileSubscriptionRequest'
      responses:
        '200':
          description: The updated file subscription
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/FileSubscription'
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BadRequestError'
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/schemas-UnauthorizedError'
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/components-schemas-ForbiddenError'
        '404':
          description: Not Found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/NotFoundError'
        '409':
          description: Conflict
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ConflictError'
        '500':
          description: Internal Server Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/schemas-InternalServerError'
    delete:
      operationId: DeleteFileSubscription
      summary: Delete File Subscription
      description: |
        Deletes an existing subscription. The subscription will be permanently removed
        and can no longer be used for file processing.

        Requires the `fileSubscription:Delete` permission.
      tags:
        - File Subscriptions
      parameters:
        - name: subscriptionKey
          in: path
          required: true
          schema:
            $ref: '#/components/schemas/SubscriptionKey'
      responses:
        '204':
          description: Subscription successfully deleted
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/BadRequestError'
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/schemas-UnauthorizedError'
        '403':
          description: Forbidden
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/components-schemas-ForbiddenError'
        '404':
          description: Not Found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/NotFoundError'
        '500':
          description: Internal Server Error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/schemas-InternalServerError'
  /riskAssessments:
    post:
      operationId: performRiskAssessment
      summary: Perform a risk assessment for a given provider
      description: |
        This endpoint is used to do a risk assessment outside of the transaction flow. It returns a risk assessment, along with a response from the given provider.

        Requires the `riskAsessments:Create` permission.
      tags:
        - Transaction Risk Assessment
      requestBody:
        description: |
          The POST body needs to have all the necessary information required to do a risk assessment.
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/RiskAssessmentRequest'
            examples:
              FraudioRequest:
                $ref: '#/components/examples/perform-risk-assessment-fraudio'
              CybersourceRequest:
                $ref: '#/components/examples/perform-risk-assessment-cybersource'
      responses:
        '201':
          headers:
            Location:
              description: The URL of the risk assessment
              schema:
                type: string
          description: Risk assessment created
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RiskAssessmentResult'
        '400':
          description: Bad Request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/openapi_components-schemas-InvalidInputErrorDetails-2'
              examples:
                InvalidInputErrorExample:
                  $ref: '#/components/examples/components-examples-InvalidInputErrorExample'
        '401':
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/schemas-NotAuthorizedErrorDetails'
        '408':
          description: Provider timeout
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RiskProviderTimeoutError'
        '409':
          description: No customer token
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RiskProviderNoCustomerTokenError'
        '422':
          description: The server was unable to process the request.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/MerchantAcceptorNotFoundError'
        '500':
          description: Risk provider unexpected error
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/RiskProviderUnexpectedError'
  /networkTokens:
    post:
      operationId: createNetworkToken
      summary: Create Network Token
      description: |
        Used to let Silverflow create a network token on behalf of the caller.

        Requires the `networkTokens:Create` permission.
      tags:
        - Network Tokenization
      requestBody:
        description: |
          Create a network token.
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/TokenCreate'
            example:
              enrollmentKey: enr-25os7SQOxkKeQwUKYXIG
              type: merchant
              cardData:
                number: '1234123412341234'
                expiryMonth: 1
                expiryYear: 2020
                cvc: '123'
                holder:
                  name: Joe Cardholder
                  email: joe@nowhere.com
                  phoneNumber: +31(0)850609160
                  billingAddress:
                    countryCode:
                      alpha2: NL
                    city: Amsterdam
                    line1: Rokin 1
                    postalCode: 1000AB
      responses:
        '200':
          description: The network token entity that matches the enrollment key and the given PAN.
          headers:
            Location:
              description: The URL of the returned token
              schema:
                type: string
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Token'
              example:
                key: ntk-1e1dAHhgstYTUhlphPzZ
                status: active
                type: merchant
                network: mastercard
                provider: scof
                agentKey: cgt-1UF2NafdfrdPMf2XrS2
                merchantKey: mct-3Jrv9Sq4SBQhrsHJZgYK
                enrollmentKey: enr-25os7SQOxkKeQwUKYXIG
                lastTokenRefresh: '2023-01-19T14:31:46Z'
                created: '2023-01-19T14:15:22Z'
                lastModified: '2023-01-19T14:31:46Z'
                version: 2
        '201':
          description: The newly created network token entity.
          headers:
            Location:
              description: The URL of the newly created network token
              schema:
                type: string
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Token'
              example:
                key: ntk-1e1dAHhgstYTUhlphPzZ
                status: requested
                type: merchant
                network: mastercard
                provider: scof
                agentKey: cgt-1UF2NafdfrdPMf2XrS2
                merchantKey: mct-3Jrv9Sq4SBQhrsHJZgYK
                enrollmentKey: enr-25os7SQOxkKeQwUKYXIG
                created: '2023-01-19T14:15:22Z'
                version: 1
        '400':
          $ref: '#/components/responses/openapi_components-responses-BadRequestError'
        '401':
          $ref: '#/components/responses/openapi_components-responses-UnauthorizedError-5'
        '403':
          $ref: '#/components/responses/openapi_components-responses-ForbiddenError-5'
        '409':
          $ref: '#/components/responses/components-responses-ConflictError'
        '422':
          $ref: '#/components/responses/responses-UnprocessableContentError'
        '429':
          $ref: '#/components/responses/openapi_components-responses-TooManyRequestsError-6'
        '500':
          $ref: '#/components/responses/openapi_components-responses-InternalServerError-2'
        '503':
          $ref: '#/components/responses/components-responses-ServiceUnavailableError'
    get:
      operationId: listNetworkTokens
      summary: List Network Tokens
      description: |
        This operation returns a (paged) list of all the stored network tokens for the authenticated Agent. 

        Requires `networkTokens:List` permission.
      tags:
        - Network Tokenization
      parameters:
        - $ref: '#/components/parameters/parameters-enrollmentKey'
        - $ref: '#/components/parameters/components-parameters-merchantKey'
        - $ref: '#/components/parameters/tokenStatus'
        - $ref: '#/components/parameters/openapi_components-parameters-offsetToken'
        - $ref: '#/components/parameters/components-parameters-limit'
        - $ref: '#/components/parameters/openapi_components-parameters-sortOrder-2'
      responses:
        '200':
          description: A (paged) list of network tokens
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/TokensPage'
        '400':
          $ref: '#/components/responses/openapi_components-responses-BadRequestError'
        '401':
          $ref: '#/components/responses/openapi_components-responses-UnauthorizedError-5'
        '403':
          $ref: '#/components/responses/openapi_components-responses-ForbiddenError-5'
        '429':
          $ref: '#/components/responses/openapi_components-responses-TooManyRequestsError-6'
        '500':
          $ref: '#/components/responses/openapi_components-responses-InternalServerError-2'
        '503':
          $ref: '#/components/responses/components-responses-ServiceUnavailableError'
  /networkTokens/{networkTokenKey}:
    get:
      operationId: getNetworkToken
      summary: Get Network Token
      description: |
        Returns a network token by its key.

        Requires the `networkTokens:Get` permission.
      tags:
        - Network Tokenization
      parameters:
        - $ref: '#/components/parameters/networkTokenKey'
      responses:
        '200':
          description: A network token entity
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Token'
        '400':
          $ref: '#/components/responses/openapi_components-responses-BadRequestError'
        '401':
          $ref: '#/components/responses/openapi_components-responses-UnauthorizedError-5'
        '403':
          $ref: '#/components/responses/openapi_components-responses-ForbiddenError-5'
        '404':
          $ref: '#/components/responses/openapi_components-responses-NotFoundError-2'
        '429':
          $ref: '#/components/responses/openapi_components-responses-TooManyRequestsError-6'
        '500':
          $ref: '#/components/responses/openapi_components-responses-InternalServerError-2'
        '503':
          $ref: '#/components/responses/components-responses-ServiceUnavailableError'
    delete:
      operationId: archiveNetworkToken
      summary: Archive Network Token
      description: |
        Used to archive a network token. This operation is not reversable, and will make the network token unusable.

        Requires the `networkTokens:Archive` permission.
      tags:
        - Network Tokenization
      parameters:
        - $ref: '#/components/parameters/networkTokenKey'
      responses:
        '202':
          description: Network token archive request accepted.
        '400':
          $ref: '#/components/responses/openapi_components-responses-BadRequestError'
        '401':
          $ref: '#/components/responses/openapi_components-responses-UnauthorizedError-5'
        '403':
          $ref: '#/components/responses/openapi_components-responses-ForbiddenError-5'
        '404':
          $ref: '#/components/responses/openapi_components-responses-NotFoundError-2'
        '409':
          $ref: '#/components/responses/components-responses-ConflictError'
        '429':
          $ref: '#/components/responses/openapi_components-responses-TooManyRequestsError-6'
        '500':
          $ref: '#/components/responses/openapi_components-responses-InternalServerError-2'
        '503':
          $ref: '#/components/responses/components-responses-ServiceUnavailableError'
  /networkTokens/{networkTokenKey}/networkTokenData:
    get:
      operationId: getNetworkTokenData
      summary: Get Network Token Data
      description: |
        The contents of the network token that is associated with a network token key. 

        It does not include the network token cryptogram, this has to be created with the [Create Network Token Cryptogram](#/operation/createNetworkTokenCryptogram) endpoint.

        Requires the `networkTokens:GetNetworkTokenData` permission.
      tags:
        - Network Tokenization
      parameters:
        - $ref: '#/components/parameters/networkTokenKey'
      responses:
        '200':
          description: Network token data.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/TokenData'
              examples:
                GetTokenDataMastercard:
                  $ref: '#/components/examples/get-token-data-response-mastercard'
                GetTokenDataVisa:
                  $ref: '#/components/examples/get-token-data-response-visa'
        '400':
          $ref: '#/components/responses/openapi_components-responses-BadRequestError'
        '401':
          $ref: '#/components/responses/openapi_components-responses-UnauthorizedError-5'
        '403':
          $ref: '#/components/responses/openapi_components-responses-ForbiddenError-5'
        '404':
          $ref: '#/components/responses/openapi_components-responses-NotFoundError-2'
        '409':
          $ref: '#/components/responses/components-responses-ConflictError'
        '429':
          $ref: '#/components/responses/openapi_components-responses-TooManyRequestsError-6'
        '500':
          $ref: '#/components/responses/openapi_components-responses-InternalServerError-2'
        '503':
          $ref: '#/components/responses/components-responses-ServiceUnavailableError'
  /networkTokens/{networkTokenKey}/cryptogram:
    post:
      operationId: createNetworkTokenCryptogram
      summary: Create Network Token Cryptogram
      description: |
        Used to obtain a DSRP or TAVV cryptogram for the referenced network token. These should be provided for each initial CIT and MIT charges and for all subsequent CIT charges.

        Requires the `networkTokens:CreateNetworkTokenCryptogram` permission.
      tags:
        - Network Tokenization
      parameters:
        - $ref: '#/components/parameters/networkTokenKey'
      responses:
        '200':
          description: The created network token cryptogram.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/TokenCryptogram'
        '400':
          $ref: '#/components/responses/openapi_components-responses-BadRequestError'
        '401':
          $ref: '#/components/responses/openapi_components-responses-UnauthorizedError-5'
        '403':
          $ref: '#/components/responses/openapi_components-responses-ForbiddenError-5'
        '404':
          $ref: '#/components/responses/openapi_components-responses-NotFoundError-2'
        '409':
          $ref: '#/components/responses/components-responses-ConflictError'
        '422':
          $ref: '#/components/responses/responses-UnprocessableContentError'
        '429':
          $ref: '#/components/responses/openapi_components-responses-TooManyRequestsError-6'
        '500':
          $ref: '#/components/responses/openapi_components-responses-InternalServerError-2'
        '503':
          $ref: '#/components/responses/components-responses-ServiceUnavailableError'
x-webhooks:
  authenticationStatus:
    post:
      operationId: bepWebhook
      summary: BEP Authentication Status Update
      description: |
        The authentication status updates will be sent to the `webhook` registered during 
        the [creation of a BEP](#operation/bep) authentication intent.
      tags:
        - BEP Authentication
      security: []
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/AuthenticationNotification'
      responses:
        2XX:
          description: Respond with 2XX to indicate that the notification was received successfully.
  events.complianceCases.received:
    post:
      summary: Compliance Case Received
      security: []
      operationId: complianceCaseEventReceived
      tags:
        - Compliance Cases Events
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ComplianceCaseEventNotificationVersion1_0'
            examples:
              preCompliance:
                $ref: '#/components/examples/pre-compliance'
              compliance:
                $ref: '#/components/examples/compliance'
      responses:
        default:
          description: Event Notification that is sent when a Compliance Case is received. The complianceStage field in the data indicates whether it is preCompliance or compliance stage.
  events.disputes.received:
    post:
      summary: Received
      security: []
      operationId: disputeEventReceived
      tags:
        - Disputes Events
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/DisputeEventNotificationVersion1_0Received'
            examples:
              received:
                $ref: '#/components/examples/received'
      responses:
        default:
          description: Event Notification that is sent when a Dispute is received.
  events.disputes.acceptanceInitiated:
    post:
      summary: Acceptance Initiated
      security: []
      operationId: disputeEventAcceptanceInitiated
      tags:
        - Disputes Events
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/DisputeEventNotificationVersion1_0AcceptanceInitiated'
            examples:
              acceptanceInitiated:
                $ref: '#/components/examples/acceptance-initiated'
      responses:
        default:
          description: Event Notification that is sent when acceptance is initiated for a Dispute.
  events.disputes.acceptanceFailed:
    post:
      summary: Acceptance Failed
      security: []
      operationId: disputeEventAcceptanceFailed
      tags:
        - Disputes Events
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/DisputeEventNotificationVersion1_0AcceptanceFailed'
            examples:
              acceptanceFailed:
                $ref: '#/components/examples/acceptance-failed'
      responses:
        default:
          description: Event Notification that is sent when acceptance fails for a Dispute.
  events.disputes.defenseInitiated:
    post:
      summary: Defense Initiated
      security: []
      operationId: disputeEventDefenseInitiated
      tags:
        - Disputes Events
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/DisputeEventNotificationVersion1_0DefenseInitiated'
            examples:
              defenseInitiated:
                $ref: '#/components/examples/defense-initiated'
      responses:
        default:
          description: Event Notification that is sent when defense is initiated for a Dispute.
  events.disputes.defenseFailed:
    post:
      summary: Defense Failed
      security: []
      operationId: disputeEventDefenseFailed
      tags:
        - Disputes Events
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/DisputeEventNotificationVersion1_0DefenseFailed'
            examples:
              defenseFailed:
                $ref: '#/components/examples/defense-failed'
      responses:
        default:
          description: Event Notification that is sent when defense fails for a Dispute.
  events.disputes.evidenceSubmitted:
    post:
      summary: Evidence Submitted
      security: []
      operationId: disputeEventEvidenceSubmitted
      tags:
        - Disputes Events
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/DisputeEventNotificationVersion1_0EvidenceSubmitted'
            examples:
              received:
                $ref: '#/components/examples/evidence-submitted'
      responses:
        default:
          description: Event Notification that is sent when evidence is submitted for a Dispute.
  events.disputes.evidenceRejected:
    post:
      summary: Evidence Rejected
      security: []
      operationId: disputeEventEvidenceRejected
      tags:
        - Disputes Events
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/DisputeEventNotificationVersion1_0EvidenceRejected'
            examples:
              evidenceRejected:
                $ref: '#/components/examples/evidence-rejected'
      responses:
        default:
          description: Event Notification that is sent when evidence is rejected for a Dispute.
  events.disputes.awaitingResponse:
    post:
      summary: Awaiting Response
      security: []
      operationId: disputeEventAwaitingResponse
      tags:
        - Disputes Events
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/DisputeEventNotificationVersion1_0AwaitingResponse'
            examples:
              received:
                $ref: '#/components/examples/awaiting-response'
      responses:
        default:
          description: Event Notification that is sent when the action on the Dispute is awaiting a response.
  events.disputes.closedAccepted:
    post:
      summary: Closed Accepted
      security: []
      operationId: disputeEventClosedAccepted
      tags:
        - Disputes Events
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/DisputeEventNotificationVersion1_0ClosedAccepted'
            examples:
              closedAccepted:
                $ref: '#/components/examples/closed-accepted'
      responses:
        default:
          description: Event Notification that is sent when the Dispute has been accepted.
  events.disputes.closedWon:
    post:
      summary: Closed Won
      security: []
      operationId: disputeEventClosedWon
      tags:
        - Disputes Events
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/DisputeEventNotificationVersion1_0ClosedWon'
            examples:
              closedWon:
                $ref: '#/components/examples/closed-won'
      responses:
        default:
          description: Event Notification that is sent when the Dispute has been won.
  events.disputes.closedLost:
    post:
      summary: Closed Lost
      security: []
      operationId: disputeEventClosedLost
      tags:
        - Disputes Events
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/DisputeEventNotificationVersion1_0ClosedLost'
            examples:
              closedLost:
                $ref: '#/components/examples/closed-lost'
      responses:
        default:
          description: Event Notification that is sent when the Dispute is lost.
  events.disputes.reversed:
    post:
      summary: Reversed
      security: []
      operationId: disputeEventReversed
      tags:
        - Disputes Events
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/DisputeEventNotificationVersion1_0Reversed'
            examples:
              reversed:
                $ref: '#/components/examples/reversed'
      responses:
        default:
          description: Event Notification that is sent when the issuer has reversed their last action on the Dispute.
  events.disputes.withdrawn:
    post:
      summary: Withdrawn
      security: []
      operationId: disputeEventWithdrawn
      tags:
        - Disputes Events
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/DisputeEventNotificationVersion1_0Withdrawn'
            examples:
              withdrawn:
                $ref: '#/components/examples/withdrawn'
      responses:
        default:
          description: Event Notification that is sent when the issuer has withdrawn their pre-arbitration attempt on the Dispute.
  events.fraudNotifications:
    post:
      summary: Received
      security: []
      operationId: fraudNotificationEvent
      tags:
        - Fraud Notification Events
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/FraudNotificationEventNotificationVersion1_0Received'
      responses:
        default:
          description: Event Notification that is sent when a Fraud Notification is received.
  events.distributions.sent:
    post:
      summary: Distribution Sent
      security: []
      operationId: distributionsSentEvent
      tags:
        - Distribution Events
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/DistributionsSentEventNotificationVersion1_0'
            examples:
              successfulDistribution:
                $ref: '#/components/examples/distributions-sent-success'
              failedDistribution:
                $ref: '#/components/examples/distributions-sent-failure'
      responses:
        default:
          description: Event Notification that is sent when a distribution is sent.
  events.ammfSubmissions.submitted:
    post:
      summary: Submission Submitted
      security: []
      operationId: ammfSubmissionEventSubmitted
      tags:
        - AMMF Submission Events
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/AmmfSubmissionSubmittedEventNotification1_0'
            examples:
              submissionSubmitted:
                $ref: '#/components/examples/ammf-submission-submitted'
      responses:
        default:
          description: Event Notification that is sent when a AMMF Submission file is submitted to the card network.
  events.ammfSubmissions.approved:
    post:
      summary: Submission Approved
      security: []
      operationId: ammfSubmissionEventApproved
      tags:
        - AMMF Submission Events
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/AmmfSubmissionApprovedEventNotification1_0'
            examples:
              submissionSubmitted:
                $ref: '#/components/examples/ammf-submission-approved'
      responses:
        default:
          description: Event Notification that is sent when a AMMF Submission file is approved by the card network.
  events.ammfSubmissions.rejected:
    post:
      summary: Submission Rejected
      security: []
      operationId: ammfSubmissionEventRejected
      tags:
        - AMMF Submission Events
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/AmmfSubmissionRejectedEventNotification1_0'
            examples:
              submissionSubmitted:
                $ref: '#/components/examples/ammf-submission-rejected'
      responses:
        default:
          description: Event Notification that is sent when a AMMF Submission file is rejected by the card network.
  events.reports.updated:
    post:
      summary: Report Updated
      security: []
      operationId: reportNotificationEvent
      tags:
        - Report Events
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ReportEventNotification1_0'
            examples:
              reportsCompleted:
                $ref: '#/components/examples/report-completed'
              reportsFailed:
                $ref: '#/components/examples/report-failed'
      responses:
        default:
          description: Event Notification that is sent when a report status changes.
  events.reconciliation.networkFundsTransferCompleted:
    post:
      summary: Network Funds Transfer Completed
      security: []
      operationId: networkFundsTransferCompleted
      tags:
        - Reconciliation Events
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/NftCompletedNotificationVersion1_0'
            examples:
              closedAccepted:
                $ref: '#/components/examples/nft-completed'
      responses:
        default:
          description: Event Notification that is sent when a Network Funds Transfer is updated to completed.
  events.clearing.abandoned:
    post:
      summary: Abandoned Clearing Event
      operationId: abandonedClearing
      tags:
        - Clearing Events
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ClearingEventNotificationVersion1_0AbandonedClearingEvent'
      responses:
        default:
          description: Event published when a clearing record is abandoned. Supports all card networks.
  events.clearing.offlineRefundOutcome:
    post:
      summary: Offline Refund Outcome Event
      operationId: offlineRefundOutcome
      tags:
        - Clearing Events
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ClearingEventNotificationVersion1_0OfflineRefundOutcomeEvent'
      responses:
        default:
          description: Public Event to generate when a offline refund is in state cleared or abandoned.
  events.processorTokens.created:
    post:
      summary: Processor Token Created
      security: []
      operationId: processorTokenCreated
      tags:
        - Processor Tokens Events
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ProcessorTokenEventNotification1_0Created'
            examples:
              created:
                $ref: '#/components/examples/created'
      responses:
        default:
          description: Event Notification sent when a Processor Token is created.
  events.processorTokens.archived:
    post:
      summary: Processor Token Archived
      security: []
      operationId: processorTokenArchived
      tags:
        - Processor Tokens Events
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ProcessorTokenEventNotification1_0Archived'
            examples:
              archived:
                $ref: '#/components/examples/archived'
      responses:
        default:
          description: Event Notification sent when a Processor Token is archived.
  events.processorTokens.cvcDeleted:
    post:
      summary: Processor Token CVC Deleted
      security: []
      operationId: processorTokenCvcDeleted
      tags:
        - Processor Tokens Events
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ProcessorTokenEventNotification1_0CvcDeleted'
            examples:
              cvcDeleted:
                $ref: '#/components/examples/cvc-deleted'
      responses:
        default:
          description: Event Notification sent when CVC data is deleted from a Processor Token.
  events.charges.action:
    post:
      summary: Charge Action
      security: []
      operationId: chargeActionEvent
      tags:
        - Charges Events
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ChargeActionEventNotificationVersion1_0'
            examples:
              authorization:
                $ref: '#/components/examples/authorization'
              reversal:
                $ref: '#/components/examples/reversal'
              refund:
                $ref: '#/components/examples/refund'
              offline-refund:
                $ref: '#/components/examples/offline-refund'
              clearing:
                $ref: '#/components/examples/clearing'
              increment:
                $ref: '#/components/examples/increment'
      responses:
        default:
          description: Event Notification that is sent when an Action is created on a Charge.
  events.networkTokens.created:
    post:
      summary: Network Token Created
      security: []
      operationId: networkTokenCreated
      tags:
        - Network Tokens Events
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/NetworkTokenEventNotification1_0Created'
            examples:
              created:
                $ref: '#/components/examples/created-2'
      responses:
        default:
          description: Event Notification sent when a Network Token is created.
  events.networkTokens.updated:
    post:
      summary: Network Token Updated
      security: []
      operationId: networkTokenUpdated
      tags:
        - Network Tokens Events
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/NetworkTokenEventNotification1_0Updated'
            examples:
              updated:
                $ref: '#/components/examples/updated'
      responses:
        default:
          description: Event Notification sent when a Network Token is updated.
  events.networkTokens.archived:
    post:
      summary: Network Token Archived
      security: []
      operationId: networkTokenArchived
      tags:
        - Network Tokens Events
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/NetworkTokenEventNotification1_0Archived'
            examples:
              archived:
                $ref: '#/components/examples/archived-2'
      responses:
        default:
          description: Event Notification sent when a Network Token is archived.
  events.networkTokens.failed:
    post:
      summary: Network Token Failed
      security: []
      operationId: networkTokenFailed
      tags:
        - Network Tokens Events
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/NetworkTokenEventNotification1_0Failed'
            examples:
              failed:
                $ref: '#/components/examples/failed'
      responses:
        default:
          description: Event Notification sent when a Network Token creation fails.
components:
  securitySchemes:
    ApiKey:
      description: |-
        The primary method of authenticating to the Silverflow API is through API keys.

        API keys can be created by calling the [createApiKey](#operation/createApiKey) endpoint. You can create up to 40 API keys and also update and delete them, allowing for _credential rotation_.

        The _Agent Activation_ process will generate an initial API Key for you. See [Activate Agent](#section/Getting-Started).

        A call to the [createApiKey](#operation/createApiKey) endpoint will return the following structure:

        ```json
        {
            "key": "apk-1wtRxni5IsPsSpBLWpwr",
            "status": "active",
            "agentKey": "cgt-1wtRvFLIjDOyyUR5Q2LB",
            "description": "Data lake API key",
            "permissions": [
                "charges:List",
                "reports:All"
            ],
            "created": "2021-06-22T11:21:45.115Z",
            "secret": "FWtnOOHAjbD6rNxWWEeVOCj7JXSEPGJQ",
            "version": 1
        }
        ```

        > **Important:** The `secret` is only returned once in the response to the `createApiKey` call.

        Once created, the `key` and `secret` fields from the API key must be used in the HTTP `Authorization` header using the `Basic` scheme.
        The Basic scheme requires a **username** and **password** to be specified, separated by a `:` (colon) and Base64 encoded.

        Use the following values from the API key to construct a Basic authentication header:

        | Basic field | API key field | Example |
        | ----------- | ------------- | ------- |
        | username | `key` | `apk-1wtRxni5IsPsSpBLWpwr` |
        | password | `secret` | `FWtnOOHAjbD6rNxWWEeVOCj7JXSEPGJQ` |

        In pseudo-code a valid HTTP Basic Authentication header would be constructed as follows:

        ```ts
        const apiKeyId = "apk-1wtRxni5IsPsSpBLWpwr";
        const apiKeySecret = "FWtnOOHAjbD6rNxWWEeVOCj7JXSEPGJQ";
        const authnValue = "Basic " + base64Encode(apiKeyId + ":" + apiKeySecret);
        request.setHeader("Authorization", authnValue);
        ```

        Using the values from the example a valid HTTP request would look like the following:

        ```http
        GET /v1/agents/current HTTP/1.1
        Accept: application/json
        Authorization: Basic YXBrLTF3dFJ4bmk1SXNQc1NwQkxXcHdyOkZXdG5PT0hBamJENnJOeFdXRWVWT0NqN0pYU0VQR0pR
        ```

        More information on the Basic scheme can be found in [RFC-7617 - The 'Basic' HTTP Authentication Scheme](https://datatracker.ietf.org/doc/html/rfc7617).
      type: http
      scheme: basic
    BearerToken:
      description: |-
        Bearer tokens are temporary security credentials that can be used to authorize 'third parties' (bearers) access to the Silverflow API on behalf of the agent.

        These tokens are created by calling the [createAgentBearerToken](#operation/createAgentBearerToken) endpoint.

        Once created the `token` field must be used in the HTTP `Authorization` header using the `Bearer` scheme.
        Here's an example of an HTTP request with a bearer token:

        ```http
        GET /v1/merchants/mct-1hPdFhmgaBzMS191nIbJ HTTP/1.1
        Accept: application/json
        Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...40EFOgxf_3I6mPZ16bXqHd5tUyApgl0mNOAXPm5AhnA

        ```

        More information on the Bearer scheme can be found in [RFC-6750 - The OAuth 2.0 Authorization Framework: Bearer Token Usage](https://datatracker.ietf.org/doc/html/rfc6750).
      type: http
      scheme: bearer
      bearerFormat: JWT
    MutualTLS:
      type: apiKey
      in: header
      name: '-'
      description: |
        The client must set up mTLS connection with a valid X.509 client certificate signed by a customer-provided CA (certificate authority) that is registered to a specific agent. The customer-provided CA certificate must be shared and added to Silverflow's trust store prior to calling endpoints.

        Certificate validation happens at the transport layer during TLS handshake. Tenant verification is performed by matching the agent key embedded in the client certificate against the agent key embedded in the trusted CA.
  parameters:
    sortOrder:
      name: sortOrder
      description: The sort order, __asc__ending or __desc__ending
      in: query
      required: false
      schema:
        type: string
        enum:
          - asc
          - desc
      example: desc
    limit:
      name: limit
      description: The number of items to return
      in: query
      required: false
      schema:
        type: integer
        format: int32
        minimum: 1
        maximum: 100
        default: 10
      example: 1
    offsetToken:
      name: offsetToken
      description: The offset token. This token is returned in the response of previous request.
      in: query
      required: false
      schema:
        $ref: '#/components/schemas/offsetToken'
    merchantKey:
      name: merchantKey
      description: |
        Immutable, unique identifier of the merchant
      in: path
      required: true
      schema:
        $ref: '#/components/schemas/merchantKey'
    reference:
      name: reference
      description: User-specified reference for the merchant acceptor.
      in: query
      required: false
      schema:
        $ref: '#/components/schemas/reference'
    acceptorKey:
      name: acceptorKey
      description: |
        Immutable, unique identifier of the merchant acceptor
      in: path
      required: true
      schema:
        $ref: '#/components/schemas/acceptorKey'
    acceptorVersion:
      name: acceptorVersion
      description: |
        Increasing version of the merchant acceptor
      in: path
      required: true
      schema:
        type: string
        pattern: ^(\d+|draft|active)$
    archived:
      name: archived
      description: |
        If set to true it will return only archived merchants.
      in: query
      required: false
      schema:
        type: boolean
    merchantKeyQs:
      name: merchantKey
      description: |
        Immutable, unique identifier of the merchant
      in: query
      required: false
      schema:
        $ref: '#/components/schemas/merchantKey'
    enrollmentKey:
      name: enrollmentKey
      description: |
        Uniquely identifies an Enrollment.
      in: path
      required: true
      schema:
        type: string
        pattern: ^enr-[a-zA-Z0-9]+$
        minLength: 5
        maxLength: 120
    from:
      name: from
      description: Include only items that have a created date _greater than or equal to_ the specified date
      in: query
      required: false
      schema:
        type: string
        format: date-time
      example: '2022-08-13T14:15:23Z'
      allowReserved: true
    to:
      name: to
      description: Include only items that have a created date _less than_ the specified date
      in: query
      required: false
      schema:
        type: string
        format: date-time
      example: '2022-08-15T14:15:23Z'
      allowReserved: true
    screeningKey:
      name: screeningKey
      description: |
        Immutable, unique identifier of the screening
      in: path
      required: true
      schema:
        $ref: '#/components/schemas/screeningKey'
    agentKey:
      name: agentKey
      in: path
      required: true
      description: |
        Uniquely identifies an Agent. When called by an Agent the literal value "current" can be used instead of the
        actual Agent Key.
      schema:
        $ref: '#/components/schemas/agentKey'
    ifMatch:
      name: If-Match
      description: The request condition
      in: header
      required: false
      schema:
        type: integer
        format: int32
    apiKey:
      name: apiKey
      in: path
      required: true
      description: |
        Uniquely identifies an API Key.
      schema:
        $ref: '#/components/schemas/apiKeyKey'
    certificateKey:
      name: certificateKey
      in: path
      required: true
      description: |
        Uniquely identifies a certificate bound to an API Key. It is the `certificateKey` returned when the
        certificate was added.
      schema:
        $ref: '#/components/schemas/certificateKey'
    trustAnchorKey:
      name: trustAnchorKey
      description: |
        Uniquely identifies a Trust Anchor.
      in: path
      required: true
      schema:
        $ref: '#/components/schemas/trustAnchorKey'
    binKey:
      name: binKey
      in: path
      required: true
      description: |
        Uniquely identifies a Bin.
      schema:
        $ref: '#/components/schemas/binKey'
    validFrom:
      name: validFrom
      description: |
        Filter configurations by their validity start date. Only configurations with a validFrom date greater than or equal to this value will be returned. Must be in ISO 8601 date-time format.
      in: query
      required: false
      schema:
        type: string
        format: date-time
      example: '2022-01-26T13:50:12.640Z'
    parameters-offsetToken:
      name: offsetToken
      description: The offset token. This token is returned in the response of previous request.
      in: query
      required: false
      schema:
        $ref: '#/components/schemas/schemas-offsetToken'
    threedsKey:
      name: threedsKey
      in: path
      required: true
      description: The key of the 3DS authentication to get.
      schema:
        $ref: '#/components/schemas/threedsKey'
    bepKey:
      name: bepKey
      in: path
      required: true
      description: |
        Uniquely identifies a BEP authentication.
      schema:
        $ref: '#/components/schemas/bepKey'
    chargeKey:
      name: chargeKey
      in: path
      required: true
      description: |
        Uniquely identifies a charge.
      schema:
        $ref: '#/components/schemas/chargeKey'
    components-parameters-offsetToken:
      name: offsetToken
      description: The offset token. This token is returned in the response of previous request.
      in: query
      required: false
      schema:
        $ref: '#/components/schemas/components-schemas-offsetToken'
    parameters-from:
      name: from
      description: Include only items that have a created date _greater than or equal to_ the specified date
      in: query
      required: false
      schema:
        type: string
        format: iso-8601-date-time
      example: '2022-07-07T13:42:00Z'
    parameters-to:
      name: to
      description: Include only items that have a created date _less than_ the specified date
      in: query
      required: false
      schema:
        type: string
        format: iso-8601-date-time
      example: '2022-07-08T13:42:00Z'
    date:
      name: date
      description: Include only items that have a created date _equal_ to the specified date
      in: query
      required: false
      schema:
        type: string
        format: date
      example: '2022-07-07'
    transactionReferenceQs:
      name: transactionReference
      description: Include only items with the specified transactionReference
      in: query
      required: false
      schema:
        $ref: '#/components/schemas/transactionReference'
    IdempotencyKey:
      in: header
      name: Idempotency-Key
      schema:
        type: string
        description: |
          This key is used to deduplicate requests that are retried. For more information see the section on [Idempotency](https://docs.silverflow.com/guides/idempotency).
        minLength: 1
        example: 28gKCluIEKp8jVboUyr2
      required: false
    initialChargeKey:
      name: initialChargeKey
      in: path
      required: true
      description: |
        Uniquely identifies the initial charge in the case of a recurring sequence.
      schema:
        $ref: '#/components/schemas/chargeKey'
    actionKey:
      name: actionKey
      in: path
      required: true
      description: |
        Uniquely identifies an action.
      schema:
        $ref: '#/components/schemas/actionKey'
    bulkCardInfoNetwork:
      name: network
      description: |
        The card scheme for which the Card Info report is being requested.
      in: path
      required: true
      schema:
        type: string
        enum:
          - american-express
          - bancontact
          - diners
          - discover
          - mastercard
          - visa
    network:
      name: network
      description: The card network for which the currency rates are requested.
      in: path
      required: true
      schema:
        type: string
        enum:
          - mastercard
          - visa
    effectiveDate:
      name: effectiveDate
      description: The date for which the currency rates are effective. Ex:2022-10-30.
      in: path
      required: true
      schema:
        type: string
        format: date
    openapi_components-parameters-offsetToken:
      name: offsetToken
      description: The offset token. This token is returned in the response of previous request.
      in: query
      required: false
      schema:
        $ref: '#/components/schemas/openapi_components-schemas-offsetToken'
    parameters-reference:
      name: reference
      description: |
        Reference of the entity provided in the create processor token request
      in: query
      required: false
      schema:
        type: string
        minLength: 5
        maxLength: 120
    processorTokenKey:
      name: processorTokenKey
      description: |
        Uniquely identifies a processor token entity
      in: path
      required: true
      schema:
        $ref: '#/components/schemas/components-schemas-processorTokenKey'
    processorTokenPublicKey:
      name: processorTokenPublicKey
      description: |
        Uniquely identifies a public key entity used for processor tokenization
      in: query
      required: true
      schema:
        $ref: '#/components/schemas/processorTokenPublicKey'
    parameters-merchantKey:
      name: merchantKey
      description: The merchant identifier to filter charges by.
      in: query
      required: true
      schema:
        $ref: '#/components/schemas/schemas-merchantKey'
    terminalId:
      name: terminalId
      description: The terminal identifier to filter charges by. When provided, only charges for this specific terminal are returned.
      in: query
      required: false
      schema:
        type: string
        minLength: 1
        maxLength: 8
        pattern: ^[a-zA-Z0-9]+$
    disputesSort:
      name: sort
      description: |
        Orders a list by __disputeDate__, __actionDueDate__, __amount__ (ascending or descending).
      in: query
      required: false
      schema:
        type: object
        properties:
          disputeDate:
            type: string
            enum:
              - asc
              - desc
          actionDueDate:
            type: string
            enum:
              - asc
              - desc
          amount:
            type: string
            enum:
              - asc
              - desc
    amountFrom:
      name: amountFrom
      description: |
        The min amount in minor units. For example `$12.34` should be encoded as `1234`. Note that not all
        currencies have 2 minor units. Some have three or zero.
      in: query
      required: false
      schema:
        $ref: '#/components/schemas/openapi_components-schemas-amountValue-2'
    amountTo:
      name: amountTo
      description: |
        The max amount in minor units. For example `$12.34` should be encoded as `1234`. Note that not all
        currencies have 2 minor units. Some have three or zero.
      in: query
      required: false
      schema:
        $ref: '#/components/schemas/openapi_components-schemas-amountValue-2'
    disputeDateFrom:
      name: disputeDateFrom
      description: Include only items that have dispute date _greater or equal_ to the specified date
      in: query
      required: false
      schema:
        type: string
        format: date
      example: '2021-12-01'
    disputeDateTo:
      name: disputeDateTo
      description: Include only items that have dispute date _less than_ the specified date
      in: query
      required: false
      schema:
        type: string
        format: date
      example: '2021-12-31'
    actionDueDateFrom:
      name: actionDueDateFrom
      description: Include only items that have action due date _greater or equal_ to the specified date
      in: query
      required: false
      schema:
        type: string
        format: date
      example: '2021-12-01'
    actionDueDateTo:
      name: actionDueDateTo
      description: Include only items that have action due date _less than_ the specified date
      in: query
      required: false
      schema:
        type: string
        format: date
      example: '2021-12-31'
    disputeStatuses:
      name: disputeStatus
      description: |
        The list (flow)status of a Dispute.
        Example: `disputeStatus=acceptanceInitiated&disputeStatus=defenseInitiated`
      in: query
      required: false
      schema:
        minItems: 0
        maxItems: 7
        type: array
        $ref: '#/components/schemas/disputeStatuses'
      example:
        - acceptanceInitiated
        - defenseInitiated
    disputeStages:
      name: disputeStage
      description: |
        The stage of a Dispute.
        Example: `disputeStage=preArbitrationResponded&disputeStage=chargebackResponded`
      in: query
      style: form
      required: false
      schema:
        maxItems: 5
        $ref: '#/components/schemas/disputeStages'
      example:
        - preArbitrationResponse
        - chargebackResponse
    networkQps:
      name: network
      description: |
        The card networks. Example: `network[]=visa`.
      in: query
      style: form
      schema:
        type: array
        items:
          $ref: '#/components/schemas/schemas-cardNetwork'
    parameters-merchantKeyQs:
      name: merchantKey
      description: |
        Immutable, unique identifier of the merchant
      in: query
      required: false
      schema:
        $ref: '#/components/schemas/components-schemas-merchantKey'
    acceptorKeyQp:
      name: acceptorKey
      description: |
        Immutable, unique identifier of the merchant acceptor
      in: query
      required: false
      schema:
        $ref: '#/components/schemas/openapi_components-schemas-acceptorKey'
    searchKeyword:
      name: text
      description: |
        Keyword to search in a dispute. Keyword will be searched in text fields and ``dispute amount``. Date formatted fields are excluded from text search.
        - ``recei`` matches ``received`` (dispute status)
        - ``REC`` matches ``received`` (dispute status)
        - 50 matches 50 and 500 (dispute amount)
        - 9845 matches 98.45 (dispute amount in minor units)
      in: query
      required: false
      schema:
        type: string
        minLength: 0
        maxLength: 64
        pattern: ^[a-zA-Z0-9- .]+$
        example: received
    closed:
      name: closed
      in: query
      required: false
      schema:
        $ref: '#/components/schemas/closed'
    actionRequired:
      name: actionRequired
      in: query
      required: false
      schema:
        $ref: '#/components/schemas/actionRequired'
    disputeKey:
      name: disputeKey
      in: path
      required: true
      description: |
        Uniquely identifies a Dispute.
      schema:
        $ref: '#/components/schemas/disputeKey'
    parameters-sortOrder:
      name: sortOrder
      description: The sort order (ascending or descending)
      in: query
      required: false
      schema:
        type: string
        enum:
          - asc
          - desc
      example: desc
    owner:
      name: owner
      description: The owner of a Dispute Document
      in: query
      required: false
      schema:
        type: string
        enum:
          - issuer
          - acquirer
          - merchant
          - card-network
    status:
      name: status
      description: The status of a Dispute Document
      in: query
      required: false
      schema:
        type: string
        enum:
          - pending
          - active
          - archived
    initiator:
      name: initiator
      description: The owner of a dispute event
      in: query
      required: false
      schema:
        type: string
        enum:
          - issuer
          - acquirer
          - card-network
          - merchant
          - auto-defender
    eventHistoryKey:
      name: eventHistoryKey
      description: Uniquely identifies a dispute history event
      in: path
      required: true
      schema:
        $ref: '#/components/schemas/DisputeEventHistoryKey'
    documentKey:
      name: documentKey
      in: path
      required: true
      description: |
        Uniquely identifies a Document.
      schema:
        $ref: '#/components/schemas/documentKey'
    fraudNotificationKey:
      name: fraudNotificationKey
      in: path
      required: true
      description: |
        Uniquely identifies a Fraud Notification.
      schema:
        $ref: '#/components/schemas/fraudNotificationKey'
    components-parameters-from:
      name: from
      description: Include only items that have a created date _greater than or equal to_ the specified date
      in: query
      required: false
      schema:
        type: string
        format: date-time
      example: '2022-08-15T14:15:23Z'
    components-parameters-to:
      name: to
      description: Include only items that have a created date _less than_ the specified date
      in: query
      required: false
      schema:
        type: string
        format: date-time
      example: '2022-08-15T14:15:23Z'
    eventSubscriptionKey:
      name: eventSubscriptionKey
      description: |
        Uniquely identifies an Event Subscription.
      in: path
      required: true
      schema:
        $ref: '#/components/schemas/eventSubscriptionKey'
    merchantReference:
      name: merchantReference
      description: Merchant reference number used by the Agent. Must not start with "mct-".
      in: query
      required: false
      schema:
        $ref: '#/components/schemas/merchantReference'
    openapi_components-parameters-from:
      name: from
      description: Include only items that have a created date _greater than or equal to_ the specified date
      in: query
      required: false
      schema:
        type: string
        format: date-time
      example: '{{yesterdayTimestamp}}'
    openapi_components-parameters-to:
      name: to
      description: Include only items that have a created date _less than_ the specified date
      in: query
      required: false
      schema:
        type: string
        format: date-time
      example: '{{currentTimestamp}}'
    binPageOffsetToken:
      name: offsetToken
      description: The offset token. This token is returned in the response of previous request.
      in: query
      required: false
      schema:
        $ref: '#/components/schemas/binPageOffsetToken'
    fundsTransferDatePath:
      name: fundsTransferDate
      description: Includes only items that have a funds transfer date _equal_ to the specified date
      example: '2021-01-31'
      in: path
      required: true
      schema:
        type: string
        format: date
    networkFundsTransferKey:
      name: networkFundsTransferKey
      in: path
      required: true
      description: |
        Uniquely identifies a networkFundsTransfer object.
      schema:
        $ref: '#/components/schemas/NetworkFundsTransferKey'
    openapi_components-parameters-offsetToken-2:
      name: offsetToken
      description: The offset token. This token is returned in the response of previous request.
      in: query
      required: false
      schema:
        $ref: '#/components/schemas/requestOffsetToken'
    networkFundsTransferKeyPath:
      name: key
      in: path
      required: true
      description: |
        Uniquely identifies a networkFundsTransfer object.
      schema:
        $ref: '#/components/schemas/NetworkFundsTransferKey'
    createdFrom:
      in: query
      name: createdFrom
      required: false
      description: Include only items that have a created date greater than or equal to the specified date
      schema:
        type: string
        format: date-time
    createdTo:
      in: query
      name: createdTo
      required: false
      description: Include only items that have a created date less than or equal to the specified date
      schema:
        type: string
        format: date-time
    parameters-limit:
      in: query
      name: limit
      required: false
      description: The maximum number of reports to retrieve in a single request.
      schema:
        type: integer
        format: int32
        minimum: 1
        maximum: 100
        default: 10
      example: 1
    openapi_components-parameters-offsetToken-3:
      in: query
      name: offsetToken
      required: false
      schema:
        $ref: '#/components/schemas/components-schemas-offsetToken'
      description: Token representing the offset for paginated results. Use the token from the last response to retrieve the next set of items.
    components-parameters-sortOrder:
      in: query
      name: sortOrder
      required: false
      description: |
        The sort order in which reports should be sorted. Based on the entity creation time.

        `asc` for ascending order, `desc` for descending order.
      schema:
        type: string
        default: asc
        enum:
          - asc
          - desc
      example: asc
    reportName:
      name: reportName
      description: The report name to filter on
      in: query
      required: false
      schema:
        oneOf:
          - $ref: '#/components/schemas/SchemeFeeDetailsReportName'
    type:
      name: type
      description: The distribution type.
      in: query
      required: false
      schema:
        $ref: '#/components/schemas/DistributionType'
    parameters-status:
      name: status
      description: The distribution status.
      in: query
      required: false
      schema:
        $ref: '#/components/schemas/status'
    openapi_components-parameters-sortOrder:
      name: sortOrder
      description: The sort order, __asc__ending or __desc__ending
      in: query
      required: false
      schema:
        type: string
        enum:
          - asc
          - desc
        default: desc
      example: desc
    parameters-enrollmentKey:
      name: enrollmentKey
      description: SCOF or VTS enrollment key
      in: query
      required: false
      schema:
        $ref: '#/components/schemas/schemas-enrollmentKey'
    components-parameters-merchantKey:
      name: merchantKey
      description: The merchant key.
      in: query
      required: false
      schema:
        $ref: '#/components/schemas/openapi_components-schemas-merchantKey-2'
    tokenStatus:
      name: status
      description: The status of the network token.
      in: query
      required: false
      schema:
        type: string
        enum:
          - requested
          - active
          - suspended
          - failed
          - archivePending
    components-parameters-limit:
      name: limit
      description: The number of items to return
      in: query
      required: false
      schema:
        $ref: '#/components/schemas/limit'
    openapi_components-parameters-sortOrder-2:
      name: sortOrder
      description: The sort order, __asc__ending or __desc__ending
      in: query
      required: false
      schema:
        $ref: '#/components/schemas/sortOrder'
    networkTokenKey:
      name: networkTokenKey
      description: |
        Immutable, unique identifier of the network token
      in: path
      required: true
      schema:
        $ref: '#/components/schemas/networkTokenKey'
  schemas:
    offsetToken:
      type: string
      pattern: ^[a-zA-Z0-9%]+$
      minLength: 1
      maxLength: 2048
    merchantKey:
      description: Uniquely identifies a Merchant
      type: string
      pattern: ^mct-[a-zA-Z0-9]+$
      minLength: 5
      maxLength: 120
      example: mct-123dinkqFqfq3q2f2adfa
    moreItems:
      type: boolean
    Page:
      type: object
      properties:
        offsetToken:
          $ref: '#/components/schemas/offsetToken'
        moreItems:
          $ref: '#/components/schemas/moreItems'
    acceptorKey:
      description: Uniquely identifies a Merchant Acceptor.
      type: string
      pattern: ^mac-[a-zA-Z0-9]+$
      minLength: 5
      maxLength: 120
      example: mac-1JRadf2ffdfrdPMf2XrS2
    acceptorStatus:
      type: string
      description: The status of the Acceptor (version)
      enum:
        - draft
        - active
        - archived
    ExtendedFreeTextField:
      type: string
      pattern: ^[\x20-\x7E\xA0-\xA3\xA5\xA7\xA9-\xB3\xB5-\xB7\xB9-\xBB\xBF-\xFF\u20AC\u0160\u0161\u017D\u017E\u0152\u0153\u0178]+$
      minLength: 1
      maxLength: 160
      description: Clients not enrolled in the "extended character set beta" are still subject to the `^[\w +=.,:;!?$@()-]+$` pattern for field input.
    mid:
      type: string
      description: |
        As per card network requirements, the Merchant ID assigned by the acquirer must uniquely identify a legal merchant per acquirer BIN.

        **Note:** For AMEX merchant acceptors, either provide Seller ID of a seller onboarded by a Payfac, or SE number of an AMEX Direct Merchant.

        | Network | Length | Characters | Pattern |
        | ------- | ------ | ---------- | --------|
        | AMEX  | 1-20 | alphanumeric |  /^[a-zA-Z0-9-_\.]+$/ |
        | Bancontact  | 1-15 | alphanumeric | /^[a-zA-Z0-9-_\.]+$/ |
        | Diners | 1-15 | alphanumeric |  /^[a-zA-Z0-9# -]+$/ |
        | Discover | 1-15 | alphanumeric | /^[a-zA-Z0-9-_\.]+$/  |
        | Mastercard | 1-15 | alphanumeric | /^[a-zA-Z0-9-_\.]+$/ |
        | Visa  | 1-15 | alphanumeric | /^[a-zA-Z0-9-_\.]+$/ |
      minLength: 1
      maxLength: 20
      example: UO2344SDDAUOGS
    mcc:
      type: string
      pattern: ^\d+$
      minLength: 4
      maxLength: 4
      description: The Merchant category.
      example: 742
    ExtendedNameOfPeopleAndPlaces:
      type: string
      pattern: ^[\x20-\x7E\xA0-\xA3\xA5\xA7\xA9-\xB3\xB5-\xB7\xB9-\xBB\xBF-\xFF\u20AC\u0160\u0161\u017D\u017E\u0152\u0153\u0178]+$
      minLength: 1
      maxLength: 120
    doingBusinessAsName:
      allOf:
        - $ref: '#/components/schemas/ExtendedNameOfPeopleAndPlaces'
        - description: Assumed, trade or fictitious name of the merchant. The name will be trimmed if greater than 25 (Visa) or 22 (Mastercard) characters by the card network. Clients not enrolled in the "extended character set beta" are still subject to the `^[\w,\*,\=,\.\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u00FF-/]+$` pattern for field input.
        - example: ACME Corp.
    url:
      type: string
      description: A valid URL
      pattern: ^http(s)?:\/\/[a-z0-9-_]+(\.[a-z0-9-_]+)+(\/.*)?$
      minLength: 8
      maxLength: 2048
    webshopUrl:
      allOf:
        - $ref: '#/components/schemas/url'
        - example: https://acme.com
    countryCodeAlpha3:
      type: string
      pattern: ^[A-Z]+$
      minLength: 3
      maxLength: 3
      description: |-
        The ISO code of the country.

        **European ISO Country Codes**

        <details>

        | Country | Alpha-2 code | Numeric |
        | ------- | ------------ | ------- |
        | Åland Islands | AX | 248 |
        | Andorra | AD | 020 |
        | Austria | AT | 040 |
        | Belgium | BE | 056 |
        | Cyprus | CY | 196 |
        | Estonia | EE | 233 |  |
        | Finland | FI | 246 |
        | France | FR | 250 |
        | French Guiana | GF | 254 |
        | French Southern Territories | TF | 260 |
        | Germany | DE | 280 |
        | Greece | GR | 300 |
        | Guadeloupe | GP | 312 |
        | Ireland | IE | 372 |
        | Italy | IT | 380 |
        | Kosovo, United Nations Mission in Kosovo (UNMIK) | QZ | 900 |
        | Latvia | LV | 428 |
        | Lithuania | LT | 440 |
        | Luxembourg | LU | 442 |
        | Malta | MT | 470 |
        | Martinique | MQ | 474 |
        | Mayotte | YT | 175 |
        | Monaco | MC | 492 |
        | Montenegro | ME | 499 |
        | Netherlands | NL | 528 |
        | Portugal | PT | 620 |
        | Reunion | RE | 638 |
        | Saint Barthélemy | BL | 652 |
        | Saint Martin (French Part) | MF | 663 |
        | San Marino | SM | 674 |
        | Slovakia | SK | 703 |
        | Slovenia | SI | 705 |
        | Spain | ES | 724 |
        | St. Pierre and Miquelon | PM | 666 |
        | Vatican City State (Holy See) | VA | 336 |

        </details>

        **US ISO Country Codes**

        <details>

        | Country | Alpha-2 code | Numeric |
        | ------- | ------------ | ------- |
        | American Samoa | AS | 016 |
        | Bonaire, St. Eusasius and Saba | BQ | 535 |
        | British Indian Ocean Territory | IO | 086 |
        | Ecuador | EC | 218 |
        | Guam | GU | 316 |
        | Marshall Islands | MH | 584 |
        | Micronesia, Federated States of | FM | 583 |
        | Northern Mariana Islands | MP | 580 |
        | Palau | PW | 585 |
        | Palestine, State of | PS | 275 |
        | Puerto Rico | PR | 630 |
        | Timor-Leste | TP | 626 |
        | Turks and Caicos Islands | TC | 796 |
        | U.S. Minor Outlying Islands | UM | 581 |
        | United States | US | 840 |
        | Virgin Islands, British | VG | 092 |
        | Virgin Islands, U.S. | VI | 850 |

        </details>

        **Other ISO Country Codes**

        <details>

        | Country | Alpha-2 code | Numeric |
        | ------- | ------------ | ------- |
        | Afghanistan | AF | 004 |
        | Albania | AL | 008 |
        | Algeria | DZ | 012 |
        | Angola | AO | 024 |
        | Anguilla | AI | 660 |
        | Antarctica | AQ | 010 |
        | Antigua and Barbuda | AG | 028 |
        | Argentina | AR | 032 |
        | Armenia | AM | 051 |
        | Aruba | AW | 533 |
        | Australia | AU | 036 |
        | Azerbaijan | AZ | 031 |
        | Bahamas | BS | 044 |
        | Bahrain | BH | 048 |
        | Bangladesh | BD | 050 |
        | Barbados | BB | 052 |
        | Belarus | BR | 112 |
        | Belize | BZ | 084 |
        | Benin | BJ | 204 |
        | Bermuda | BM | 060 |
        | Bhutan | BT | 064 |
        | Bolivia, Plurinational State of | BO | 068 |
        | Bosnia and Herzegovina | BA | 070 |
        | Botswana | BW | 072 |
        | Bouvet Island | BV | 074 |
        | Brazil | BR | 076 |
        | Brunei Darussalam | BN | 096 |
        | Bulgaria | BG | 100 |
        | Burkina Faso | BF | 854 |
        | Burundi | BI | 108 |
        | Cambodia | KH | 116 |
        | Cameroon | CM | 120 |
        | Canada | CA | 124 |
        | Cape Verde | CV | 132 |
        | Cayman Islands | KY | 136 |
        | Central African Republic | CF | 140 |
        | Chad | TD | 148 |
        | Chile | CL | 152 |
        | China | CN | 156 |
        | Christmas Island | CX | 162 |
        | Cocos (Keeling) Islands | CC | 166 |
        | Colombia | CO | 170 |
        | Comoros | KM | 174 |
        | Congo | CG | 178 |
        | Cook Islands | CK | 184 |
        | Costa Rica | CR | 188 |
        | Côte D'Ivoire | CI | 384 |
        | Croatia | HR | 191 |
        | Cuba | CU | 192 |
        | Curacao | CW | 531 |
        | Czech Republic | CZ | 203 |
        | Democratic Republic of the Congo | CD | 180 |
        | Denmark | DK | 208 |
        | Djibouti | DJ | 262 |
        | Dominica | DM | 212 |
        | Dominican Republic | DO | 214 |
        | Egypt | EG | 818 |
        | El Salvador | SV | 222 |
        | Equatorial Guinea | GQ | 226 |
        | Eritrea | ER | 232 |
        | Ethiopia | ET | 230 |
        | Falkland Islands (Malvinas) | FK | 238 |
        | Faroe Islands | FO | 234 |
        | Fiji | FJ | 242 |
        | French Polynesia | PF | 258 |
        | Gabon | GA | 266 |
        | Gambia | GM | 270 |
        | Georgia | GE | 268 |
        | Ghana | GH | 288 |
        | Gibraltar | GI | 292 |
        | Greenland | GL | 304 |
        | Grenada | GD | 308 |
        | Guatemala | GT | 320 |
        | Guernsey | GG | 831 |
        | Guinea | GN | 324 |
        | Guinea-Bissau | GW | 624 |
        | Guyana | GY | 328 |
        | Haiti | HT | 332 |
        | Heard and McDonald Islands | HM | 334 |
        | Honduras | HN | 340 |
        | Hong Kong | HK | 344 |
        | Hungary | HU | 348 |
        | Iceland | IS | 352 |
        | India | IN | 356 |
        | Indonesia | ID | 360 |
        | Iraq | IQ | 368 |
        | Isle of Man | IM | 833 |
        | Israel | IL | 376 |
        | Jamaica | JM | 388 |
        | Japan | JP | 392 |
        | Jersey | JE | 832 |
        | Jordan | JO | 400 |
        | Kazakhstan | KZ | 398 |
        | Kenya | KE | 404 |
        | Kiribati | KI | 296 |
        | Korea, Republic of | KR | 410 |
        | Kuwait | KW | 414 |
        | Kyrgyzstan | KG | 417 |
        | Lao People's Democratic Republic | LA | 418 |
        | Lebanon | LB | 422 |
        | Lesotho | LS | 426 |
        | Liberia | LR | 430 |
        | Libyan Arab Jamahiriya | LY | 434 |
        | Liechtenstein | LI | 438 |
        | Macao | MO | 446 |
        | Macedonia | MK | 807 |
        | Madagascar | MG | 450 |
        | Malawi | MW | 454 |
        | Malaysia | MY | 458 |
        | Maldives | MV | 462 |
        | Mali | ML | 466 |
        | Mauritania | MR | 478 |
        | Mauritius | MU | 480 |
        | Mexico | MX | 484 |
        | Moldova, Republic of | MD | 498 |
        | Mongolia | MN | 496 |
        | Montserrat | MS | 500 |
        | Morocco | MA | 504 |
        | Mozambique | MZ | 508 |
        | Myanmar (effective 1 November 2012) | MM | 104 |
        | Namibia | NA | 516 |
        | Nauru | NR | 520 |
        | Nepal | NP | 524 |
        | Netherlands Antilles | AN | 530 |
        | New Caledonia | NC | 540 |
        | New Zealand | NZ | 554 |
        | Nicaragua | NI | 558 |
        | Niger | NE | 562 |
        | Nigeria | NG | 566 |
        | Niue | NU | 570 |
        | Norfolk Island | NF | 574 |
        | Norway | NO | 578 |
        | Oman | OM | 512 |
        | Pakistan | PK | 586 |
        | Panama | PA | 591 |
        | Papua New Guinea | PG | 598 |
        | Paraguay | PY | 600 |
        | Peru | PE | 604 |
        | Philippines | PH | 608 |
        | Pitcairn | PN | 612 |
        | Poland | PL | 616 |
        | Qatar | QA | 634 |
        | Republic of South Sudan | SS | 728 |
        | Romania | RO | 642 |
        | Russian Federation | RU | 643 |
        | Rwanda | RW | 646 |
        | Samoa | WS | 882 |
        | Sao Tome and Principe | ST | 678 |
        | Saudi Arabia | SA | 682 |
        | Senegal | SN | 686 |
        | Serbia | RS | 688 |
        | Seychelles | SC | 690 |
        | Sierra Leone | SL | 694 |
        | Singapore | SG | 702 |
        | Sint Maarten (Dutch Part) | SX | 534 |
        | Solomon Islands | SB | 090 |
        | Somalia | SO | 706 |
        | South Africa | ZA | 710 |
        | South Georgia and the South Sandwich Islands | GS | 239 |
        | Sri Lanka | LK | 144 |
        | Saint Helena, Ascension and Tristan Da Cunha | SH | 654 |
        | St. Kitts and Nevis | KN | 659 |
        | St. Lucia | LC | 662 |
        | St. Vincent and the Grenadines | VC | 670 |
        | Suriname | SR | 740 |
        | Svalbard and Jan Mayen | SJ | 744 |
        | Swaziland | SZ | 748 |
        | Sweden | SE | 752 |
        | Switzerland | CH | 756 |
        | Taiwan | TW | 158 |
        | Tajikistan | TJ | 762 |
        | Tanzania, United Republic of | TZ | 834 |
        | Thailand | TH | 764 |
        | Togo | TG | 768 |
        | Tokelau | TK | 772 |
        | Tonga | TO | 776 |
        | Trinidad and Tobago | TT | 780 |
        | Tunisia | TN | 788 |
        | Turkey | TR | 792 |
        | Turkmenistan | TM | 795 |
        | Tuvalu | TV | 798 |
        | Uganda | UG | 800 |
        | Ukraine | UA | 804 |
        | United Arab Emirates | AE | 784 |
        | United Kingdom | GB | 826 |
        | Uruguay | UY | 858 |
        | Uzbekistan | UZ | 860 |
        | Vanuatu | VU | 548 |
        | Venezuela, Bolivarian Republic of | VE | 862 |
        | Vietnam | VN | 704 |
        | Wallis and Futuna | WF | 876 |
        | Western Sahara | EH | 732 |
        | Yemen | YE | 886 |
        | Zambia | ZM | 894 |
        | Zimbabwe | ZW | 716 |

        </details>
      externalDocs:
        description: Find more info here
        url: https://www.iso.org/iso-3166-country-codes.html
      example: NLD
    countryCodeAlpha2:
      type: string
      pattern: ^[A-Z]+$
      minLength: 2
      maxLength: 2
      description: |-
        The ISO code of the country.

        **European ISO Country Codes**

        <details>

        | Country | Alpha-2 code | Numeric |
        | ------- | ------------ | ------- |
        | Åland Islands | AX | 248 |
        | Andorra | AD | 020 |
        | Austria | AT | 040 |
        | Belgium | BE | 056 |
        | Cyprus | CY | 196 |
        | Estonia | EE | 233 |  |
        | Finland | FI | 246 |
        | France | FR | 250 |
        | French Guiana | GF | 254 |
        | French Southern Territories | TF | 260 |
        | Germany | DE | 280 |
        | Greece | GR | 300 |
        | Guadeloupe | GP | 312 |
        | Ireland | IE | 372 |
        | Italy | IT | 380 |
        | Kosovo, United Nations Mission in Kosovo (UNMIK) | QZ | 900 |
        | Latvia | LV | 428 |
        | Lithuania | LT | 440 |
        | Luxembourg | LU | 442 |
        | Malta | MT | 470 |
        | Martinique | MQ | 474 |
        | Mayotte | YT | 175 |
        | Monaco | MC | 492 |
        | Montenegro | ME | 499 |
        | Netherlands | NL | 528 |
        | Portugal | PT | 620 |
        | Reunion | RE | 638 |
        | Saint Barthélemy | BL | 652 |
        | Saint Martin (French Part) | MF | 663 |
        | San Marino | SM | 674 |
        | Slovakia | SK | 703 |
        | Slovenia | SI | 705 |
        | Spain | ES | 724 |
        | St. Pierre and Miquelon | PM | 666 |
        | Vatican City State (Holy See) | VA | 336 |

        </details>

        **US ISO Country Codes**

        <details>

        | Country | Alpha-2 code | Numeric |
        | ------- | ------------ | ------- |
        | American Samoa | AS | 016 |
        | Bonaire, St. Eusasius and Saba | BQ | 535 |
        | British Indian Ocean Territory | IO | 086 |
        | Ecuador | EC | 218 |
        | Guam | GU | 316 |
        | Marshall Islands | MH | 584 |
        | Micronesia, Federated States of | FM | 583 |
        | Northern Mariana Islands | MP | 580 |
        | Palau | PW | 585 |
        | Palestine, State of | PS | 275 |
        | Puerto Rico | PR | 630 |
        | Timor-Leste | TP | 626 |
        | Turks and Caicos Islands | TC | 796 |
        | U.S. Minor Outlying Islands | UM | 581 |
        | United States | US | 840 |
        | Virgin Islands, British | VG | 092 |
        | Virgin Islands, U.S. | VI | 850 |

        </details>

        **Other ISO Country Codes**

        <details>

        | Country | Alpha-2 code | Numeric |
        | ------- | ------------ | ------- |
        | Afghanistan | AF | 004 |
        | Albania | AL | 008 |
        | Algeria | DZ | 012 |
        | Angola | AO | 024 |
        | Anguilla | AI | 660 |
        | Antarctica | AQ | 010 |
        | Antigua and Barbuda | AG | 028 |
        | Argentina | AR | 032 |
        | Armenia | AM | 051 |
        | Aruba | AW | 533 |
        | Australia | AU | 036 |
        | Azerbaijan | AZ | 031 |
        | Bahamas | BS | 044 |
        | Bahrain | BH | 048 |
        | Bangladesh | BD | 050 |
        | Barbados | BB | 052 |
        | Belarus | BR | 112 |
        | Belize | BZ | 084 |
        | Benin | BJ | 204 |
        | Bermuda | BM | 060 |
        | Bhutan | BT | 064 |
        | Bolivia, Plurinational State of | BO | 068 |
        | Bosnia and Herzegovina | BA | 070 |
        | Botswana | BW | 072 |
        | Bouvet Island | BV | 074 |
        | Brazil | BR | 076 |
        | Brunei Darussalam | BN | 096 |
        | Bulgaria | BG | 100 |
        | Burkina Faso | BF | 854 |
        | Burundi | BI | 108 |
        | Cambodia | KH | 116 |
        | Cameroon | CM | 120 |
        | Canada | CA | 124 |
        | Cape Verde | CV | 132 |
        | Cayman Islands | KY | 136 |
        | Central African Republic | CF | 140 |
        | Chad | TD | 148 |
        | Chile | CL | 152 |
        | China | CN | 156 |
        | Christmas Island | CX | 162 |
        | Cocos (Keeling) Islands | CC | 166 |
        | Colombia | CO | 170 |
        | Comoros | KM | 174 |
        | Congo | CG | 178 |
        | Cook Islands | CK | 184 |
        | Costa Rica | CR | 188 |
        | Côte D'Ivoire | CI | 384 |
        | Croatia | HR | 191 |
        | Cuba | CU | 192 |
        | Curacao | CW | 531 |
        | Czech Republic | CZ | 203 |
        | Democratic Republic of the Congo | CD | 180 |
        | Denmark | DK | 208 |
        | Djibouti | DJ | 262 |
        | Dominica | DM | 212 |
        | Dominican Republic | DO | 214 |
        | Egypt | EG | 818 |
        | El Salvador | SV | 222 |
        | Equatorial Guinea | GQ | 226 |
        | Eritrea | ER | 232 |
        | Ethiopia | ET | 230 |
        | Falkland Islands (Malvinas) | FK | 238 |
        | Faroe Islands | FO | 234 |
        | Fiji | FJ | 242 |
        | French Polynesia | PF | 258 |
        | Gabon | GA | 266 |
        | Gambia | GM | 270 |
        | Georgia | GE | 268 |
        | Ghana | GH | 288 |
        | Gibraltar | GI | 292 |
        | Greenland | GL | 304 |
        | Grenada | GD | 308 |
        | Guatemala | GT | 320 |
        | Guernsey | GG | 831 |
        | Guinea | GN | 324 |
        | Guinea-Bissau | GW | 624 |
        | Guyana | GY | 328 |
        | Haiti | HT | 332 |
        | Heard and McDonald Islands | HM | 334 |
        | Honduras | HN | 340 |
        | Hong Kong | HK | 344 |
        | Hungary | HU | 348 |
        | Iceland | IS | 352 |
        | India | IN | 356 |
        | Indonesia | ID | 360 |
        | Iraq | IQ | 368 |
        | Isle of Man | IM | 833 |
        | Israel | IL | 376 |
        | Jamaica | JM | 388 |
        | Japan | JP | 392 |
        | Jersey | JE | 832 |
        | Jordan | JO | 400 |
        | Kazakhstan | KZ | 398 |
        | Kenya | KE | 404 |
        | Kiribati | KI | 296 |
        | Korea, Republic of | KR | 410 |
        | Kuwait | KW | 414 |
        | Kyrgyzstan | KG | 417 |
        | Lao People's Democratic Republic | LA | 418 |
        | Lebanon | LB | 422 |
        | Lesotho | LS | 426 |
        | Liberia | LR | 430 |
        | Libyan Arab Jamahiriya | LY | 434 |
        | Liechtenstein | LI | 438 |
        | Macao | MO | 446 |
        | Macedonia | MK | 807 |
        | Madagascar | MG | 450 |
        | Malawi | MW | 454 |
        | Malaysia | MY | 458 |
        | Maldives | MV | 462 |
        | Mali | ML | 466 |
        | Mauritania | MR | 478 |
        | Mauritius | MU | 480 |
        | Mexico | MX | 484 |
        | Moldova, Republic of | MD | 498 |
        | Mongolia | MN | 496 |
        | Montserrat | MS | 500 |
        | Morocco | MA | 504 |
        | Mozambique | MZ | 508 |
        | Myanmar (effective 1 November 2012) | MM | 104 |
        | Namibia | NA | 516 |
        | Nauru | NR | 520 |
        | Nepal | NP | 524 |
        | Netherlands Antilles | AN | 530 |
        | New Caledonia | NC | 540 |
        | New Zealand | NZ | 554 |
        | Nicaragua | NI | 558 |
        | Niger | NE | 562 |
        | Nigeria | NG | 566 |
        | Niue | NU | 570 |
        | Norfolk Island | NF | 574 |
        | Norway | NO | 578 |
        | Oman | OM | 512 |
        | Pakistan | PK | 586 |
        | Panama | PA | 591 |
        | Papua New Guinea | PG | 598 |
        | Paraguay | PY | 600 |
        | Peru | PE | 604 |
        | Philippines | PH | 608 |
        | Pitcairn | PN | 612 |
        | Poland | PL | 616 |
        | Qatar | QA | 634 |
        | Republic of South Sudan | SS | 728 |
        | Romania | RO | 642 |
        | Russian Federation | RU | 643 |
        | Rwanda | RW | 646 |
        | Samoa | WS | 882 |
        | Sao Tome and Principe | ST | 678 |
        | Saudi Arabia | SA | 682 |
        | Senegal | SN | 686 |
        | Serbia | RS | 688 |
        | Seychelles | SC | 690 |
        | Sierra Leone | SL | 694 |
        | Singapore | SG | 702 |
        | Sint Maarten (Dutch Part) | SX | 534 |
        | Solomon Islands | SB | 090 |
        | Somalia | SO | 706 |
        | South Africa | ZA | 710 |
        | South Georgia and the South Sandwich Islands | GS | 239 |
        | Sri Lanka | LK | 144 |
        | Saint Helena, Ascension and Tristan Da Cunha | SH | 654 |
        | St. Kitts and Nevis | KN | 659 |
        | St. Lucia | LC | 662 |
        | St. Vincent and the Grenadines | VC | 670 |
        | Suriname | SR | 740 |
        | Svalbard and Jan Mayen | SJ | 744 |
        | Swaziland | SZ | 748 |
        | Sweden | SE | 752 |
        | Switzerland | CH | 756 |
        | Taiwan | TW | 158 |
        | Tajikistan | TJ | 762 |
        | Tanzania, United Republic of | TZ | 834 |
        | Thailand | TH | 764 |
        | Togo | TG | 768 |
        | Tokelau | TK | 772 |
        | Tonga | TO | 776 |
        | Trinidad and Tobago | TT | 780 |
        | Tunisia | TN | 788 |
        | Turkey | TR | 792 |
        | Turkmenistan | TM | 795 |
        | Tuvalu | TV | 798 |
        | Uganda | UG | 800 |
        | Ukraine | UA | 804 |
        | United Arab Emirates | AE | 784 |
        | United Kingdom | GB | 826 |
        | Uruguay | UY | 858 |
        | Uzbekistan | UZ | 860 |
        | Vanuatu | VU | 548 |
        | Venezuela, Bolivarian Republic of | VE | 862 |
        | Vietnam | VN | 704 |
        | Wallis and Futuna | WF | 876 |
        | Western Sahara | EH | 732 |
        | Yemen | YE | 886 |
        | Zambia | ZM | 894 |
        | Zimbabwe | ZW | 716 |

        </details>
      externalDocs:
        description: Find more info here
        url: https://www.iso.org/iso-3166-country-codes.html
      example: NL
    countryCodeNumeric:
      type: string
      pattern: ^[0-9]+$
      minLength: 3
      maxLength: 3
      description: |-
        The ISO code of the country.

        **European ISO Country Codes**

        <details>

        | Country | Alpha-2 code | Numeric |
        | ------- | ------------ | ------- |
        | Åland Islands | AX | 248 |
        | Andorra | AD | 020 |
        | Austria | AT | 040 |
        | Belgium | BE | 056 |
        | Cyprus | CY | 196 |
        | Estonia | EE | 233 |  |
        | Finland | FI | 246 |
        | France | FR | 250 |
        | French Guiana | GF | 254 |
        | French Southern Territories | TF | 260 |
        | Germany | DE | 280 |
        | Greece | GR | 300 |
        | Guadeloupe | GP | 312 |
        | Ireland | IE | 372 |
        | Italy | IT | 380 |
        | Kosovo, United Nations Mission in Kosovo (UNMIK) | QZ | 900 |
        | Latvia | LV | 428 |
        | Lithuania | LT | 440 |
        | Luxembourg | LU | 442 |
        | Malta | MT | 470 |
        | Martinique | MQ | 474 |
        | Mayotte | YT | 175 |
        | Monaco | MC | 492 |
        | Montenegro | ME | 499 |
        | Netherlands | NL | 528 |
        | Portugal | PT | 620 |
        | Reunion | RE | 638 |
        | Saint Barthélemy | BL | 652 |
        | Saint Martin (French Part) | MF | 663 |
        | San Marino | SM | 674 |
        | Slovakia | SK | 703 |
        | Slovenia | SI | 705 |
        | Spain | ES | 724 |
        | St. Pierre and Miquelon | PM | 666 |
        | Vatican City State (Holy See) | VA | 336 |

        </details>

        **US ISO Country Codes**

        <details>

        | Country | Alpha-2 code | Numeric |
        | ------- | ------------ | ------- |
        | American Samoa | AS | 016 |
        | Bonaire, St. Eusasius and Saba | BQ | 535 |
        | British Indian Ocean Territory | IO | 086 |
        | Ecuador | EC | 218 |
        | Guam | GU | 316 |
        | Marshall Islands | MH | 584 |
        | Micronesia, Federated States of | FM | 583 |
        | Northern Mariana Islands | MP | 580 |
        | Palau | PW | 585 |
        | Palestine, State of | PS | 275 |
        | Puerto Rico | PR | 630 |
        | Timor-Leste | TP | 626 |
        | Turks and Caicos Islands | TC | 796 |
        | U.S. Minor Outlying Islands | UM | 581 |
        | United States | US | 840 |
        | Virgin Islands, British | VG | 092 |
        | Virgin Islands, U.S. | VI | 850 |

        </details>

        **Other ISO Country Codes**

        <details>

        | Country | Alpha-2 code | Numeric |
        | ------- | ------------ | ------- |
        | Afghanistan | AF | 004 |
        | Albania | AL | 008 |
        | Algeria | DZ | 012 |
        | Angola | AO | 024 |
        | Anguilla | AI | 660 |
        | Antarctica | AQ | 010 |
        | Antigua and Barbuda | AG | 028 |
        | Argentina | AR | 032 |
        | Armenia | AM | 051 |
        | Aruba | AW | 533 |
        | Australia | AU | 036 |
        | Azerbaijan | AZ | 031 |
        | Bahamas | BS | 044 |
        | Bahrain | BH | 048 |
        | Bangladesh | BD | 050 |
        | Barbados | BB | 052 |
        | Belarus | BR | 112 |
        | Belize | BZ | 084 |
        | Benin | BJ | 204 |
        | Bermuda | BM | 060 |
        | Bhutan | BT | 064 |
        | Bolivia, Plurinational State of | BO | 068 |
        | Bosnia and Herzegovina | BA | 070 |
        | Botswana | BW | 072 |
        | Bouvet Island | BV | 074 |
        | Brazil | BR | 076 |
        | Brunei Darussalam | BN | 096 |
        | Bulgaria | BG | 100 |
        | Burkina Faso | BF | 854 |
        | Burundi | BI | 108 |
        | Cambodia | KH | 116 |
        | Cameroon | CM | 120 |
        | Canada | CA | 124 |
        | Cape Verde | CV | 132 |
        | Cayman Islands | KY | 136 |
        | Central African Republic | CF | 140 |
        | Chad | TD | 148 |
        | Chile | CL | 152 |
        | China | CN | 156 |
        | Christmas Island | CX | 162 |
        | Cocos (Keeling) Islands | CC | 166 |
        | Colombia | CO | 170 |
        | Comoros | KM | 174 |
        | Congo | CG | 178 |
        | Cook Islands | CK | 184 |
        | Costa Rica | CR | 188 |
        | Côte D'Ivoire | CI | 384 |
        | Croatia | HR | 191 |
        | Cuba | CU | 192 |
        | Curacao | CW | 531 |
        | Czech Republic | CZ | 203 |
        | Democratic Republic of the Congo | CD | 180 |
        | Denmark | DK | 208 |
        | Djibouti | DJ | 262 |
        | Dominica | DM | 212 |
        | Dominican Republic | DO | 214 |
        | Egypt | EG | 818 |
        | El Salvador | SV | 222 |
        | Equatorial Guinea | GQ | 226 |
        | Eritrea | ER | 232 |
        | Ethiopia | ET | 230 |
        | Falkland Islands (Malvinas) | FK | 238 |
        | Faroe Islands | FO | 234 |
        | Fiji | FJ | 242 |
        | French Polynesia | PF | 258 |
        | Gabon | GA | 266 |
        | Gambia | GM | 270 |
        | Georgia | GE | 268 |
        | Ghana | GH | 288 |
        | Gibraltar | GI | 292 |
        | Greenland | GL | 304 |
        | Grenada | GD | 308 |
        | Guatemala | GT | 320 |
        | Guernsey | GG | 831 |
        | Guinea | GN | 324 |
        | Guinea-Bissau | GW | 624 |
        | Guyana | GY | 328 |
        | Haiti | HT | 332 |
        | Heard and McDonald Islands | HM | 334 |
        | Honduras | HN | 340 |
        | Hong Kong | HK | 344 |
        | Hungary | HU | 348 |
        | Iceland | IS | 352 |
        | India | IN | 356 |
        | Indonesia | ID | 360 |
        | Iraq | IQ | 368 |
        | Isle of Man | IM | 833 |
        | Israel | IL | 376 |
        | Jamaica | JM | 388 |
        | Japan | JP | 392 |
        | Jersey | JE | 832 |
        | Jordan | JO | 400 |
        | Kazakhstan | KZ | 398 |
        | Kenya | KE | 404 |
        | Kiribati | KI | 296 |
        | Korea, Republic of | KR | 410 |
        | Kuwait | KW | 414 |
        | Kyrgyzstan | KG | 417 |
        | Lao People's Democratic Republic | LA | 418 |
        | Lebanon | LB | 422 |
        | Lesotho | LS | 426 |
        | Liberia | LR | 430 |
        | Libyan Arab Jamahiriya | LY | 434 |
        | Liechtenstein | LI | 438 |
        | Macao | MO | 446 |
        | Macedonia | MK | 807 |
        | Madagascar | MG | 450 |
        | Malawi | MW | 454 |
        | Malaysia | MY | 458 |
        | Maldives | MV | 462 |
        | Mali | ML | 466 |
        | Mauritania | MR | 478 |
        | Mauritius | MU | 480 |
        | Mexico | MX | 484 |
        | Moldova, Republic of | MD | 498 |
        | Mongolia | MN | 496 |
        | Montserrat | MS | 500 |
        | Morocco | MA | 504 |
        | Mozambique | MZ | 508 |
        | Myanmar (effective 1 November 2012) | MM | 104 |
        | Namibia | NA | 516 |
        | Nauru | NR | 520 |
        | Nepal | NP | 524 |
        | Netherlands Antilles | AN | 530 |
        | New Caledonia | NC | 540 |
        | New Zealand | NZ | 554 |
        | Nicaragua | NI | 558 |
        | Niger | NE | 562 |
        | Nigeria | NG | 566 |
        | Niue | NU | 570 |
        | Norfolk Island | NF | 574 |
        | Norway | NO | 578 |
        | Oman | OM | 512 |
        | Pakistan | PK | 586 |
        | Panama | PA | 591 |
        | Papua New Guinea | PG | 598 |
        | Paraguay | PY | 600 |
        | Peru | PE | 604 |
        | Philippines | PH | 608 |
        | Pitcairn | PN | 612 |
        | Poland | PL | 616 |
        | Qatar | QA | 634 |
        | Republic of South Sudan | SS | 728 |
        | Romania | RO | 642 |
        | Russian Federation | RU | 643 |
        | Rwanda | RW | 646 |
        | Samoa | WS | 882 |
        | Sao Tome and Principe | ST | 678 |
        | Saudi Arabia | SA | 682 |
        | Senegal | SN | 686 |
        | Serbia | RS | 688 |
        | Seychelles | SC | 690 |
        | Sierra Leone | SL | 694 |
        | Singapore | SG | 702 |
        | Sint Maarten (Dutch Part) | SX | 534 |
        | Solomon Islands | SB | 090 |
        | Somalia | SO | 706 |
        | South Africa | ZA | 710 |
        | South Georgia and the South Sandwich Islands | GS | 239 |
        | Sri Lanka | LK | 144 |
        | Saint Helena, Ascension and Tristan Da Cunha | SH | 654 |
        | St. Kitts and Nevis | KN | 659 |
        | St. Lucia | LC | 662 |
        | St. Vincent and the Grenadines | VC | 670 |
        | Suriname | SR | 740 |
        | Svalbard and Jan Mayen | SJ | 744 |
        | Swaziland | SZ | 748 |
        | Sweden | SE | 752 |
        | Switzerland | CH | 756 |
        | Taiwan | TW | 158 |
        | Tajikistan | TJ | 762 |
        | Tanzania, United Republic of | TZ | 834 |
        | Thailand | TH | 764 |
        | Togo | TG | 768 |
        | Tokelau | TK | 772 |
        | Tonga | TO | 776 |
        | Trinidad and Tobago | TT | 780 |
        | Tunisia | TN | 788 |
        | Turkey | TR | 792 |
        | Turkmenistan | TM | 795 |
        | Tuvalu | TV | 798 |
        | Uganda | UG | 800 |
        | Ukraine | UA | 804 |
        | United Arab Emirates | AE | 784 |
        | United Kingdom | GB | 826 |
        | Uruguay | UY | 858 |
        | Uzbekistan | UZ | 860 |
        | Vanuatu | VU | 548 |
        | Venezuela, Bolivarian Republic of | VE | 862 |
        | Vietnam | VN | 704 |
        | Wallis and Futuna | WF | 876 |
        | Western Sahara | EH | 732 |
        | Yemen | YE | 886 |
        | Zambia | ZM | 894 |
        | Zimbabwe | ZW | 716 |

        </details>
      externalDocs:
        description: Find more info here
        url: https://www.iso.org/iso-3166-country-codes.html
      example: '528'
    CountryCode:
      type: object
      required:
        - alpha3
        - alpha2
        - numeric
      properties:
        alpha3:
          $ref: '#/components/schemas/countryCodeAlpha3'
        alpha2:
          $ref: '#/components/schemas/countryCodeAlpha2'
        numeric:
          $ref: '#/components/schemas/countryCodeNumeric'
    stateOrProvince:
      allOf:
        - $ref: '#/components/schemas/ExtendedNameOfPeopleAndPlaces'
        - description: |
            The state (US) or province (non-US) of the address. Required for US Point of Sale (POS) acceptors. Clients not enrolled in the "extended character set beta" are still subject to the `^[\w ,\.\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u00FF-]+$` pattern for field input.
          example: Noord-Holland
    city:
      allOf:
        - $ref: '#/components/schemas/ExtendedNameOfPeopleAndPlaces'
        - description: |
            The city of the address. Clients not enrolled in the "extended character set beta" are still subject to the `^[\w ,\.\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u00FF-]+$` pattern for field input.
          example: Amsterdam-Duivendrecht
    line1:
      allOf:
        - $ref: '#/components/schemas/ExtendedNameOfPeopleAndPlaces'
        - description: |
            Address line 1. Clients not enrolled in the "extended character set beta" are still subject to the `^[\w ,\.\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u00FF-]+$` pattern for field input.
          example: Entrada 300
    line2:
      allOf:
        - $ref: '#/components/schemas/ExtendedNameOfPeopleAndPlaces'
        - description: |
            Address line 2. Clients not enrolled in the "extended character set beta" are still subject to the `^[\w ,\.\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u00FF-]+$` pattern for field input.
        - example: Floor 3
    postalCode:
      type: string
      pattern: ^[A-Z0-9]+([ -][A-Z0-9]+)?$
      minLength: 1
      maxLength: 10
      description: |
        The postal code of the address. Clients not enrolled in the "extended character set beta" are still subject to the `^[A-Z0-9]+(\ [A-Z0-9]*)?$` pattern for field input.
      example: 1114 AA
    Address:
      type: object
      required:
        - countryCode
        - city
        - line1
        - postalCode
      additionalProperties: false
      description: |
        A physical postal address
      properties:
        countryCode:
          $ref: '#/components/schemas/CountryCode'
        stateOrProvince:
          $ref: '#/components/schemas/stateOrProvince'
        city:
          $ref: '#/components/schemas/city'
        line1:
          $ref: '#/components/schemas/line1'
        line2:
          $ref: '#/components/schemas/line2'
        postalCode:
          $ref: '#/components/schemas/postalCode'
    messageSystem:
      type: string
      description: Determines the message structure and Data Element definitions for card network.
      enum:
        - DMS
        - SMS
      default: DMS
    binKey:
      description: A key assigned by Silverflow to uniquely identify a Bin.
      type: string
      pattern: ^bin-[a-zA-Z0-9]+$
      minLength: 5
      maxLength: 120
    status:
      type: string
      description: The status of the object
      enum:
        - active
        - archived
    acquirerAgentKey:
      type: string
      description: Acquirer Agent Key shows the owner agent Key of the Bin.
      pattern: ^cgt-[a-zA-Z0-9]+|^$
      default: ''
    created:
      type: string
      description: The date and time this object was created
      format: date-time
    lastModified:
      type: string
      description: The date and time this object was last modified
      format: date-time
    version:
      type: integer
      description: The version of this object
      format: int64
    BaseBin:
      type: object
      required:
        - key
        - status
        - description
        - acquirerCountryCode
        - shared
        - created
        - version
        - acquirerIdCode
      description: |
        A Bin is a Bank Identification Number
      properties:
        key:
          $ref: '#/components/schemas/binKey'
        status:
          $ref: '#/components/schemas/status'
        description:
          description: Description of the Bin. Combination of acquirer, region and card network.
          $ref: '#/components/schemas/ExtendedFreeTextField'
          example: Example Acquirer - Mastercard
        acquirerAgentKey:
          $ref: '#/components/schemas/acquirerAgentKey'
        acquirerIdCode:
          type: string
        acquirerCountryCode:
          $ref: '#/components/schemas/CountryCode'
        shared:
          type: boolean
          description: Indicates if this Bin is shared across agents. If so the MIDs are restricted in length to `11`.
        created:
          $ref: '#/components/schemas/created'
        lastModified:
          $ref: '#/components/schemas/lastModified'
        version:
          $ref: '#/components/schemas/version'
      example:
        key: bin-1iXRhbDjrT2Yxvo0mSZN
        status: active
        description: Example Acquirer - Mastercard
        acquirerIdCode: 222222
        acquirerBin: 555555
        acquirerCountryCode:
          alpha3: DEU
          alpha2: DE
          numeric: '276'
        acquirerAgentKey: cgt-1nUP5yspouqwUHYSZo9V
        network: mastercard
        messageSystem: DMS
        shared: false
        created: '2020-08-24T14:15:22.014Z'
        lastModified: '2020-08-24T21:39:01.957Z'
        version: 2
    VisaBin:
      allOf:
        - type: object
          required:
            - network
            - messageSystem
            - acquirerIdCode
            - acquirerBin
            - bid
          properties:
            network:
              type: string
              enum:
                - visa
            messageSystem:
              $ref: '#/components/schemas/messageSystem'
            acquirerIdCode:
              type: string
              description: Acquirer Institution ID code. This field corresponds to the CIB, which usually has the same value as the Bin.
              pattern: ^\d+$
              minLength: 6
              maxLength: 6
            acquirerBin:
              type: string
              description: Acquirer Bin. The Bin number as assigned by the card network.
              pattern: ^\d+$
              minLength: 6
              maxLength: 6
            bid:
              type: string
              description: Business Identification Number. The BID number as assigned by the card network.
              pattern: ^\d+$
              minLength: 8
              maxLength: 8
        - $ref: '#/components/schemas/BaseBin'
    MastercardBin:
      allOf:
        - type: object
          required:
            - network
            - messageSystem
            - acquirerIdCode
            - acquirerBin
          properties:
            network:
              type: string
              enum:
                - mastercard
            messageSystem:
              $ref: '#/components/schemas/messageSystem'
            acquirerIdCode:
              type: string
              description: Acquirer Institution ID code. For Mastercard, this field corresponds to the Acquirer ICA.
              pattern: ^\d+$
              minLength: 6
              maxLength: 6
            acquirerBin:
              type: string
              description: Acquirer Bin. The Bin number as assigned by the card network. For Mastercard, this is also referred to as the Acquirer Reference ID.
              pattern: ^\d+$
              minLength: 6
              maxLength: 6
        - $ref: '#/components/schemas/BaseBin'
    BancontactBin:
      allOf:
        - type: object
          required:
            - network
            - messageSystem
            - acquirerIdCode
            - acquirerBin
          properties:
            network:
              type: string
              enum:
                - bancontact
            messageSystem:
              $ref: '#/components/schemas/messageSystem'
            acquirerIdCode:
              type: string
              description: Acquirer Institution ID code.
              pattern: ^\d+$
              minLength: 6
              maxLength: 6
            acquirerBin:
              type: string
              description: Acquirer Bin. The Bin number as assigned by the card network.
              pattern: ^\d+$
              minLength: 6
              maxLength: 6
        - $ref: '#/components/schemas/BaseBin'
    amexAcquirerIdCode:
      type: string
      description: Acquirer Institution ID code (Submitter ID). For PayFac model, this identifies the Payment Facilitator.
      pattern: ^[A-Z0-9]+$
      minLength: 6
      maxLength: 11
    amexPayfacAcquirerBin:
      type: string
      description: SE Number assigned by AMEX for the Payment Facilitator.
      pattern: ^\d{10}$
    amexDirectMerchantAcquirerBin:
      allOf:
        - description: For Direct Merchant, this field is automatically copied from acquirerIdCode field.
        - $ref: '#/components/schemas/amexAcquirerIdCode'
    amexPaymentDesignationAcquirerBin:
      allOf:
        - description: For Payment Designator, this field is automatically copied from acquirerIdCode field.
        - $ref: '#/components/schemas/amexAcquirerIdCode'
    amexAcquirerBin:
      anyOf:
        - $ref: '#/components/schemas/amexPayfacAcquirerBin'
        - $ref: '#/components/schemas/amexDirectMerchantAcquirerBin'
        - $ref: '#/components/schemas/amexPaymentDesignationAcquirerBin'
    currencyCode:
      type: string
      enum:
        - EUR
        - USD
        - AFN
        - ALL
        - DZD
        - AOA
        - XCD
        - ARS
        - AMD
        - AWG
        - AUD
        - AZN
        - BSD
        - BHD
        - BDT
        - BBD
        - BYN
        - BZD
        - XOF
        - BMD
        - INR
        - BTN
        - BOB
        - BAM
        - BWP
        - NOK
        - BRL
        - BND
        - BGN
        - BIF
        - CVE
        - KHR
        - XAF
        - CAD
        - KYD
        - CLP
        - CNY
        - CNH
        - COP
        - KMF
        - CDF
        - NZD
        - CRC
        - HRK
        - CUP
        - CUC
        - ANG
        - CZK
        - DKK
        - DJF
        - DOP
        - EGP
        - SVC
        - ERN
        - ETB
        - FKP
        - FJD
        - XPF
        - GMD
        - GEL
        - GHS
        - GIP
        - GTQ
        - GBP
        - GNF
        - GYD
        - HTG
        - HNL
        - HKD
        - HUF
        - ISK
        - IDR
        - IRR
        - IQD
        - ILS
        - JMD
        - JPY
        - JOD
        - KZT
        - KES
        - KPW
        - KRW
        - KWD
        - KGS
        - LAK
        - LBP
        - LSL
        - ZAR
        - LRD
        - LYD
        - CHF
        - MOP
        - MKD
        - MGA
        - MWK
        - MYR
        - MVR
        - MRU
        - MUR
        - MXN
        - MDL
        - MNT
        - MAD
        - MZN
        - MMK
        - NAD
        - NPR
        - NIO
        - NGN
        - OMR
        - PKR
        - PAB
        - PGK
        - PYG
        - PEN
        - PHP
        - PLN
        - QAR
        - RON
        - RUB
        - RWF
        - SHP
        - WST
        - STN
        - SAR
        - RSD
        - SCR
        - SLL
        - SLE
        - SGD
        - SBD
        - SOS
        - SSP
        - LKR
        - SDG
        - SRD
        - SZL
        - SEK
        - SYP
        - TWD
        - TJS
        - TZS
        - THB
        - TOP
        - TTD
        - TND
        - TRY
        - TMT
        - UGX
        - UAH
        - AED
        - UYU
        - UYW
        - UZS
        - VUV
        - VES
        - VND
        - YER
        - ZMW
        - ZWL
        - ZWG
      description: |-
        The three-letter ISO code of the currency.


        **European ISO Currency Codes**

        <details>

        | Country — Currency | Code | Numeric | Minor Units |
        | ------------------ | ---- | ------- | ----------- |
        | Åland Islands — Euro | EUR | 978 | 2 |
        | Andorra — Euro | EUR | 978 | 2 |
        | Austria — Euro | EUR | 978 | 2 |
        | Belgium — Euro | EUR | 978 | 2 |
        | Cyprus — Euro | EUR | 978 | 2 |
        | Estonia — Euro | EUR | 978 | 2 |
        | European Union — Euro | EUR | 978 | 2 |
        | Finland — Euro | EUR | 978 | 2 |
        | France — Euro | EUR | 978 | 2 |
        | French Guiana — Euro | EUR | 978 | 2 |
        | French Southern Territories (The) — Euro | EUR | 978 | 2 |
        | Germany — Euro | EUR | 978 | 2 |
        | Greece — Euro | EUR | 978 | 2 |
        | Guadeloupe — Euro | EUR | 978 | 2 |
        | Holy See (The) — Euro | EUR | 978 | 2 |
        | Ireland — Euro | EUR | 978 | 2 |
        | Italy — Euro | EUR | 978 | 2 |
        | Latvia — Euro | EUR | 978 | 2 |
        | Lithuania — Euro | EUR | 978 | 2 |
        | Luxembourg — Euro | EUR | 978 | 2 |
        | Malta — Euro | EUR | 978 | 2 |
        | Martinique — Euro | EUR | 978 | 2 |
        | Mayotte — Euro | EUR | 978 | 2 |
        | Monaco — Euro | EUR | 978 | 2 |
        | Montenegro — Euro | EUR | 978 | 2 |
        | Netherlands (The) — Euro | EUR | 978 | 2 |
        | Portugal — Euro | EUR | 978 | 2 |
        | Réunion — Euro | EUR | 978 | 2 |
        | Saint Barthélemy — Euro | EUR | 978 | 2 |
        | Saint Martin (French Part) — Euro | EUR | 978 | 2 |
        | Saint Pierre And Miquelon — Euro | EUR | 978 | 2 |
        | San Marino — Euro | EUR | 978 | 2 |
        | Slovakia — Euro | EUR | 978 | 2 |
        | Slovenia — Euro | EUR | 978 | 2 |
        | Spain — Euro | EUR | 978 | 2 |

        </details>

        **US ISO Currency Codes**

        <details>

        | Country — Currency | Code | Numeric | Minor Units |
        | ------------------ | ---- | ------- | ----------- |
        | American Samoa — US Dollar | USD | 840 | 2 |
        | Bonaire, Sint Eustatius And Saba — US Dollar | USD | 840 | 2 |
        | British Indian Ocean Territory (The) — US Dollar | USD | 840 | 2 |
        | Ecuador — US Dollar | USD | 840 | 2 |
        | El Salvador — US Dollar | USD | 840 | 2 |
        | Guam — US Dollar | USD | 840 | 2 |
        | Haiti — US Dollar | USD | 840 | 2 |
        | Marshall Islands (The) — US Dollar | USD | 840 | 2 |
        | Micronesia (Federated States Of) — US Dollar | USD | 840 | 2 |
        | Northern Mariana Islands (The) — US Dollar | USD | 840 | 2 |
        | Palau — US Dollar | USD | 840 | 2 |
        | Panama — US Dollar | USD | 840 | 2 |
        | Puerto Rico — US Dollar | USD | 840 | 2 |
        | Timor-leste — US Dollar | USD | 840 | 2 |
        | Turks And Caicos Islands (The) — US Dollar | USD | 840 | 2 |
        | United States Minor Outlying Islands (The) — US Dollar | USD | 840 | 2 |
        | United States Of America (The) — US Dollar | USD | 840 | 2 |
        | Virgin Islands (British) — US Dollar | USD | 840 | 2 |
        | Virgin Islands (U.s.) — US Dollar | USD | 840 | 2 |

        </details>

        **Other ISO Currency Codes**

        <details>

        | Country — Currency | Code | Numeric | Minor Units |
        | ------------------ | ---- | ------- | ----------- |
        | Afghanistan — Afghani | AFN | 971 | 2 |
        | Albania — Lek | ALL | 008 | 2 |
        | Algeria — Algerian Dinar | DZD | 012 | 2 |
        | Angola — Kwanza | AOA | 973 | 2 |
        | Anguilla — East Caribbean Dollar | XCD | 951 | 2 |
        | Antigua And Barbuda — East Caribbean Dollar | XCD | 951 | 2 |
        | Argentina — Argentine Peso | ARS | 032 | 2 |
        | Armenia — Armenian Dram | AMD | 051 | 2 |
        | Aruba — Aruban Florin | AWG | 533 | 2 |
        | Australia — Australian Dollar | AUD | 036 | 2 |
        | Azerbaijan — Azerbaijan Manat | AZN | 944 | 2 |
        | Bahamas (The) — Bahamian Dollar | BSD | 044 | 2 |
        | Bahrain — Bahraini Dinar | BHD | 048 | 3 |
        | Bangladesh — Taka | BDT | 050 | 2 |
        | Barbados — Barbados Dollar | BBD | 052 | 2 |
        | Belarus — Belarusian Ruble | BYN | 933 | 2 |
        | Belize — Belize Dollar | BZD | 084 | 2 |
        | Benin — CFA Franc BCEAO | XOF | 952 | 0 |
        | Bermuda — Bermudian Dollar | BMD | 060 | 2 |
        | Bhutan — Indian Rupee | INR | 356 | 2 |
        | Bhutan — Ngultrum | BTN | 064 | 2 |
        | Bolivia (Plurinational State Of) — Boliviano | BOB | 068 | 2 |
        | Bosnia And Herzegovina — Convertible Mark | BAM | 977 | 2 |
        | Botswana — Pula | BWP | 072 | 2 |
        | Bouvet Island — Norwegian Krone | NOK | 578 | 2 |
        | Brazil — Brazilian Real | BRL | 986 | 2 |
        | Brunei Darussalam — Brunei Dollar | BND | 096 | 2 |
        | Bulgaria — Bulgarian Lev | BGN | 975 | 2 |
        | Burkina Faso — CFA Franc BCEAO | XOF | 952 | 0 |
        | Burundi — Burundi Franc | BIF | 108 | 0 |
        | Cabo Verde — Cabo Verde Escudo | CVE | 132 | 2 |
        | Cambodia — Riel | KHR | 116 | 2 |
        | Cameroon — CFA Franc BEAC | XAF | 950 | 0 |
        | Canada — Canadian Dollar | CAD | 124 | 2 |
        | Cayman Islands (The) — Cayman Islands Dollar | KYD | 136 | 2 |
        | Central African Republic (The) — CFA Franc BEAC | XAF | 950 | 0 |
        | Chad — CFA Franc BEAC | XAF | 950 | 0 |
        | Chile — Chilean Peso | CLP | 152 | 0 |
        | China — Yuan Renminbi | CNY | 156 | 2 |
        | China — Yuan Renminbi | CNH | 157 | 2 |
        | Christmas Island — Australian Dollar | AUD | 036 | 2 |
        | Cocos (Keeling) Islands (The) — Australian Dollar | AUD | 036 | 2 |
        | Colombia — Colombian Peso | COP | 170 | 2 |
        | Comoros (The) — Comorian Franc | KMF | 174 | 0 |
        | Congo (The Democratic Republic Of The) — Congolese Franc | CDF | 976 | 2 |
        | Congo (The) — CFA Franc BEAC | XAF | 950 | 0 |
        | Cook Islands (The) — New Zealand Dollar | NZD | 554 | 2 |
        | Costa Rica — Costa Rican Colon | CRC | 188 | 2 |
        | Côte D'ivoire — CFA Franc BCEAO | XOF | 952 | 0 |
        | Croatia — Kuna | HRK | 191 | 2 |
        | Cuba — Cuban Peso | CUP | 192 | 2 |
        | Cuba — Peso Convertible | CUC | 931 | 2 |
        | Curaçao — Netherlands Antillean Guilder | ANG | 532 | 2 |
        | Czechia — Czech Koruna | CZK | 203 | 2 |
        | Denmark — Danish Krone | DKK | 208 | 2 |
        | Djibouti — Djibouti Franc | DJF | 262 | 0 |
        | Dominica — East Caribbean Dollar | XCD | 951 | 2 |
        | Dominican Republic (The) — Dominican Peso | DOP | 214 | 2 |
        | Egypt — Egyptian Pound | EGP | 818 | 2 |
        | El Salvador — El Salvador Colon | SVC | 222 | 2 |
        | Equatorial Guinea — CFA Franc BEAC | XAF | 950 | 0 |
        | Eritrea — Nakfa | ERN | 232 | 2 |
        | Ethiopia — Ethiopian Birr | ETB | 230 | 2 |
        | Falkland Islands (The) [Malvinas] — Falkland Islands Pound | FKP | 238 | 2 |
        | Faroe Islands (The) — Danish Krone | DKK | 208 | 2 |
        | Fiji — Fiji Dollar | FJD | 242 | 2 |
        | French Polynesia — CFP Franc | XPF | 953 | 0 |
        | Gabon — CFA Franc BEAC | XAF | 950 | 0 |
        | Gambia (The) — Dalasi | GMD | 270 | 2 |
        | Georgia — Lari | GEL | 981 | 2 |
        | Ghana — Ghana Cedi | GHS | 936 | 2 |
        | Gibraltar — Gibraltar Pound | GIP | 292 | 2 |
        | Greenland — Danish Krone | DKK | 208 | 2 |
        | Grenada — East Caribbean Dollar | XCD | 951 | 2 |
        | Guatemala — Quetzal | GTQ | 320 | 2 |
        | Guernsey — Pound Sterling | GBP | 826 | 2 |
        | Guinea — Guinean Franc | GNF | 324 | 0 |
        | Guinea-bissau — CFA Franc BCEAO | XOF | 952 | 0 |
        | Guyana — Guyana Dollar | GYD | 328 | 2 |
        | Haiti — Gourde | HTG | 332 | 2 |
        | Heard Island And Mcdonald Islands — Australian Dollar | AUD | 036 | 2 |
        | Honduras — Lempira | HNL | 340 | 2 |
        | Hong Kong — Hong Kong Dollar | HKD | 344 | 2 |
        | Hungary — Forint | HUF | 348 | 2 |
        | Iceland — Iceland Krona | ISK | 352 | 0 |
        | India — Indian Rupee | INR | 356 | 2 |
        | Indonesia — Rupiah | IDR | 360 | 2 |
        | Iran (Islamic Republic Of) — Iranian Rial | IRR | 364 | 2 |
        | Iraq — Iraqi Dinar | IQD | 368 | 3 |
        | Isle Of Man — Pound Sterling | GBP | 826 | 2 |
        | Israel — New Israeli Sheqel | ILS | 376 | 2 |
        | Jamaica — Jamaican Dollar | JMD | 388 | 2 |
        | Japan — Yen | JPY | 392 | 0 |
        | Jersey — Pound Sterling | GBP | 826 | 2 |
        | Jordan — Jordanian Dinar | JOD | 400 | 3 |
        | Kazakhstan — Tenge | KZT | 398 | 2 |
        | Kenya — Kenyan Shilling | KES | 404 | 2 |
        | Kiribati — Australian Dollar | AUD | 036 | 2 |
        | Korea (The Democratic People’s Republic Of) — North Korean Won | KPW | 408 | 2 |
        | Korea (The Republic Of) — Won | KRW | 410 | 0 |
        | Kuwait — Kuwaiti Dinar | KWD | 414 | 3 |
        | Kyrgyzstan — Som | KGS | 417 | 2 |
        | Lao People’s Democratic Republic (The) — Lao Kip | LAK | 418 | 2 |
        | Lebanon — Lebanese Pound | LBP | 422 | 2 |
        | Lesotho — Loti | LSL | 426 | 2 |
        | Lesotho — Rand | ZAR | 710 | 2 |
        | Liberia — Liberian Dollar | LRD | 430 | 2 |
        | Libya — Libyan Dinar | LYD | 434 | 3 |
        | Liechtenstein — Swiss Franc | CHF | 756 | 2 |
        | Macao — Pataca | MOP | 446 | 2 |
        | Macedonia (The Former Yugoslav Republic Of) — Denar | MKD | 807 | 2 |
        | Madagascar — Malagasy Ariary | MGA | 969 | 2 |
        | Malawi — Malawi Kwacha | MWK | 454 | 2 |
        | Malaysia — Malaysian Ringgit | MYR | 458 | 2 |
        | Maldives — Rufiyaa | MVR | 462 | 2 |
        | Mali — CFA Franc BCEAO | XOF | 952 | 0 |
        | Mauritania — Ouguiya | MRU | 929 | 2 |
        | Mauritius — Mauritius Rupee | MUR | 480 | 2 |
        | Mexico — Mexican Peso | MXN | 484 | 2 |
        | Moldova (The Republic Of) — Moldovan Leu | MDL | 498 | 2 |
        | Mongolia — Tugrik | MNT | 496 | 2 |
        | Montserrat — East Caribbean Dollar | XCD | 951 | 2 |
        | Morocco — Moroccan Dirham | MAD | 504 | 2 |
        | Mozambique — Mozambique Metical | MZN | 943 | 2 |
        | Myanmar — Kyat | MMK | 104 | 2 |
        | Namibia — Namibia Dollar | NAD | 516 | 2 |
        | Namibia — Rand | ZAR | 710 | 2 |
        | Nauru — Australian Dollar | AUD | 036 | 2 |
        | Nepal — Nepalese Rupee | NPR | 524 | 2 |
        | New Caledonia — CFP Franc | XPF | 953 | 0 |
        | New Zealand — New Zealand Dollar | NZD | 554 | 2 |
        | Nicaragua — Cordoba Oro | NIO | 558 | 2 |
        | Niger (The) — CFA Franc BCEAO | XOF | 952 | 0 |
        | Nigeria — Naira | NGN | 566 | 2 |
        | Niue — New Zealand Dollar | NZD | 554 | 2 |
        | Norfolk Island — Australian Dollar | AUD | 036 | 2 |
        | Norway — Norwegian Krone | NOK | 578 | 2 |
        | Oman — Rial Omani | OMR | 512 | 3 |
        | Pakistan — Pakistan Rupee | PKR | 586 | 2 |
        | Panama — Balboa | PAB | 590 | 2 |
        | Papua New Guinea — Kina | PGK | 598 | 2 |
        | Paraguay — Guarani | PYG | 600 | 0 |
        | Peru — Sol | PEN | 604 | 2 |
        | Philippines (The) — Philippine Peso | PHP | 608 | 2 |
        | Pitcairn — New Zealand Dollar | NZD | 554 | 2 |
        | Poland — Zloty | PLN | 985 | 2 |
        | Qatar — Qatari Rial | QAR | 634 | 2 |
        | Romania — Romanian Leu | RON | 946 | 2 |
        | Russian Federation (The) — Russian Ruble | RUB | 643 | 2 |
        | Rwanda — Rwanda Franc | RWF | 646 | 0 |
        | Saint Helena, Ascension And Tristan Da Cunha — Saint Helena Pound | SHP | 654 | 2 |
        | Saint Kitts And Nevis — East Caribbean Dollar | XCD | 951 | 2 |
        | Saint Lucia — East Caribbean Dollar | XCD | 951 | 2 |
        | Saint Vincent And The Grenadines — East Caribbean Dollar | XCD | 951 | 2 |
        | Samoa — Tala | WST | 882 | 2 |
        | Sao Tome And Principe — Dobra | STN | 930 | 2 |
        | Saudi Arabia — Saudi Riyal | SAR | 682 | 2 |
        | Senegal — CFA Franc BCEAO | XOF | 952 | 0 |
        | Serbia — Serbian Dinar | RSD | 941 | 2 |
        | Seychelles — Seychelles Rupee | SCR | 690 | 2 |
        | Sierra Leone — Leone | SLL | 694 | 2 |
        | Sierra Leone — Leone | SLE | 925 | 2 |
        | Singapore — Singapore Dollar | SGD | 702 | 2 |
        | Sint Maarten (Dutch Part) — Netherlands Antillean Guilder | ANG | 532 | 2 |
        | Solomon Islands — Solomon Islands Dollar | SBD | 090 | 2 |
        | Somalia — Somali Shilling | SOS | 706 | 2 |
        | South Africa — Rand | ZAR | 710 | 2 |
        | South Sudan — South Sudanese Pound | SSP | 728 | 2 |
        | Sri Lanka — Sri Lanka Rupee | LKR | 144 | 2 |
        | Sudan (The) — Sudanese Pound | SDG | 938 | 2 |
        | Suriname — Surinam Dollar | SRD | 968 | 2 |
        | Svalbard And Jan Mayen — Norwegian Krone | NOK | 578 | 2 |
        | Eswatini — Lilangeni | SZL | 748 | 2 |
        | Sweden — Swedish Krona | SEK | 752 | 2 |
        | Switzerland — Swiss Franc | CHF | 756 | 2 |
        | Syrian Arab Republic — Syrian Pound | SYP | 760 | 2 |
        | Taiwan (Province Of China) — New Taiwan Dollar | TWD | 901 | 2 |
        | Tajikistan — Somoni | TJS | 972 | 2 |
        | Tanzania, United Republic Of — Tanzanian Shilling | TZS | 834 | 2 |
        | Thailand — Baht | THB | 764 | 2 |
        | Togo — CFA Franc BCEAO | XOF | 952 | 0 |
        | Tokelau — New Zealand Dollar | NZD | 554 | 2 |
        | Tonga — Pa’anga | TOP | 776 | 2 |
        | Trinidad And Tobago — Trinidad and Tobago Dollar | TTD | 780 | 2 |
        | Tunisia — Tunisian Dinar | TND | 788 | 3 |
        | Turkey — Turkish Lira | TRY | 949 | 2 |
        | Turkmenistan — Turkmenistan New Manat | TMT | 934 | 2 |
        | Tuvalu — Australian Dollar | AUD | 036 | 2 |
        | Uganda — Uganda Shilling | UGX | 800 | 0 |
        | Ukraine — Hryvnia | UAH | 980 | 2 |
        | United Arab Emirates (The) — UAE Dirham | AED | 784 | 2 |
        | United Kingdom Of Great Britain And Northern Ireland (The) — Pound Sterling | GBP | 826 | 2 |
        | Uruguay — Peso Uruguayo | UYU | 858 | 2 |
        | Uruguay — Unidad Previsional | UYW | 927 | 4 |
        | Uzbekistan — Uzbekistan Sum | UZS | 860 | 2 |
        | Vanuatu — Vatu | VUV | 548 | 0 |
        | Venezuela (Bolivarian Republic Of) — Bolívar Soberano | VES | 928 | 2 |
        | Viet Nam — Dong | VND | 704 | 0 |
        | Wallis And Futuna — CFP Franc | XPF | 953 | 0 |
        | Western Sahara — Moroccan Dirham | MAD | 504 | 2 |
        | Yemen — Yemeni Rial | YER | 886 | 2 |
        | Zambia — Zambian Kwacha | ZMW | 967 | 2 |
        | Zimbabwe — Zimbabwe Dollar | ZWL | 932 | 2 |
        | Zimbabwe — Zimbabwe Gold | ZWG | 924 | 2 |

        </details>
      externalDocs:
        description: Find more info here
        url: https://www.iso.org/iso-4217-currency-codes.html
      example: EUR
    authorizationCurrency:
      type: string
      allOf:
        - description: Used by American Express to verify an authorization for the provided SE Number. <br> **Note:** The following currencies are not permitted; **Belarusian Ruble(BYN), Cuban Peso(CUP), Iranian Rial(IRR), North Korean Won(KPW), Russian Federation Ruble(RUB), and Syrian Pound(SYP)**.
        - $ref: '#/components/schemas/currencyCode'
    amexModel:
      type: string
      description: The AMEX business model. In the PayFac model, authorization is performed using the SE Number on the BIN. In the Direct Merchant or Payment Designation model, authorization is performed using the SE Number on the Acceptor. If `amexModel` is undefined, the AMEX Bin is treated as a PayFac Bin by default.
      default: payfac
      enum:
        - payfac
        - direct_merchant
        - payment_designation
    AmexBin:
      allOf:
        - type: object
          required:
            - network
            - messageSystem
            - acquirerIdCode
            - acquirerBin
          properties:
            network:
              type: string
              enum:
                - american-express
            messageSystem:
              type: string
              enum:
                - DMS
              description: Determines the message structure and Data Element definitions for card network.
            acquirerIdCode:
              allOf:
                - description: Acquirer Institution ID code (Submitter ID). For PayFac model, this identifies the Payment Facilitator.
                - $ref: '#/components/schemas/amexAcquirerIdCode'
            acquirerBin:
              allOf:
                - description: SE Number assigned by AMEX for the Payment Facilitator. For Direct Merchant, this field is automatically copied from acquirerIdCode field.
                - $ref: '#/components/schemas/amexAcquirerBin'
            authorizationCurrency:
              type: string
              $ref: '#/components/schemas/authorizationCurrency'
            amexModel:
              $ref: '#/components/schemas/amexModel'
        - $ref: '#/components/schemas/BaseBin'
    discoverAcquirerIdCode:
      type: string
      description: Acquirer Institution ID code.
      pattern: ^\d+$
      minLength: 1
      maxLength: 11
    discoverAcquirerBin:
      type: string
      description: Acquirer Bin. The Bin number as assigned by the card network.
      pattern: ^\d+$
      minLength: 1
      maxLength: 11
    discoverIsoId:
      type: string
      description: Unique number assigned by Discover to a certified ISO. This field is mandatory if the direct Merchant relationship is maintained by an ISO
      minLength: 1
      maxLength: 11
    DiscoverBin:
      allOf:
        - type: object
          required:
            - network
            - messageSystem
            - acquirerIdCode
            - acquirerBin
          properties:
            network:
              type: string
              enum:
                - discover
            messageSystem:
              type: string
              enum:
                - DMS
              description: Determines the message structure and Data Element definitions for card network.
            acquirerIdCode:
              $ref: '#/components/schemas/discoverAcquirerIdCode'
            acquirerBin:
              $ref: '#/components/schemas/discoverAcquirerBin'
            isoId:
              $ref: '#/components/schemas/discoverIsoId'
        - $ref: '#/components/schemas/BaseBin'
    dinersAcquirerIdCode:
      type: string
      description: Acquirer Institution ID code. For Diners, this field corresponds to the IIC number.
      pattern: ^\d+$
      minLength: 6
      maxLength: 11
    dxsCode:
      description: The dxsCode is provided to acquirers by Diners during onboarding. A unique dxsCode is provided for each IIC.
      type: string
      pattern: ^[a-zA-Z0-9]+$
      minLength: 3
      maxLength: 3
    DinersBin:
      allOf:
        - required:
            - network
            - messageSystem
            - acquirerBin
            - acquirerIdCode
            - dxsCode
          properties:
            network:
              type: string
              enum:
                - diners
            messageSystem:
              type: string
              enum:
                - DMS
              description: Determines the message structure and Data Element definitions for card network.
            acquirerBin:
              allOf:
                - description: For Diners, this field is automatically copied from the acquirerIdCode (IIC number).
                - $ref: '#/components/schemas/dinersAcquirerIdCode'
            acquirerIdCode:
              $ref: '#/components/schemas/dinersAcquirerIdCode'
            dxsCode:
              $ref: '#/components/schemas/dxsCode'
        - $ref: '#/components/schemas/BaseBin'
    unionpayAcquirerIdCode:
      type: string
      description: Acquirer Institution ID code. For Union Pay, this field corresponds to the IIN number and it is a unique value for the Bin.
      pattern: ^\d+$
      minLength: 8
      maxLength: 11
    UnionpayBin:
      allOf:
        - required:
            - network
            - messageSystem
            - acquirerIdCode
          properties:
            network:
              type: string
              enum:
                - unionpay
            messageSystem:
              type: string
              enum:
                - DMS
              description: Determines the message structure and Data Element definitions for card network.
            acquirerIdCode:
              $ref: '#/components/schemas/unionpayAcquirerIdCode'
        - $ref: '#/components/schemas/BaseBin'
    Bin:
      discriminator:
        propertyName: network
        mapping:
          visa: '#/components/schemas/VisaBin'
          mastercard: '#/components/schemas/MastercardBin'
          bancontact: '#/components/schemas/BancontactBin'
          american-express: '#/components/schemas/AmexBin'
          discover: '#/components/schemas/DiscoverBin'
          diners: '#/components/schemas/DinersBin'
          unionpay: '#/components/schemas/UnionpayBin'
      oneOf:
        - $ref: '#/components/schemas/VisaBin'
        - $ref: '#/components/schemas/MastercardBin'
        - $ref: '#/components/schemas/BancontactBin'
        - $ref: '#/components/schemas/AmexBin'
        - $ref: '#/components/schemas/DiscoverBin'
        - $ref: '#/components/schemas/DinersBin'
        - $ref: '#/components/schemas/UnionpayBin'
    merchantStatus:
      type: string
      description: The status of the Merchant
      enum:
        - active
        - archived
    merchantReference:
      description: Merchant reference number used by the Agent. Must not start with "mct-".
      type: string
      pattern: ^(?!mct-)[a-zA-Z0-9()+,\-.:=@;$_!*\/?#|]+$
      minLength: 1
      maxLength: 120
    agentKey:
      description: Uniquely identifies an Agent
      type: string
      pattern: ^cgt-[a-zA-Z0-9]+|current$
      example: cgt-1UF2NafdfrdPMf2XrS2
    merchantLegalName:
      allOf:
        - $ref: '#/components/schemas/ExtendedNameOfPeopleAndPlaces'
        - description: The legal name of the Merchant. Clients not enrolled in the "extended character set beta" are still subject to the `^[\w ,\.\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u00FF-\/]+$` pattern for field input.
    phoneNumber:
      type: string
      description: An international phone number
      pattern: ^(00|\+)[1-9]\d+$
      minLength: 5
      maxLength: 33
      example: '+31850609160'
    Tags:
      type: object
      description: |
        Optional tags provided by the agent to tag the object for maintainability. Tags can be used filtering and sorting on the list views of entities. Tag object can contain 10 properties at most. A valid tag-key must:
        - contain only a-z, 0-9, "_" characters
        - first character should be a letter
        - be at least 1 character long
        - be no longer than 24 characters
        - not start with "sf_"
      additionalProperties:
        type: string
        description: Value of the key.
        pattern: ^.+$
        minLength: 1
        maxLength: 100
      example:
        IamAKey: ThisIsaValue!
    taxRegistrationId:
      type: string
      description: |
        A unique identifier assigned to individuals or entities for tax-related purposes. The format, name and use of this id may vary depending on the country and card network. 
        <br> **Visa** requires all acquirers to include the SIRET for France or the Tax Identification Number for Belgium and Luxembourg for all domestic transactions.
        <br> **Mastercard** and **Discover** require the Tax Id Number in the US for commercial card transactions.
      pattern: ^[a-zA-Z0-9]+$
      maxLength: 20
    email:
      type: string
      description: A valid email address
      pattern: \w+([-+.']\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*
    businessType:
      type: string
      description: |
        The business type of the merchant. Specifying the businessType for your legal entity may qualify the merchant to benefit from lower interchange fees in the United States (Mastercard and Visa). 
        <br> For US merchants, **Mastercard** requires this field for commercial card transactions. If none of the values closely match your business type please contact your Technical Account Manager.
      enum:
        - corporation
        - sole_proprietorship
        - partnership
        - non_profit_organization
        - government_agency
        - limited_liability_company
    Merchant:
      type: object
      required:
        - key
        - status
        - agentKey
        - name
        - legalName
        - registeredAddress
        - customerInquiry
        - websiteUrl
        - created
        - version
      description: |
        A Merchant acts as a template
      properties:
        key:
          $ref: '#/components/schemas/merchantKey'
        status:
          $ref: '#/components/schemas/merchantStatus'
        merchantReference:
          $ref: '#/components/schemas/merchantReference'
        agentKey:
          $ref: '#/components/schemas/agentKey'
        name:
          allOf:
            - $ref: '#/components/schemas/ExtendedNameOfPeopleAndPlaces'
            - description: The display name of the Merchant. Clients not enrolled in the "extended character set beta" are still subject to the `^[\w ,\.\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u00FF-\/]+$` pattern for field input.
        description:
          allOf:
            - $ref: '#/components/schemas/ExtendedFreeTextField'
            - description: The description of the Merchant. Clients not enrolled in the "extended character set beta" are still subject to the `^[\w +=.,:;!?$@()-]+$` pattern for field input.
        legalName:
          $ref: '#/components/schemas/merchantLegalName'
        registeredAddress:
          $ref: '#/components/schemas/Address'
        customerInquiry:
          $ref: '#/components/schemas/phoneNumber'
        websiteUrl:
          $ref: '#/components/schemas/url'
        tags:
          $ref: '#/components/schemas/Tags'
        created:
          $ref: '#/components/schemas/created'
        lastModified:
          $ref: '#/components/schemas/lastModified'
        version:
          $ref: '#/components/schemas/version'
        taxRegistrationId:
          $ref: '#/components/schemas/taxRegistrationId'
        sellerEmail:
          $ref: '#/components/schemas/email'
        businessType:
          $ref: '#/components/schemas/businessType'
      example:
        key: mct-1hPdFhmgaBzMS191nIbJ
        status: active
        agentKey: cgt-1hPdFhmgaBzMS85d4QcG
        merchantReference: AB1234-5678_10.31
        name: ACME Corporation A/S
        description: ACME Corporation. Building materials, rockets and birdseed.
        legalName: ACME Corp. A/S
        registeredAddress:
          countryCode:
            alpha3: USA
            alpha2: US
            numeric: 528
          stateOrProvince: CA
          city: Hill Valley
          line1: Riverside Drive 1640
          postalCode: '91103'
        customerInquiry: '+15554321'
        websiteUrl: https://acme.com/catalog/acme.html
        created: '2021-05-27T10:57:52Z'
        lastModified: '2021-05-27T10:57:52Z'
        version: 1
        sellerEmail: seller@gmail.com
        taxRegistrationId: US1234567890
        businessType: corporation
    networkAssignedId:
      type: string
      description: |
        Unique ID assigned by the card network for the merchant. Used for example for Private Label transactions or large merchants.

        | Network | Length | Characters |
        | ------- | ------ | ---------- |
        | Mastercard | 6 | alpha numeric |
        | Visa | 10 | numeric |
        | Bancontact | 6 | numeric |
      pattern: ^\d{10}|[a-zA-Z0-9]{6}|\d{6}$
    acquirerOrPayFacBusinessId:
      type: string
      description: |
        Unique ID assigned by the card network for the Payment Facilitator or the acquirer (<span class="tag network-tag visa-tag">VISA</span>) that signed up the merchant.  
        **Note:** Mastercard only uses numeric characters in this field, Visa uses alphanumeric characters.
      pattern: ^[a-zA-Z0-9]+$
      minLength: 1
      maxLength: 11
    subMerchantId:
      type: string
      description: Unique ID assigned by the acquirer or Payment Facilitator to the subMerchant.
      pattern: ^[a-zA-Z0-9]+$
      minLength: 1
      maxLength: 15
    isoId:
      type: string
      description: Unique ID assigned by the card network for the Independent Sales Organization. <span class="tag network-tag mastercard-tag">MASTERCARD</span>
      pattern: ^\d{1,11}$
    gatewayId:
      type: string
      description: |
        Merchant Payment Gateway ID (MPG ID). MPG ID is assigned by Mastercard at the time of registration of the MPG as a Service Provider. 
        The value `999998` must be used for MGP ID field if the MPG is wholly owned by the Acquirer.
        The value `999997` must be used in the MPG ID field if the Merchant uses no gateway and connects directly to the Acquirer. 
        In case no value is provided, `999998` is used by Silverflow where applicable. <span class="tag network-tag mastercard-tag">MASTERCARD</span>
      pattern: ^\d{1,11}$
    AcceptorRestriction:
      type: object
      description: An object containing restrictions on the Merchant Acceptor
      deprecated: true
      properties:
        suspendPayouts:
          type: boolean
          deprecated: true
          description: (Coming soon) When set to true payment instructions for this merchant acceptor will not be sent until set to false again.
        blockCharges:
          type: boolean
          deprecated: true
          description: This field is deprecated. The `chargesBlocked` property on the MerchantAcceptor serves as its replacement.
    AcceptorRestrictions:
      type: array
      maxItems: 1
      description: This field is deprecated. The `chargesBlocked` property on the MerchantAcceptor serves as its replacement.
      deprecated: true
      items:
        $ref: '#/components/schemas/AcceptorRestriction'
    chargesBlocked:
      type: boolean
      description: A value of `true` prohibits charges and card management actions from being created using this Acceptor. If the property is absent upon Acceptor creation a value of `false` is assumed.
    foreignRetailer:
      type: boolean
      description: Applicable for Visa Marketplace and Ramp Provider programs only. Indicates if the end merchant is in a different country than the Marketplace or Ramp Provider. <span class="tag network-tag visa-tag">VISA</span>
    marketplaceId:
      type: string
      description: Visa provided ID required for marketplaces. If provided, `rampProviderId` must not be provided. <span class="tag network-tag visa-tag">VISA</span>
      pattern: ^[a-zA-Z0-9]{1,11}$
    rampProviderId:
      type: string
      description: Visa provided ID required for ramp providers. If provided, `marketplaceId` must not be provided. <span class="tag network-tag visa-tag">VISA</span>
      pattern: ^[a-zA-Z0-9]{1,11}$
    DisputeHandling:
      type: object
      additionalProperties: false
      description: Dispute handling settings
      required:
        - autoDefense
      properties:
        autoDefense:
          type: boolean
          description: When autoDefense is set to true, disputes will be auto defended if there is a matching auto-defense rule present. <span class="tag network-tag visa-tag">VISA</span> <span class="tag network-tag mastercard-tag">MASTERCARD</span>
    reference:
      type: string
      pattern: ^[a-zA-Z0-9()+,\-.:=@;$_!*\/?#|]+$
      minLength: 1
      maxLength: 120
      description: User-specified reference.
    acceptorRoute:
      type: string
      pattern: ^(^$|^[a-zA-Z0-9-_:;.,]+$)
      minLength: 0
      maxLength: 255
      description: An optional route key to force route charges
    merchantVolumeIndicator:
      type: string
      pattern: ^\d{2}
      minLength: 2
      maxLength: 2
      description: The Merchant Volume Indicator (MVI) is a Visa assigned field used to classify merchants based on their Visa transaction volume. This field is optional for Visa Merchant Acceptors in the US region. <span class="tag network-tag visa-tag">VISA</span>
    authorizationCurrencyForAmexDirectMerchant:
      allOf:
        - description: Only required if the acceptor is for an AMEX Direct Merchant Bin. If so, this field contains the authorization currency that corresponds to the SE Number.
        - $ref: '#/components/schemas/currencyCode'
    Acceptor:
      type: object
      required:
        - key
        - status
        - mid
        - mcc
        - doingBusinessAsName
        - bin
        - merchant
        - created
        - version
        - description
      description: |
        A Merchant Acceptor
      properties:
        key:
          $ref: '#/components/schemas/acceptorKey'
        status:
          $ref: '#/components/schemas/acceptorStatus'
        description:
          $ref: '#/components/schemas/ExtendedFreeTextField'
        mid:
          $ref: '#/components/schemas/mid'
        mcc:
          $ref: '#/components/schemas/mcc'
        doingBusinessAsName:
          $ref: '#/components/schemas/doingBusinessAsName'
        webshopUrl:
          $ref: '#/components/schemas/webshopUrl'
        pointOfSaleAddress:
          $ref: '#/components/schemas/Address'
        bin:
          $ref: '#/components/schemas/Bin'
        merchant:
          $ref: '#/components/schemas/Merchant'
        networkAssignedId:
          $ref: '#/components/schemas/networkAssignedId'
        acquirerOrPayFacBusinessId:
          $ref: '#/components/schemas/acquirerOrPayFacBusinessId'
        subMerchantId:
          $ref: '#/components/schemas/subMerchantId'
        subMerchantAddress:
          $ref: '#/components/schemas/Address'
        isoId:
          $ref: '#/components/schemas/isoId'
        gatewayId:
          $ref: '#/components/schemas/gatewayId'
        restrictions:
          $ref: '#/components/schemas/AcceptorRestrictions'
        chargesBlocked:
          $ref: '#/components/schemas/chargesBlocked'
        foreignRetailer:
          $ref: '#/components/schemas/foreignRetailer'
        marketplaceId:
          $ref: '#/components/schemas/marketplaceId'
        rampProviderId:
          $ref: '#/components/schemas/rampProviderId'
        tags:
          $ref: '#/components/schemas/Tags'
        disputeHandling:
          $ref: '#/components/schemas/DisputeHandling'
        created:
          $ref: '#/components/schemas/created'
        lastModified:
          $ref: '#/components/schemas/lastModified'
        version:
          $ref: '#/components/schemas/version'
        reference:
          $ref: '#/components/schemas/reference'
        route:
          $ref: '#/components/schemas/acceptorRoute'
        merchantVolumeIndicator:
          $ref: '#/components/schemas/merchantVolumeIndicator'
        authorizationCurrency:
          $ref: '#/components/schemas/authorizationCurrencyForAmexDirectMerchant'
    AcceptorsPage:
      allOf:
        - $ref: '#/components/schemas/Page'
        - type: object
          required:
            - acceptors
          properties:
            acceptors:
              type: array
              items:
                $ref: '#/components/schemas/Acceptor'
    ProblemDetail:
      type: object
      description: |
        The 'problem detail' object relays detailed information about the error that occurred. It is defined
        by [RFC 7807 - Problem Details for HTTP APIs](https://tools.ietf.org/html/rfc7807).

        Note that additional properties may be used to relay error specific information.
      properties:
        type:
          type: string
          description: |
            An absolute URI that identifies the problem type.
          default: about:blank
          example: https://api.silverflow.co/problem/constraint-violation
        title:
          type: string
          description: |
            A short, summary of the problem type. Written in english and readable
            for engineers (usually not suited for non technical stakeholders and
            not localized);
          example: Service Unavailable
        status:
          type: integer
          format: int32
          description: |
            The HTTP status code generated by the origin server for this occurrence
            of the problem.
          minimum: 100
          maximum: 599
          example: 503
        detail:
          type: string
          description: |
            A human readable explanation specific to this occurrence of the
            problem.
          example: Connection to database timed out
        instance:
          type: string
          description: |
            An absolute URI that identifies the specific occurrence of the problem.
            It may or may not yield further information if dereferenced.
      additionalProperties: true
    BadRequestProblemDetail:
      description: |
        A 'problem detail' object for Bad Request (400) errors. Extends the base ProblemDetail
        with a validationErrors array that provides detailed information about validation failures.
      allOf:
        - $ref: '#/components/schemas/ProblemDetail'
        - type: object
          required:
            - type
            - title
            - status
            - detail
            - instance
          properties:
            type:
              type: string
              description: URI reference identifying the problem type.
              enum:
                - /silverflow/problems/bad-request
              example: /silverflow/problems/bad-request
            title:
              type: string
              description: A short summary of the problem type.
              enum:
                - Bad Request
            status:
              type: integer
              format: int32
              description: The HTTP status code (400 for Bad Request).
              enum:
                - 400
            detail:
              type: string
              description: A human readable explanation specific to this occurrence of the problem.
              example: Validation errors occurred
            instance:
              type: string
              description: An absolute URI that identifies the specific occurrence of the problem.
            validationErrors:
              type: array
              description: |
                An array of validation errors that occurred during request processing. Each item can be either
                a simple string message or an object with detailed error information including the path and message.
              items:
                oneOf:
                  - type: string
                    description: A simple validation error message
                    example: Invalid 'mid' length
                  - type: object
                    description: A detailed validation error with path and message
                    required:
                      - instancePath
                      - message
                    properties:
                      instancePath:
                        type: string
                        description: The JSON path to the field that caused the validation error
                        example: /merchantAcceptor/mid
                      message:
                        type: string
                        description: The validation error message
                        example: must be at most 15 characters
          additionalProperties: false
    CountryCodeOnlyAlpha3:
      type: object
      required:
        - alpha3
      additionalProperties: false
      properties:
        alpha3:
          $ref: '#/components/schemas/countryCodeAlpha3'
    CountryCodeOnlyAlpha2:
      type: object
      required:
        - alpha2
      additionalProperties: false
      properties:
        alpha2:
          $ref: '#/components/schemas/countryCodeAlpha2'
    CountryCodeOnlyNumeric:
      type: object
      required:
        - numeric
      additionalProperties: false
      properties:
        numeric:
          $ref: '#/components/schemas/countryCodeNumeric'
    CountryCodeCreate:
      oneOf:
        - $ref: '#/components/schemas/CountryCodeOnlyAlpha3'
        - $ref: '#/components/schemas/CountryCodeOnlyAlpha2'
        - $ref: '#/components/schemas/CountryCodeOnlyNumeric'
    AddressCreate:
      type: object
      required:
        - countryCode
        - city
        - line1
        - postalCode
      additionalProperties: false
      description: |
        A physical postal address
      properties:
        countryCode:
          $ref: '#/components/schemas/CountryCodeCreate'
        stateOrProvince:
          $ref: '#/components/schemas/stateOrProvince'
        city:
          $ref: '#/components/schemas/city'
        line1:
          $ref: '#/components/schemas/line1'
        line2:
          $ref: '#/components/schemas/line2'
        postalCode:
          $ref: '#/components/schemas/postalCode'
    binKeyRef:
      description: A key assigned by Silverflow to uniquely identify a Bin.
      type: string
      pattern: ^bin-[a-zA-Z0-9()+,\-.:=@;$_!*\/?#|]+$
      minLength: 5
      maxLength: 120
      example: bin-1iXRhbDjrT2Yxvo0mSZN
    AcceptorCreate:
      type: object
      required:
        - mid
        - mcc
        - doingBusinessAsName
        - binKey
        - description
      additionalProperties: false
      properties:
        description:
          allOf:
            - $ref: '#/components/schemas/ExtendedFreeTextField'
            - example: ACME Corp. Visa Merchant Acceptor
        mid:
          $ref: '#/components/schemas/mid'
        mcc:
          $ref: '#/components/schemas/mcc'
        doingBusinessAsName:
          $ref: '#/components/schemas/doingBusinessAsName'
        webshopUrl:
          $ref: '#/components/schemas/webshopUrl'
        pointOfSaleAddress:
          allOf:
            - description: Required for Point of Sale (POS) Merchant Acceptors. For certain card network/country combinations the `stateOrProvince` value needs to be a recognised 2-letter uppercase state/province code. For `e-commerce` acceptors the `pointOfSaleAddress` can be omitted and the `registeredAddress` on the Merchant will be used instead.
            - $ref: '#/components/schemas/AddressCreate'
        networkAssignedId:
          $ref: '#/components/schemas/networkAssignedId'
        binKey:
          $ref: '#/components/schemas/binKeyRef'
        acquirerOrPayFacBusinessId:
          $ref: '#/components/schemas/acquirerOrPayFacBusinessId'
        subMerchantId:
          $ref: '#/components/schemas/subMerchantId'
        subMerchantAddress:
          $ref: '#/components/schemas/AddressCreate'
        isoId:
          $ref: '#/components/schemas/isoId'
        gatewayId:
          $ref: '#/components/schemas/gatewayId'
        restrictions:
          $ref: '#/components/schemas/AcceptorRestrictions'
        chargesBlocked:
          $ref: '#/components/schemas/chargesBlocked'
        foreignRetailer:
          $ref: '#/components/schemas/foreignRetailer'
        marketplaceId:
          $ref: '#/components/schemas/marketplaceId'
        rampProviderId:
          $ref: '#/components/schemas/rampProviderId'
        tags:
          $ref: '#/components/schemas/Tags'
        disputeHandling:
          $ref: '#/components/schemas/DisputeHandling'
        reference:
          $ref: '#/components/schemas/reference'
        route:
          $ref: '#/components/schemas/acceptorRoute'
        merchantVolumeIndicator:
          $ref: '#/components/schemas/merchantVolumeIndicator'
        authorizationCurrency:
          $ref: '#/components/schemas/authorizationCurrencyForAmexDirectMerchant'
    PreconditionFailedProblemDetail:
      type: object
      required:
        - type
        - title
        - status
        - detail
        - instance
      properties:
        type:
          type: string
          enum:
            - /silverflow/problems/precondition-failed
        title:
          type: string
          enum:
            - Precondition Failed
        status:
          type: integer
          enum:
            - 412
        detail:
          type: string
          description: |
            A human readable explanation specific to this occurrence of the
            problem.
          example: Connection to database timed out
        instance:
          type: string
          description: |
            An absolute URI that identifies the specific occurrence of the problem.
            It may or may not yield further information if dereferenced.
      additionalProperties: false
    nullableWebshopUrl:
      type: string
      nullable: true
      format: uri
      maxLength: 255
      description: A valid URL
    'null':
      type: object
      description: Set this field to null to remove it from the entity.
      nullable: true
      additionalProperties: false
    nullableAddress:
      description: |
        A physical postal address
      oneOf:
        - $ref: '#/components/schemas/AddressCreate'
        - $ref: '#/components/schemas/null'
    nullableNetworkAssignedId:
      type: string
      nullable: true
      description: |
        Unique ID assigned by the card network for the merchant. Used for example for Private Label transactions or large merchants.

        | Network | Length | Characters |
        | ------- | ------ | ---------- |
        | Mastercard | 6 | alpha numeric |
        | Visa | 10 | numeric |
        | Bancontact | 6 | numeric |
    nullableAcquirerOrPayFacBusinessId:
      type: string
      nullable: true
      pattern: ^[a-zA-Z0-9]+$
      minLength: 1
      maxLength: 11
      description: |
        Unique ID assigned by the card network for the Payment Facilitator or the acquirer (<span class="tag network-tag visa-tag">VISA</span>) that signed up the merchant.  
        **Note:** Mastercard only uses numeric characters in this field, Visa uses alphanumeric characters.
    nullableSubMerchantId:
      type: string
      nullable: true
      pattern: ^[a-zA-Z0-9]+$
      minLength: 1
      maxLength: 15
      description: Unique ID assigned by the acquirer or Payment Facilitator to the subMerchant.
    nullableSubMerchantAddress:
      description: Applicable for the Payment Facilitator setup where the PayFac is onboarded as the Merchant and the Sub Merchants as Acceptors. If omitted, the `registeredAddress` on the Merchant will be used instead. <span class="tag network-tag visa-tag">VISA</span> <span class="tag network-tag mastercard-tag">MASTERCARD</span> <a class="experimental-tag-link" href="https://docs.silverflow.com/guides/api-lifecycle#tag/EXPERIMENTAL-Tag"><span class="tag experimental-tag">EXPERIMENTAL</span></a>
      allOf:
        - $ref: '#/components/schemas/nullableAddress'
    nullableIsoId:
      type: string
      nullable: true
      pattern: ^\d{1,11}$
      description: Unique ID assigned by the card network for the Independent Sales Organization. <span class="tag network-tag mastercard-tag">MASTERCARD</span>
    nullableGatewayId:
      type: string
      nullable: true
      pattern: ^\d{1,11}$
      description: |
        Merchant Payment Gateway ID (MPG ID). MPG ID is assigned by Mastercard at the time of registration of the MPG as a Service Provider. 
        The value `999998` must be used for MGP ID field if the MPG is wholly owned by the Acquirer.
        The value `999997` must be used in the MPG ID field if the Merchant uses no gateway and connects directly to the Acquirer. 
        In case no value is provided, `999998` is used by Silverflow where applicable. <span class="tag network-tag mastercard-tag">MASTERCARD</span>
    nullableForeignRetailer:
      type: boolean
      nullable: true
      description: Applicable for Visa Marketplace and Ramp Provider programs only. Indicates if the end merchant is in a different country than the Marketplace or Ramp Provider. <span class="tag network-tag visa-tag">VISA</span>
    nullableMarketplaceId:
      type: string
      description: Visa provided ID required for marketplaces. If provided, `rampProviderId` must not be provided. <span class="tag network-tag visa-tag">VISA</span>
      pattern: ^[a-zA-Z0-9]{1,11}$
      nullable: true
    nullableRampProviderId:
      type: string
      description: Visa provided ID required for ramp providers. If provided, `marketplaceId` must not be provided. <span class="tag network-tag visa-tag">VISA</span>
      pattern: ^[a-zA-Z0-9]{1,11}$
      nullable: true
    nullableChargesBlocked:
      type: boolean
      nullable: true
      description: A value of `true` prohibits charges and card management actions from being created using this Acceptor. If the property is absent upon Acceptor creation a value of `false` is assumed.
    nullableTags:
      description: |
        Optional tags provided by the agent to tag the object for maintainability. Tags can be used filtering and sorting on the list views of entities. Tag object can contain 10 properties at most. A valid tag-key must:
        - contain only a-z, 0-9, "_" characters
        - first character should be a letter
        - be at least 1 character long
        - be no longer than 24 characters
        - not start with "sf_"
      oneOf:
        - $ref: '#/components/schemas/Tags'
        - $ref: '#/components/schemas/null'
    nullableDisputeHandling:
      description: Dispute handling settings
      oneOf:
        - $ref: '#/components/schemas/DisputeHandling'
        - $ref: '#/components/schemas/null'
    nullableReference:
      type: string
      nullable: true
      pattern: ^[a-zA-Z0-9()+,\-.:=@;$_!*\/?#|]+$
      minLength: 1
      maxLength: 120
      description: User-specified reference.
    nullableRoute:
      type: string
      nullable: true
      pattern: ^(^$|^[a-zA-Z0-9-_:;.,]+$)
      minLength: 0
      maxLength: 255
      description: An optional route key to force route charges
    nullableMerchantVolumeIndicator:
      type: string
      nullable: true
      pattern: ^\d{2}
      minLength: 2
      maxLength: 2
      description: The Merchant Volume Indicator (MVI) is a Visa assigned field used to classify merchants based on their Visa transaction volume. This field is optional for Visa Merchant Acceptors in the US region. <span class="tag network-tag visa-tag">VISA</span>
    AcceptorMergeUpdate:
      type: object
      additionalProperties: false
      properties:
        description:
          $ref: '#/components/schemas/ExtendedFreeTextField'
        mid:
          $ref: '#/components/schemas/mid'
        mcc:
          $ref: '#/components/schemas/mcc'
        doingBusinessAsName:
          $ref: '#/components/schemas/doingBusinessAsName'
        webshopUrl:
          $ref: '#/components/schemas/nullableWebshopUrl'
        pointOfSaleAddress:
          $ref: '#/components/schemas/nullableAddress'
        networkAssignedId:
          $ref: '#/components/schemas/nullableNetworkAssignedId'
        binKey:
          $ref: '#/components/schemas/binKeyRef'
        acquirerOrPayFacBusinessId:
          $ref: '#/components/schemas/nullableAcquirerOrPayFacBusinessId'
        subMerchantId:
          $ref: '#/components/schemas/nullableSubMerchantId'
        subMerchantAddress:
          $ref: '#/components/schemas/nullableSubMerchantAddress'
        isoId:
          $ref: '#/components/schemas/nullableIsoId'
        gatewayId:
          $ref: '#/components/schemas/nullableGatewayId'
        foreignRetailer:
          $ref: '#/components/schemas/nullableForeignRetailer'
        marketplaceId:
          $ref: '#/components/schemas/nullableMarketplaceId'
        rampProviderId:
          $ref: '#/components/schemas/nullableRampProviderId'
        restrictions:
          $ref: '#/components/schemas/AcceptorRestrictions'
        chargesBlocked:
          $ref: '#/components/schemas/nullableChargesBlocked'
        tags:
          $ref: '#/components/schemas/nullableTags'
        disputeHandling:
          $ref: '#/components/schemas/nullableDisputeHandling'
        reference:
          $ref: '#/components/schemas/nullableReference'
        route:
          $ref: '#/components/schemas/nullableRoute'
        merchantVolumeIndicator:
          $ref: '#/components/schemas/nullableMerchantVolumeIndicator'
        authorizationCurrency:
          $ref: '#/components/schemas/authorizationCurrencyForAmexDirectMerchant'
    AcceptorActivate:
      type: object
      required:
        - status
      additionalProperties: false
      properties:
        status:
          type: string
          enum:
            - active
    enrollmentKey:
      description: Uniquely identifies an Enrollment.
      type: string
      pattern: ^enr-[a-zA-Z0-9]
      example: enr-1UF2NafdfrdPMf2XrS2
    enrollmentType:
      description: |
        Type of the enrollment.
        * `amex_sm` - American Express, Sponsored Merchant (**Please reach out to your technical account manager to enable your production access**)
        * `discover-mpr` - Discover, Merchant Profile Registration
        * `issm` - Mastercom Identity Solutions Service Manager [DEPRECATED]
        * `scof` - Mastercom Secure Card on File
        * `vau` - Visa Account Updater
        * `vts` - Visa Token Service (see [guide](https://docs.silverflow.com/guides/merchant-enrollment#tag/Visa-VTS-Enrollment))
      type: string
      enum:
        - amex_sm
        - discover-mpr
        - issm
        - scof
        - vau
        - vts
    enrollmentStatus:
      description: Status of an Enrollment.
      type: string
      enum:
        - pending
        - enrolled
        - unenrolled
        - pendingUnenroll
        - error
        - failed
    Enrollment:
      type: object
      required:
        - key
        - status
        - agentKey
        - merchantKey
        - type
        - enrollmentStatus
        - created
        - version
      properties:
        key:
          $ref: '#/components/schemas/enrollmentKey'
        status:
          $ref: '#/components/schemas/status'
        agentKey:
          $ref: '#/components/schemas/agentKey'
        merchantKey:
          $ref: '#/components/schemas/merchantKey'
        type:
          $ref: '#/components/schemas/enrollmentType'
        enrollmentStatus:
          $ref: '#/components/schemas/enrollmentStatus'
        created:
          type: string
          format: date-time
          description: Enrollment creation date.
        version:
          type: integer
          description: Enrollment version.
        lastModified:
          type: string
          format: date-time
          description: Enrollment last modification date.
        errorMessage:
          type: string
          description: Error message in case 'enrollmentStatus' is error.
    sellerLegalName:
      allOf:
        - $ref: '#/components/schemas/ExtendedNameOfPeopleAndPlaces'
        - description: The Seller's legal name. If the name is more than 60 characters, use proper and meaningful abbreviation, when possible. Do not truncate.
        - minLength: 1
        - maxLength: 60
    sellerDoingBusinessAsName:
      allOf:
        - $ref: '#/components/schemas/ExtendedNameOfPeopleAndPlaces'
        - description: The Seller's business name that appears on the store front and/or Customer receipts, commonly referred to as the Doing Business As (DBA) name. If the name is more than 60 characters, use a proper and meaningful abbreviation, when possible. Do not truncate.
        - minLength: 1
        - maxLength: 60
    addressLine:
      allOf:
        - $ref: '#/components/schemas/line1'
        - minLength: 1
        - maxLength: 40
    addressCity:
      allOf:
        - $ref: '#/components/schemas/city'
        - minLength: 1
        - maxLength: 40
    addressForAmexSMApi:
      type: object
      required:
        - line1
        - city
        - postalCode
        - countryCode
      properties:
        line1:
          $ref: '#/components/schemas/addressLine'
        line2:
          $ref: '#/components/schemas/addressLine'
        city:
          $ref: '#/components/schemas/addressCity'
        postalCode:
          $ref: '#/components/schemas/postalCode'
        countryCode:
          $ref: '#/components/schemas/CountryCode'
        stateOrProvince:
          $ref: '#/components/schemas/stateOrProvince'
    businessRegistrationNumber:
      description: The Seller's Tax Identification Number or their functional equivalents.
      type: string
      pattern: ^[a-zA-Z0-9]+$
      minLength: 1
      maxLength: 15
    amex_phoneNumber:
      description: The phone number for the Seller's physical location. Phone numbers must contain the international telephone country code.
      type: string
      pattern: \d{1,24}
    signerFirstName:
      type: string
      description: The Seller's Authorized Signer complete first name.
      pattern: ^[a-zA-Z0-9]+$
      minLength: 1
      maxLength: 20
    signerLastName:
      type: string
      description: The Seller's Authorized Signer complete last name. For individuals whose name includes two or more family names (i.e. father's surname and mother's surname), all family names must be included in this field without exception.
      pattern: ^[a-zA-Z0-9 -]+$
      minLength: 1
      maxLength: 20
    signerIdentificationNumber:
      type: string
      description: The identification number of the Seller's Authorized Signer.
      pattern: ^[a-zA-Z0-9]+$
      minLength: 1
      maxLength: 30
    signerDateOfBirth:
      type: string
      description: The date of birth of the Seller's Authorized Signer, in the format <YYYY/MM/DD>.
      pattern: ^(19|20)\d{2}\/(0[1-9]|1[0-2])\/(0[1-9]|[12]\d|3[01])$
    signerBase:
      description: Base properties for the Seller's Authorized Signer.
      type: object
      required:
        - firstName
        - lastName
        - identificationNumber
        - dateOfBirth
      properties:
        firstName:
          $ref: '#/components/schemas/signerFirstName'
        lastName:
          $ref: '#/components/schemas/signerLastName'
        identificationNumber:
          $ref: '#/components/schemas/signerIdentificationNumber'
        dateOfBirth:
          $ref: '#/components/schemas/signerDateOfBirth'
    signer:
      allOf:
        - $ref: '#/components/schemas/signerBase'
        - type: object
          description: This field is meant for signer of the Seller.
          required:
            - address
          properties:
            address:
              $ref: '#/components/schemas/addressForAmexSMApi'
    AmexSponsoredMerchantEnrollmentDetail:
      type: object
      description: AMEX Sponsored Merchant Enrollment Detail
      required:
        - key
        - acquirerBin
        - sellerCurrency
        - mid
        - mcc
        - legalName
        - doingBusinessAsName
        - sellerEmail
        - registeredAddress
        - websiteUrl
        - phoneNumber
        - signer
      properties:
        key:
          type: string
        acquirerBin:
          type: string
          description: Acquirer Bin. The Bin number assigned by the card network.
          pattern: ^\d+$
          minLength: 10
          maxLength: 10
        sellerCurrency:
          $ref: '#/components/schemas/authorizationCurrency'
        mid:
          $ref: '#/components/schemas/mid'
        mcc:
          $ref: '#/components/schemas/mcc'
        legalName:
          $ref: '#/components/schemas/sellerLegalName'
        doingBusinessAsName:
          $ref: '#/components/schemas/sellerDoingBusinessAsName'
        sellerEmail:
          allOf:
            - $ref: '#/components/schemas/email'
            - maxLength: 254
        registeredAddress:
          $ref: '#/components/schemas/addressForAmexSMApi'
        websiteUrl:
          $ref: '#/components/schemas/url'
        businessRegistrationNumber:
          $ref: '#/components/schemas/businessRegistrationNumber'
        phoneNumber:
          $ref: '#/components/schemas/amex_phoneNumber'
        signer:
          $ref: '#/components/schemas/signer'
    AmexSponsoredMerchantEnrollment:
      allOf:
        - $ref: '#/components/schemas/Enrollment'
        - type: object
          description: AMEX Sponsored Merchant enrollment <a class="experimental-tag-link" href="https://docs.silverflow.com/guides/api-lifecycle#tag/EXPERIMENTAL-Tag"><span class="tag experimental-tag">EXPERIMENTAL</span></a>
          required:
            - enrollmentDetail
            - type
          properties:
            type:
              type: string
              enum:
                - amex_sm
            warningMessage:
              type: string
              description: Warning message, could occur in case of error or success.
            enrollmentDetail:
              $ref: '#/components/schemas/AmexSponsoredMerchantEnrollmentDetail'
    discoverMid:
      type: string
      description: |
        As per card network requirements, the Merchant ID assigned by the acquirer must uniquely identify a legal merchant per acquirer BIN.
      pattern: ^[a-zA-Z0-9-_\.]+$
      minLength: 1
      maxLength: 15
      example: UO2344SDDAUOGS
    discoverMerchantType:
      description: This field identifies the type of Merchant Profile established with Discover.
      type: string
      enum:
        - self-managed-outlet
        - headquarter-account
        - outlet-reporting-to-headquarter
    discoverDoingBusinessAsName:
      type: string
      pattern: ^[\x20-\x7E\xA0-\xA3\xA5\xA7\xA9-\xB3\xB5-\xB7\xB9-\xBB\xBF-\xFF\u20AC\u0160\u0161\u017D\u017E\u0152\u0153\u0178]+$
      minLength: 1
      maxLength: 40
      description: Assumed, trade or fictitious name of the merchant.
      example: ACME Corp.
    posDeviceDownloadIndicator:
      description: Defines how the POS device is managed/updated. In particular, describes how IIN range updates are made at the POS. Mandatory if Merchant Type is `self-managed-outlet` or `outlet-reporting-to-headquarter`
      enum:
        - host-based-pos-device
        - terminal-based-pos-device
        - software-pos-device
        - all-other-pos-devices
        - unknown
    headquarterAccountNumber:
      type: string
      description: Headquarter account number. Required only when `merchantType` is `outlet-reporting-to-headquarter`.
    businessPrincipal:
      description: Primary contact person at the Merchant DBA location
      type: object
      required:
        - firstName
        - lastName
        - socialSecurityNumber
        - homeAddress
      properties:
        firstName:
          type: string
          description: First name of business principal
          pattern: ^[\x20-\x7E\xA0-\xA3\xA5\xA7\xA9-\xB3\xB5-\xB7\xB9-\xBB\xBF-\xFF\u20AC\u0160\u0161\u017D\u017E\u0152\u0153\u0178]+$
          minLength: 1
          maxLength: 22
        lastName:
          type: string
          description: Last name of business principal
          pattern: ^[\x20-\x7E\xA0-\xA3\xA5\xA7\xA9-\xB3\xB5-\xB7\xB9-\xBB\xBF-\xFF\u20AC\u0160\u0161\u017D\u017E\u0152\u0153\u0178]+$
          minLength: 1
          maxLength: 22
        socialSecurityNumber:
          type: string
          description: Social Security number of business principal
          minLength: 1
          maxLength: 9
        homeAddress:
          type: object
          required:
            - countryCode
            - city
            - line1
            - postalCode
            - stateOrProvince
          additionalProperties: false
          description: A postal home address of business principal
          properties:
            countryCode:
              $ref: '#/components/schemas/countryCodeAlpha3'
            stateOrProvince:
              allOf:
                - $ref: '#/components/schemas/ExtendedNameOfPeopleAndPlaces'
                - description: |
                    Code of the state or province
                  example: OH
                  minLength: 1
                  maxLength: 4
            city:
              allOf:
                - $ref: '#/components/schemas/ExtendedNameOfPeopleAndPlaces'
                - description: |
                    Address line 1. Clients not enrolled in the "extended character set beta" are still subject to the `^[\w ,\.\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u00FF-]+$` pattern for field input.
                  example: Amsterdam
                  minLength: 1
                  maxLength: 28
            line1:
              allOf:
                - $ref: '#/components/schemas/ExtendedNameOfPeopleAndPlaces'
                - description: |
                    Address line 1. Clients not enrolled in the "extended character set beta" are still subject to the `^[\w ,\.\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u00FF-]+$` pattern for field input.
                  example: Entrada 300
                  minLength: 1
                  maxLength: 40
            line2:
              allOf:
                - $ref: '#/components/schemas/ExtendedNameOfPeopleAndPlaces'
                - description: |
                    Address line 2. Clients not enrolled in the "extended character set beta" are still subject to the `^[\w ,\.\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u00FF-]+$` pattern for field input.
                  example: Floor 6
                  minLength: 1
                  maxLength: 40
            postalCode:
              type: string
              pattern: ^[A-Z0-9]+([ -][A-Z0-9]+)?$
              minLength: 1
              maxLength: 15
              description: |
                The postal code of the address.
              example: 1114 AA
    discoverMerchantStatus:
      type: string
      enum:
        - open
        - open-active-bankruptcy
        - open-existing-merchant-entitled-for-card-acceptance
        - conversion-renumbered
    DiscoverMerchantEnrollmentDetail:
      type: object
      description: Discover merchant enrollment details
      required:
        - key
        - mid
        - binKey
        - mcc
        - merchantType
        - acquirerIdCode
        - doingBusinessAsName
        - registeredAddress
        - customerInquiry
        - taxRegistrationId
        - legalName
        - businessType
        - websiteUrl
        - debtRepaymentIndicator
        - businessPrincipal
        - merchantStatus
      properties:
        key:
          type: string
        mid:
          $ref: '#/components/schemas/discoverMid'
        binKey:
          $ref: '#/components/schemas/binKey'
        mcc:
          $ref: '#/components/schemas/mcc'
        merchantType:
          $ref: '#/components/schemas/discoverMerchantType'
        acquirerIdCode:
          $ref: '#/components/schemas/discoverAcquirerIdCode'
        isoId:
          $ref: '#/components/schemas/discoverIsoId'
        doingBusinessAsName:
          $ref: '#/components/schemas/discoverDoingBusinessAsName'
        registeredAddress:
          $ref: '#/components/schemas/Address'
        customerInquiry:
          $ref: '#/components/schemas/phoneNumber'
        taxRegistrationId:
          $ref: '#/components/schemas/taxRegistrationId'
        legalName:
          $ref: '#/components/schemas/merchantLegalName'
        businessType:
          $ref: '#/components/schemas/businessType'
        websiteUrl:
          $ref: '#/components/schemas/url'
        debtRepaymentIndicator:
          type: boolean
        posDeviceDownloadIndicator:
          $ref: '#/components/schemas/posDeviceDownloadIndicator'
        headquarterAccountNumber:
          $ref: '#/components/schemas/headquarterAccountNumber'
        businessPrincipal:
          $ref: '#/components/schemas/businessPrincipal'
        merchantStatus:
          $ref: '#/components/schemas/discoverMerchantStatus'
    DiscoverMerchantEnrollment:
      allOf:
        - $ref: '#/components/schemas/Enrollment'
        - type: object
          description: Discover enrollment <a class="experimental-tag-link" href="https://docs.silverflow.com/guides/api-lifecycle#tag/EXPERIMENTAL-Tag"><span class="tag experimental-tag">EXPERIMENTAL</span></a>
          required:
            - enrollmentDetail
          properties:
            enrollmentDetail:
              $ref: '#/components/schemas/DiscoverMerchantEnrollmentDetail'
          example:
            key: enr-123456
            status: active
            agentKey: cgt-123123
            merchantKey: mct-123123
            type: discover-mpr
            enrollmentStatus: enrolled
            created: '2025-02-01T14:16:54.021Z'
            version: 2
            lastModified: '2025-03-01T14:00:00.123Z'
            errorMessage: 2004-INVALID ISO ID, 2028-INVALID TAX ID NUMBER
            enrollmentDetail:
              key: enr-123456
              mid: '123456789'
              binKey: bin-1234444
              mcc: '1033'
              merchantType: self-managed-outlet
              acquirerIdCode: '1234567'
              isoId: '77777777777'
              doingBusinessAsName: Acme Corp.
              registeredAddress:
                city: Abbeville
                countryCode:
                  alpha3: USA
                  alpha2: US
                  numeric: '016'
                line1: Wes Johnson
                postalCode: '36310'
                stateOrProvince: Alabama
              customerInquiry: '00964833'
              taxRegistrationId: '123'
              legalName: This is legal name
              businessType: corporation
              websiteUrl: https://www.silverlow.com
              merchantReference: '11111111'
              debtRepaymentIndicator: true
              posDeviceDownloadIndicator: host-based-pos-device
              headquarterAccountNumber: '7777777'
              businessPrincipal:
                firstName: John
                homeAddress:
                  city: Abbeville
                  countryCode: USA
                  line1: Wes Johnson
                  postalCode: '36310'
                  stateOrProvince: Alabama
                lastName: Smith
                socialSecurityNumber: '123456789'
              merchantStatus: open
    AcceptorRef:
      type: object
      description: Reference key and status of the acceptor
      required:
        - key
        - version
      properties:
        key:
          $ref: '#/components/schemas/acceptorKey'
        version:
          $ref: '#/components/schemas/version'
    acquirerBin:
      type: string
      description: Acquirer Bin. The Bin number as assigned by the card network. For Mastercard, this is also referred to as the Acquirer Reference ID.
      pattern: ^\d+$
      minLength: 6
      maxLength: 6
    acquirerIdCode:
      type: string
      description: Acquirer Institution ID code. For Mastercard, this field corresponds to the Acquirer ICA. For Visa, this field corresponds to the CIB, which usually has the same value as the Bin. For AMEX, this field corresponds to Submitter ID.
      pattern: ^\d+$
      minLength: 6
      maxLength: 6
    NameOfPeopleAndPlaces:
      type: string
      pattern: ^[\w ,\.\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u00FF-]+$
      minLength: 1
      maxLength: 120
    deleteReason:
      type: string
      enum:
        - Data Entry Error
        - Merchant No Longer Participating
        - Acquirer BIN Change
        - Acquirer Primary ICA Change
        - Other
      description: Issm Unenrollment reason. If empty `Other` will be used.
    IssmEnrollmentDetail:
      type: object
      description: ISSM specific detail
      required:
        - key
        - mid
        - acquirerBin
        - acquirerId
        - merchantLegalName
      properties:
        key:
          type: string
          description: ISSM enrollment detail key
        mid:
          $ref: '#/components/schemas/mid'
        acquirerBin:
          $ref: '#/components/schemas/acquirerBin'
        acquirerId:
          $ref: '#/components/schemas/acquirerIdCode'
        merchantLegalName:
          allOf:
            - $ref: '#/components/schemas/NameOfPeopleAndPlaces'
            - description: The legal name of the Merchant
            - maxLength: 25
        deleteReason:
          $ref: '#/components/schemas/deleteReason'
    IssmEnrollment:
      allOf:
        - $ref: '#/components/schemas/Enrollment'
        - type: object
          description: ISSM Enrollment
          required:
            - enrollmentDetail
          properties:
            merchantAcceptorRef:
              $ref: '#/components/schemas/AcceptorRef'
            enrollmentDetail:
              $ref: '#/components/schemas/IssmEnrollmentDetail'
    ScofProgramType:
      type: string
      enum:
        - merchant_obo
        - commerce_platform_obo
      description: ProgramType in SCOF. Please reach out to your TAM before using `commerce_platform_obo` program type.
    ScofProgramName:
      description: SCOF program name.
      type: string
      pattern: ^[\w]+$
      minLength: 1
      maxLength: 100
    ScofEnrollmentDetail:
      type: object
      description: SCOF specific detail
      required:
        - key
        - mid
        - binKey
        - programType
        - programName
      properties:
        key:
          type: string
          description: SCOF DPA
        mid:
          $ref: '#/components/schemas/mid'
        binKey:
          $ref: '#/components/schemas/binKey'
        programType:
          $ref: '#/components/schemas/ScofProgramType'
        programName:
          $ref: '#/components/schemas/ScofProgramName'
        mccs:
          type: array
          minItems: 1
          maxItems: 20
          items:
            $ref: '#/components/schemas/mcc'
        serviceId:
          type: string
          description: ServiceId assigned by Mastercard SCOF Service
    ScofEnrollment:
      allOf:
        - $ref: '#/components/schemas/Enrollment'
        - type: object
          description: SCOF enrollment <a class="experimental-tag-link" href="https://docs.silverflow.com/guides/api-lifecycle#tag/EXPERIMENTAL-Tag"><span class="tag experimental-tag">EXPERIMENTAL</span></a>
          required:
            - enrollmentDetail
          properties:
            enrollmentDetail:
              $ref: '#/components/schemas/ScofEnrollmentDetail'
    acquirerSegmentId:
      description: VAU acquirer segment identifier
      type: number
    VauEnrollmentDetail:
      type: object
      description: VAU specific detail
      required:
        - key
        - acquirerSegmentId
        - binKey
        - acquirerIdCode
        - merchantLegalName
        - merchantCountryCode
        - mid
        - mcc
      properties:
        key:
          type: string
          description: VAU enrollment detail key
        acquirerSegmentId:
          $ref: '#/components/schemas/acquirerSegmentId'
        binKey:
          $ref: '#/components/schemas/binKey'
        acquirerIdCode:
          $ref: '#/components/schemas/acquirerIdCode'
        merchantLegalName:
          allOf:
            - $ref: '#/components/schemas/NameOfPeopleAndPlaces'
            - description: The legal name of the Merchant
        merchantCountryCode:
          $ref: '#/components/schemas/CountryCode'
        mid:
          $ref: '#/components/schemas/mid'
        mcc:
          $ref: '#/components/schemas/mcc'
    VauEnrollment:
      allOf:
        - $ref: '#/components/schemas/Enrollment'
        - type: object
          description: VAU enrollment <a class="experimental-tag-link" href="https://docs.silverflow.com/guides/api-lifecycle#tag/EXPERIMENTAL-Tag"><span class="tag experimental-tag">EXPERIMENTAL</span></a>
          required:
            - enrollmentDetail
          properties:
            enrollmentDetail:
              $ref: '#/components/schemas/VauEnrollmentDetail'
    businessIdentificationValue:
      type: string
      example: NL123456789B01
      pattern: ^[a-zA-Z0-9]{1,15}$
    businessIdentificationType:
      type: string
      example: VAT
      enum:
        - ABN
        - ACN
        - BIN
        - BIR
        - BN
        - BRN
        - BRNO
        - CL
        - CLN
        - CN
        - CNPJ
        - CR
        - CUIT
        - EDRPOU
        - EIN
        - HKBR
        - NATIONAL_ID
        - NIB
        - NID
        - NZBN
        - PAN
        - RFC
        - RNC
        - RUC
        - RUT
        - SIN
        - SSN
        - TC
        - UEN
        - USCI
        - VAT
    tokenizationConfiguration:
      type: object
      description: VTS tokenization configuration.
      required:
        - tokenRequestorId
        - applicationId
        - profileName
      properties:
        tokenRequestorId:
          type: string
        applicationId:
          type: string
        profileName:
          type: string
    VtsEnrollmentDetail:
      type: object
      description: VTS specific detail.
      required:
        - key
        - merchantName
        - merchantWebsite
        - merchantCity
        - merchantCountryCode
        - primaryContactEmail
      properties:
        key:
          type: string
          description: VTS enrollment detail key
        merchantName:
          allOf:
            - $ref: '#/components/schemas/NameOfPeopleAndPlaces'
            - description: The legal name of the Merchant
        merchantWebsite:
          $ref: '#/components/schemas/url'
        merchantCity:
          $ref: '#/components/schemas/city'
        merchantCountryCode:
          $ref: '#/components/schemas/countryCodeAlpha2'
        primaryContactEmail:
          $ref: '#/components/schemas/email'
        acquirerId:
          $ref: '#/components/schemas/acquirerIdCode'
        mid:
          $ref: '#/components/schemas/mid'
        businessIdentificationValue:
          $ref: '#/components/schemas/businessIdentificationValue'
        businessIdentificationType:
          $ref: '#/components/schemas/businessIdentificationType'
        externalClientId:
          type: string
        tokenizationConfiguration:
          $ref: '#/components/schemas/tokenizationConfiguration'
    VtsEnrollment:
      allOf:
        - $ref: '#/components/schemas/Enrollment'
        - type: object
          description: VTS enrollment <a class="experimental-tag-link" href="https://docs.silverflow.com/guides/api-lifecycle#tag/EXPERIMENTAL-Tag"><span class="tag experimental-tag">EXPERIMENTAL</span></a>
          required:
            - enrollmentDetail
          properties:
            enrollmentDetail:
              $ref: '#/components/schemas/VtsEnrollmentDetail'
    StandaloneEnrollment:
      oneOf:
        - $ref: '#/components/schemas/AmexSponsoredMerchantEnrollment'
        - $ref: '#/components/schemas/DiscoverMerchantEnrollment'
        - $ref: '#/components/schemas/IssmEnrollment'
        - $ref: '#/components/schemas/ScofEnrollment'
        - $ref: '#/components/schemas/VauEnrollment'
        - $ref: '#/components/schemas/VtsEnrollment'
      discriminator:
        propertyName: type
        mapping:
          amex_sm: '#/components/schemas/AmexSponsoredMerchantEnrollment'
          discover-mpr: '#/components/schemas/DiscoverMerchantEnrollment'
          issm: '#/components/schemas/IssmEnrollment'
          scof: '#/components/schemas/ScofEnrollment'
          vau: '#/components/schemas/VauEnrollment'
          vts: '#/components/schemas/VtsEnrollment'
    EnrollmentsPage:
      allOf:
        - $ref: '#/components/schemas/Page'
        - type: object
          required:
            - enrollments
          properties:
            enrollments:
              type: array
              items:
                $ref: '#/components/schemas/StandaloneEnrollment'
    businessIdentification:
      type: object
      description: |
        **Business identification should be used to enroll with VTS wherever possible.** Use the combination of `binKey` and `mid` for non-profit Merchants or if none of the business identification types below apply. Further requirements are detailed in the [VTS enrollment guide](https://docs.silverflow.com/guides/merchant-enrollment#tag/Visa-VTS-Enrollment).
      required:
        - type
        - value
      properties:
        type:
          $ref: '#/components/schemas/businessIdentificationType'
        value:
          $ref: '#/components/schemas/businessIdentificationValue'
    VtsEnrollmentCreate:
      type: object
      description: Create VTS enrollment.
      required:
        - merchantKey
        - type
      properties:
        merchantKey:
          $ref: '#/components/schemas/merchantKey'
        type:
          type: string
          enum:
            - vts
          description: |
            Type of the enrollment.
            * `amex_sm` - American Express, Sponsored Merchant (**Please reach out to your technical account manager to enable your production access**)
            * `discover-mpr` - Discover, Merchant Profile Registration
            * `scof` - Mastercom Secure Card on File
            * `vau` - Visa Account Updater
            * `vts` - Visa Token Service (see [guide](https://docs.silverflow.com/guides/merchant-enrollment#tag/Visa-VTS-Enrollment))
        businessIdentification:
          $ref: '#/components/schemas/businessIdentification'
        binKey:
          allOf:
            - description: A key assigned by Silverflow to uniquely identify a Bin. **Do not provide if business identification is supplied.**
            - $ref: '#/components/schemas/binKey'
        mid:
          allOf:
            - description: |
                As per card network requirements, the Merchant ID assigned by the acquirer must uniquely identify a legal merchant per acquirer BIN. 
                **Do not provide if business identification is supplied.**

                **Note:** For AMEX merchant acceptors, provide the Seller ID for this property.

                | Network | Length | Characters |
                | ------- | ------ | ---------- |
                | AMEX  | 1-20 | alphanumeric |
                | Bancontact  | 1-15 | alphanumeric |
                | Discover | 1-15 | alphanumeric |
                | Mastercard | 1-15 | alphanumeric |
                | Visa  | 1-15 | alphanumeric |
            - $ref: '#/components/schemas/mid'
    enrollmentCreateType:
      description: |
        Type of the enrollment.
        * `amex_sm` - American Express, Sponsored Merchant (**Please reach out to your technical account manager to enable your production access**)
        * `discover-mpr` - Discover, Merchant Profile Registration
        * `scof` - Mastercom Secure Card on File
        * `vau` - Visa Account Updater
        * `vts` - Visa Token Service (see [guide](https://docs.silverflow.com/guides/merchant-enrollment#tag/Visa-VTS-Enrollment))
      type: string
      enum:
        - amex_sm
        - discover-mpr
        - scof
        - vau
        - vts
    BaseEnrollmentCreate:
      type: object
      required:
        - merchantKey
        - type
      properties:
        merchantKey:
          $ref: '#/components/schemas/merchantKey'
        type:
          $ref: '#/components/schemas/enrollmentCreateType'
        binKey:
          $ref: '#/components/schemas/binKey'
    VauEnrollmentCreate:
      allOf:
        - $ref: '#/components/schemas/BaseEnrollmentCreate'
        - type: object
          description: Create VAU enrollment.
          required:
            - type
            - binKey
            - mid
            - mcc
          properties:
            type:
              type: string
              enum:
                - vau
              description: |
                Type of the enrollment.
                * `amex_sm` - American Express, Sponsored Merchant (**Please reach out to your technical account manager to enable your production access**)
                * `discover-mpr` - Discover, Merchant Profile Registration
                * `scof` - Mastercom Secure Card on File
                * `vau` - Visa Account Updater
                * `vts` - Visa Token Service (see [guide](https://docs.silverflow.com/guides/merchant-enrollment#tag/Visa-VTS-Enrollment))
            binKey:
              $ref: '#/components/schemas/binKey'
            mid:
              $ref: '#/components/schemas/mid'
            mcc:
              $ref: '#/components/schemas/mcc'
    ScofEnrollmentCreate:
      allOf:
        - $ref: '#/components/schemas/BaseEnrollmentCreate'
        - type: object
          description: Create SCOF enrollment
          required:
            - merchantKey
            - type
            - binKey
            - mid
            - programType
            - programName
          properties:
            type:
              type: string
              enum:
                - scof
              description: |
                Type of the enrollment.
                * `amex_sm` - American Express, Sponsored Merchant (**Please reach out to your technical account manager to enable your production access**)
                * `discover-mpr` - Discover, Merchant Profile Registration
                * `scof` - Mastercom Secure Card on File
                * `vau` - Visa Account Updater
                * `vts` - Visa Token Service (see [guide](https://docs.silverflow.com/guides/merchant-enrollment#tag/Visa-VTS-Enrollment))
            binKey:
              $ref: '#/components/schemas/binKey'
            mid:
              $ref: '#/components/schemas/mid'
            programType:
              $ref: '#/components/schemas/ScofProgramType'
            programName:
              $ref: '#/components/schemas/ScofProgramName'
            mccs:
              type: array
              minItems: 1
              maxItems: 20
              items:
                $ref: '#/components/schemas/mcc'
    DiscoverMerchantEnrollmentCreate:
      allOf:
        - $ref: '#/components/schemas/BaseEnrollmentCreate'
        - type: object
          description: Create merchant registration request for Discover.
          required:
            - type
            - binKey
            - mid
            - merchantType
            - doingBusinessAsName
            - mcc
            - businessPrincipal
            - debtRepaymentIndicator
            - merchantStatus
          properties:
            merchantType:
              $ref: '#/components/schemas/discoverMerchantType'
            type:
              type: string
              enum:
                - discover-mpr
              description: |
                Type of the enrollment.
                * `amex_sm` - American Express, Sponsored Merchant (**Please reach out to your technical account manager to enable your production access**)
                * `discover-mpr` - Discover, Merchant Profile Registration
                * `scof` - Mastercom Secure Card on File
                * `vau` - Visa Account Updater
                * `vts` - Visa Token Service (see [guide](https://docs.silverflow.com/guides/merchant-enrollment#tag/Visa-VTS-Enrollment))
            binKey:
              $ref: '#/components/schemas/binKey'
            mid:
              $ref: '#/components/schemas/discoverMid'
            doingBusinessAsName:
              $ref: '#/components/schemas/discoverDoingBusinessAsName'
            mcc:
              $ref: '#/components/schemas/mcc'
            posDeviceDownloadIndicator:
              $ref: '#/components/schemas/posDeviceDownloadIndicator'
            debtRepaymentIndicator:
              description: True if merchant is authorized for debt repayment.
              type: boolean
            businessPrincipal:
              $ref: '#/components/schemas/businessPrincipal'
            merchantStatus:
              $ref: '#/components/schemas/discoverMerchantStatus'
            headquarterAccountNumber:
              $ref: '#/components/schemas/headquarterAccountNumber'
    addressCreateForAmexSMApi:
      type: object
      required:
        - line1
        - city
        - postalCode
        - countryCode
      properties:
        line1:
          $ref: '#/components/schemas/addressLine'
        line2:
          $ref: '#/components/schemas/addressLine'
        city:
          $ref: '#/components/schemas/addressCity'
        postalCode:
          $ref: '#/components/schemas/postalCode'
        countryCode:
          $ref: '#/components/schemas/CountryCodeCreate'
        stateOrProvince:
          $ref: '#/components/schemas/stateOrProvince'
    signerCreate:
      allOf:
        - $ref: '#/components/schemas/signerBase'
        - type: object
          description: This field is mean for signer of Seller during creation.
          required:
            - address
          properties:
            address:
              $ref: '#/components/schemas/addressCreateForAmexSMApi'
    AmexSponsoredMerchantEnrollmentCreate:
      allOf:
        - $ref: '#/components/schemas/BaseEnrollmentCreate'
        - type: object
          description: Create Sponsored Merchant request for American Express.
          required:
            - type
            - binKey
            - mid
            - mcc
            - doingBusinessAsName
            - phoneNumber
            - legalName
            - signer
          properties:
            type:
              type: string
              enum:
                - amex_sm
              description: |
                Type of the enrollment.
                * `amex_sm` - American Express, Sponsored Merchant (**Please reach out to your technical account manager to enable your production access**)
                * `discover-mpr` - Discover, Merchant Profile Registration
                * `scof` - Mastercom Secure Card on File
                * `vau` - Visa Account Updater
                * `vts` - Visa Token Service (see [guide](https://docs.silverflow.com/guides/merchant-enrollment#tag/Visa-VTS-Enrollment))
            binKey:
              $ref: '#/components/schemas/binKey'
            mid:
              $ref: '#/components/schemas/mid'
            mcc:
              $ref: '#/components/schemas/mcc'
            doingBusinessAsName:
              $ref: '#/components/schemas/sellerDoingBusinessAsName'
            phoneNumber:
              $ref: '#/components/schemas/amex_phoneNumber'
            legalName:
              $ref: '#/components/schemas/sellerLegalName'
            businessRegistrationNumber:
              $ref: '#/components/schemas/businessRegistrationNumber'
            signer:
              $ref: '#/components/schemas/signerCreate'
            reinstate:
              type: boolean
              description: Set this property to 'true' if this merchant has previously been cancelled.
    CreateEnrollment:
      oneOf:
        - $ref: '#/components/schemas/AmexSponsoredMerchantEnrollmentCreate'
        - $ref: '#/components/schemas/DiscoverMerchantEnrollmentCreate'
        - $ref: '#/components/schemas/ScofEnrollmentCreate'
        - $ref: '#/components/schemas/VauEnrollmentCreate'
        - $ref: '#/components/schemas/VtsEnrollmentCreate'
      discriminator:
        propertyName: type
        mapping:
          vts: '#/components/schemas/VtsEnrollmentCreate'
          vau: '#/components/schemas/VauEnrollmentCreate'
          scof: '#/components/schemas/ScofEnrollmentCreate'
          discover-mpr: '#/components/schemas/DiscoverMerchantEnrollmentCreate'
          amex_sm: '#/components/schemas/AmexSponsoredMerchantEnrollmentCreate'
    amexCancellationReason:
      description: This field required when cancelling an AMEX Enrollment.
      type: string
      enum:
        - derogatory
        - non_derogatory
    AmexSponsoredMerchantEnrollmentArchive:
      type: object
      description: Archive Sponsored Merchant request for American Express.
      required:
        - type
        - reason
      additionalProperties: false
      properties:
        type:
          type: string
          enum:
            - amex_sm
          description: |
            Type of the enrollment.
            * `amex_sm` - American Express, Sponsored Merchant (**Please reach out to your technical account manager to enable your production access**)
            * `issm` - Mastercom Identity Solutions Service Manager [DEPRECATED]
        reason:
          $ref: '#/components/schemas/amexCancellationReason'
    IssmEnrollmentArchive:
      type: object
      description: Unenroll from ISSM and archive the enrollment
      additionalProperties: false
      properties:
        type:
          type: string
          enum:
            - issm
          description: |
            Type of the enrollment.
            * `amex_sm` - American Express, Sponsored Merchant (**Please reach out to your technical account manager to enable your production access**)
            * `issm` - Mastercom Identity Solutions Service Manager [DEPRECATED]
        deleteReason:
          $ref: '#/components/schemas/deleteReason'
    ArchiveEnrollment:
      oneOf:
        - $ref: '#/components/schemas/AmexSponsoredMerchantEnrollmentArchive'
        - $ref: '#/components/schemas/IssmEnrollmentArchive'
      discriminator:
        propertyName: type
        mapping:
          amex_sm: '#/components/schemas/AmexSponsoredMerchantEnrollmentArchive'
          issm: '#/components/schemas/IssmEnrollmentArchive'
    nullableBusinessRegistrationNumber:
      description: The Seller's Tax Identification Number or their functional equivalents.
      type: string
      pattern: ^[a-zA-Z0-9]+$
      minLength: 1
      maxLength: 15
      nullable: true
    addressUpdateForAmexSMApi:
      type: object
      properties:
        line1:
          $ref: '#/components/schemas/addressLine'
        line2:
          $ref: '#/components/schemas/addressLine'
        city:
          $ref: '#/components/schemas/addressCity'
        postalCode:
          $ref: '#/components/schemas/postalCode'
        countryCode:
          $ref: '#/components/schemas/CountryCodeCreate'
        stateOrProvince:
          $ref: '#/components/schemas/stateOrProvince'
    signerUpdate:
      description: Base properties for the Seller's Authorized Signer.
      type: object
      properties:
        firstName:
          $ref: '#/components/schemas/signerFirstName'
        lastName:
          $ref: '#/components/schemas/signerLastName'
        identificationNumber:
          $ref: '#/components/schemas/signerIdentificationNumber'
        dateOfBirth:
          $ref: '#/components/schemas/signerDateOfBirth'
        address:
          $ref: '#/components/schemas/addressUpdateForAmexSMApi'
    AmexSponsoredMerchantEnrollmentUpdate:
      type: object
      description: Update Sponsored Merchant request for American Express.
      required:
        - type
      additionalProperties: false
      properties:
        type:
          type: string
          enum:
            - amex_sm
          description: |
            Type of the enrollment.
            * `amex_sm` - American Express, Sponsored Merchant (**Please reach out to your technical account manager to enable your production access**)
        mcc:
          $ref: '#/components/schemas/mcc'
        doingBusinessAsName:
          $ref: '#/components/schemas/sellerDoingBusinessAsName'
        phoneNumber:
          $ref: '#/components/schemas/amex_phoneNumber'
        legalName:
          $ref: '#/components/schemas/sellerLegalName'
        businessRegistrationNumber:
          $ref: '#/components/schemas/nullableBusinessRegistrationNumber'
        signer:
          $ref: '#/components/schemas/signerUpdate'
    UpdateEnrollment:
      oneOf:
        - $ref: '#/components/schemas/AmexSponsoredMerchantEnrollmentUpdate'
      discriminator:
        propertyName: type
        mapping:
          amex_sm: '#/components/schemas/AmexSponsoredMerchantEnrollmentUpdate'
    screeningKey:
      description: Uniquely identifies a screening
      type: string
      pattern: ^scr-[a-zA-Z0-9]+$
      minLength: 5
      maxLength: 120
    schemas-binKey:
      description: A key assigned by Silverflow to uniquely identify a BIN.
      type: string
      pattern: ^bin-[a-zA-Z0-9]+$
      minLength: 5
      maxLength: 120
    screeningStatus:
      description: Status of the screening request
      type: string
      enum:
        - pending
        - completed
        - failed
    ErrorMessage:
      description: Error message in case `screeningStatus` is 'failed'.
      type: string
    screeningType:
      type: string
      enum:
        - MATCH
        - VMSS
        - MATCH_PRO
    totalNumberOfResults:
      type: number
      description: Indicates the number of merchants that matched with the search criteria. `totalNumberOfResults` will be available when screening is completed.
    schemas-acquirerIdCode:
      type: string
      description: Acquirer Institution ID code. For Mastercard, this field corresponds to the Acquirer ICA. For Visa, this field corresponds to the CIB, which usually has the same value as the BIN.
      pattern: ^\d+$
      minLength: 6
      maxLength: 6
    schemas-doingBusinessAsName:
      allOf:
        - description: Assumed, trade or fictitious name of the merchant. The name will be trimmed if greater than 70 (VMSS) or 60 (MATCH_PRO).
        - $ref: '#/components/schemas/ExtendedNameOfPeopleAndPlaces'
    schemas-stateOrProvince:
      allOf:
        - $ref: '#/components/schemas/ExtendedNameOfPeopleAndPlaces'
        - description: |
            The state (US) or province (non-US) of the address. Clients not enrolled in the "extended character set beta" are still subject to the `^[\w ,\.\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u00FF-]+$` pattern for field input.
    schemas-city:
      allOf:
        - $ref: '#/components/schemas/ExtendedNameOfPeopleAndPlaces'
        - description: |
            The city of the address. Clients not enrolled in the "extended character set beta" are still subject to the `^[\w ,\.\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u00FF-]+$` pattern for field input.
    schemas-line1:
      allOf:
        - $ref: '#/components/schemas/ExtendedNameOfPeopleAndPlaces'
        - description: |
            Address line 1. Clients not enrolled in the "extended character set beta" are still subject to the `^[\w ,\.\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u00FF-]+$` pattern for field input.
    schemas-line2:
      allOf:
        - $ref: '#/components/schemas/ExtendedNameOfPeopleAndPlaces'
        - description: |
            Address line 2. Clients not enrolled in the "extended character set beta" are still subject to the `^[\w ,\.\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u00FF-]+$` pattern for field input.
    schemas-postalCode:
      type: string
      pattern: ^[A-Z0-9]+([ -][A-Z0-9]+)?$
      minLength: 1
      maxLength: 10
      description: |
        The postal code of the address. Clients not enrolled in the "extended character set beta" are still subject to the `^[A-Z0-9]+(\ [A-Z0-9]*)?$` pattern for field input.
      example:
        - 1114 AA
        - 1115SB
        - EC1A 1BB
        - 123-456
        - M1 1AE
    schemas-Address:
      type: object
      required:
        - countryCode
        - city
        - line1
        - postalCode
      additionalProperties: false
      description: |
        A physical postal address
      properties:
        countryCode:
          $ref: '#/components/schemas/CountryCode'
        stateOrProvince:
          $ref: '#/components/schemas/schemas-stateOrProvince'
        city:
          $ref: '#/components/schemas/schemas-city'
        line1:
          $ref: '#/components/schemas/schemas-line1'
        line2:
          $ref: '#/components/schemas/schemas-line2'
        postalCode:
          $ref: '#/components/schemas/schemas-postalCode'
    schemas-url:
      type: string
      description: A valid URL
      pattern: ^http(s)?:\/\/[a-z0-9-_]+(\.[a-z0-9-_]+)+(/.*)?$
      minLength: 8
      maxLength: 2048
    businessPhoneNumber:
      type: string
      description: An international phone number. Within the USA, phone numbers have a length of 10, and for outside the US, it can be any length with a maximum of 12 digits. Within the U.S. phone numbers can not start with 0 or 1. If the number is outside the U.S. region; do not include the country code. The phone number must be digits only, with no format characters such as parenthesis or dashes.
      pattern: ^[0-9]{10,12}$
      minLength: 10
      maxLength: 12
      example: '31850609160'
    MatchPrincipal:
      type: object
      required:
        - firstName
        - lastName
        - phoneNumber
        - address
      description: |
        A principal of the business. Could be a director, founder, C-level executive, et cetera.
      properties:
        firstName:
          allOf:
            - description: First name of the principal legal owner of the merchant
            - $ref: '#/components/schemas/NameOfPeopleAndPlaces'
        lastName:
          allOf:
            - description: Last name of the principal legal owner of the merchant
            - $ref: '#/components/schemas/NameOfPeopleAndPlaces'
        phoneNumber:
          $ref: '#/components/schemas/businessPhoneNumber'
          description: The Business or Merchant's phone number, including the area code. Within the USA, phone numbers have a length of 10, and for outside the US, it can be any length with a maximum of 12 digits. Within the U.S. phone numbers can not start with 0 or 1. If the number is outside the U.S. region; do not include the country code. The phone number must be digits only, with no format characters such as parenthesis or dashes.
        address:
          $ref: '#/components/schemas/schemas-Address'
    MatchScreeningDetail:
      type: object
      required:
        - acquirerIdCode
        - legalName
        - address
        - doingBusinessAsName
        - principals
        - websiteUrl
      description: |
        Post an array of principals with all details to be screened for the merchant.
      properties:
        acquirerIdCode:
          $ref: '#/components/schemas/schemas-acquirerIdCode'
        legalName:
          allOf:
            - $ref: '#/components/schemas/ExtendedNameOfPeopleAndPlaces'
            - description: The legal name of the Merchant. Clients not enrolled in the "extended character set beta" are still subject to the `^[\w ,\.\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u00FF-\/]+$` pattern for field input. LegalName will be trimmed if it is longer then 60 chars.
        doingBusinessAsName:
          $ref: '#/components/schemas/schemas-doingBusinessAsName'
        address:
          $ref: '#/components/schemas/schemas-Address'
        websiteUrl:
          $ref: '#/components/schemas/schemas-url'
        principals:
          type: array
          description: The principals of the business
          minItems: 1
          maxItems: 5
          items:
            $ref: '#/components/schemas/MatchPrincipal'
    MatchProEmail:
      type: string
      description: Email address of a principal
      maxLength: 100
      pattern: \w+([-+.']\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*
    MatchProPrincipal:
      type: object
      required:
        - firstName
        - lastName
        - phoneNumber
        - address
        - email
      description: |
        A principal of the business. Could be a director, founder, C-level executive, et cetera.
      properties:
        firstName:
          allOf:
            - description: First name of the principal legal owner of the merchant
            - $ref: '#/components/schemas/NameOfPeopleAndPlaces'
        lastName:
          allOf:
            - description: Last name of the principal legal owner of the merchant
            - $ref: '#/components/schemas/NameOfPeopleAndPlaces'
        phoneNumber:
          $ref: '#/components/schemas/businessPhoneNumber'
          description: The Business or Merchant's phone number, including the area code. Within the USA, phone numbers have a length of 10, and for outside the US, it can be any length with a maximum of 12 digits. Within the U.S. phone numbers can not start with 0 or 1. If the number is outside the U.S. region; do not include the country code. The phone number must be digits only, with no format characters such as parenthesis or dashes.
        address:
          $ref: '#/components/schemas/schemas-Address'
        email:
          $ref: '#/components/schemas/MatchProEmail'
    MatchProScreeningDetail:
      type: object
      required:
        - acquirerIdCode
        - legalName
        - address
        - doingBusinessAsName
        - merchantCategoryCode
        - merchantPhoneNumber
        - principals
        - websiteUrl
      description: |
        Post an array of principals with all details to be screened for the merchant.
      properties:
        acquirerIdCode:
          $ref: '#/components/schemas/schemas-acquirerIdCode'
        legalName:
          allOf:
            - $ref: '#/components/schemas/ExtendedNameOfPeopleAndPlaces'
            - description: The legal name of the Merchant. Clients not enrolled in the "extended character set beta" are still subject to the `^[\w ,\.\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u00FF-\/]+$` pattern for field input. LegalName will be trimmed if it is longer then 60 chars.
        doingBusinessAsName:
          $ref: '#/components/schemas/schemas-doingBusinessAsName'
        merchantCategoryCode:
          type: string
          description: Assumed, trade or fictitious name of the merchant.
          pattern: ^\d{4}$
          minLength: 4
          maxLength: 4
        merchantPhoneNumber:
          $ref: '#/components/schemas/businessPhoneNumber'
          description: |
            The merchant's business phone number, including area code.
              - For U.S. numbers
                - Must be exactly 10 digits and cannot start with 0 or 1.
              - For non-U.S. numbers
                - Can be up to 25 digits. Do not include the country code. 
              - Formatting
                - Digits only. Do not use symbols or formatting characters (e.g., parentheses, spaces, or dashes).
        address:
          $ref: '#/components/schemas/schemas-Address'
        websiteUrl:
          $ref: '#/components/schemas/schemas-url'
        principals:
          type: array
          description: The principals of the business
          minItems: 1
          maxItems: 5
          items:
            $ref: '#/components/schemas/MatchProPrincipal'
    bid:
      type: string
      description: Visa assigned Business Identifier (BID) of the Acquirer.
      pattern: ^[0-9]{8}$
    vmssDoingBusinessAsName:
      type: string
      description: Assumed, trade or fictitious name of the merchant. The name will be trimmed if greater than 70.
      pattern: ^[\w\s\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u00FF,\-()'`.\/;:&$#!+?@=\\]*$
    tradeOverInternet:
      type: boolean
      description: TradeOverInternet
    businessCategory:
      type: string
      enum:
        - merchant
        - paymentFacilitator
        - marketplace
    visaPrincipalName:
      type: string
      pattern: ^[\w ,\.\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u00FF-]+$
      minLength: 1
      maxLength: 15
    visaPrincipalLastName:
      type: string
      pattern: ^[\w ,\.\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u00FF-]+$
      minLength: 1
      maxLength: 15
    VmssPrincipal:
      type: object
      required:
        - firstName
        - lastName
      description: |
        A principal of the business. Could be a director, founder, C-level executive, et cetera.
      properties:
        firstName:
          allOf:
            - description: First name of the principal legal owner of the merchant
            - $ref: '#/components/schemas/visaPrincipalName'
        lastName:
          allOf:
            - description: Last name of the principal legal owner of the merchant
            - $ref: '#/components/schemas/visaPrincipalLastName'
    VmssScreeningDetail:
      type: object
      required:
        - bid
        - doingBusinessAsName
        - address
        - principals
        - businessPhoneNumbers
        - tradeOverInternet
        - websiteUrl
        - businessCategory
      description: |
        Post an array of principals with all details to be screened for the merchant acceptor.
      properties:
        bid:
          $ref: '#/components/schemas/bid'
        doingBusinessAsName:
          $ref: '#/components/schemas/vmssDoingBusinessAsName'
        address:
          $ref: '#/components/schemas/schemas-Address'
        businessPhoneNumbers:
          type: array
          description: Additional phone numbers of the merchant including the area code.
          minItems: 1
          maxItems: 5
          items:
            $ref: '#/components/schemas/businessPhoneNumber'
        websiteUrl:
          $ref: '#/components/schemas/schemas-url'
        tradeOverInternet:
          $ref: '#/components/schemas/tradeOverInternet'
        businessCategory:
          $ref: '#/components/schemas/businessCategory'
          description: Category of the business
        principals:
          type: array
          description: The principals of the business
          minItems: 1
          maxItems: 5
          items:
            $ref: '#/components/schemas/VmssPrincipal'
    ScreeningDetail:
      oneOf:
        - $ref: '#/components/schemas/MatchScreeningDetail'
        - $ref: '#/components/schemas/MatchProScreeningDetail'
        - $ref: '#/components/schemas/VmssScreeningDetail'
    Screening:
      type: object
      required:
        - key
        - merchantKey
        - binKey
        - screeningType
        - agentKey
        - created
        - screeningStatus
        - status
        - screeningDetail
        - version
      description: |
        A response on a submitted screening request.
      properties:
        key:
          $ref: '#/components/schemas/screeningKey'
        merchantKey:
          $ref: '#/components/schemas/merchantKey'
        binKey:
          $ref: '#/components/schemas/schemas-binKey'
        agentKey:
          $ref: '#/components/schemas/agentKey'
        screeningStatus:
          $ref: '#/components/schemas/screeningStatus'
        errorMessage:
          $ref: '#/components/schemas/ErrorMessage'
        screeningType:
          $ref: '#/components/schemas/screeningType'
        created:
          $ref: '#/components/schemas/created'
        lastModified:
          $ref: '#/components/schemas/lastModified'
        status:
          $ref: '#/components/schemas/status'
        version:
          $ref: '#/components/schemas/version'
        totalNumberOfResults:
          $ref: '#/components/schemas/totalNumberOfResults'
        screeningDetail:
          $ref: '#/components/schemas/ScreeningDetail'
    ScreeningsPage:
      allOf:
        - $ref: '#/components/schemas/Page'
        - type: object
          required:
            - screenings
          properties:
            screenings:
              type: array
              items:
                $ref: '#/components/schemas/Screening'
    ValidationError:
      type: object
      required:
        - path
        - message
      properties:
        path:
          type: string
          description: A relative path to the error location within the request body.
        errorCode:
          type: string
          description: A code that identifies the error.
        message:
          type: string
          description: A brief description of the validation error.
    InvalidInputErrorDetails:
      type: object
      required:
        - type
        - title
        - status
        - detail
        - instance
      properties:
        type:
          type: string
          description: A relative URI reference, this property can be used to perform automated error handling.
          enum:
            - /silverflow/problems/invalid-input
        title:
          type: string
          description: A short, human-readable summary of the problem type. It does not change from occurrence to occurrence of the error.
          enum:
            - Invalid Input
        status:
          type: integer
          format: int32
          description: The HTTP status code generated by the origin server for this occurrence of the problem.
          enum:
            - 400
        detail:
          type: string
          description: A human readable explanation specific to this occurrence of the problem.
        instance:
          type: string
          description: A reference that identifies the specific occurrence of the error. The instance is unique for every error.
        validationErrors:
          type: array
          items:
            $ref: '#/components/schemas/ValidationError'
          description: A list of validation errors.
    schemas-ProblemDetail:
      type: object
      description: |
        The 'problem detail' object relays detailed information about the error that occurred. It is defined
        by [RFC 7807 - Problem Details for HTTP APIs](https://tools.ietf.org/html/rfc7807).

        Note that additional properties may be used to relay error specific information. For instance,
        A Bad Request error may hold information about the individual validation errors found in the request.
      properties:
        type:
          type: string
          description: |
            An absolute URI that identifies the problem type.
          default: about:blank
          example: https://api.silverflow.co/problem/constraint-violation
        title:
          type: string
          description: |
            A short, summary of the problem type. Written in english and readable
            for engineers (usually not suited for non technical stakeholders and
            not localized);
          example: Service Unavailable
        status:
          type: integer
          format: int32
          description: |
            The HTTP status code generated by the origin server for this occurrence
            of the problem.
          minimum: 100
          maximum: 599
          example: 503
        detail:
          type: string
          description: |
            A human readable explanation specific to this occurrence of the
            problem.
          example: Connection to database timed out
        instance:
          type: string
          description: |
            An absolute URI that identifies the specific occurrence of the problem.
            It may or may not yield further information if dereferenced.
      additionalProperties: true
      example:
        type: https://api.silverflow.co/problem/bad-request
        title: Bad Request
        status: 400
        detail: The request could not be processed as it contained an invalid request entity
        instance: https://api.silverflow.co/v1/merchants/mct-1hPdFqhgstYTUhlphPDp
        validationErrors:
          - The value of property 'status' should be one of 'idle', 'active' or 'archived'
          - The value of property 'tags.0.businessId' must not be longer than 255 characters
    MatchPrincipalName:
      type: string
      pattern: ^[\w ,\.\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u00FF-]+$
      minLength: 1
      maxLength: 40
    CountryCodeAlpha3:
      type: object
      required:
        - alpha3
      additionalProperties: false
      properties:
        alpha3:
          $ref: '#/components/schemas/countryCodeAlpha3'
    CountryCodeAlpha2:
      type: object
      required:
        - alpha2
      additionalProperties: false
      properties:
        alpha2:
          $ref: '#/components/schemas/countryCodeAlpha2'
    CountryCodeNumeric:
      type: object
      required:
        - numeric
      additionalProperties: false
      properties:
        numeric:
          $ref: '#/components/schemas/countryCodeNumeric'
    CountryCodeInput:
      oneOf:
        - $ref: '#/components/schemas/CountryCodeAlpha3'
        - $ref: '#/components/schemas/CountryCodeAlpha2'
        - $ref: '#/components/schemas/CountryCodeNumeric'
    MatchProAddressInput:
      type: object
      required:
        - countryCode
        - city
        - line1
        - postalCode
      additionalProperties: false
      description: |
        A physical postal address
      properties:
        countryCode:
          $ref: '#/components/schemas/CountryCodeInput'
        stateOrProvince:
          $ref: '#/components/schemas/schemas-stateOrProvince'
        city:
          type: string
          pattern: ^[\x20-\x7E\xA0-\xA3\xA5\xA7\xA9-\xB3\xB5-\xB7\xB9-\xBB\xBF-\xFF\u20AC\u0160\u0161\u017D\u017E\u0152\u0153\u0178]+$
          minLength: 1
          maxLength: 40
          description: |
            The city of the address. Clients not enrolled in the "extended character set beta" are still subject to the `^[\w ,\.\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u00FF-]+$` pattern for field input.
        line1:
          type: string
          pattern: ^[\x20-\x7E\xA0-\xA3\xA5\xA7\xA9-\xB3\xB5-\xB7\xB9-\xBB\xBF-\xFF\u20AC\u0160\u0161\u017D\u017E\u0152\u0153\u0178]+$
          minLength: 1
          maxLength: 60
          description: |
            Address line 1. Clients not enrolled in the "extended character set beta" are still subject to the `^[\w ,\.\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u00FF-]+$` pattern for field input.
        line2:
          type: string
          pattern: ^[\x20-\x7E\xA0-\xA3\xA5\xA7\xA9-\xB3\xB5-\xB7\xB9-\xBB\xBF-\xFF\u20AC\u0160\u0161\u017D\u017E\u0152\u0153\u0178]+$
          minLength: 1
          maxLength: 60
          description: |
            Address line 2. Clients not enrolled in the "extended character set beta" are still subject to the `^[\w ,\.\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u00FF-]+$` pattern for field input.
        postalCode:
          $ref: '#/components/schemas/schemas-postalCode'
    MatchProPrincipalInput:
      type: object
      required:
        - firstName
        - lastName
        - phoneNumber
        - address
        - email
      description: |
        A principal of the business. Could be a director, founder, C-level executive, et cetera.
      properties:
        firstName:
          description: First name of the principal legal owner of the merchant
          $ref: '#/components/schemas/MatchPrincipalName'
        lastName:
          description: Last name of the principal legal owner of the merchant
          $ref: '#/components/schemas/MatchPrincipalName'
        phoneNumber:
          $ref: '#/components/schemas/businessPhoneNumber'
          description: The Business or Merchant's phone number, including the area code. Within the USA, phone numbers have a length of 10, and for outside the US, it can be any length with a maximum of 12 digits. Within the U.S. phone numbers can not start with 0 or 1. If the number is outside the U.S. region; do not include the country code. The phone number must be digits only, with no format characters such as parenthesis or dashes.
        address:
          $ref: '#/components/schemas/MatchProAddressInput'
        email:
          $ref: '#/components/schemas/MatchProEmail'
    MatchProScreeningRequest:
      type: object
      required:
        - screeningType
        - merchantKey
        - binKey
        - doingBusinessAsName
        - principals
        - merchantCategoryCode
        - merchantPhoneNumber
      description: |
        Post an array of principals with all details to be screened for the merchant acceptor.
      properties:
        screeningType:
          type: string
          enum:
            - MATCH_PRO
        merchantKey:
          $ref: '#/components/schemas/merchantKey'
        binKey:
          $ref: '#/components/schemas/schemas-binKey'
        doingBusinessAsName:
          type: string
          description: Assumed, trade or fictitious name of the merchant.
          pattern: ^[\x20-\x7E\xA0-\xA3\xA5\xA7\xA9-\xB3\xB5-\xB7\xB9-\xBB\xBF-\xFF\u20AC\u0160\u0161\u017D\u017E\u0152\u0153\u0178]+$
          minLength: 1
          maxLength: 110
        merchantCategoryCode:
          type: string
          description: A classification code used in authorization, clearing and other transactions or reports to identify the type of merchant.
          pattern: ^\d{4}$
          minLength: 4
          maxLength: 4
        merchantPhoneNumber:
          $ref: '#/components/schemas/businessPhoneNumber'
          description: |
            The merchant's business phone number, including area code.
              - For U.S. numbers
                - Must be exactly 10 digits and cannot start with 0 or 1.
              - For non-U.S. numbers
                - Can be up to 25 digits. Do not include the country code. 
              - Formatting
                - Digits only. Do not use symbols or formatting characters (e.g., parentheses, spaces, or dashes).
        principals:
          type: array
          description: The principals of the business
          minItems: 1
          maxItems: 5
          items:
            $ref: '#/components/schemas/MatchProPrincipalInput'
    VmssScreeningRequest:
      type: object
      required:
        - screeningType
        - merchantKey
        - binKey
        - doingBusinessAsName
        - principals
        - businessPhoneNumbers
        - tradeOverInternet
        - businessCategory
      description: |
        Post an array of principals with all details to be screened for the merchant acceptor.
      properties:
        screeningType:
          type: string
          enum:
            - VMSS
        merchantKey:
          $ref: '#/components/schemas/merchantKey'
        binKey:
          $ref: '#/components/schemas/schemas-binKey'
        doingBusinessAsName:
          $ref: '#/components/schemas/vmssDoingBusinessAsName'
        businessPhoneNumbers:
          type: array
          description: Additional phone numbers of the merchant including the area code.
          minItems: 1
          maxItems: 5
          items:
            $ref: '#/components/schemas/businessPhoneNumber'
        tradeOverInternet:
          $ref: '#/components/schemas/tradeOverInternet'
        businessCategory:
          $ref: '#/components/schemas/businessCategory'
          description: Category of the business
        principals:
          type: array
          description: |
            The principals of the business.

            Note: Duplicate principals with the same firstName and lastName (case-insensitive) will be automatically deduplicated, keeping only the first occurrence.
          minItems: 1
          maxItems: 5
          items:
            $ref: '#/components/schemas/VmssPrincipal'
        bid:
          $ref: '#/components/schemas/bid'
    ScreeningRequest:
      oneOf:
        - $ref: '#/components/schemas/MatchProScreeningRequest'
        - $ref: '#/components/schemas/VmssScreeningRequest'
      discriminator:
        propertyName: screeningType
        mapping:
          MATCH_PRO: '#/components/schemas/MatchProScreeningRequest'
          VMSS: '#/components/schemas/VmssScreeningRequest'
    terminationReason:
      type: string
      enum:
        - excessive-fraud
        - excessive-chargebacks
        - transaction-laundering
        - illegal-transactions
        - visa-compliance-program
        - merchant-collusion
        - common-point-of-purchase
        - fraud-conviction
        - insolvency
        - violation-of-agreement
        - violation-of-rules
        - pci-non-compliance
        - account-data-compromise
        - merchant-identity-theft
        - disqualified-from-network
        - non-f2f-adult-content
    matchType:
      type: string
      enum:
        - none
        - partial
        - phonetic
        - exact
    RecordMatchString:
      type: object
      description: |
        Describes the type of match and the value of the record that matched with the input.
        Some sensitive fields will be masked by the card networks
      required:
        - matchType
      properties:
        matchType:
          $ref: '#/components/schemas/matchType'
        value:
          type: string
    RecordMatchStringArray:
      type: object
      description: |
        Describes the type of match and the value of the record that matched with the input.
        Some sensitive fields will be masked by the card networks.
      required:
        - matchType
        - value
      properties:
        matchType:
          $ref: '#/components/schemas/matchType'
        value:
          type: array
          minItems: 0
          maxItems: 5
          items:
            type: string
    AddressMatch:
      type: object
      properties:
        line1:
          $ref: '#/components/schemas/RecordMatchString'
        city:
          $ref: '#/components/schemas/RecordMatchString'
        stateOrProvince:
          $ref: '#/components/schemas/RecordMatchString'
        countryCode:
          $ref: '#/components/schemas/RecordMatchString'
        postalCode:
          $ref: '#/components/schemas/RecordMatchString'
    VmssPrincipalResult:
      type: object
      required:
        - firstName
        - lastName
      properties:
        firstName:
          $ref: '#/components/schemas/RecordMatchString'
        lastName:
          $ref: '#/components/schemas/RecordMatchString'
    VmssScreeningResult:
      type: object
      required:
        - bid
        - doingBusinessAsName
        - businessPhoneNumbers
        - address
        - principals
        - websiteUrl
      properties:
        bid:
          $ref: '#/components/schemas/bid'
        doingBusinessAsName:
          $ref: '#/components/schemas/RecordMatchString'
        businessPhoneNumbers:
          $ref: '#/components/schemas/RecordMatchStringArray'
        websiteUrl:
          $ref: '#/components/schemas/RecordMatchStringArray'
        address:
          $ref: '#/components/schemas/AddressMatch'
        principals:
          type: array
          items:
            $ref: '#/components/schemas/VmssPrincipalResult'
    terminatedByAcquirerIdCode:
      type: string
      description: AcquirerIdCode that terminated the merchant.
    MatchPrincipalResult:
      type: object
      required:
        - firstName
        - lastName
        - address
        - phoneNumber
      properties:
        firstName:
          $ref: '#/components/schemas/RecordMatchString'
        lastName:
          $ref: '#/components/schemas/RecordMatchString'
        address:
          $ref: '#/components/schemas/AddressMatch'
        phoneNumber:
          $ref: '#/components/schemas/RecordMatchString'
    MatchScreeningResult:
      type: object
      required:
        - acquirerIdCode
        - legalName
        - address
        - principals
        - doingBusinessAsName
        - websiteUrl
      properties:
        acquirerIdCode:
          $ref: '#/components/schemas/terminatedByAcquirerIdCode'
        legalName:
          $ref: '#/components/schemas/RecordMatchString'
        doingBusinessAsName:
          $ref: '#/components/schemas/RecordMatchString'
        address:
          $ref: '#/components/schemas/AddressMatch'
        websiteUrl:
          $ref: '#/components/schemas/RecordMatchStringArray'
        principals:
          type: array
          items:
            $ref: '#/components/schemas/MatchPrincipalResult'
    MatchProPrincipalResult:
      type: object
      required:
        - firstName
        - lastName
        - address
        - phoneNumber
      properties:
        firstName:
          $ref: '#/components/schemas/RecordMatchString'
        lastName:
          $ref: '#/components/schemas/RecordMatchString'
        address:
          $ref: '#/components/schemas/AddressMatch'
        phoneNumber:
          $ref: '#/components/schemas/RecordMatchString'
        email:
          $ref: '#/components/schemas/RecordMatchString'
    MatchProScreeningResult:
      type: object
      required:
        - acquirerIdCode
        - legalName
        - address
        - principals
        - doingBusinessAsName
        - websiteUrl
      properties:
        acquirerIdCode:
          $ref: '#/components/schemas/terminatedByAcquirerIdCode'
        legalName:
          $ref: '#/components/schemas/RecordMatchString'
        doingBusinessAsName:
          $ref: '#/components/schemas/RecordMatchString'
        merchantCategoryCode:
          $ref: '#/components/schemas/RecordMatchString'
        merchantPhoneNumber:
          $ref: '#/components/schemas/RecordMatchString'
        address:
          $ref: '#/components/schemas/AddressMatch'
        websiteUrl:
          $ref: '#/components/schemas/RecordMatchStringArray'
        principals:
          type: array
          items:
            $ref: '#/components/schemas/MatchProPrincipalResult'
    terminatedMerchant:
      oneOf:
        - $ref: '#/components/schemas/VmssScreeningResult'
        - anyOf:
            - $ref: '#/components/schemas/MatchScreeningResult'
            - $ref: '#/components/schemas/MatchProScreeningResult'
    screeningResult:
      type: object
      required:
        - terminatedMerchant
        - terminationReason
      properties:
        terminationReason:
          $ref: '#/components/schemas/terminationReason'
        terminatedMerchant:
          $ref: '#/components/schemas/terminatedMerchant'
    ScreeningResultsPage:
      allOf:
        - $ref: '#/components/schemas/Page'
        - type: object
          required:
            - screeningResults
          properties:
            screeningResults:
              type: array
              items:
                $ref: '#/components/schemas/screeningResult'
    agentStatus:
      description: The status of an Agent
      type: string
      enum:
        - idle
        - active
        - archived
    emails:
      type: array
      description: A list of email addresses.
      minItems: 1
      maxItems: 10
      items:
        $ref: '#/components/schemas/email'
    Agent:
      type: object
      required:
        - key
        - status
        - name
        - legalName
        - billingAddress
        - binKeys
        - technicalEmails
        - billingEmails
        - settlementEmails
        - created
        - version
      description: |
        An Agent represents a Silverflow Customer
      properties:
        key:
          $ref: '#/components/schemas/agentKey'
        status:
          $ref: '#/components/schemas/agentStatus'
        name:
          allOf:
            - $ref: '#/components/schemas/NameOfPeopleAndPlaces'
            - description: The display name of the Agent
        description:
          allOf:
            - $ref: '#/components/schemas/ExtendedFreeTextField'
            - description: A description of the Agent
        legalName:
          allOf:
            - $ref: '#/components/schemas/NameOfPeopleAndPlaces'
            - description: The legal name of the Agent
        billingAddress:
          allOf:
            - description: The billing address of the Agent
            - $ref: '#/components/schemas/Address'
        registeredAddress:
          allOf:
            - description: The billing address of the Agent
            - $ref: '#/components/schemas/Address'
        vatId:
          type: string
          pattern: ^[a-zA-Z0-9-]+$
          minLength: 1
          maxLength: 50
          description: VAT identification number of the Agent
        binKeys:
          type: array
          items:
            $ref: '#/components/schemas/binKey'
        acquirerSegmentId:
          $ref: '#/components/schemas/acquirerSegmentId'
        technicalEmails:
          $ref: '#/components/schemas/emails'
        billingEmails:
          $ref: '#/components/schemas/emails'
        settlementEmails:
          $ref: '#/components/schemas/emails'
        businessEmails:
          $ref: '#/components/schemas/emails'
        created:
          $ref: '#/components/schemas/created'
        lastModified:
          $ref: '#/components/schemas/lastModified'
        version:
          $ref: '#/components/schemas/version'
    AgentMergeUpdate:
      type: object
      additionalProperties: false
      properties:
        description:
          allOf:
            - $ref: '#/components/schemas/ExtendedFreeTextField'
            - description: A description of the Agent
        technicalEmails:
          $ref: '#/components/schemas/emails'
        billingEmails:
          $ref: '#/components/schemas/emails'
        settlementEmails:
          $ref: '#/components/schemas/emails'
        businessEmails:
          $ref: '#/components/schemas/emails'
    apiKeyKey:
      description: Uniquely identifies an API Key
      type: string
      pattern: ^apk-[a-zA-Z0-9]+$
      minLength: 5
      maxLength: 120
      example: apk-1UF2NafdfrdPMf2XrS2
    apiKeyStatus:
      description: The status of an API Key
      type: string
      enum:
        - disabled
        - active
        - archived
    FreeTextField:
      type: string
      pattern: ^[\w +=.,:;!?$@()-]+$
      minLength: 1
      maxLength: 160
    permission:
      description: A permission
      type: string
      enum:
        - acceptors:Activate
        - acceptors:All
        - acceptors:Archive
        - acceptors:Get
        - acceptors:GetActive
        - acceptors:GetDraft
        - acceptors:List
        - acceptors:Update
        - agents:Activate
        - agents:All
        - agents:CreateBearerToken
        - agents:Get
        - agents:GetBin
        - agents:ListBins
        - agents:Update
        - all:All
        - apiKeys:All
        - apiKeys:Archive
        - apiKeys:Create
        - apiKeys:Disable
        - apiKeys:Enable
        - apiKeys:Get
        - apiKeys:List
        - apiKeys:Update
        - bep:All
        - bep:Create
        - bep:Get
        - bep:Update
        - cardInfo:GetInfo
        - cardManagement:All
        - cardManagement:Create
        - cardManagement:Get
        - charges:All
        - charges:Cancel
        - charges:CancelOrRefund
        - charges:Clear
        - charges:Create
        - charges:CreateAtm
        - charges:CreateMitFunding
        - charges:CreatePayout
        - charges:CreatePos
        - charges:Get
        - charges:GetRecords
        - charges:GetResponses
        - charges:Increment
        - charges:List
        - charges:OfflineRefund
        - charges:Refund
        - charges:Reverse
        - currencyRate:All
        - currencyRate:GetInfo
        - disputes:Accept
        - disputes:AddDocument
        - disputes:All
        - disputes:ArchiveDocument
        - disputes:Defend
        - disputes:DownloadFile
        - disputes:Get
        - disputes:GetDocument
        - disputes:GetHistory
        - disputes:List
        - disputes:ListDocuments
        - disputes:ListHistory
        - disputes:RejectEvidence
        - disputes:SubmitEvidence
        - disputes:UploadFile
        - distributions:All
        - distributions:Archive
        - distributions:Create
        - distributions:Distribute
        - distributions:Get
        - distributions:List
        - distributions:Update
        - documents:All
        - documents:Archive
        - documents:Download
        - documents:Get
        - documents:Upload
        - enrollments:All
        - enrollments:Archive
        - enrollments:Create
        - enrollments:Get
        - enrollments:List
        - eventSubscriptions:All
        - eventSubscriptions:Archive
        - eventSubscriptions:Create
        - eventSubscriptions:Get
        - eventSubscriptions:List
        - eventSubscriptions:Update
        - fees:Interchange
        - fees:Scheme
        - fileSubscription:All
        - fileSubscription:Create
        - fileSubscription:Delete
        - fileSubscription:List
        - fileSubscription:Update
        - fraudNotifications:Get
        - fraudNotifications:List
        - merchants:All
        - merchants:Archive
        - merchants:Create
        - merchants:CreateAcceptor
        - merchants:Get
        - merchants:List
        - merchants:ListAcceptors
        - merchants:Update
        - networkTokens:All
        - networkTokens:Archive
        - networkTokens:Create
        - networkTokens:CreateNetworkTokenCryptogram
        - networkTokens:Get
        - networkTokens:GetCardArt
        - networkTokens:GetNetworkTokenData
        - networkTokens:List
        - processorTokens:All
        - processorTokens:Archive
        - processorTokens:Create
        - processorTokens:Get
        - processorTokens:GetCardData
        - processorTokens:List
        - reports:All
        - reports:Create
        - reports:CreateCharges
        - reports:CreateDisputeHistoryEvents
        - reports:CreateFraudNotifications
        - reports:CreateNetworkFundsTransfers
        - reports:CreateReconciliationDetails
        - reports:CreateSchemeFeeDetails
        - reports:CreateSchemeFeeDetailsSchedule
        - reports:DailySettlementTotals
        - reports:DisputeMonitoring
        - reports:Download
        - reports:DownloadAmmfReport
        - reports:DownloadCharges
        - reports:DownloadDisputeHistoryEvents
        - reports:DownloadFraudNotifications
        - reports:DownloadNetworkFundsTransfers
        - reports:DownloadQuarterlySchemeReport
        - reports:DownloadReconciliationDetails
        - reports:DownloadSchemeFeeDetails
        - reports:DownloadSettlementDetails
        - reports:Get
        - reports:GetCharges
        - reports:GetDisputeHistoryEvents
        - reports:GetFraudNotifications
        - reports:GetNetworkFundsTransfers
        - reports:GetReconciliationDetails
        - reports:GetSchemeFeeDetails
        - reports:GetSchemeFeeDetailsData
        - reports:List
        - reports:NetworkFundsTransfers
        - reports:QuarterlyNetwork
        - reports:SettlementDetails
        - reportSchedules:All
        - reportSchedules:Archive
        - reportSchedules:Create
        - reportSchedules:Get
        - reportSchedules:List
        - reportSchedules:Update
        - riskAssessments:Create
        - screenings:All
        - screenings:Archive
        - screenings:Create
        - screenings:Get
        - screenings:List
        - threeDs:Create
        - threeDs:Get
        - threeDs:List
        - trustAnchors:All
        - trustAnchors:Archive
        - trustAnchors:Create
        - trustAnchors:Get
        - trustAnchors:List
    permissions:
      type: array
      items:
        $ref: '#/components/schemas/permission'
        minItems: 1
        uniqueItems: true
    ipRange:
      type: string
      description: An IP range in Classless Inter-domain Routing (CIDR) notation as defined by RFC 4632
      pattern: ^\d{1,3}(\.\d{1,3}){3}/\d{1,2}$
      externalDocs:
        description: RFC 4632
        url: https://datatracker.ietf.org/doc/html/rfc4632
    ipRanges:
      type: array
      description: A list of IP ranges
      items:
        $ref: '#/components/schemas/ipRange'
        minItems: 1
        uniqueItems: true
    certificateKey:
      description: Uniquely identifies a certificate bound to an API Key
      type: string
      pattern: ^crt-[a-zA-Z0-9]+$
      minLength: 5
      maxLength: 120
      example: crt-602nkAxGfhDN8yQBibpx
    certificateFingerprint:
      type: string
      description: |
        The SHA-256 hash of the DER-encoded certificate, as URL-safe base64 with padding (44 characters, using `-` and
        `_`, ending in `=`). This is the value of the `CloudFront-Viewer-Cert-Sha256` header for the certificate.
        To compute it from a certificate file:
        `openssl x509 -in cert.pem -outform der | openssl dgst -sha256 -binary | openssl base64 -A | tr '+/' '-_'`.
      pattern: ^[A-Za-z0-9_-]{43}=$
      example: LYHqA-dGPaCqZfnoqB6EQ9-Agm8IjZy9LcTj376z8n4=
    ApiKeyCertificate:
      type: object
      required:
        - certificateKey
        - fingerprint
        - notBefore
        - notAfter
        - created
        - trustAnchorFingerprint
        - status
      description: A client certificate bound to an API Key
      properties:
        certificateKey:
          $ref: '#/components/schemas/certificateKey'
        fingerprint:
          $ref: '#/components/schemas/certificateFingerprint'
        notBefore:
          type: string
          format: date-time
          description: The start of the certificate's validity period, taken from the certificate
        notAfter:
          type: string
          format: date-time
          description: The end of the certificate's validity period, taken from the certificate
        description:
          $ref: '#/components/schemas/FreeTextField'
        created:
          $ref: '#/components/schemas/created'
        trustAnchorFingerprint:
          $ref: '#/components/schemas/certificateFingerprint'
          description: The fingerprint of the Trust Anchor that vouched for this certificate when it was added
        status:
          type: string
          description: The status of the certificate. Archived certificates stay in the list.
          enum:
            - active
            - archived
    ApiKey:
      type: object
      required:
        - key
        - status
        - agentKey
        - permissions
        - created
        - version
      description: |
        An Agent represents a Silverflow customer
      properties:
        key:
          $ref: '#/components/schemas/apiKeyKey'
        status:
          $ref: '#/components/schemas/apiKeyStatus'
        agentKey:
          $ref: '#/components/schemas/agentKey'
        description:
          description: A description of the API Key
          $ref: '#/components/schemas/FreeTextField'
        permissions:
          $ref: '#/components/schemas/permissions'
        ipRanges:
          $ref: '#/components/schemas/ipRanges'
        mtlsEnabled:
          type: boolean
          description: |
            Whether this API Key requires mTLS. It is `false` unless it was enabled, and it can't be set back to `false`. <a class="experimental-tag-link" href="https://docs.silverflow.com/guides/api-lifecycle#tag/EXPERIMENTAL-Tag"><span class="tag experimental-tag">EXPERIMENTAL</span></a>
        certificates:
          type: array
          description: The client certificates bound to this API Key. At most two can be active at the same time. <a class="experimental-tag-link" href="https://docs.silverflow.com/guides/api-lifecycle#tag/EXPERIMENTAL-Tag"><span class="tag experimental-tag">EXPERIMENTAL</span></a>
          items:
            $ref: '#/components/schemas/ApiKeyCertificate'
        secret:
          type: string
          description: The secret part of this API Key. This value will only be returned upon creation. It cannot be changed afterwards.
          minLength: 32
          maxLength: 150
        created:
          $ref: '#/components/schemas/created'
        lastModified:
          $ref: '#/components/schemas/lastModified'
        version:
          $ref: '#/components/schemas/version'
      example:
        key: apk-1nM6msvaara1OMHzU7Zd
        status: active
        agentKey: cgt-6y5t4r3edcgfrthb
        description: API Key for the data lake
        permissions:
          - reports:All
        ipRanges:
          - 185.184.111.39/32
        created: '2021-05-27T10:57:52Z'
        lastModified: '2021-05-27T10:57:52Z'
        version: 1
    expires:
      type: string
      description: A duration expressed in ISO 8601 "period" format.
      pattern: ^P(\d+Y)?(\d+M)?(\d+W)?(\d+D)?(T(\d+H)?(\d+M)?(\d+S)?)?$
      default: PT30M
      externalDocs:
        description: The ISO 8601 "period" format
        url: https://en.wikipedia.org/wiki/ISO_8601#Durations
      example: P3Y6M4DT12H30M5S
    scope:
      type: object
      additionalProperties: false
      properties:
        merchantKey:
          $ref: '#/components/schemas/merchantKey'
    BearerTokenCreate:
      type: object
      required:
        - expires
        - permissions
      additionalProperties: false
      properties:
        expires:
          $ref: '#/components/schemas/expires'
        scope:
          $ref: '#/components/schemas/scope'
        permissions:
          $ref: '#/components/schemas/permissions'
        ipRanges:
          $ref: '#/components/schemas/ipRanges'
    bearerTokenKey:
      description: Uniquely identifies a Token
      type: string
      pattern: ^apk-[a-zA-Z0-9]+:[a-zA-Z0-9]+$
      example: apk-l1nd1jn3j2njnkqkn
    BearerToken:
      type: object
      required:
        - key
        - token
      properties:
        key:
          $ref: '#/components/schemas/bearerTokenKey'
        token:
          type: string
          pattern: '[a-zA-Z0-9_-]+\.[a-zA-Z0-9_-]+\.[a-zA-Z0-9_-]+'
    ApiKeysPage:
      allOf:
        - $ref: '#/components/schemas/Page'
        - type: object
          required:
            - apiKeys
          properties:
            apiKeys:
              type: array
              items:
                $ref: '#/components/schemas/ApiKey'
      example:
        offsetToken: Q29uZ3JhdHVhbHRpb25zISBZb3Ugc3VjY2Vzc2Z1bGx5IGJhc2U2NC1kZWNvZGVkIHRoZSB2YWx1ZS4gWW91J3JlIG9uIGEgcm9sbCBzbyBrZWVwIGdvaW5nIQ==
        apiKeys:
          - key: apk-1nM6msvaara1OMHzU7Zd
            status: active
            description: API Key for the data lake
            permissions:
              - reports:All
            ipRanges:
              - 185.184.111.39/32
            created: '2021-05-27T10:57:52Z'
            lastModified: '2021-05-27T10:57:52Z'
            version: 1
          - key: apk-1hPdFhmgaBzMS191nIbJ
            status: active
            description: API key for merchant management
            permissions:
              - all:All
            ipRanges:
              - 185.184.111.90/32
              - 185.184.111.96/29
            created: '2021-05-27T11:07:30Z'
            lastModified: '2021-05-27T11:07:30Z'
            version: 2
    ApiKeyCreate:
      type: object
      required:
        - permissions
      additionalProperties: false
      properties:
        status:
          $ref: '#/components/schemas/apiKeyStatus'
        description:
          $ref: '#/components/schemas/FreeTextField'
          description: A description of the API Key
        permissions:
          $ref: '#/components/schemas/permissions'
        ipRanges:
          $ref: '#/components/schemas/ipRanges'
      example:
        status: disabled
        description: API key for merchant management
        permissions:
          - reports:All
        ipRanges:
          - 185.184.111.39/32
    apiKeyUpdateStatus:
      description: Updatable API Key statuses
      type: string
      enum:
        - disabled
        - active
    ApiKeyMergeUpdate:
      type: object
      additionalProperties: false
      properties:
        status:
          $ref: '#/components/schemas/apiKeyUpdateStatus'
        description:
          $ref: '#/components/schemas/FreeTextField'
          description: A description of the API Key
        permissions:
          $ref: '#/components/schemas/permissions'
        ipRanges:
          $ref: '#/components/schemas/ipRanges'
        mtlsEnabled:
          type: boolean
          enum:
            - true
          description: |
            Requires mTLS for this API Key. **This can't be undone.** The API Key gets a new secret that is never
            shown, so from then on it can only be used with a client certificate, and requests that use the secret
            are refused. At least one active certificate must be bound to the API Key first. Only `true` is accepted,
            and no other field may be sent in the same request. <a class="experimental-tag-link" href="https://docs.silverflow.com/guides/api-lifecycle#tag/EXPERIMENTAL-Tag"><span class="tag experimental-tag">EXPERIMENTAL</span></a>
      example:
        status: active
        permissions:
          - reports:All
        ipRanges:
          - 185.184.111.90/32
          - 185.184.111.96/29
    ApiKeyCertificatesList:
      type: object
      required:
        - certificates
      description: The client certificates bound to an API Key, either the active or the archived ones
      properties:
        certificates:
          type: array
          items:
            $ref: '#/components/schemas/ApiKeyCertificate'
    ApiKeyCertificateCreate:
      type: object
      required:
        - certificate
      additionalProperties: false
      description: A client certificate to bind to an API Key
      properties:
        certificate:
          type: string
          description: |
            A single PEM-encoded X.509 client certificate, including the `-----BEGIN CERTIFICATE-----` and
            `-----END CERTIFICATE-----` lines. It must be valid now, must not be allowed to sign certificates
            (`keyCertSign`), and must be trusted by one of the Agent's Trust Anchors.
          minLength: 1
          maxLength: 24576
        intermediates:
          type: array
          description: |
            PEM-encoded intermediate certificates, ordered from the issuer of the client certificate up towards the Trust
            Anchor. Only needed when the Trust Anchor did not sign the client certificate directly. They are used to
            validate the chain and are not stored.
          maxItems: 10
          items:
            type: string
            minLength: 1
            maxLength: 24576
        description:
          $ref: '#/components/schemas/FreeTextField'
          description: A description of the certificate, for example to tell two certificates apart during rotation
      example:
        certificate: |
          -----BEGIN CERTIFICATE-----
          ...
          -----END CERTIFICATE-----
        intermediates:
          - |
            -----BEGIN CERTIFICATE-----
            ...
            -----END CERTIFICATE-----
        description: Production client certificate, rotated 2026-06-01
    trustAnchorKey:
      type: string
      pattern: ^tra-[a-zA-Z0-9]+$
      minLength: 5
      maxLength: 120
      example: tra-4Z3saOmareGlixYDolaT
    trustAnchorStatus:
      type: string
      description: The status of the Trust Anchor
      enum:
        - active
        - archived
    TrustAnchor:
      type: object
      required:
        - key
        - agentKey
        - fingerprint
        - status
        - notBefore
        - notAfter
        - created
        - version
      properties:
        key:
          $ref: '#/components/schemas/trustAnchorKey'
        agentKey:
          $ref: '#/components/schemas/agentKey'
        fingerprint:
          $ref: '#/components/schemas/certificateFingerprint'
        status:
          $ref: '#/components/schemas/trustAnchorStatus'
        description:
          $ref: '#/components/schemas/FreeTextField'
        notBefore:
          type: string
          description: The start of the certificate's validity period, taken from the certificate
          format: date-time
        notAfter:
          type: string
          description: The end of the certificate's validity period, taken from the certificate
          format: date-time
        created:
          $ref: '#/components/schemas/created'
        lastModified:
          $ref: '#/components/schemas/lastModified'
        version:
          $ref: '#/components/schemas/version'
      example:
        key: tra-4Z3saOmareGlixYDolaT
        agentKey: cgt-3jmy9i8u7ywJkKVkxeNO
        fingerprint: 89b2QsnoZIU1GnMPBTChiL1VQdUw2iwgzuhIlm_L_Fo=
        status: active
        description: Example Corp Root CA
        notBefore: '2026-01-01T00:00:00.000Z'
        notAfter: '2036-01-01T00:00:00.000Z'
        created: '2026-10-07T09:00:00.000Z'
        version: 1
    TrustAnchorsPage:
      allOf:
        - $ref: '#/components/schemas/Page'
        - type: object
          required:
            - trustAnchors
          properties:
            trustAnchors:
              type: array
              items:
                $ref: '#/components/schemas/TrustAnchor'
    pemCertificate:
      type: string
      description: |
        A single PEM-encoded X.509 v3 CA certificate, including the `-----BEGIN CERTIFICATE-----` and
        `-----END CERTIFICATE-----` lines. The certificate must be valid now, have an RSA 2048, 3072 or 4096 key
        or an ECDSA P-256 or P-384 key, be signed with SHA-256, SHA-384 or SHA-512, and be at most 16384 bytes
        when DER-encoded.
      minLength: 1
      maxLength: 24576
    TrustAnchorCreate:
      type: object
      required:
        - certificate
      additionalProperties: false
      properties:
        certificate:
          $ref: '#/components/schemas/pemCertificate'
        description:
          $ref: '#/components/schemas/FreeTextField'
    BinsPage:
      allOf:
        - $ref: '#/components/schemas/Page'
        - type: object
          required:
            - bins
          properties:
            bins:
              type: array
              items:
                $ref: '#/components/schemas/Bin'
      example:
        offsetToken: Q29uZ3JhdHVhbHRpb25zISBZb3Ugc3VjY2Vzc2Z1bGx5IGJhc2U2NC1kZWNvZGVkIHRoZSB2YWx1ZS4gWW91J3JlIG9uIGEgcm9sbCBzbyBrZWVwIGdvaW5nIQ==
        bins:
          - key: bin-1iXRhbDjrT2Yxvo0mSZN
            status: active
            description: Example Acquirer - Mastercard
            acquirerIdCode: 222222
            acquirerBin: 555555
            acquirerCountryCode:
              alpha3: DEU
              alpha2: DE
              numeric: '276'
            acquirerAgentKey: cgt-1nUP5yspouqwUHYSZo9V
            network: mastercard
            messageSystem: DMS
            shared: false
            created: '2020-08-24T14:15:22.014Z'
            lastModified: '2020-08-24T21:39:01.957Z'
            version: 2
          - key: bin-1mCKWvpBRrRpVqRw0bH9
            status: active
            description: Example Acquirer - Visa
            acquirerIdCode: 444444
            acquirerBin: 444444
            bid: 55555555
            acquirerCountryCode:
              alpha3: DEU
              alpha2: DE
              numeric: '276'
            network: visa
            messageSystem: DMS
            shared: false
            created: '2020-08-24T14:15:22.014Z'
            lastModified: '2020-08-24T21:39:01.957Z'
            version: 2
    binConfigurationKey:
      description: A key assigned by Silverflow to uniquely identify a Bin configuration.
      type: string
      pattern: ^bcf-[a-zA-Z0-9]+$
      minLength: 5
      maxLength: 120
    settlementCurrency:
      required:
        - code
      properties:
        code:
          $ref: '#/components/schemas/currencyCode'
        levelOneSRE:
          type: string
          description: Identifier Visa uses for settlement reporting
    settlementCurrencies:
      description: A list of Settlement Currencies.
      type: array
      items:
        $ref: '#/components/schemas/settlementCurrency'
        minItems: 1
    settlementService:
      required:
        - currency
        - code
      description: A Settlement Service as provided by a card network.
      properties:
        currency:
          $ref: '#/components/schemas/currencyCode'
        code:
          type: string
          description: Identifier of the Settlement Service as defined by the card network.
          pattern: ^[a-zA-Z0-9]+$
        levelOneSRE:
          type: string
          description: Identifier Visa uses for settlement reporting
    settlementServices:
      description: A list of Settlement Services as provided by a card network.
      type: array
      items:
        $ref: '#/components/schemas/settlementService'
        minItems: 1
    BinConfiguration:
      type: object
      required:
        - key
        - status
        - binKey
        - defaultSettlementCurrency
        - additionalSettlementCurrencies
        - settlementServices
        - validFrom
        - created
        - version
      description: |
        A Bin is a Bank Identification Number
      properties:
        key:
          $ref: '#/components/schemas/binConfigurationKey'
        status:
          $ref: '#/components/schemas/status'
        binKey:
          $ref: '#/components/schemas/binKey'
        defaultSettlementCurrency:
          $ref: '#/components/schemas/settlementCurrency'
        additionalSettlementCurrencies:
          $ref: '#/components/schemas/settlementCurrencies'
        settlementServices:
          $ref: '#/components/schemas/settlementServices'
        validFrom:
          type: string
          description: The date and time this configuration is valid from
          format: date-time
        created:
          $ref: '#/components/schemas/created'
        lastModified:
          $ref: '#/components/schemas/lastModified'
        version:
          $ref: '#/components/schemas/version'
      example:
        key: bcf-21yKByQsszQHq7MZ6pf0
        status: active
        binKey: bin-1ZgTNYjaNghq6YgC3E4p
        validFrom: '2022-01-26T13:50:12.640Z'
        created: '2022-01-26T13:50:12.640Z'
        lastModified: '2020-08-24T21:39:01.957Z'
        version: 1
    BinConfigurationsPage:
      allOf:
        - $ref: '#/components/schemas/Page'
        - type: object
          required:
            - configs
          properties:
            configs:
              type: array
              items:
                $ref: '#/components/schemas/BinConfiguration'
      example:
        offsetToken: Q29uZ3JhdHVhbHRpb25zISBZb3Ugc3VjY2Vzc2Z1bGx5IGJhc2U2NC1kZWNvZGVkIHRoZSB2YWx1ZS4gWW91J3JlIG9uIGEgcm9sbCBzbyBrZWVwIGdvaW5nIQ==
        configs:
          - key: bcf-2exampleXzQHq7MZ6pf0
            status: active
            binKey: bin-1exampleNghq6YgC3E4p
            defaultSettlementCurrency:
              code: EUR
            additionalSettlementCurrencies: []
            validFrom: '2022-01-26T13:50:12.640Z'
            created: '2022-01-26T13:50:12.640Z'
            version: 2
          - key: bcf-1exampleRrRpVqRw0bH9
            status: active
            binKey: bin-1exampleNghq6YgC3E4p
            defaultSettlementCurrency:
              code: EUR
            additionalSettlementCurrencies:
              - code: USD
              - code: GBP
            settlementServices:
              - currency: EUR
                code: '080'
            validFrom: '2022-03-01T12:00:00.00Z'
            created: '2022-03-03T16:43:49.607Z'
            lastModified: '2022-03-04T11:19:51.164Z'
            version: 2
        moreItems: false
    schemas-offsetToken:
      type: string
      pattern: ^[a-zA-Z0-9%]+$
      example: token
    schemas-Page:
      type: object
      properties:
        offsetToken:
          $ref: '#/components/schemas/schemas-offsetToken'
    threedsKey:
      description: Uniquely identifies a 3DS authentication.
      type: string
      pattern: ^tds-[a-zA-Z0-9]+$
      example: tds-2lCYLHDuRPW9MvQK3sd6
    schemas-acceptorKey:
      description: Uniquely identifies a merchant acceptor.
      type: string
      pattern: ^mac-[a-zA-Z0-9]+$
      minLength: 5
      maxLength: 120
      example: '{{acceptorKeyMastercard}}'
    schemas-AcceptorRef:
      type: object
      description: Reference key and status of the acceptor
      required:
        - key
        - version
      properties:
        key:
          $ref: '#/components/schemas/schemas-acceptorKey'
        version:
          $ref: '#/components/schemas/version'
    schemas-CountryCodeAlpha3:
      type: object
      title: alpha-3
      required:
        - alpha3
      properties:
        alpha3:
          type: string
          pattern: ^[A-Z]{3}$
          description: ISO 3166-1 alpha-3 country code
          externalDocs:
            description: Find more info here
            url: https://www.iso.org/iso-3166-country-codes.html
          example: NLD
    schemas-CountryCodeAlpha2:
      type: object
      title: alpha-2
      required:
        - alpha2
      properties:
        alpha2:
          type: string
          pattern: ^[A-Z]{2}$
          description: ISO 3166-1 alpha-2 country code
          externalDocs:
            description: Find more info here
            url: https://www.iso.org/iso-3166-country-codes.html
          example: NL
    schemas-CountryCodeNumeric:
      type: object
      title: numeric
      required:
        - numeric
      properties:
        numeric:
          type: string
          pattern: ^[0-9]{3}$
          description: ISO 3166-1 numeric country code
          externalDocs:
            description: Find more info here
            url: https://www.iso.org/iso-3166-country-codes.html
          example: '528'
    network:
      type: string
      description: |
        The card network to query for PAN information.

        Diners support is <a class="experimental-tag-link" href="https://docs.silverflow.com/guides/api-lifecycle#tag/EXPERIMENTAL-Tag"><span class="tag experimental-tag">EXPERIMENTAL</span></a>.
      enum:
        - american-express
        - bancontact
        - diners
        - mastercard
        - visa
    MerchantInfoResponse:
      type: object
      description: |
        Merchant details as stored and returned in the response. The `merchantCountryCode` is returned
        as a complete ISO 3166-1 country code object containing all representations.
      additionalProperties: false
      required:
        - merchantId
        - mcc
        - merchantName
        - merchantCountryCode
        - websiteUrl
        - network
      properties:
        acquirerBin:
          type: string
          description: |
            6-11 digit Bank Identification Number assigned by the card network. Required for all card networks except AMEX.
          pattern: ^[0-9]+$
          minLength: 6
          maxLength: 11
        merchantId:
          type: string
          description: |
            Merchant identifier (MID) assigned by the acquirer.
          minLength: 1
          maxLength: 20
        mcc:
          type: string
          description: 4-digit ISO 18245 merchant category code
          pattern: ^[0-9]+$
          minLength: 4
          maxLength: 4
        merchantName:
          type: string
          description: Merchant's doing-business-as name
        merchantCountryCode:
          allOf:
            - $ref: '#/components/schemas/schemas-CountryCodeAlpha3'
            - $ref: '#/components/schemas/schemas-CountryCodeAlpha2'
            - $ref: '#/components/schemas/schemas-CountryCodeNumeric'
        websiteUrl:
          type: string
          description: Merchant's website URL
          maxLength: 2048
        network:
          allOf:
            - description: The card network that will process the transaction and handle authentication.
            - $ref: '#/components/schemas/network'
    amountValue:
      type: integer
      format: int64
      minimum: 0
      maximum: 999999999999
      description: |
        The amount in minor units. For example `$12.34` should be encoded as `1234`. Note that not all
        currencies have 2 minor units. Some have three or zero.
      example: 1234
    schemas-currencyCode:
      type: string
      pattern: ^[A-Z]{3}$
      externalDocs:
        description: Find more info here
        url: https://www.iso.org/iso-4217-currency-codes.html
      example: EUR
    Amount:
      type: object
      required:
        - value
        - currency
      additionalProperties: false
      description: |
        An amount encoded as an object with a `value` in minor units and a `currency` code.
      properties:
        value:
          $ref: '#/components/schemas/amountValue'
        currency:
          $ref: '#/components/schemas/schemas-currencyCode'
    UnknownAmount:
      type: object
      title: Unknown Amount
      required:
        - value
        - currency
      additionalProperties: false
      properties:
        value:
          type: integer
          format: int64
          description: The value of the amount is unknown.
          enum:
            - -1
        currency:
          type: string
          description: The currency code is unknown.
          enum:
            - unknown
    ResponseAmount:
      description: |
        An amount encoded as an object with a `value` in minor units and a `currency` code.
        The amount is unknown for entities older than 2023-03-30.
      oneOf:
        - $ref: '#/components/schemas/Amount'
        - $ref: '#/components/schemas/UnknownAmount'
    authenticationNetwork:
      type: string
      description: |
        The card network that was used for the authentication.
        It is `unknown` for entities older than 2024-04-11.
      enum:
        - american-express
        - bancontact
        - diners
        - mastercard
        - visa
        - unknown
    protocolVersion:
      type: string
      description: |
        The 3DS protocol version which has been used to perform 3DS.

         **Protocol version 2.1.0 is no longer supported by the card networks. The value 2.1.0 can be retrieved for older authentications.**
      enum:
        - 2.1.0
        - 2.2.0
    deviceChannel:
      type: string
      description: Indicates the type of the interface used to initiate the transaction.
      enum:
        - browser
        - app
        - 3ri
    flow:
      description: Indicates the flow that was used for the 3DS authentication.
      type: string
    frictionlessFlow:
      allOf:
        - enum:
            - frictionless
        - $ref: '#/components/schemas/flow'
    result:
      description: Authentication result.
      type: string
    frictionlessResult:
      allOf:
        - description: |
            Indicates that the cardholder was successfully authenticated.
          enum:
            - authenticated
        - $ref: '#/components/schemas/result'
    activeProtocolVersion:
      allOf:
        - type: string
          enum:
            - 2.2.0
        - $ref: '#/components/schemas/protocolVersion'
    sdkTransID:
      type: string
      description: Universally unique transaction identifier assigned upon the activation of 3DS SDK.
      format: uuid
      pattern: ^[0-9a-fA-F]{8}\b-[0-9a-fA-F]{4}\b-[0-9a-fA-F]{4}\b-[0-9a-fA-F]{4}\b-[0-9a-fA-F]{12}$
      example: 6357449a-b12b-4e81-b577-fee137273136
    MessageExtension:
      type: object
      required:
        - name
        - id
        - criticalityIndicator
        - data
      properties:
        name:
          type: string
          example: msgextname
          pattern: ^[a-zA-Z0-9_\-\s]+$
          minLength: 1
          maxLength: 64
        id:
          type: string
          example: 501341592B_0001_4568
          pattern: ^[a-zA-Z0-9_\-]+$
          minLength: 1
          maxLength: 64
        criticalityIndicator:
          type: boolean
          example: false
        data: {}
    MessageExtensionList:
      description: Carries additional data that is not defined within the 3DS protocol. This field is usually used for card network specific data.
      type: array
      items:
        $ref: '#/components/schemas/MessageExtension'
    Message:
      type: object
      description: |
        A 3DS protocol message as it is received by the card network.
        Note: `threeDSServerTransID` is present in all message types except `Erro` (ErrorMessage),
        where it is conditional per the EMVCo spec.
      required:
        - messageVersion
      properties:
        messageVersion:
          $ref: '#/components/schemas/activeProtocolVersion'
        sdkTransID:
          $ref: '#/components/schemas/sdkTransID'
        messageExtension:
          $ref: '#/components/schemas/MessageExtensionList'
    dsTransID:
      type: string
      description: Universally unique transaction identifier assigned by the DS to identify a single transaction.
      format: uuid
      pattern: ^[0-9a-fA-F]{8}\b-[0-9a-fA-F]{4}\b-[0-9a-fA-F]{4}\b-[0-9a-fA-F]{4}\b-[0-9a-fA-F]{12}$
      example: c73bcdcc-2669-4bf6-81d3-e4ae73fb11fd
    acsTransID:
      type: string
      description: |
        Universally unique transaction identifier assigned by the ACS to identify a single transaction. Each DS can provide a unique ID to each ACS on an individual basis.
      example: d7c1ee99-9478-44a6-b1f2-391e29c6b340
      format: uuid
      pattern: ^[0-9a-fA-F]{8}\b-[0-9a-fA-F]{4}\b-[0-9a-fA-F]{4}\b-[0-9a-fA-F]{4}\b-[0-9a-fA-F]{12}$
    transStatus:
      type: string
      enum:
        - 'Y'
        - 'N'
        - U
        - A
        - C
        - D
        - R
        - I
      description: Indicates whether a transaction qualifies as an authenticated transaction or account verification.
    transStatusReason:
      type: string
      pattern: ^(0[1-9])$|^(1[0-9])$|^(2[0-6])$|^([8-9][0-9])$
      description: Provides information on why the `transStatus` field has the specified value.
    threeDSServerTransID:
      type: string
      description: Universally unique transaction identifier assigned by the 3DS server to identify a single transaction. This identifier is assigned by Silverflow.
      pattern: ^[0-9a-fA-F]{8}\b-[0-9a-fA-F]{4}\b-[0-9a-fA-F]{4}\b-[0-9a-fA-F]{4}\b-[0-9a-fA-F]{12}$
      example: 6357449a-b12b-4e81-b577-fee137273231
    cardHolderInfo:
      type: string
      description: Text provided by the ACS/issuer to cardholder during a frictionless or decoupled transaction.
    acsChallengeMandated:
      type: string
      description: Indication of whether a challenge is required for the transaction to be authorized due to local/regional mandates or other variable.
    dsReferenceNumber:
      type: string
      description: EMVCo-assigned unique identifier to track approved DS.
    acsReferenceNumber:
      type: string
      description: Unique identifier assigned by the EMVCo secretariat upon testing and approval.
    acsOperatorID:
      type: string
      description: DS assigned ACS identifier.
    acsDecConInd:
      type: string
      description: Indicates whether the ACS confirms utilisation of decoupled authentication and agrees to utilize decoupled authentication to authenticate the cardholder.
    acsRenderingType:
      type: object
      required:
        - acsInterface
        - acsUiTemplate
      description: The ACS rendering type contains information about the rendering type that the ACS is sending for the cardholder authentication.
      properties:
        acsInterface:
          description: This is the ACS interface that the challenge will present to the cardholder.
          type: string
        acsUiTemplate:
          description: Identifies the UI template format that the ACS first presents to the consumer.
          type: string
    acsUrl:
      type: string
      description: |
        The merchant or PSP needs to send the base64 encoded CReq message as a form to this URL using an HTTP POST, from the cardholder challenge window. The content type needs to be `application/x-www-form-urlencoded`.
      example: |
        https://www.acs.com/challenge
    authenticationType:
      type: string
      description: |
        Indicates the type of authentication method the issuer will use to challenge the cardholder,
        whether in the ARes message or what was used by the ACS when in the RReq message.
    eci:
      type: string
      description: Payment system-specific value provided by the ACS or DS to indicate the results of the attempt to authenticate the Cardholder.
    whiteListStatus:
      type: string
      description: Enables the communication of trusted beneficiary/whitelist status between the ACS, the DS and the 3DS requestor.
    whiteListStatusSource:
      type: string
      description: This data element will be populated by the system setting Whitelist Status. Required if Whitelist Status is present.
    acsSignedContent:
      type: string
      description: Contains the JWS object (represented as a string) created by the ACS for the ARes message.
      example: eyJhbGciOiJQUzI1NiIsIng1YyI6Ik1JSURlVENDQW1HZ0F3SUJ
      pattern: ^[a-zA-Z0-9()+,\-.:=@;$_!*\/?#|]*$
      minLength: 1
      maxLength: 2560
    AResWithoutAuthValue:
      type: object
      description: The issuer's response to the 3DS request.
      allOf:
        - $ref: '#/components/schemas/Message'
        - type: object
          required:
            - messageType
            - threeDSServerTransID
            - dsTransID
            - acsTransID
            - transStatus
            - dsReferenceNumber
            - acsReferenceNumber
          properties:
            messageType:
              type: string
              enum:
                - ARes
            dsTransID:
              $ref: '#/components/schemas/dsTransID'
            acsTransID:
              $ref: '#/components/schemas/acsTransID'
            transStatus:
              $ref: '#/components/schemas/transStatus'
            transStatusReason:
              $ref: '#/components/schemas/transStatusReason'
            threeDSServerTransID:
              $ref: '#/components/schemas/threeDSServerTransID'
            cardholderInfo:
              $ref: '#/components/schemas/cardHolderInfo'
            acsChallengeMandated:
              $ref: '#/components/schemas/acsChallengeMandated'
            dsReferenceNumber:
              $ref: '#/components/schemas/dsReferenceNumber'
            acsReferenceNumber:
              $ref: '#/components/schemas/acsReferenceNumber'
            acsOperatorID:
              $ref: '#/components/schemas/acsOperatorID'
            acsDecConInd:
              $ref: '#/components/schemas/acsDecConInd'
            acsRenderingType:
              $ref: '#/components/schemas/acsRenderingType'
            acsURL:
              $ref: '#/components/schemas/acsUrl'
            authenticationType:
              $ref: '#/components/schemas/authenticationType'
            eci:
              $ref: '#/components/schemas/eci'
            whiteListStatus:
              $ref: '#/components/schemas/whiteListStatus'
            whiteListStatusSource:
              $ref: '#/components/schemas/whiteListStatusSource'
            acsSignedContent:
              $ref: '#/components/schemas/acsSignedContent'
    transactionReference:
      type: string
      description: |
        Unique ID assigned by the merchant or payment service provider for the transaction. Used to identify the transaction.
      pattern: ^[a-zA-Z0-9()+,\-.:=@;$_!*\/?|]+$
      minLength: 1
      maxLength: 120
      example: Dz3dIzE74EfH1HeTInyE
    order:
      description: |
        The method used to place the order.

        When set to `recurring`, `installment`, or `standing-order`, you are also required to set `recurringExpiry` and `recurringFrequency`.
      type: string
      enum:
        - checkout
        - unspecified
        - one-click
        - recurring
        - ucof
        - installment
        - standing-order
    intent:
      description: |
        The intention of the cardholder.
      type: string
      enum:
        - purchase
        - reservation
        - account-status
        - payout
        - payout-status
        - funding
        - advice
        - refund
    schemas-created:
      type: string
      description: The date and time this object was created
      format: iso-8601-date-time
    ThreeDsFrictionlessAuthenticatedWithoutAuthValue:
      type: object
      title: 3DS Frictionless Authenticated Without Authentication Value
      required:
        - key
        - amount
        - network
        - protocolVersion
        - deviceChannel
        - flow
        - result
        - ares
        - created
        - version
      properties:
        key:
          $ref: '#/components/schemas/threedsKey'
        merchantAcceptorRef:
          $ref: '#/components/schemas/schemas-AcceptorRef'
        merchantInfo:
          $ref: '#/components/schemas/MerchantInfoResponse'
        amount:
          $ref: '#/components/schemas/ResponseAmount'
        network:
          $ref: '#/components/schemas/authenticationNetwork'
        protocolVersion:
          $ref: '#/components/schemas/protocolVersion'
        deviceChannel:
          $ref: '#/components/schemas/deviceChannel'
        flow:
          $ref: '#/components/schemas/frictionlessFlow'
        result:
          $ref: '#/components/schemas/frictionlessResult'
        ares:
          $ref: '#/components/schemas/AResWithoutAuthValue'
        transactionReference:
          $ref: '#/components/schemas/transactionReference'
        type:
          type: object
          description: Transaction type information from the request
          properties:
            order:
              $ref: '#/components/schemas/order'
            intent:
              $ref: '#/components/schemas/intent'
        created:
          $ref: '#/components/schemas/schemas-created'
        version:
          $ref: '#/components/schemas/version'
    authenticationValue:
      type: string
      description: |
        The result value from the 3DS transaction received from the ACS. This value is no longer present on responses after 45 days have passed after the authentication.
        Note that Mastercard and Visa use a different underlying format.
        This property will only be present in the ARes if `transStatus` is `Y`, `A` and conditionally (by DS rules) `I`.
    ARes:
      type: object
      description: The issuer's response to the 3DS request.
      allOf:
        - $ref: '#/components/schemas/Message'
        - type: object
          required:
            - messageType
            - threeDSServerTransID
            - dsTransID
            - acsTransID
            - transStatus
            - dsReferenceNumber
            - acsReferenceNumber
          properties:
            messageType:
              type: string
              enum:
                - ARes
            dsTransID:
              $ref: '#/components/schemas/dsTransID'
            acsTransID:
              $ref: '#/components/schemas/acsTransID'
            transStatus:
              $ref: '#/components/schemas/transStatus'
            transStatusReason:
              $ref: '#/components/schemas/transStatusReason'
            threeDSServerTransID:
              $ref: '#/components/schemas/threeDSServerTransID'
            cardholderInfo:
              $ref: '#/components/schemas/cardHolderInfo'
            acsChallengeMandated:
              $ref: '#/components/schemas/acsChallengeMandated'
            dsReferenceNumber:
              $ref: '#/components/schemas/dsReferenceNumber'
            acsReferenceNumber:
              $ref: '#/components/schemas/acsReferenceNumber'
            acsOperatorID:
              $ref: '#/components/schemas/acsOperatorID'
            acsDecConInd:
              $ref: '#/components/schemas/acsDecConInd'
            acsRenderingType:
              $ref: '#/components/schemas/acsRenderingType'
            acsURL:
              $ref: '#/components/schemas/acsUrl'
            authenticationType:
              $ref: '#/components/schemas/authenticationType'
            eci:
              $ref: '#/components/schemas/eci'
            whiteListStatus:
              $ref: '#/components/schemas/whiteListStatus'
            whiteListStatusSource:
              $ref: '#/components/schemas/whiteListStatusSource'
            acsSignedContent:
              $ref: '#/components/schemas/acsSignedContent'
            authenticationValue:
              $ref: '#/components/schemas/authenticationValue'
    ThreeDsChallenge:
      type: object
      title: 3DS Challenge
      required:
        - key
        - amount
        - network
        - protocolVersion
        - deviceChannel
        - flow
        - result
        - ares
        - created
        - version
      properties:
        key:
          $ref: '#/components/schemas/threedsKey'
        merchantAcceptorRef:
          $ref: '#/components/schemas/schemas-AcceptorRef'
        merchantInfo:
          $ref: '#/components/schemas/MerchantInfoResponse'
        amount:
          $ref: '#/components/schemas/ResponseAmount'
        network:
          $ref: '#/components/schemas/authenticationNetwork'
        protocolVersion:
          $ref: '#/components/schemas/protocolVersion'
        deviceChannel:
          $ref: '#/components/schemas/deviceChannel'
        flow:
          allOf:
            - enum:
                - challenge
            - $ref: '#/components/schemas/flow'
        result:
          allOf:
            - description: |
                Indicates that the cardholder has to complete the challenge flow.
              enum:
                - challenge
            - $ref: '#/components/schemas/result'
        ares:
          $ref: '#/components/schemas/ARes'
        transactionReference:
          $ref: '#/components/schemas/transactionReference'
        type:
          type: object
          description: Transaction type information from the request
          properties:
            order:
              $ref: '#/components/schemas/order'
            intent:
              $ref: '#/components/schemas/intent'
        created:
          $ref: '#/components/schemas/schemas-created'
        version:
          $ref: '#/components/schemas/version'
    challengeFlow:
      allOf:
        - enum:
            - challenge
        - $ref: '#/components/schemas/flow'
    challengeResult:
      allOf:
        - description: |
            Indicates that the cardholder has finished the challenge flow and whether the 
            cardholder is either authenticated or non-authenticated.
          enum:
            - authenticated
            - non-authenticated
        - $ref: '#/components/schemas/result'
    authenticationMethod:
      type: string
      description: Authentication approach that the ACS used to authenticate the cardholder for this specific transaction.
    challengeCancel:
      type: string
      description: Indicator informing the ACS and the DS that the authentication has been canceled.
    interactionCounter:
      type: string
      description: The number of interactions for each transaction tracked by the ACS.
    messageCategory:
      type: string
      description: Indicates the category of the EMV 3-D Secure message.
    RReqWithoutAuthValue:
      type: object
      description: |-
        This property is only present after the cardholder finished the challenge flow.

        The RReq message communicates the results of the authentication or verification.
        This message is received by Silverflow from the issuer (through the scheme) and contains the result of a challenge flow.

        Once Silverflow received the CReq, it will be appended to the 3DS entity it belongs to and the result can be interpreted by the requester.
      allOf:
        - $ref: '#/components/schemas/Message'
        - type: object
          required:
            - messageType
            - threeDSServerTransID
            - acsTransID
            - dsTransID
            - interactionCounter
            - messageCategory
            - transStatus
          properties:
            messageType:
              type: string
              enum:
                - RReq
            acsTransID:
              $ref: '#/components/schemas/acsTransID'
            acsRenderingType:
              $ref: '#/components/schemas/acsRenderingType'
            authenticationMethod:
              $ref: '#/components/schemas/authenticationMethod'
            authenticationType:
              $ref: '#/components/schemas/authenticationType'
            challengeCancel:
              $ref: '#/components/schemas/challengeCancel'
            dsTransID:
              $ref: '#/components/schemas/dsTransID'
            eci:
              $ref: '#/components/schemas/eci'
            interactionCounter:
              $ref: '#/components/schemas/interactionCounter'
            messageCategory:
              $ref: '#/components/schemas/messageCategory'
            transStatus:
              $ref: '#/components/schemas/transStatus'
            transStatusReason:
              $ref: '#/components/schemas/transStatusReason'
            threeDSServerTransID:
              $ref: '#/components/schemas/threeDSServerTransID'
            whiteListStatus:
              $ref: '#/components/schemas/whiteListStatus'
            whiteListStatusSource:
              $ref: '#/components/schemas/whiteListStatusSource'
    fraudLiability:
      description: Which party is liable in case of fraud.
      type: string
      enum:
        - acquirer
        - issuer
    schemas-lastModified:
      type: string
      description: The date and time this object was last modified.
      format: iso-8601-date-time
    ThreeDsChallengeFinishedWithoutAuthValue:
      type: object
      title: 3DS Challenge (Finished) Without Authentication Value
      required:
        - key
        - amount
        - network
        - protocolVersion
        - deviceChannel
        - flow
        - result
        - ares
        - rreq
        - created
        - lastModified
        - version
      properties:
        key:
          $ref: '#/components/schemas/threedsKey'
        merchantAcceptorRef:
          $ref: '#/components/schemas/schemas-AcceptorRef'
        merchantInfo:
          $ref: '#/components/schemas/MerchantInfoResponse'
        amount:
          $ref: '#/components/schemas/ResponseAmount'
        network:
          $ref: '#/components/schemas/authenticationNetwork'
        protocolVersion:
          $ref: '#/components/schemas/protocolVersion'
        deviceChannel:
          $ref: '#/components/schemas/deviceChannel'
        flow:
          $ref: '#/components/schemas/challengeFlow'
        result:
          $ref: '#/components/schemas/challengeResult'
        ares:
          $ref: '#/components/schemas/AResWithoutAuthValue'
        rreq:
          $ref: '#/components/schemas/RReqWithoutAuthValue'
        transactionReference:
          $ref: '#/components/schemas/transactionReference'
        fraudLiability:
          $ref: '#/components/schemas/fraudLiability'
        type:
          type: object
          description: Transaction type information from the request
          properties:
            order:
              $ref: '#/components/schemas/order'
            intent:
              $ref: '#/components/schemas/intent'
        created:
          $ref: '#/components/schemas/schemas-created'
        lastModified:
          $ref: '#/components/schemas/schemas-lastModified'
        version:
          $ref: '#/components/schemas/version'
    noAuthFlow:
      allOf:
        - enum:
            - none
        - $ref: '#/components/schemas/flow'
    noAuthResult:
      allOf:
        - description: |
            Indicates a negative 3DS result, indicating that the cardholder was not
            authenticated.
          enum:
            - attempt
            - non-authenticated
        - $ref: '#/components/schemas/result'
    ThreeDsNoFlowNoAuthWithoutAuthValue:
      type: object
      title: 3DS Unauthenticated Without Authentication Value
      required:
        - key
        - amount
        - network
        - protocolVersion
        - deviceChannel
        - flow
        - result
        - ares
        - created
        - version
      properties:
        key:
          $ref: '#/components/schemas/threedsKey'
        merchantAcceptorRef:
          $ref: '#/components/schemas/schemas-AcceptorRef'
        merchantInfo:
          $ref: '#/components/schemas/MerchantInfoResponse'
        amount:
          $ref: '#/components/schemas/ResponseAmount'
        network:
          $ref: '#/components/schemas/authenticationNetwork'
        protocolVersion:
          $ref: '#/components/schemas/protocolVersion'
        deviceChannel:
          $ref: '#/components/schemas/deviceChannel'
        flow:
          $ref: '#/components/schemas/noAuthFlow'
        result:
          $ref: '#/components/schemas/noAuthResult'
        ares:
          $ref: '#/components/schemas/AResWithoutAuthValue'
        transactionReference:
          $ref: '#/components/schemas/transactionReference'
        type:
          type: object
          description: Transaction type information from the request
          properties:
            order:
              $ref: '#/components/schemas/order'
            intent:
              $ref: '#/components/schemas/intent'
        created:
          $ref: '#/components/schemas/schemas-created'
        version:
          $ref: '#/components/schemas/version'
    Result:
      type: string
      description: Authentication result.
      enum:
        - authenticated
        - non-authenticated
    ThreeRiTransStatus:
      type: string
      description: |
        Indicates whether a transaction is authenticated or not.
          - `Y` indicates authenticated
          - `N` indicates not authenticated
          - `R` indicates rejected
      enum:
        - 'Y'
        - 'N'
        - R
    ThreeRiAResWithoutAuthenticationValue:
      type: object
      description: The issuer's response to the 3DS request.
      allOf:
        - type: object
          required:
            - messageVersion
            - threeDSServerTransID
            - messageType
            - dsTransID
            - acsTransID
            - transStatus
            - dsReferenceNumber
            - acsReferenceNumber
          properties:
            threeDSServerTransID:
              $ref: '#/components/schemas/threeDSServerTransID'
            messageExtension:
              $ref: '#/components/schemas/MessageExtensionList'
            messageType:
              type: string
              enum:
                - ARes
            dsTransID:
              $ref: '#/components/schemas/dsTransID'
            acsTransID:
              $ref: '#/components/schemas/acsTransID'
            transStatus:
              $ref: '#/components/schemas/ThreeRiTransStatus'
            messageVersion:
              type: string
              description: The 3DS protocol version which has been used to perform 3DS. For 3RI it's always 2.2.0.
              enum:
                - 2.2.0
            transStatusReason:
              $ref: '#/components/schemas/transStatusReason'
            cardholderInfo:
              $ref: '#/components/schemas/cardHolderInfo'
            acsChallengeMandated:
              $ref: '#/components/schemas/acsChallengeMandated'
            dsReferenceNumber:
              $ref: '#/components/schemas/dsReferenceNumber'
            acsReferenceNumber:
              $ref: '#/components/schemas/acsReferenceNumber'
            acsOperatorID:
              $ref: '#/components/schemas/acsOperatorID'
            acsDecConInd:
              $ref: '#/components/schemas/acsDecConInd'
            authenticationType:
              $ref: '#/components/schemas/authenticationType'
            eci:
              $ref: '#/components/schemas/eci'
            whiteListStatus:
              $ref: '#/components/schemas/whiteListStatus'
            whiteListStatusSource:
              $ref: '#/components/schemas/whiteListStatusSource'
    ThreeRiResponseWithoutAuthenticationValue:
      type: object
      title: 3RI Authentication Without Authentication Value
      required:
        - key
        - amount
        - network
        - protocolVersion
        - deviceChannel
        - result
        - ares
        - fraudLiability
        - created
        - version
      properties:
        key:
          $ref: '#/components/schemas/threedsKey'
        merchantAcceptorRef:
          $ref: '#/components/schemas/schemas-AcceptorRef'
        merchantInfo:
          $ref: '#/components/schemas/MerchantInfoResponse'
        amount:
          $ref: '#/components/schemas/ResponseAmount'
        network:
          $ref: '#/components/schemas/authenticationNetwork'
        protocolVersion:
          type: string
          description: The 3DS protocol version which has been used to perform 3DS. For 3RI it's always 2.2.0
          enum:
            - 2.2.0
        deviceChannel:
          type: string
          description: Indicates the type of the interface used to initiate the transaction.
          enum:
            - 3ri
        result:
          $ref: '#/components/schemas/Result'
        ares:
          $ref: '#/components/schemas/ThreeRiAResWithoutAuthenticationValue'
        transactionReference:
          $ref: '#/components/schemas/transactionReference'
        fraudLiability:
          $ref: '#/components/schemas/fraudLiability'
        created:
          $ref: '#/components/schemas/schemas-created'
        version:
          $ref: '#/components/schemas/version'
    dataOnlyResult:
      allOf:
        - description: |
            Indicates that this 3DS transaction was for data sharing purposes only. `informational` will be returned if the `challengeIndicator` field was set to `data-only`.
          enum:
            - informational
        - $ref: '#/components/schemas/result'
    ThreeDsDataOnly:
      type: object
      title: 3DS Data Only
      required:
        - key
        - amount
        - network
        - protocolVersion
        - deviceChannel
        - flow
        - result
        - ares
        - created
        - version
      properties:
        key:
          $ref: '#/components/schemas/threedsKey'
        merchantAcceptorRef:
          $ref: '#/components/schemas/schemas-AcceptorRef'
        merchantInfo:
          $ref: '#/components/schemas/MerchantInfoResponse'
        amount:
          $ref: '#/components/schemas/ResponseAmount'
        network:
          $ref: '#/components/schemas/authenticationNetwork'
        protocolVersion:
          $ref: '#/components/schemas/protocolVersion'
        deviceChannel:
          $ref: '#/components/schemas/deviceChannel'
        flow:
          allOf:
            - enum:
                - none
            - $ref: '#/components/schemas/flow'
        result:
          $ref: '#/components/schemas/dataOnlyResult'
        ares:
          $ref: '#/components/schemas/ARes'
        transactionReference:
          $ref: '#/components/schemas/transactionReference'
        fraudLiability:
          $ref: '#/components/schemas/fraudLiability'
        type:
          type: object
          description: Transaction type information from the request
          properties:
            order:
              $ref: '#/components/schemas/order'
            intent:
              $ref: '#/components/schemas/intent'
        created:
          $ref: '#/components/schemas/schemas-created'
        version:
          $ref: '#/components/schemas/version'
    ThreeDsPageEntity:
      title: 3DS Page Entity Without Authentication Value
      oneOf:
        - $ref: '#/components/schemas/ThreeDsFrictionlessAuthenticatedWithoutAuthValue'
        - $ref: '#/components/schemas/ThreeDsChallenge'
        - $ref: '#/components/schemas/ThreeDsChallengeFinishedWithoutAuthValue'
        - $ref: '#/components/schemas/ThreeDsNoFlowNoAuthWithoutAuthValue'
        - $ref: '#/components/schemas/ThreeRiResponseWithoutAuthenticationValue'
        - $ref: '#/components/schemas/ThreeDsDataOnly'
    threeDsPage:
      allOf:
        - $ref: '#/components/schemas/schemas-Page'
        - type: object
          required:
            - threeDss
          properties:
            threeDss:
              type: array
              items:
                $ref: '#/components/schemas/ThreeDsPageEntity'
    errorType:
      type: string
      description: |
        A relative URI reference, this property can be used to perform automated error handling.
    errorTitle:
      type: string
      description: |
        A short, human-readable summary of the problem type. It does not change from occurrence to occurrence of the error.
    errorStatus:
      type: integer
      format: int32
      description: |
        The HTTP status code generated by the origin server for this occurrence
        of the problem.
    errorDetail:
      type: string
      description: |
        A human readable explanation specific to this occurrence of the problem.
    errorInstance:
      type: string
      description: |
        A reference that identifies the specific occurrence of the error. The instance is unique for every error.
    InvalidOffsetTokenErrorDetails:
      type: object
      required:
        - type
        - title
        - status
        - detail
        - instance
      properties:
        type:
          allOf:
            - $ref: '#/components/schemas/errorType'
            - enum:
                - /silverflow/problems/invalid-offset-token
        title:
          allOf:
            - $ref: '#/components/schemas/errorTitle'
            - enum:
                - Invalid Offset Token
        status:
          allOf:
            - $ref: '#/components/schemas/errorStatus'
            - enum:
                - 400
        detail:
          $ref: '#/components/schemas/errorDetail'
        instance:
          $ref: '#/components/schemas/errorInstance'
    AuthenticationRequiredErrorDetails:
      type: object
      required:
        - type
        - title
        - status
        - detail
        - instance
      properties:
        type:
          allOf:
            - $ref: '#/components/schemas/errorType'
            - enum:
                - /silverflow/problems/authentication-required
        title:
          $ref: '#/components/schemas/errorTitle'
        status:
          allOf:
            - $ref: '#/components/schemas/errorStatus'
            - enum:
                - 401
        detail:
          $ref: '#/components/schemas/errorDetail'
        instance:
          $ref: '#/components/schemas/errorInstance'
    TooManyRequestsErrorDetails:
      type: object
      required:
        - type
        - title
        - status
        - detail
        - instance
      properties:
        type:
          allOf:
            - $ref: '#/components/schemas/errorType'
            - enum:
                - /silverflow/problems/too-many-requests
        title:
          allOf:
            - $ref: '#/components/schemas/errorTitle'
            - enum:
                - Too Many Requests
        status:
          allOf:
            - $ref: '#/components/schemas/errorStatus'
            - enum:
                - 429
        detail:
          $ref: '#/components/schemas/errorDetail'
        instance:
          $ref: '#/components/schemas/errorInstance'
    InternalServerErrorDetails:
      type: object
      required:
        - type
        - title
        - status
        - detail
        - instance
      properties:
        type:
          allOf:
            - $ref: '#/components/schemas/errorType'
            - enum:
                - /silverflow/problems/internal-server-error
        title:
          allOf:
            - $ref: '#/components/schemas/errorTitle'
            - enum:
                - Internal Server Error
        status:
          allOf:
            - $ref: '#/components/schemas/errorStatus'
            - enum:
                - 500
        detail:
          $ref: '#/components/schemas/errorDetail'
        instance:
          $ref: '#/components/schemas/errorInstance'
    acceptorKeyRef:
      description: Uniquely identifies a merchant acceptor.
      type: string
      pattern: ^mac-[a-zA-Z0-9]+$
      example: mac-25oJsQ99GBpW23MQidKS
    pan:
      type: string
      description: Full digits of the card or network token.
      pattern: ^[0-9]+$
      minLength: 13
      maxLength: 19
      format: password
      example: 1234123412341234
    expiryMonth:
      type: integer
      description: |
        The month the card or network token expires. January is 1
      minimum: 1
      maximum: 12
    expiryYear:
      type: integer
      description: |
        The year the card or network token expires including the century
      minimum: 2020
      maximum: 2050
    cvc:
      type: string
      description: |
        The CVC of the card
      pattern: ^\d+$
      minLength: 3
      maxLength: 4
      example: '132'
    holderName:
      type: string
      minLength: 2
      description: |
        The name of the cardholder as displayed on the card. It will be truncated if longer than 45 characters. 

        The name needs to comply with the following regular expression: `^[\x20-\x7E\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u00FF]+$`

        More information here: [Cardholder name restrictions](charges.html#section/Appendix-A-Cardholder-Name-Restrictions)
      example: Joe Cardholder
    InputCard:
      type: object
      required:
        - number
        - expiryMonth
        - expiryYear
      additionalProperties: false
      description: |
        Card data
      properties:
        number:
          $ref: '#/components/schemas/pan'
        expiryMonth:
          $ref: '#/components/schemas/expiryMonth'
        expiryYear:
          $ref: '#/components/schemas/expiryYear'
        cvc:
          $ref: '#/components/schemas/cvc'
        holderName:
          $ref: '#/components/schemas/holderName'
    processorTokenKey:
      type: string
      description: The key to a card stored using [Processor Tokenization](#tag/Processor-Tokenization).
      pattern: ^ptk-[a-zA-Z0-9]+$
      minLength: 5
      maxLength: 120
    CardByProcessorTokenKey:
      type: object
      title: Processor Token Key (EXPERIMENTAL)
      required:
        - processorTokenKey
      properties:
        processorTokenKey:
          $ref: '#/components/schemas/processorTokenKey'
        cvc:
          allOf:
            - description: |
                The three digit CVC code of the card.
                If a CVC is provided here, it takes precedence over the one stored in the processor token.
            - $ref: '#/components/schemas/cvc'
    Card:
      description: |
        This field represents the card.
        The card credentials can either be passed directly in the request or be referenced using a `key`.
      oneOf:
        - $ref: '#/components/schemas/InputCard'
        - $ref: '#/components/schemas/CardByProcessorTokenKey'
    cardEntry:
      deprecated: true
      description: |
        The method used to capture the card details.

        **From February 22, 2027 this field will be removed since it has no effect on the 3DS authentication.**
      type: string
      enum:
        - e-commerce
        - card-on-file
        - token
        - token-on-file
    ThreeDsType:
      description: |
        Describes the kind of transaction the merchant wants to submit.
      type: object
      required:
        - intent
        - order
      properties:
        intent:
          $ref: '#/components/schemas/intent'
        cardEntry:
          $ref: '#/components/schemas/cardEntry'
        order:
          $ref: '#/components/schemas/order'
    challengeIndicator:
      type: string
      description: |
        When set, indicates the preferred 3DS challenge flow as follows: 
          - `no-preference`: No preference related to the challenge flow.
          - `no-challenge`: No challenge flow requested.
          - `challenge-preferred`: Preferably a challenge flow takes place.
          - `challenge-mandated`: The challenge flow must take place.
          - `no-challenge-tra`: No challenge requested as transaction risk analysis is already performed.
          - `no-challenge-low-value`: No challenge requested as low value exemption is applied. This exemption is only applicable for Mastercard.
          - `no-challenge-scp`: No challenge requested as the secure corporate payment exemption is applied. This exemption is only applicable for Mastercard and Visa.
          - `data-only`: For data sharing purposes only and therefore will never trigger a challenge flow.
      enum:
        - no-preference
        - no-challenge
        - challenge-preferred
        - challenge-mandated
        - no-challenge-tra
        - no-challenge-low-value
        - no-challenge-scp
        - data-only
    notificationUrl:
      type: string
      description: |
        URL that receives the challenge response (CRes) or error message from the issuer's Access Control Server (ACS).
      pattern: ^https://.{1,248}$
      example: https://myserver.com/send/callback/here
    browserAcceptHeader:
      type: string
      minLength: 1
      maxLength: 2048
      pattern: ^.+$
      description: |
        Exact content of the HTTP accept headers as sent to the 3DS Requestor from the cardholder's browser.
      example: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8
    browserLanguage:
      type: string
      minLength: 1
      maxLength: 35
      pattern: ^.+$
      description: |
        Value representing the browser language as defined in IETF BCP47. Returned from `navigator.language` property from the HTML DOM API.
      example: nl-NL
    browserUserAgent:
      type: string
      minLength: 1
      maxLength: 2048
      pattern: ^.+$
      description: |
        Exact content of the HTTP user-agent header.
      example: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/70.0.3538.110 Safari/537.36
    browserIP:
      type: string
      pattern: (^(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.){3}(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)$)|(^(([0-9a-fA-F]{1,4}:){7,7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:))$)
      description: |
        IP address of the browser as returned by the HTTP headers. Shall be included where regionally acceptable. Example IPv6 address: 2011:0db8:85a3:0101:0101:8a2e:0370:7334.
      example: 1.12.123.255
    BrowserData:
      type: object
      required:
        - acceptHeader
        - language
        - userAgent
      properties:
        acceptHeader:
          $ref: '#/components/schemas/browserAcceptHeader'
        language:
          $ref: '#/components/schemas/browserLanguage'
        userAgent:
          $ref: '#/components/schemas/browserUserAgent'
        browserIP:
          $ref: '#/components/schemas/browserIP'
    browserScreenWidth:
      type: string
      minLength: 1
      maxLength: 6
      pattern: ^[0-9]+$
      description: |
        Total width of the cardholder's screen in pixels. Value is returned from the `screen.width` property from the HTML DOM API.
      example: '1536'
    browserScreenHeight:
      type: string
      minLength: 1
      maxLength: 6
      pattern: ^[0-9]+$
      description: |
        Total height of the cardholder's screen in pixels. Value is returned from the `screen.height` 
        property from the HTML DOM API.
      example: '724'
    browserTimeZoneOffset:
      type: string
      minLength: 1
      maxLength: 5
      pattern: ^.+$
      description: |
        Time-zone offset in minutes between UTC and the cardholder browser local time.
        Value is returned from the `getTimezoneOffset()` method. Note that the offset is positive if the local
        time zone is behind UTC and negative if it is ahead. 

        Example: If UTC -5 hours: 300 -> +300, if UTC +5 hours: -> -300
      example: '0'
    browserJavaEnabled:
      type: boolean
      description: |
        The ability of the cardholder browser to execute Java. Value is returned from the 
        `navigator.javaEnabled` property from the HTML DOM API.
      example: true
    browserColorDepth:
      type: string
      pattern: ^([0-9][1-9]|[1-9][0-9]?)$
      description: |
        Value representing the bit depth of the colour palette for displaying images, in bits per pixel.
        Obtained from cardholder browser using the `screen.colorDepth` property. 

        Values defined by the EMVCo specification: 1, 4, 8, 15, 16, 24, 32, 48
      example: '24'
    BrowserDataJavascriptEnabledTrue:
      allOf:
        - $ref: '#/components/schemas/BrowserData'
        - type: object
          required:
            - javascriptEnabled
            - screenWidth
            - screenHeight
            - timeZoneOffset
            - javaEnabled
            - colorDepth
          properties:
            javascriptEnabled:
              type: boolean
              description: The ability of the cardholder browser to execute JavaScript.
              enum:
                - true
            screenWidth:
              $ref: '#/components/schemas/browserScreenWidth'
            screenHeight:
              $ref: '#/components/schemas/browserScreenHeight'
            timeZoneOffset:
              $ref: '#/components/schemas/browserTimeZoneOffset'
            javaEnabled:
              $ref: '#/components/schemas/browserJavaEnabled'
            colorDepth:
              $ref: '#/components/schemas/browserColorDepth'
    BrowserDataJavascriptEnabledFalse:
      allOf:
        - $ref: '#/components/schemas/BrowserData'
        - type: object
          required:
            - javascriptEnabled
          properties:
            javascriptEnabled:
              type: boolean
              description: The ability of the cardholder browser to execute JavaScript.
              enum:
                - false
            screenWidth:
              $ref: '#/components/schemas/browserScreenWidth'
            screenHeight:
              $ref: '#/components/schemas/browserScreenHeight'
            timeZoneOffset:
              $ref: '#/components/schemas/browserTimeZoneOffset'
            javaEnabled:
              $ref: '#/components/schemas/browserJavaEnabled'
            colorDepth:
              $ref: '#/components/schemas/browserColorDepth'
    AuthenticationContext:
      type: object
      description: |
        Contains data that the issuer needs to perform the fingerprinting, but also optional configuration settings.
      required:
        - notificationUrl
        - browserData
      properties:
        notificationUrl:
          $ref: '#/components/schemas/notificationUrl'
        browserData:
          type: object
          description: |
            Information about the browser that is performing the transaction. This data is used by the issuer to perform fingerprinting.
          oneOf:
            - $ref: '#/components/schemas/BrowserDataJavascriptEnabledTrue'
            - $ref: '#/components/schemas/BrowserDataJavascriptEnabledFalse'
    localTransactionDateTime:
      type: string
      format: iso-8601-date-time
      description: Date and time of the transaction in the local timezone.
    recurringExpiry:
      type: string
      format: date
      description: |
        The date at which the recurring authorization expires. Format: YYYY-MM-DD.

        Required when `type.order` is `recurring`, `installment`, or `standing-order`.
    recurringFrequency:
      type: integer
      description: |
        Number of days between recurring authorizations.

        Required when `type.order` is `recurring`, `installment`, or `standing-order`.
    installmentTerms:
      type: integer
      description: |
        Maximum number of authorizations for an installment payment.

        Required for and only allowed when `type.order` is `installment`. Must be greater than 1 and at most 3 digits (max value 999).
      minimum: 2
      maximum: 999
    DynamicDescriptor:
      type: object
      minProperties: 1
      additionalProperties: false
      description: |
        Allows customizing the DBA name on a per-transaction basis, 
        to help the cardholder recognize the business name on their card or bank statement.
      properties:
        merchantName:
          type: string
          pattern: ^[a-zA-Z0-9-\.!\*=_ ]+$
          description: Recognizable business name that will appear on the customer's card or bank statement.
          example: Acme Inc.
          minLength: 1
          maxLength: 22
    PhoneNumber:
      type: object
      additionalProperties: false
      required:
        - countryCode
        - number
      properties:
        countryCode:
          description: Country code should be between 1 to 3 digits, more information [here](https://en.wikipedia.org/wiki/E.164).
          type: string
          minLength: 1
          maxLength: 3
          pattern: ^[0-9]+$
          example: 31
        number:
          description: Phone number should be between 1 and 15 digits, more information [here](https://en.wikipedia.org/wiki/E.164).
          type: string
          minLength: 1
          maxLength: 15
          pattern: ^[0-9]+$
          example: 63012345678
    CardholderInformation:
      description: Extra information about the cardholder.
      type: object
      additionalProperties: false
      properties:
        email:
          type: string
          description: The email address associated with the cardholder account. This address is either entered by the cardholder or is on file with the 3DS Requester.
          pattern: ^[^\s]+$
          minLength: 1
          maxLength: 254
          example: carlos.somoza@gmail.com
        phone:
          description: Phone numbers associated with the account. They follow the [ITU-E.164 standard](https://en.wikipedia.org/wiki/E.164).
          type: object
          additionalProperties: false
          properties:
            work:
              $ref: '#/components/schemas/PhoneNumber'
            mobile:
              $ref: '#/components/schemas/PhoneNumber'
            home:
              $ref: '#/components/schemas/PhoneNumber'
    components-schemas-stateOrProvince:
      type: string
      pattern: ^(?!\s*$).+
      minLength: 1
      maxLength: 3
      description: |
        The state (US) or province (non-US) of the address.
      example: NH
    components-schemas-city:
      type: string
      pattern: ^(?!\s*$).+
      minLength: 1
      maxLength: 50
      description: |
        The city of the address.
      example: Amsterdam
    components-schemas-line1:
      type: string
      pattern: ^(?!\s*$).+
      minLength: 1
      maxLength: 50
      description: |
        Address line 1
      example: Langtown Road
    components-schemas-line2:
      type: string
      pattern: ^(?!\s*$).+
      minLength: 1
      maxLength: 50
      description: |
        Address line 2
      example: '4200'
    components-schemas-postalCode:
      type: string
      pattern: ^[a-zA-Z0-9- ]+$
      minLength: 1
      maxLength: 16
      description: |
        The postal code of the address, allowing spaces and dashes
      example: 1234BC
    addressInputBase:
      type: object
      required:
        - city
        - line1
        - postalCode
      description: |
        A physical postal address
      properties:
        stateOrProvince:
          $ref: '#/components/schemas/components-schemas-stateOrProvince'
        city:
          $ref: '#/components/schemas/components-schemas-city'
        line1:
          $ref: '#/components/schemas/components-schemas-line1'
        line2:
          $ref: '#/components/schemas/components-schemas-line2'
        postalCode:
          $ref: '#/components/schemas/components-schemas-postalCode'
    AddressInput:
      allOf:
        - type: object
          required:
            - countryCode
          properties:
            countryCode:
              description: ISO 3166-1 country code
              externalDocs:
                description: Find more info here
                url: https://www.iso.org/iso-3166-country-codes.html
              oneOf:
                - $ref: '#/components/schemas/schemas-CountryCodeAlpha3'
                - $ref: '#/components/schemas/schemas-CountryCodeAlpha2'
                - $ref: '#/components/schemas/schemas-CountryCodeNumeric'
        - $ref: '#/components/schemas/addressInputBase'
    PublicCreate3dsRequestWithMerchantAcceptor:
      title: With Merchant Acceptor
      type: object
      additionalProperties: false
      required:
        - authenticationContext
        - card
        - amount
        - type
        - merchantAcceptorKey
      properties:
        merchantAcceptorKey:
          $ref: '#/components/schemas/acceptorKeyRef'
        card:
          $ref: '#/components/schemas/Card'
        type:
          $ref: '#/components/schemas/ThreeDsType'
        amount:
          $ref: '#/components/schemas/Amount'
        challengeIndicator:
          $ref: '#/components/schemas/challengeIndicator'
        authenticationContext:
          $ref: '#/components/schemas/AuthenticationContext'
        transactionReference:
          $ref: '#/components/schemas/transactionReference'
        localTransactionDateTime:
          $ref: '#/components/schemas/localTransactionDateTime'
        recurringExpiry:
          $ref: '#/components/schemas/recurringExpiry'
        recurringFrequency:
          $ref: '#/components/schemas/recurringFrequency'
        installmentTerms:
          $ref: '#/components/schemas/installmentTerms'
        dynamicDescriptor:
          $ref: '#/components/schemas/DynamicDescriptor'
        cardholderInformation:
          $ref: '#/components/schemas/CardholderInformation'
        threeDSServerTransID:
          allOf:
            - type: string
              description: |
                The `threeDSServerTransID` used to perform a 3DS Method flow.

                Include this field in the authentication request if 3DS Method has been used to allow the issuer to capture browser information prior to initiating this authentication request.
            - $ref: '#/components/schemas/threeDSServerTransID'
        billingAddress:
          description: The billing address of the cardholder
          $ref: '#/components/schemas/AddressInput'
        shippingAddress:
          $ref: '#/components/schemas/AddressInput'
    MerchantInfoRequest:
      type: object
      description: |
        Merchant details provided directly in the request, as an alternative to
        providing a `merchantAcceptorKey`.
      additionalProperties: false
      required:
        - merchantId
        - mcc
        - merchantName
        - merchantCountryCode
        - websiteUrl
        - network
      properties:
        acquirerBin:
          type: string
          description: |
            6-11 digit Bank Identification Number assigned by the card network. Required for all card networks except AMEX.

            For AMEX populate this with the SE Number or leave blank depending on the model, see [3DS Guide](https://docs.silverflow.com/guides/3d-secure#tag/Supporting-Different-AMEX-Models).
          pattern: ^[0-9]+$
          minLength: 6
          maxLength: 11
        merchantId:
          type: string
          description: |
            Merchant identifier (MID) assigned by the acquirer.

            For AMEX populate this with the Seller ID or SE Number depending on the model, see [3DS Guide](https://docs.silverflow.com/guides/3d-secure#tag/Supporting-Different-AMEX-Models).
          minLength: 1
          maxLength: 20
        mcc:
          type: string
          description: 4-digit ISO 18245 merchant category code
          pattern: ^[0-9]+$
          minLength: 4
          maxLength: 4
        merchantName:
          type: string
          description: Merchant's doing-business-as name
          minLength: 1
          maxLength: 40
        merchantCountryCode:
          description: ISO 3166-1 country code. Can be provided in alpha-2, alpha-3, or numeric format
          oneOf:
            - $ref: '#/components/schemas/schemas-CountryCodeAlpha3'
            - $ref: '#/components/schemas/schemas-CountryCodeAlpha2'
            - $ref: '#/components/schemas/schemas-CountryCodeNumeric'
        websiteUrl:
          type: string
          description: Merchant's website URL
          maxLength: 2048
        network:
          allOf:
            - description: The card network that will process the transaction and handle authentication.
            - $ref: '#/components/schemas/network'
    PublicCreate3dsRequestWithMerchantInfo:
      title: With Merchant Info [EXPERIMENTAL]
      type: object
      additionalProperties: false
      required:
        - authenticationContext
        - card
        - amount
        - type
        - merchantInfo
      properties:
        merchantInfo:
          $ref: '#/components/schemas/MerchantInfoRequest'
        card:
          $ref: '#/components/schemas/Card'
        type:
          $ref: '#/components/schemas/ThreeDsType'
        amount:
          $ref: '#/components/schemas/Amount'
        challengeIndicator:
          $ref: '#/components/schemas/challengeIndicator'
        authenticationContext:
          $ref: '#/components/schemas/AuthenticationContext'
        transactionReference:
          $ref: '#/components/schemas/transactionReference'
        localTransactionDateTime:
          $ref: '#/components/schemas/localTransactionDateTime'
        recurringExpiry:
          $ref: '#/components/schemas/recurringExpiry'
        recurringFrequency:
          $ref: '#/components/schemas/recurringFrequency'
        installmentTerms:
          $ref: '#/components/schemas/installmentTerms'
        dynamicDescriptor:
          $ref: '#/components/schemas/DynamicDescriptor'
        cardholderInformation:
          $ref: '#/components/schemas/CardholderInformation'
        threeDSServerTransID:
          allOf:
            - type: string
              description: |
                The `threeDSServerTransID` used to perform a 3DS Method flow.

                Include this field in the authentication request if 3DS Method has been used to allow the issuer to capture browser information prior to initiating this authentication request.
            - $ref: '#/components/schemas/threeDSServerTransID'
        billingAddress:
          description: The billing address of the cardholder
          $ref: '#/components/schemas/AddressInput'
        shippingAddress:
          $ref: '#/components/schemas/AddressInput'
    PublicCreate3dsRequest:
      oneOf:
        - $ref: '#/components/schemas/PublicCreate3dsRequestWithMerchantAcceptor'
        - $ref: '#/components/schemas/PublicCreate3dsRequestWithMerchantInfo'
    ThreeDsFrictionlessAuthenticated:
      type: object
      title: 3DS Frictionless Authenticated
      required:
        - key
        - amount
        - network
        - protocolVersion
        - deviceChannel
        - flow
        - result
        - ares
        - created
        - version
      properties:
        key:
          $ref: '#/components/schemas/threedsKey'
        merchantAcceptorRef:
          $ref: '#/components/schemas/schemas-AcceptorRef'
        merchantInfo:
          $ref: '#/components/schemas/MerchantInfoResponse'
        amount:
          $ref: '#/components/schemas/ResponseAmount'
        network:
          $ref: '#/components/schemas/authenticationNetwork'
        protocolVersion:
          $ref: '#/components/schemas/protocolVersion'
        deviceChannel:
          $ref: '#/components/schemas/deviceChannel'
        flow:
          $ref: '#/components/schemas/frictionlessFlow'
        result:
          $ref: '#/components/schemas/frictionlessResult'
        ares:
          $ref: '#/components/schemas/ARes'
        transactionReference:
          $ref: '#/components/schemas/transactionReference'
        fraudLiability:
          $ref: '#/components/schemas/fraudLiability'
        type:
          type: object
          description: Transaction type information from the request
          properties:
            order:
              $ref: '#/components/schemas/order'
            intent:
              $ref: '#/components/schemas/intent'
        created:
          $ref: '#/components/schemas/schemas-created'
        version:
          $ref: '#/components/schemas/version'
    ThreeDsNoFlowNoAuth:
      type: object
      title: 3DS Unauthenticated
      required:
        - key
        - amount
        - network
        - protocolVersion
        - deviceChannel
        - flow
        - result
        - ares
        - created
        - version
      properties:
        key:
          $ref: '#/components/schemas/threedsKey'
        merchantAcceptorRef:
          $ref: '#/components/schemas/schemas-AcceptorRef'
        merchantInfo:
          $ref: '#/components/schemas/MerchantInfoResponse'
        amount:
          $ref: '#/components/schemas/ResponseAmount'
        network:
          $ref: '#/components/schemas/authenticationNetwork'
        protocolVersion:
          $ref: '#/components/schemas/protocolVersion'
        deviceChannel:
          $ref: '#/components/schemas/deviceChannel'
        flow:
          $ref: '#/components/schemas/noAuthFlow'
        result:
          $ref: '#/components/schemas/noAuthResult'
        ares:
          $ref: '#/components/schemas/ARes'
        transactionReference:
          $ref: '#/components/schemas/transactionReference'
        fraudLiability:
          $ref: '#/components/schemas/fraudLiability'
        type:
          type: object
          description: Transaction type information from the request
          properties:
            order:
              $ref: '#/components/schemas/order'
            intent:
              $ref: '#/components/schemas/intent'
        created:
          $ref: '#/components/schemas/schemas-created'
        version:
          $ref: '#/components/schemas/version'
    InvalidRequestErrorDetails:
      type: object
      required:
        - type
        - title
        - status
        - detail
        - instance
      properties:
        type:
          allOf:
            - $ref: '#/components/schemas/errorType'
            - enum:
                - /silverflow/problems/invalid-request
        title:
          allOf:
            - $ref: '#/components/schemas/errorTitle'
            - enum:
                - Invalid Request
        status:
          allOf:
            - $ref: '#/components/schemas/errorStatus'
            - enum:
                - 400
        detail:
          $ref: '#/components/schemas/errorDetail'
        instance:
          $ref: '#/components/schemas/errorInstance'
    schemas-InvalidInputErrorDetails:
      type: object
      required:
        - type
        - title
        - status
        - detail
        - instance
        - validationErrors
      properties:
        type:
          allOf:
            - $ref: '#/components/schemas/errorType'
            - enum:
                - /silverflow/problems/invalid-input
        title:
          allOf:
            - $ref: '#/components/schemas/errorTitle'
            - enum:
                - Invalid Input
        status:
          allOf:
            - $ref: '#/components/schemas/errorStatus'
            - enum:
                - 400
        detail:
          $ref: '#/components/schemas/errorDetail'
        instance:
          $ref: '#/components/schemas/errorInstance'
        validationErrors:
          type: array
          items:
            type: object
            required:
              - path
              - message
            properties:
              path:
                type: string
                description: A relative path to the error location within the request body.
              errorCode:
                type: string
                description: A code that identifies the error.
              message:
                type: string
                description: A brief description of the validation error
          description: A list of validation errors.
    ReferencedEntityNotFoundErrorDetails:
      type: object
      required:
        - type
        - title
        - status
        - detail
        - instance
      properties:
        type:
          allOf:
            - $ref: '#/components/schemas/errorType'
            - enum:
                - /silverflow/problems/3ds/referenced-entity-not-found
        title:
          allOf:
            - $ref: '#/components/schemas/errorTitle'
            - enum:
                - Referenced Entity Not Found
        status:
          allOf:
            - $ref: '#/components/schemas/errorStatus'
            - enum:
                - 409
        detail:
          $ref: '#/components/schemas/errorDetail'
        instance:
          $ref: '#/components/schemas/errorInstance'
    UnsupportedCardNetworkErrorDetails:
      type: object
      required:
        - type
        - title
        - status
        - detail
        - instance
      properties:
        type:
          allOf:
            - $ref: '#/components/schemas/errorType'
            - enum:
                - /silverflow/problems/3ds/unsupported-card-network
        title:
          allOf:
            - $ref: '#/components/schemas/errorTitle'
            - enum:
                - Unsupported Card Network
        status:
          allOf:
            - $ref: '#/components/schemas/errorStatus'
            - enum:
                - 409
        detail:
          $ref: '#/components/schemas/errorDetail'
        instance:
          $ref: '#/components/schemas/errorInstance'
    UnsupportedCardNetworkRegionErrorDetails:
      type: object
      required:
        - type
        - title
        - status
        - detail
        - instance
      properties:
        type:
          allOf:
            - $ref: '#/components/schemas/errorType'
            - enum:
                - /silverflow/problems/3ds/unsupported-card-network-region
        title:
          allOf:
            - $ref: '#/components/schemas/errorTitle'
            - enum:
                - Unsupported Region for this Card Network
        status:
          allOf:
            - $ref: '#/components/schemas/errorStatus'
            - enum:
                - 409
        detail:
          $ref: '#/components/schemas/errorDetail'
        instance:
          $ref: '#/components/schemas/errorInstance'
    UnsupportedProtocolVersionErrorDetails:
      type: object
      required:
        - type
        - title
        - status
        - detail
        - instance
      properties:
        type:
          allOf:
            - $ref: '#/components/schemas/errorType'
            - enum:
                - /silverflow/problems/3ds/unsupported-protocol-version
        title:
          allOf:
            - $ref: '#/components/schemas/errorTitle'
            - enum:
                - Unsupported Protocol Version
        status:
          allOf:
            - $ref: '#/components/schemas/errorStatus'
            - enum:
                - 422
        detail:
          $ref: '#/components/schemas/errorDetail'
        instance:
          $ref: '#/components/schemas/errorInstance'
    UnenrolledAccountNumberErrorDetails:
      type: object
      required:
        - type
        - title
        - status
        - detail
        - instance
      properties:
        type:
          allOf:
            - $ref: '#/components/schemas/errorType'
            - enum:
                - /silverflow/problems/3ds/unenrolled-account-number
        title:
          allOf:
            - $ref: '#/components/schemas/errorTitle'
            - enum:
                - Unenrolled Account Number
        status:
          allOf:
            - $ref: '#/components/schemas/errorStatus'
            - enum:
                - 422
        detail:
          $ref: '#/components/schemas/errorDetail'
        instance:
          $ref: '#/components/schemas/errorInstance'
    UnenrolledAcquireOrMerchantErrorDetails:
      type: object
      required:
        - type
        - title
        - status
        - detail
        - instance
      properties:
        type:
          allOf:
            - $ref: '#/components/schemas/errorType'
            - enum:
                - /silverflow/problems/3ds/unenrolled-acquirer-or-merchant
        title:
          allOf:
            - $ref: '#/components/schemas/errorTitle'
            - enum:
                - Unenrolled Acquirer or Merchant
        status:
          allOf:
            - $ref: '#/components/schemas/errorStatus'
            - enum:
                - 422
        detail:
          $ref: '#/components/schemas/errorDetail'
        instance:
          $ref: '#/components/schemas/errorInstance'
    merchantAcceptorResolver:
      description: |
        The resolver is used to select the appropriate merchant acceptor for doing the authentication.
      type: object
      additionalProperties: false
      required:
        - merchantAcceptorKey
      properties:
        merchantAcceptorKey:
          $ref: '#/components/schemas/schemas-acceptorKey'
    ThreeRiIndicator:
      type: string
      description: Indicates the type of 3RI request. This property provides additional information to the ACS to determine the best approach for handling a 3RI request.
      enum:
        - recurring
        - ucof
        - installment
        - standing-order
    ThreeDsPriorAuthenticationInfo:
      type: object
      description: References the initial 3DS transaction to set up this sequence.
      required:
        - authMethod
        - dateTime
        - acsTransId
        - dsTransId
      properties:
        authMethod:
          type: string
          enum:
            - frictionless
            - challenge
          description: The authentication method used.
        dateTime:
          type: string
          format: iso-8601-date-time
          description: The date and time of the authentication.
        acsTransId:
          type: string
          description: The ACS (Access Control Server) transaction ID.
        dsTransId:
          type: string
          description: The DS (Directory Server) transaction ID.
    ThreeRiRecurringExpiry:
      type: string
      format: date
      description: |
        The date at which the recurring authorization expires.

        This property is required for `threeRiIndicator = "recurring"`, `"installment"`, or `"standing-order"`.

        For other cases, it will default to `2050-12-31`, indicating no expiry date is specified.

        Format: YYYY-MM-DD.
    ThreeRiRecurringFrequency:
      type: integer
      description: |
        Number of days between recurring authorizations.

        This property is required for `threeRiIndicator = "recurring"`, `"installment"`, or `"standing-order"`.

        For other cases, it will default to `1`, indicating that the frequency of payments is not specified.
    InstallmentTerms:
      type: integer
      description: |
        Maximum number of authorizations for an installment payment.

        Required for and only allowed when `threeRiIndicator = "installment"`. Must be greater than 1 and at most 3 digits (max value 999).
      minimum: 2
      maximum: 999
    ThreeRiRequestWithMerchantAcceptor:
      title: With Merchant Acceptor
      description: |
        Initiate a 3RI authentication using an existing merchant acceptor.
        This requires prior onboarding of the merchant acceptor in the Silverflow system.
      type: object
      additionalProperties: false
      required:
        - card
        - threeRiIndicator
        - amount
        - threeDsPriorAuthenticationInfo
        - merchantAcceptorResolver
      properties:
        merchantAcceptorResolver:
          $ref: '#/components/schemas/merchantAcceptorResolver'
        card:
          $ref: '#/components/schemas/Card'
        threeRiIndicator:
          $ref: '#/components/schemas/ThreeRiIndicator'
        amount:
          $ref: '#/components/schemas/Amount'
        cardholderInformation:
          $ref: '#/components/schemas/CardholderInformation'
        billingAddress:
          description: The billing address of the cardholder
          $ref: '#/components/schemas/AddressInput'
        transactionReference:
          $ref: '#/components/schemas/transactionReference'
        threeDsPriorAuthenticationInfo:
          $ref: '#/components/schemas/ThreeDsPriorAuthenticationInfo'
        recurringExpiry:
          $ref: '#/components/schemas/ThreeRiRecurringExpiry'
        recurringFrequency:
          $ref: '#/components/schemas/ThreeRiRecurringFrequency'
        installmentTerms:
          $ref: '#/components/schemas/InstallmentTerms'
    ThreeRiRequestWithMerchantInfo:
      title: With Merchant Info [EXPERIMENTAL]
      description: |
        Initiate a 3RI authentication by providing merchant information directly.
        This allows performing 3RI without requiring merchant acceptor onboarding.
      type: object
      additionalProperties: false
      required:
        - card
        - threeRiIndicator
        - amount
        - threeDsPriorAuthenticationInfo
        - merchantInfo
      properties:
        merchantInfo:
          $ref: '#/components/schemas/MerchantInfoRequest'
        card:
          $ref: '#/components/schemas/Card'
        threeRiIndicator:
          $ref: '#/components/schemas/ThreeRiIndicator'
        amount:
          $ref: '#/components/schemas/Amount'
        cardholderInformation:
          $ref: '#/components/schemas/CardholderInformation'
        billingAddress:
          description: The billing address of the cardholder
          $ref: '#/components/schemas/AddressInput'
        transactionReference:
          $ref: '#/components/schemas/transactionReference'
        threeDsPriorAuthenticationInfo:
          $ref: '#/components/schemas/ThreeDsPriorAuthenticationInfo'
        recurringExpiry:
          $ref: '#/components/schemas/ThreeRiRecurringExpiry'
        recurringFrequency:
          $ref: '#/components/schemas/ThreeRiRecurringFrequency'
        installmentTerms:
          $ref: '#/components/schemas/InstallmentTerms'
    ThreeRiRequest:
      oneOf:
        - $ref: '#/components/schemas/ThreeRiRequestWithMerchantAcceptor'
        - $ref: '#/components/schemas/ThreeRiRequestWithMerchantInfo'
    ThreeRiARes:
      type: object
      description: The issuer's response to the 3DS request.
      allOf:
        - type: object
          required:
            - messageVersion
            - threeDSServerTransID
            - messageType
            - dsTransID
            - acsTransID
            - transStatus
            - dsReferenceNumber
            - acsReferenceNumber
          properties:
            threeDSServerTransID:
              $ref: '#/components/schemas/threeDSServerTransID'
            messageExtension:
              $ref: '#/components/schemas/MessageExtensionList'
            messageType:
              type: string
              enum:
                - ARes
            dsTransID:
              $ref: '#/components/schemas/dsTransID'
            acsTransID:
              $ref: '#/components/schemas/acsTransID'
            transStatus:
              $ref: '#/components/schemas/ThreeRiTransStatus'
            messageVersion:
              type: string
              description: The 3DS protocol version which has been used to perform 3DS. For 3RI it's always 2.2.0.
              enum:
                - 2.2.0
            transStatusReason:
              $ref: '#/components/schemas/transStatusReason'
            cardholderInfo:
              $ref: '#/components/schemas/cardHolderInfo'
            acsChallengeMandated:
              $ref: '#/components/schemas/acsChallengeMandated'
            dsReferenceNumber:
              $ref: '#/components/schemas/dsReferenceNumber'
            acsReferenceNumber:
              $ref: '#/components/schemas/acsReferenceNumber'
            acsOperatorID:
              $ref: '#/components/schemas/acsOperatorID'
            acsDecConInd:
              $ref: '#/components/schemas/acsDecConInd'
            authenticationType:
              $ref: '#/components/schemas/authenticationType'
            eci:
              $ref: '#/components/schemas/eci'
            whiteListStatus:
              $ref: '#/components/schemas/whiteListStatus'
            whiteListStatusSource:
              $ref: '#/components/schemas/whiteListStatusSource'
            authenticationValue:
              $ref: '#/components/schemas/authenticationValue'
    ThreeRiResponse:
      type: object
      title: 3RI Authentication
      required:
        - key
        - protocolVersion
        - amount
        - network
        - deviceChannel
        - result
        - ares
        - fraudLiability
        - threeRiIndicator
        - created
        - version
      properties:
        key:
          $ref: '#/components/schemas/threedsKey'
        merchantAcceptorRef:
          $ref: '#/components/schemas/schemas-AcceptorRef'
        merchantInfo:
          $ref: '#/components/schemas/MerchantInfoResponse'
        amount:
          $ref: '#/components/schemas/ResponseAmount'
        network:
          $ref: '#/components/schemas/authenticationNetwork'
        protocolVersion:
          type: string
          description: The 3DS protocol version which has been used to perform 3DS. For 3RI it's always 2.2.0
          enum:
            - 2.2.0
        deviceChannel:
          type: string
          description: Indicates the type of the interface used to initiate the transaction.
          enum:
            - 3ri
        result:
          $ref: '#/components/schemas/Result'
        ares:
          $ref: '#/components/schemas/ThreeRiARes'
        transactionReference:
          $ref: '#/components/schemas/transactionReference'
        fraudLiability:
          $ref: '#/components/schemas/fraudLiability'
        threeRiIndicator:
          $ref: '#/components/schemas/ThreeRiIndicator'
        created:
          $ref: '#/components/schemas/schemas-created'
        version:
          $ref: '#/components/schemas/version'
    RReq:
      type: object
      description: |-
        This property is only present after the cardholder finished the challenge flow.

        The RReq message communicates the results of the authentication or verification.
        This message is received by Silverflow from the issuer (through the scheme) and contains the result of a challenge flow.

        Once Silverflow received the CReq, it will be appended to the 3DS entity it belongs to and the result can be interpreted by the requester.
      allOf:
        - $ref: '#/components/schemas/Message'
        - type: object
          required:
            - messageType
            - threeDSServerTransID
            - acsTransID
            - dsTransID
            - interactionCounter
            - messageCategory
            - transStatus
          properties:
            messageType:
              type: string
              enum:
                - RReq
            acsTransID:
              $ref: '#/components/schemas/acsTransID'
            acsRenderingType:
              $ref: '#/components/schemas/acsRenderingType'
            authenticationMethod:
              $ref: '#/components/schemas/authenticationMethod'
            authenticationType:
              $ref: '#/components/schemas/authenticationType'
            challengeCancel:
              $ref: '#/components/schemas/challengeCancel'
            dsTransID:
              $ref: '#/components/schemas/dsTransID'
            eci:
              $ref: '#/components/schemas/eci'
            interactionCounter:
              $ref: '#/components/schemas/interactionCounter'
            messageCategory:
              $ref: '#/components/schemas/messageCategory'
            transStatus:
              $ref: '#/components/schemas/transStatus'
            transStatusReason:
              $ref: '#/components/schemas/transStatusReason'
            threeDSServerTransID:
              $ref: '#/components/schemas/threeDSServerTransID'
            whiteListStatus:
              $ref: '#/components/schemas/whiteListStatus'
            whiteListStatusSource:
              $ref: '#/components/schemas/whiteListStatusSource'
            authenticationValue:
              $ref: '#/components/schemas/authenticationValue'
    ThreeDsChallengeFinished:
      type: object
      title: 3DS Challenge (Finished)
      required:
        - key
        - amount
        - network
        - protocolVersion
        - deviceChannel
        - flow
        - result
        - ares
        - rreq
        - created
        - lastModified
        - version
      properties:
        key:
          $ref: '#/components/schemas/threedsKey'
        merchantAcceptorRef:
          $ref: '#/components/schemas/schemas-AcceptorRef'
        merchantInfo:
          $ref: '#/components/schemas/MerchantInfoResponse'
        amount:
          $ref: '#/components/schemas/ResponseAmount'
        network:
          $ref: '#/components/schemas/authenticationNetwork'
        protocolVersion:
          $ref: '#/components/schemas/protocolVersion'
        deviceChannel:
          $ref: '#/components/schemas/deviceChannel'
        flow:
          $ref: '#/components/schemas/challengeFlow'
        result:
          $ref: '#/components/schemas/challengeResult'
        ares:
          $ref: '#/components/schemas/ARes'
        rreq:
          $ref: '#/components/schemas/RReq'
        transactionReference:
          $ref: '#/components/schemas/transactionReference'
        fraudLiability:
          $ref: '#/components/schemas/fraudLiability'
        type:
          type: object
          description: Transaction type information from the request
          properties:
            order:
              $ref: '#/components/schemas/order'
            intent:
              $ref: '#/components/schemas/intent'
        created:
          $ref: '#/components/schemas/schemas-created'
        lastModified:
          $ref: '#/components/schemas/schemas-lastModified'
        version:
          $ref: '#/components/schemas/version'
    ThreeDs:
      title: 3DS Entity
      oneOf:
        - $ref: '#/components/schemas/ThreeDsFrictionlessAuthenticated'
        - $ref: '#/components/schemas/ThreeDsChallenge'
        - $ref: '#/components/schemas/ThreeDsChallengeFinished'
        - $ref: '#/components/schemas/ThreeDsNoFlowNoAuth'
        - $ref: '#/components/schemas/ThreeRiResponse'
        - $ref: '#/components/schemas/ThreeDsDataOnly'
    EntityNotFoundErrorDetails:
      type: object
      required:
        - type
        - title
        - status
        - detail
        - instance
      properties:
        type:
          allOf:
            - $ref: '#/components/schemas/errorType'
            - enum:
                - /silverflow/problems/3ds/not-found
        title:
          allOf:
            - $ref: '#/components/schemas/errorTitle'
            - enum:
                - Not Found
        status:
          allOf:
            - $ref: '#/components/schemas/errorStatus'
            - enum:
                - 404
        detail:
          $ref: '#/components/schemas/errorDetail'
        instance:
          $ref: '#/components/schemas/errorInstance'
    ThreeDsCardRangesCardNumberRequest:
      type: object
      title: Card by Number
      required:
        - cardNumber
      properties:
        cardNumber:
          $ref: '#/components/schemas/pan'
        infoSource:
          $ref: '#/components/schemas/network'
    ThreeDsCardRangesProcessorTokenRequest:
      type: object
      title: Processor Token Key [EXPERIMENTAL]
      required:
        - processorTokenKey
      properties:
        processorTokenKey:
          $ref: '#/components/schemas/processorTokenKey'
    ThreeDsCardRangesRequest:
      oneOf:
        - $ref: '#/components/schemas/ThreeDsCardRangesCardNumberRequest'
        - $ref: '#/components/schemas/ThreeDsCardRangesProcessorTokenRequest'
    ThreeDsCardRangesResponse:
      type: object
      required:
        - network
        - startRange
        - endRange
        - acsStartProtocolVersion
        - acsEndProtocolVersion
        - dsStartProtocolVersion
        - dsEndProtocolVersion
      properties:
        network:
          $ref: '#/components/schemas/network'
        startRange:
          type: string
          description: Starting range of the PAN.
        endRange:
          type: string
          description: Ending range of the PAN.
        acsStartProtocolVersion:
          type: string
          description: ACS start protocol version.
        acsEndProtocolVersion:
          type: string
          description: ACS end protocol version.
        dsStartProtocolVersion:
          type: string
          description: DS start protocol version.
        dsEndProtocolVersion:
          type: string
          description: DS end protocol version.
        threeDSMethodURL:
          type: string
          description: |
            URL to call from the iFrame to gather browser's information.
        threeDSServerTransID:
          type: string
          description: |
            The `threeDSServerTransID` to use when executing the 3DS Method flow. Include this field in the 3DS authentication request if the 3DS Method has been executed.
        acsInfoIndicator:
          type: array
          items:
            type: string
            enum:
              - '01'
              - '02'
              - '03'
              - '04'
              - '05'
              - '06'
              - '07'
              - '08'
              - '09'
              - '10'
              - '11'
          description: |
            An array of ACS indicators that consist of the following values:
              - 01 = Authentication Available at ACS
              - 02 = Attempts Supported by ACS or DS
              - 03 = Decoupled Authentication Supported
              - 04 = Trust List Supported
              - 05 = Device Binding Supported
              - 06 = WebAuthn Authentication Supported
              - 07 = SPC Authentication Supported
              - 08 = Transaction Risk Analysis Exemption Supported
              - 09 = Trust List Exemption Supported
              - 10 = Low Value Exemption Supported
              - 11 = Secure Corporate Payments Exemption Supported
              - 12–79 = Reserved for EMVCo future use (values invalid until defined by EMVCo)
              - 80–99 = Reserved for DS use
    bepKey:
      description: Uniquely identifies a BEP authentication request flow.
      type: string
      pattern: ^bep-[a-zA-Z0-9]+$
      example: bep-1e1dAHhgstYTUhlphPzZ
    schemas-amountValue:
      type: integer
      format: int64
      minimum: 0
      maximum: 900000000
      description: |
        The amount in minor units. For example `$12.34` should be encoded as `1234`. Note that not all
        currencies have 2 minor units. Some have three or zero.
    components-schemas-currencyCode:
      type: string
      enum:
        - EUR
      description: |
        The three-letter ISO code of the currency.
        For Bancontact only transactions with currency code `EUR` are allowed.
      example: EUR
    schemas-Amount:
      type: object
      required:
        - value
        - currency
      additionalProperties: false
      description: |
        An amount encoded as an object with a `value` in minor units and a `currency` code.
      properties:
        value:
          $ref: '#/components/schemas/schemas-amountValue'
        currency:
          $ref: '#/components/schemas/components-schemas-currencyCode'
    timestamp:
      type: string
      format: iso-8601-date-time
    components-schemas-created:
      allOf:
        - description: The date and time this object was created
        - readOnly: true
        - $ref: '#/components/schemas/timestamp'
    schemas-version:
      type: integer
      description: The version of this object
      format: int64
      example: 1
      readOnly: true
    BepInitiatedResponse:
      type: object
      description: BEP data which does not include sensitive information.
      required:
        - authenticationStatus
        - key
        - amount
        - authenticationMethod
        - version
        - created
      properties:
        authenticationStatus:
          type: string
          enum:
            - initiated
        key:
          $ref: '#/components/schemas/bepKey'
        amount:
          $ref: '#/components/schemas/schemas-Amount'
        authenticationMethod:
          type: string
          enum:
            - bancontactIntent
            - qrCode
        created:
          allOf:
            - $ref: '#/components/schemas/components-schemas-created'
            - description: |
                The date and time this BEP authentication was created.
        version:
          $ref: '#/components/schemas/schemas-version'
    schemas-expiryMonth:
      type: integer
      description: |
        The month the card expires. January is 1.
      minimum: 1
      maximum: 12
    schemas-expiryYear:
      type: integer
      description: |
        The year the card expires including the century.
      minimum: 2020
      maximum: 2050
    schemas-pan:
      type: string
      description: Full digits of a card
      pattern: ^\d{13,19}$
      format: password
      example: '1234123412341234'
    AuthenticationMethod:
      type: string
      enum:
        - bancontactIntent
        - qrCode
    BepSuccessResponse:
      type: object
      description: BEP data which includes the sensitive authentication information.
      required:
        - authenticationStatus
        - key
        - amount
        - card
        - bepaf
        - authenticationMethod
        - version
        - created
      properties:
        authenticationStatus:
          type: string
          enum:
            - authenticated
        key:
          $ref: '#/components/schemas/bepKey'
        amount:
          $ref: '#/components/schemas/schemas-Amount'
        card:
          type: object
          description: Necessary card information to be used in Bancontact authorizations.
          required:
            - expiryMonth
            - expiryYear
            - number
          properties:
            expiryMonth:
              $ref: '#/components/schemas/schemas-expiryMonth'
            expiryYear:
              $ref: '#/components/schemas/schemas-expiryYear'
            number:
              $ref: '#/components/schemas/schemas-pan'
        bepaf:
          type: string
          description: |
            BEP authentication factor in base64; the value that is generated upon a successful authentication. 

            The entire bepaf is returned for 45 days after the BEP authentication was created. After that only the part of the bepaf that is required for WIP transactions (the last 5 bytes, base64 encoded) is returned. In both cases the value is in this same field.
          format: byte
          minLength: 1
          maxLength: 28
        authenticationMethod:
          $ref: '#/components/schemas/AuthenticationMethod'
        created:
          allOf:
            - $ref: '#/components/schemas/components-schemas-created'
            - description: |
                The date and time this BEP authentication was created.
        version:
          $ref: '#/components/schemas/schemas-version'
    BepFailResponse:
      type: object
      description: BEP data which does not include sensitive information.
      required:
        - authenticationStatus
        - key
        - amount
        - authenticationMethod
        - version
        - created
      properties:
        authenticationStatus:
          type: string
          enum:
            - non-authenticated
        key:
          $ref: '#/components/schemas/bepKey'
        amount:
          $ref: '#/components/schemas/schemas-Amount'
        authenticationMethod:
          type: string
          enum:
            - bancontactIntent
            - qrCode
        created:
          allOf:
            - $ref: '#/components/schemas/components-schemas-created'
            - description: |
                The date and time this BEP authentication was created.
        version:
          $ref: '#/components/schemas/schemas-version'
    BepResponse:
      oneOf:
        - $ref: '#/components/schemas/BepInitiatedResponse'
        - $ref: '#/components/schemas/BepSuccessResponse'
        - $ref: '#/components/schemas/BepFailResponse'
    schemas-ValidationError:
      type: object
      required:
        - path
        - message
      properties:
        path:
          type: string
          description: The path to the error location in the request params or body.
        errorCode:
          type: string
          description: The error code identifying the error type.
        message:
          type: string
          description: The error message.
    components-schemas-InvalidInputErrorDetails:
      type: object
      required:
        - type
        - title
        - status
        - detail
        - instance
        - validationErrors
      properties:
        type:
          allOf:
            - $ref: '#/components/schemas/errorType'
            - enum:
                - /silverflow/problems/invalid-input
        title:
          allOf:
            - $ref: '#/components/schemas/errorTitle'
            - enum:
                - Invalid Input
        status:
          allOf:
            - $ref: '#/components/schemas/errorStatus'
            - enum:
                - 400
        detail:
          $ref: '#/components/schemas/errorDetail'
        instance:
          $ref: '#/components/schemas/errorInstance'
        validationErrors:
          type: array
          items:
            $ref: '#/components/schemas/schemas-ValidationError'
          description: A list of validation errors.
    schemas-AuthenticationRequiredErrorDetails:
      type: object
      required:
        - type
        - title
        - status
        - detail
        - instance
      properties:
        type:
          allOf:
            - $ref: '#/components/schemas/errorType'
            - enum:
                - /silverflow/problems/authentication-required
        title:
          allOf:
            - $ref: '#/components/schemas/errorTitle'
            - enum:
                - Authentication Required
        status:
          allOf:
            - $ref: '#/components/schemas/errorStatus'
            - enum:
                - 401
        detail:
          $ref: '#/components/schemas/errorDetail'
        instance:
          $ref: '#/components/schemas/errorInstance'
    ForbiddenErrorDetails:
      type: object
      required:
        - type
        - title
        - status
        - detail
        - instance
      properties:
        type:
          allOf:
            - $ref: '#/components/schemas/errorType'
            - enum:
                - /silverflow/problems/forbidden
        title:
          allOf:
            - $ref: '#/components/schemas/errorTitle'
            - enum:
                - Forbidden
        status:
          allOf:
            - $ref: '#/components/schemas/errorStatus'
            - enum:
                - 403
        detail:
          $ref: '#/components/schemas/errorDetail'
        instance:
          $ref: '#/components/schemas/errorInstance'
    schemas-EntityNotFoundErrorDetails:
      type: object
      required:
        - type
        - title
        - status
        - detail
        - instance
      properties:
        type:
          allOf:
            - $ref: '#/components/schemas/errorType'
            - enum:
                - /silverflow/problems/entity-not-found
        title:
          allOf:
            - $ref: '#/components/schemas/errorTitle'
            - enum:
                - Not Found
        status:
          allOf:
            - $ref: '#/components/schemas/errorStatus'
            - enum:
                - 404
        detail:
          $ref: '#/components/schemas/errorDetail'
        instance:
          $ref: '#/components/schemas/errorInstance'
    schemas-acceptorKeyRef:
      description: Uniquely identifies a merchant acceptor.
      type: string
      pattern: ^mac-[a-zA-Z0-9]+$
      minLength: 5
      maxLength: 120
      example: mac-1eOdAHhgstYTUhlphPFf
    ResolverByAcceptorKey:
      type: object
      required:
        - merchantAcceptorKey
      description: |
        Used to select a merchant acceptor by key.
      properties:
        merchantAcceptorKey:
          $ref: '#/components/schemas/schemas-acceptorKeyRef'
    schemas-merchantKey:
      description: Uniquely identifies a merchant.
      type: string
      pattern: ^mct-[a-zA-Z0-9]+$
      minLength: 5
      maxLength: 120
      example: mct-1234abcdef123
    schemas-acceptorRoute:
      type: string
      pattern: ^(^$|^[a-zA-Z0-9-_:;.,]+$)
      minLength: 0
      maxLength: 255
      description: |
        Route key used to uniquely reference an acceptor when used in combination
        with its card network and merchant key.
    ResolverByMerchant:
      type: object
      required:
        - merchantKey
      description: |
        Used to select a merchant acceptor by merchant key and an optional route.
      properties:
        merchantKey:
          $ref: '#/components/schemas/schemas-merchantKey'
        route:
          $ref: '#/components/schemas/schemas-acceptorRoute'
    AcceptorResolver:
      type: object
      description: |
        Resolver used to pick what merchant acceptor will be used to create the charge.
        It can accept either a combination of merchantKey and an optional route, or
        a merchant acceptor key. If the optional property for route is not provided
        the default one generated when creating an acceptor will be used.
      oneOf:
        - $ref: '#/components/schemas/ResolverByAcceptorKey'
        - $ref: '#/components/schemas/ResolverByMerchant'
    components-schemas-url:
      type: string
      description: A valid URL
      pattern: ^http(s)?:\/\/[a-z0-9-_]+(\.[a-z0-9-_]+)+(/.*)?$
      example: https://example.com
      maxLength: 255
    webhook:
      allOf:
        - description: A webhook URL to send [notifications](#operation/bepWebhook) to with updates regarding the status of the BEP authentication.
        - $ref: '#/components/schemas/components-schemas-url'
    completionUrl:
      allOf:
        - description: A URL where the cardholder will be redirected to after completing the authentication flow in the Bancontact app.
        - $ref: '#/components/schemas/components-schemas-url'
    authenticationDescription:
      type: string
      maxLength: 300
      pattern: ^[\w \-+=.,:;!?$@\/#|*()]+$
      description: An optional description to provide additional information to the cardholder in the payment approval screen of the Bancontact app.
      example: Payment description
    InitiateBEPRequest:
      type: object
      required:
        - merchantAcceptorResolver
        - amount
        - webhook
      description: Request to create new a BEP authentication intent
      properties:
        merchantAcceptorResolver:
          $ref: '#/components/schemas/AcceptorResolver'
        webhook:
          $ref: '#/components/schemas/webhook'
        amount:
          $ref: '#/components/schemas/schemas-Amount'
        completionUrl:
          $ref: '#/components/schemas/completionUrl'
        description:
          $ref: '#/components/schemas/authenticationDescription'
    InitiateBEPResponse:
      type: object
      required:
        - bepKey
        - qrCode
        - bancontactIntent
        - expires
        - version
        - created
      description: Response to be displayed to the payer to initiate BEP Authentication
      properties:
        bepKey:
          allOf:
            - description: Entity key for the BEP authentication candidate. The resource will be available once the authentication is completed.
            - $ref: '#/components/schemas/bepKey'
        qrCode:
          type: string
          description: |
            A URI which has to be encoded as a QR code to be scanned by the cardholder with the Bancontact app. 
            The scanning of the QR code initiates the authentication process with the issuer. 
            This is used when the cardholder shopping on a device which is not the same as the device which has their Bancontact app.
          format: uri
          example: BEP://1BEP.SILVERFLOW.CO/EXAMPLE$GRCEG45D3UDE6T55NGA6X2PP
        bancontactIntent:
          type: string
          description: |
            An app deep link which can be called in order to automatically open the Bancontact app on the cardholder's device. 
            This is used when the cardholder is using the same device for shopping and payment.
          format: uri
          example: BEPGenApp://DoTx?TransId=1BEP.SILVERFLOW.CO/EXAMPLE$GRCEG45D3UDE6T55NGA6X2PP
        expires:
          type: string
          description: |
            The date and time this BEP authentication intent expires.
          format: iso-8601-date-time
        created:
          type: string
          description: |
            The date and time this BEP authentication intent was created.
          format: iso-8601-date-time
        version:
          $ref: '#/components/schemas/schemas-version'
    schemas-ReferencedEntityNotFoundErrorDetails:
      type: object
      required:
        - type
        - title
        - status
        - detail
        - instance
      properties:
        type:
          allOf:
            - $ref: '#/components/schemas/errorType'
            - enum:
                - /silverflow/problems/referenced-entity-not-found
        title:
          allOf:
            - $ref: '#/components/schemas/errorTitle'
            - enum:
                - Referenced Entity Not Found
        status:
          allOf:
            - $ref: '#/components/schemas/errorStatus'
            - enum:
                - 409
        detail:
          $ref: '#/components/schemas/errorDetail'
        instance:
          $ref: '#/components/schemas/errorInstance'
    IncompatibleCardNetworkErrorDetails:
      type: object
      required:
        - type
        - title
        - status
        - detail
        - instance
      properties:
        type:
          allOf:
            - $ref: '#/components/schemas/errorType'
            - enum:
                - /silverflow/problems/bin/unexpected-network
        title:
          allOf:
            - $ref: '#/components/schemas/errorTitle'
            - enum:
                - Incompatible Card Network
        status:
          allOf:
            - $ref: '#/components/schemas/errorStatus'
            - enum:
                - 409
        detail:
          $ref: '#/components/schemas/errorDetail'
        instance:
          $ref: '#/components/schemas/errorInstance'
    BSPAuthorizationResultCode:
      type: string
      pattern: ^[0-9]{3}$
      description: Bancontact Authorization action code
      example: '000'
    AuthorizationResult:
      type: object
      required:
        - authorizationResultCode
        - authorizationDateTime
      properties:
        authorizationResultCode:
          $ref: '#/components/schemas/BSPAuthorizationResultCode'
        authorizationDateTime:
          type: string
          description: The date and time in ISO format.
          format: iso-8601-date-time
          example: '2021-07-02T06:07:00Z'
    UnauthenticatedBepEntityErrorDetails:
      type: object
      required:
        - type
        - title
        - status
        - detail
        - instance
      properties:
        type:
          allOf:
            - $ref: '#/components/schemas/errorType'
            - enum:
                - /silverflow/problems/bep/unauthenticated
        title:
          allOf:
            - $ref: '#/components/schemas/errorTitle'
            - enum:
                - Unauthenticated BEP Entity
        status:
          allOf:
            - $ref: '#/components/schemas/errorStatus'
            - enum:
                - 409
        detail:
          $ref: '#/components/schemas/errorDetail'
        instance:
          $ref: '#/components/schemas/errorInstance'
    AuthorizationResultAlreadySubmittedErrorDetails:
      type: object
      required:
        - type
        - title
        - status
        - detail
        - instance
      properties:
        type:
          allOf:
            - $ref: '#/components/schemas/errorType'
            - enum:
                - /silverflow/problems/bep/authorization-result-already-submitted
        title:
          allOf:
            - $ref: '#/components/schemas/errorTitle'
            - enum:
                - Authorization Result Already Submitted
        status:
          allOf:
            - $ref: '#/components/schemas/errorStatus'
            - enum:
                - 409
        detail:
          $ref: '#/components/schemas/errorDetail'
        instance:
          $ref: '#/components/schemas/errorInstance'
    chargeKey:
      description: Uniquely identifies a charge.
      type: string
      pattern: ^chg-[a-zA-Z0-9]+$
      minLength: 5
      maxLength: 120
      example: chg-1e1dAHhgstYTUhlphPzZ
    refundedChargeKey:
      description: |
        The charge key of the refunded charge.

        **This field is only available for charges created on the [Refund endpoint](#operation/refund) with `createRefundCharge` set to `true`.**
      type: string
      pattern: ^chg-[a-zA-Z0-9]+$
      minLength: 5
      maxLength: 120
      example: chg-1e1dAHhgstYTUhlphPzZ
    components-schemas-acceptorKey:
      description: Uniquely identifies a merchant acceptor.
      type: string
      pattern: ^mac-[a-zA-Z0-9]+$
      minLength: 5
      maxLength: 120
      example: mac-1eOdAHhgstYTUhlphPFf
    components-schemas-AcceptorRef:
      type: object
      description: Reference key and status of the acceptor
      required:
        - key
        - version
      properties:
        key:
          $ref: '#/components/schemas/components-schemas-acceptorKey'
        version:
          $ref: '#/components/schemas/schemas-version'
    schemas-processorTokenKey:
      type: string
      description: The key to a card tokenized in the [Processor Tokenization](#tag/Processor-Tokenization).
      pattern: ^ptk-[a-zA-Z0-9]+$
      minLength: 5
      maxLength: 120
    OutputCard:
      type: object
      required:
        - maskedNumber
      additionalProperties: false
      description: |
        Card data
      properties:
        maskedNumber:
          type: string
          description: |
            The card number used to create this charge, masked according to PCI standards. For card numbers with 16 or more digits, the first 8 and the last 4 digits are visible. For card numbers with 13-15 digits, the first 6 and the last 4 digits are visible. For cards numbers with less than 13 digits, the first 6 and last 2 digits are visible.
        processorTokenKey:
          $ref: '#/components/schemas/schemas-processorTokenKey'
    schemas-eci:
      type: string
      description: Zero-padded e-commerce indicator.
      minLength: 2
      maxLength: 2
      pattern: ^\d+$
      example: '05'
    StoredTokenDetailsNetwork:
      type: object
      required:
        - type
      properties:
        type:
          type: string
          description: Details about a token from one of the card networks
          enum:
            - network
        eci:
          $ref: '#/components/schemas/schemas-eci'
    StoredChargeTokenDetailsDigitalWallet:
      title: StoredTokenDetailsDigitalWallet
      type: object
      required:
        - type
      properties:
        type:
          type: string
          description: |
            Details about a digital wallet token.

            `paze` is only supported for <span class="tag network-tag visa-tag">VISA</span><span class="tag network-tag mastercard-tag">MASTERCARD</span> and is <a class="experimental-tag-link" href="https://docs.silverflow.com/guides/api-lifecycle#tag/EXPERIMENTAL-Tag"><span class="tag experimental-tag">EXPERIMENTAL</span></a>.
          enum:
            - apple-pay
            - google-pay
            - paze
        eci:
          allOf:
            - description: |
                Zero-padded e-commerce indicator.

                Only supported for <span class="tag network-tag visa-tag">VISA</span> <span class="tag network-tag mastercard-tag">MASTERCARD</span> <span class="tag network-tag amex-tag">AMEX</span>.
            - $ref: '#/components/schemas/schemas-eci'
    StoredChargeTokenDetails:
      description: |
        Further details about the token that was used.
        Required if `type.cardEntry` is `token` or `token-on-file`.
      oneOf:
        - $ref: '#/components/schemas/StoredTokenDetailsNetwork'
        - $ref: '#/components/schemas/StoredChargeTokenDetailsDigitalWallet'
    components-schemas-amountValue:
      type: integer
      format: int64
      minimum: 0
      maximum: 999999999999
      description: |
        The amount in minor units. For example `$12.34` should be encoded as `1234`. Note that not all
        currencies have 2 minor units. Some have three or zero.
      example: 2599
    openapi_components-schemas-currencyCode:
      type: string
      enum:
        - AED
        - AFN
        - ALL
        - AMD
        - ANG
        - AOA
        - ARS
        - AUD
        - AWG
        - AZN
        - BAM
        - BBD
        - BDT
        - BGN
        - BHD
        - BIF
        - BMD
        - BND
        - BOB
        - BRL
        - BSD
        - BTN
        - BWP
        - BYN
        - BZD
        - CAD
        - CDF
        - CHF
        - CLP
        - CNY
        - COP
        - CRC
        - CUC
        - CUP
        - CVE
        - CZK
        - DJF
        - DKK
        - DOP
        - DZD
        - EGP
        - ERN
        - ETB
        - EUR
        - FJD
        - FKP
        - GBP
        - GEL
        - GHS
        - GIP
        - GMD
        - GNF
        - GTQ
        - GYD
        - HKD
        - HNL
        - HTG
        - HUF
        - IDR
        - ILS
        - INR
        - IQD
        - IRR
        - ISK
        - JMD
        - JOD
        - JPY
        - KES
        - KGS
        - KHR
        - KMF
        - KPW
        - KRW
        - KWD
        - KYD
        - KZT
        - LAK
        - LBP
        - LKR
        - LRD
        - LSL
        - LYD
        - MAD
        - MDL
        - MGA
        - MKD
        - MMK
        - MNT
        - MOP
        - MRU
        - MUR
        - MVR
        - MWK
        - MXN
        - MYR
        - MZN
        - NAD
        - NGN
        - NIO
        - NOK
        - NPR
        - NZD
        - OMR
        - PAB
        - PEN
        - PGK
        - PHP
        - PKR
        - PLN
        - PYG
        - QAR
        - RON
        - RSD
        - RUB
        - RWF
        - SAR
        - SBD
        - SCR
        - SDG
        - SEK
        - SGD
        - SHP
        - SLL
        - SOS
        - SRD
        - SSP
        - STN
        - SVC
        - SYP
        - SZL
        - THB
        - TJS
        - TMT
        - TND
        - TOP
        - TRY
        - TTD
        - TWD
        - TZS
        - UAH
        - UGX
        - USD
        - UYU
        - UZS
        - VES
        - VND
        - VUV
        - WST
        - XAF
        - XCD
        - XCG
        - XOF
        - XPF
        - YER
        - ZAR
        - ZMW
        - ZWL
      description: An alphabetic ISO-4217 currency code.
      externalDocs:
        description: Find more info here.
        url: https://www.iso.org/iso-4217-currency-codes.html
      example: EUR
    components-schemas-Amount:
      type: object
      required:
        - value
        - currency
      additionalProperties: false
      description: |
        The amount encoded as an object with a `value` in minor units and a `currency` code.
      properties:
        value:
          $ref: '#/components/schemas/components-schemas-amountValue'
        currency:
          $ref: '#/components/schemas/openapi_components-schemas-currencyCode'
    common_currencyCode:
      type: string
      enum:
        - AED
        - AFN
        - ALL
        - AMD
        - AOA
        - ARS
        - AUD
        - AWG
        - AZN
        - BAM
        - BBD
        - BDT
        - BHD
        - BIF
        - BMD
        - BND
        - BOB
        - BRL
        - BSD
        - BTN
        - BWP
        - BYN
        - BZD
        - CAD
        - CDF
        - CHF
        - CLP
        - CNY
        - COP
        - CRC
        - CUC
        - CUP
        - CVE
        - CZK
        - DJF
        - DKK
        - DOP
        - DZD
        - EGP
        - ERN
        - ETB
        - EUR
        - FJD
        - FKP
        - GBP
        - GEL
        - GHS
        - GIP
        - GMD
        - GNF
        - GTQ
        - GYD
        - HKD
        - HNL
        - HTG
        - HUF
        - IDR
        - ILS
        - INR
        - IQD
        - IRR
        - ISK
        - JMD
        - JOD
        - JPY
        - KES
        - KGS
        - KHR
        - KMF
        - KPW
        - KRW
        - KWD
        - KYD
        - KZT
        - LAK
        - LBP
        - LKR
        - LRD
        - LSL
        - LYD
        - MAD
        - MDL
        - MGA
        - MKD
        - MMK
        - MNT
        - MOP
        - MRU
        - MUR
        - MVR
        - MWK
        - MXN
        - MYR
        - MZN
        - NAD
        - NGN
        - NIO
        - NOK
        - NPR
        - NZD
        - OMR
        - PAB
        - PEN
        - PGK
        - PHP
        - PKR
        - PLN
        - PYG
        - QAR
        - RON
        - RSD
        - RUB
        - RWF
        - SAR
        - SBD
        - SCR
        - SDG
        - SEK
        - SGD
        - SHP
        - SOS
        - SRD
        - SSP
        - STN
        - SYP
        - SZL
        - THB
        - TJS
        - TMT
        - TND
        - TOP
        - TRY
        - TTD
        - TWD
        - TZS
        - UAH
        - UGX
        - USD
        - UYU
        - UZS
        - VES
        - VND
        - VUV
        - WST
        - XAF
        - XCD
        - XCG
        - XOF
        - XPF
        - YER
        - ZAR
        - ZMW
        - ZWL
      description: An alphabetic ISO-4217 currency code.
      externalDocs:
        description: Find more info here.
        url: https://www.iso.org/iso-4217-currency-codes.html
      example: EUR
    common_Amount:
      type: object
      required:
        - value
        - currency
      additionalProperties: false
      description: |
        The amount encoded as an object with a `value` in minor units and a `currency` code.
      properties:
        value:
          $ref: '#/components/schemas/components-schemas-amountValue'
        currency:
          $ref: '#/components/schemas/common_currencyCode'
    CardholderBillingAmount:
      allOf:
        - $ref: '#/components/schemas/common_Amount'
        - type: object
          required:
            - conversionRate
          properties:
            conversionRate:
              type: object
              required:
                - cardholderBillingConversionRate
                - decimalIndicator
              properties:
                cardholderBillingConversionRate:
                  type: number
                decimalIndicator:
                  type: number
    responseCardEntry:
      description: |
        The method used to capture the card details.
      type: string
      enum:
        - e-commerce
        - manual
        - card-on-file
        - terminal
        - token
        - token-on-file
      example: e-commerce
    sequence:
      type: string
      title: Sequence
      description: |
        Setting this to `initial` flags the charge as the initial charge in a sequence of payments.
      enum:
        - initial
    GetResponseChargeType:
      description: |
        Describes the kind of charge the merchant wants to submit.
      type: object
      required:
        - intent
        - cardEntry
        - order
      properties:
        intent:
          description: |
            The intention of the cardholder.
          type: string
          enum:
            - purchase
            - reservation
            - account-status
            - refund
        cardEntry:
          $ref: '#/components/schemas/responseCardEntry'
        order:
          description: |
            The method used to place the order.
          type: string
          enum:
            - checkout
            - unspecified
            - mail
            - phone
            - one-click
            - recurring
            - ucof
            - installment
            - standing-order
            - counter
        sequence:
          oneOf:
            - $ref: '#/components/schemas/sequence'
            - type: string
              title: Legacy Sequence
              description: |
                For older charges created on the [`POST /charges`](#operation/createCharge) endpoint, this field can have a value of `subsequent`.
              enum:
                - subsequent
    clearingMode:
      type: string
      enum:
        - auto
        - manual
      description: |
        The clearing method for the charge.
        - `auto`: The charge is cleared automatically as soon as possible. To delay clearing, provide a `clearAfter` timestamp.
        - `manual`: The charge must be manually cleared later.
      default: auto
    AuthenticationStatus:
      type: string
      description: Strong Customer Authentication (SCA) status of the charge
      enum:
        - none
        - authenticated
        - non-authenticated
      example: authenticated
    ChargeAuthorizationStatus:
      type: string
      description: Authorization status of the charge
      enum:
        - none
        - approved
        - declined
        - reversed
        - approved-partial
      example: approved
    ChargeClearingStatus:
      type: string
      description: Clearing status of the charge
      enum:
        - none
        - manual
        - pending
        - completed
        - cancelled
        - abandoned
      example: pending
    ChargeStatus:
      type: object
      required:
        - authentication
        - authorization
        - clearing
      description: |
        The status property provides a high-level representation of the lifecycle of a charge.
        For a complete history, the actions should be used.
      properties:
        authentication:
          $ref: '#/components/schemas/AuthenticationStatus'
        authorization:
          $ref: '#/components/schemas/ChargeAuthorizationStatus'
        clearing:
          $ref: '#/components/schemas/ChargeClearingStatus'
    method:
      description: |
        Indicates the method that was used to comply to SCA.
      type: string
      enum:
        - 3ds1
        - 3ds2
        - device
    threeDsComplianceReason:
      description: |
        Indicates the reason for the SCA compliance.
      type: string
      enum:
        - mandated
        - none
        - ucof
        - recurring
        - installment
        - incremental
        - delayed-charges
        - no-show
        - reauthorization
        - resubmission
        - whitelist
        - auto
        - mit
        - tra
        - low-value
        - delegation
        - scp
    ThreeDsAuthenticationResultResponse:
      type: object
      readOnly: true
      description: Object containing the information of a 3DS transaction.
      properties:
        version:
          description: |
            The 3DS protocol version which has been used to perform 3DS.
            This information is only available when it has been provided in the request.
          type: string
          enum:
            - 2.2.0
        directoryServerTransId:
          type: string
          description: Transaction ID retrieved from the Directory Server
          example: 5340af8a-5505-4bf6-abcd-123412341234
    ThreeDsAuthentication:
      type: object
      required:
        - compliance
        - complianceReason
        - method
        - result
      description: |
        Object container for strong customer authentication.
      properties:
        method:
          $ref: '#/components/schemas/method'
        compliance:
          type: string
          enum:
            - mandated
            - mit
            - exemption
        complianceReason:
          $ref: '#/components/schemas/threeDsComplianceReason'
        result:
          $ref: '#/components/schemas/ThreeDsAuthenticationResultResponse'
    methodBEP:
      description: |
        Indicates the method that was used to comply to SCA.
      type: string
      enum:
        - bep
    complianceBEP:
      description: |
        Indicates SCA compliance of the charges
      type: string
      enum:
        - mandated
    complianceReasonBEP:
      description: |
        Indicates the reason for the SCA compliance.
      type: string
      enum:
        - mandated
    BEPAuthenticationResult:
      type: object
      required:
        - trm
      readOnly: true
      description: |
        Object containing the information of a BEP transaction.
      properties:
        trm:
          description: The method of initiating the BEP authentication. Stands for Transaction Routing Means.
          type: string
          enum:
            - '50'
            - '51'
          example: '50'
    ScaBEP:
      type: object
      required:
        - compliance
        - complianceReason
        - method
        - result
      description: |
        Object container for strong customer authentication.
      properties:
        method:
          $ref: '#/components/schemas/methodBEP'
        compliance:
          $ref: '#/components/schemas/complianceBEP'
        complianceReason:
          $ref: '#/components/schemas/complianceReasonBEP'
        result:
          $ref: '#/components/schemas/BEPAuthenticationResult'
    AuthenticationOutOfScope:
      type: object
      required:
        - compliance
        - complianceReason
        - method
      properties:
        method:
          type: string
          enum:
            - none
        compliance:
          type: string
          enum:
            - out-of-scope
        complianceReason:
          type: string
          enum:
            - none
            - moto
            - one-leg
            - anonymous-prepaid
            - recurring
    AuthenticationExempt:
      type: object
      required:
        - compliance
        - complianceReason
        - method
      properties:
        method:
          type: string
          enum:
            - none
        compliance:
          type: string
          enum:
            - exemption
        complianceReason:
          type: string
          enum:
            - whitelist
            - auto
            - mit
            - tra
            - recurring
            - low-value
            - delegation
            - scp
            - wip
    ScaMit:
      type: object
      required:
        - compliance
        - complianceReason
        - method
      properties:
        method:
          type: string
          enum:
            - none
        compliance:
          type: string
          enum:
            - mit
        complianceReason:
          type: string
          enum:
            - installment
            - ucof
    sca:
      oneOf:
        - $ref: '#/components/schemas/ThreeDsAuthentication'
        - $ref: '#/components/schemas/ScaBEP'
        - $ref: '#/components/schemas/AuthenticationOutOfScope'
        - $ref: '#/components/schemas/AuthenticationExempt'
        - $ref: '#/components/schemas/ScaMit'
    cvcResult:
      description: The result of cvc verification
      type: string
      enum:
        - none
        - match
        - no-match
        - not-processed
    avsResult:
      description: The result of the AVS verification
      type: string
      enum:
        - none
        - match
        - partial-match
        - no-match
        - not-processed
    ChargeAuthentication:
      type: object
      required:
        - sca
        - cvc
        - avs
      description: |
        Object container for authentication. If present, contains Strong Customer Authentication (SCA) information, but also indicates whether CVC and AVS was used.
      properties:
        sca:
          $ref: '#/components/schemas/sca'
        cvc:
          $ref: '#/components/schemas/cvcResult'
        avs:
          $ref: '#/components/schemas/avsResult'
    TransactionType:
      type: string
      enum:
        - cryptocurrency
        - high-risk-securities
        - central-bank-digital-currency
        - stablecoin
        - blockchain-native-coin
        - non-fungible-token
      description: |
        In case of a special transaction type, this allows you to specify which one.

        `type.intent` needs to be `purchase`.

        - `cryptocurrency`: A transaction involving the purchasing of cryptocurrencies. Use this for Visa only if specific type of digital asset cannot be determined.
        - `high-risk-securities`: A transaction involving the purchasing of high-risk securities. Only supported for Mastercard.
        - `central-bank-digital-currency`: A transaction involving purchase of a Central Bank Digital Currency (CBDC). Only supported for Visa.
        - `stablecoin`: A transaction involving purchase of stablecoins.
        - `blockchain-native-coin`: A transaction involving purchase of a non fiat backed blockchain coin. Only supported for Visa.
        - `non-fungible-token`: A transaction involving purchase of a Non Fungible Token (NFT). Only supported for Visa.

        Not supported for Diners.
    isoFieldResponseCode:
      type: string
      description: Contents of field 39
      example: '00'
    isoFieldResponseCodeDescription:
      type: string
      description: The description of the `responseCode`
      example: Approved
    commonIsoFields:
      type: object
      required:
        - responseCode
        - responseCodeDescription
      properties:
        responseCode:
          $ref: '#/components/schemas/isoFieldResponseCode'
        responseCodeDescription:
          $ref: '#/components/schemas/isoFieldResponseCodeDescription'
    isoFieldAuthorizationCode:
      type: string
      description: Contents of field 38
      example: 4A4316
    isoFieldSystemTraceAuditNumber:
      type: string
      description: Contents of field 11
      example: '123456'
    isoFieldRetrievalReferenceNumber:
      type: string
      description: Contents of field 37
      example: '131608123456'
    isoFieldEciAmex:
      type: string
      description: E-commerce Indicator
    amexSpecificFields:
      type: object
      required:
        - acquirerReferenceData
      description: American Express-specific ISO8583 raw values
      properties:
        acquirerReferenceData:
          type: string
          description: Contents of field 31.
        cvcResult:
          type: string
          description: Contents of field 44, first byte.
          example: 'Y'
        avsResult:
          type: string
          description: Contents of field 44, second byte.
          example: 'Y'
    authorizationIsoFieldsAmericanExpress:
      allOf:
        - $ref: '#/components/schemas/commonIsoFields'
        - type: object
          required:
            - networkCode
            - systemTraceAuditNumber
            - retrievalReferenceNumber
            - eci
            - networkSpecificFields
          properties:
            authorizationCode:
              $ref: '#/components/schemas/isoFieldAuthorizationCode'
            networkCode:
              type: string
              description: Not applicable for American Express transactions.
              enum:
                - not-applicable
            systemTraceAuditNumber:
              $ref: '#/components/schemas/isoFieldSystemTraceAuditNumber'
            retrievalReferenceNumber:
              $ref: '#/components/schemas/isoFieldRetrievalReferenceNumber'
            eci:
              $ref: '#/components/schemas/isoFieldEciAmex'
            networkSpecificFields:
              $ref: '#/components/schemas/amexSpecificFields'
    bancontactSpecificFields:
      type: object
      description: Bancontact specific ISO8583 raw values
      properties:
        iban:
          type: string
          description: The International Bank Account Number (IBAN) returned from the bancontact authorization response.
    authorizationIsoFieldsBancontact:
      type: object
      required:
        - responseCode
        - responseCodeDescription
        - networkCode
        - systemTraceAuditNumber
        - retrievalReferenceNumber
        - eci
        - networkSpecificFields
      description: Object containing the raw values from the ISO8583 response message received from the network.
      properties:
        responseCode:
          $ref: '#/components/schemas/isoFieldResponseCode'
        responseCodeDescription:
          $ref: '#/components/schemas/isoFieldResponseCodeDescription'
        authorizationCode:
          $ref: '#/components/schemas/isoFieldAuthorizationCode'
        networkCode:
          type: string
          enum:
            - none
        systemTraceAuditNumber:
          $ref: '#/components/schemas/isoFieldSystemTraceAuditNumber'
        retrievalReferenceNumber:
          $ref: '#/components/schemas/isoFieldRetrievalReferenceNumber'
        eci:
          type: string
          enum:
            - none
        networkSpecificFields:
          $ref: '#/components/schemas/bancontactSpecificFields'
    isoFieldEciDiners:
      type: string
      description: E-commerce Indicator
    dinersSpecificFields:
      type: object
      description: Diners specific ISO8583 raw values
      required:
        - network
      properties:
        network:
          type: string
          description: Card network providing these fields
          enum:
            - diners
        cvvIndicator:
          type: string
          description: Contents field 44, subfield 2
        networkReferenceId:
          type: string
          description: Contents field 123
    authorizationIsoFieldsDiners:
      allOf:
        - $ref: '#/components/schemas/commonIsoFields'
        - type: object
          required:
            - networkCode
            - systemTraceAuditNumber
            - retrievalReferenceNumber
            - eci
            - networkSpecificFields
          properties:
            authorizationCode:
              $ref: '#/components/schemas/isoFieldAuthorizationCode'
            networkCode:
              type: string
              example: not-applicable
            systemTraceAuditNumber:
              $ref: '#/components/schemas/isoFieldSystemTraceAuditNumber'
            retrievalReferenceNumber:
              $ref: '#/components/schemas/isoFieldRetrievalReferenceNumber'
            eci:
              $ref: '#/components/schemas/isoFieldEciDiners'
            networkSpecificFields:
              $ref: '#/components/schemas/dinersSpecificFields'
    isoFieldNetworkCode:
      type: string
      description: Contents of field 63, subfield 1
      example: '0000'
    isoFieldEciDiscover:
      type: string
      description: E-commerce Indicator
    discoverSpecificFields:
      type: object
      description: Discover specific ISO8583 raw values
      required:
        - network
      properties:
        network:
          type: string
          description: Card network providing these fields
          enum:
            - discover
        avsResponseCode:
          type: string
          description: Contents field 44, usage 2, position 1.
        cidResultCode:
          type: string
          description: Contents field 44, usage 2, position 2.
        networkReferenceId:
          type: string
          description: Contents field 48, position 11-25.
    authorizationIsoFieldsDiscover:
      allOf:
        - $ref: '#/components/schemas/commonIsoFields'
        - type: object
          required:
            - networkCode
            - systemTraceAuditNumber
            - retrievalReferenceNumber
            - eci
            - networkSpecificFields
          properties:
            authorizationCode:
              $ref: '#/components/schemas/isoFieldAuthorizationCode'
            networkCode:
              $ref: '#/components/schemas/isoFieldNetworkCode'
            systemTraceAuditNumber:
              $ref: '#/components/schemas/isoFieldSystemTraceAuditNumber'
            retrievalReferenceNumber:
              $ref: '#/components/schemas/isoFieldRetrievalReferenceNumber'
            eci:
              $ref: '#/components/schemas/isoFieldEciDiscover'
            networkSpecificFields:
              $ref: '#/components/schemas/discoverSpecificFields'
    isoFieldEciMastercard:
      type: string
      description: Contents of field 48, subelement 42, subfield 1, also known as "UCAF Collection Indicator".
      example: '2'
    mastercardSpecificFields:
      type: object
      required:
        - banknetReference
        - traceId
      description: Mastercard specific ISO8583 raw values
      properties:
        banknetReference:
          type: string
          description: Contents of field 63, subfield 2
          example: ATSGHX
        traceId:
          type: string
          description: |
            The trace ID can be used to refer to the original authorization for subsequent transactions (e.g., reversals, MITs).

            The value is constructed from the contents of field 63, subfield 1, field 63, subfield 2, and field 15. The value intentionally ends with two spaces.
        merchantAdviceCode:
          type: string
          description: Contents of field 48, subelement 84
          example: '01'
        cvcResult:
          type: string
          description: Contents of field 48, subelement 87
          example: M
        nameValidationResult:
          type: string
          description: Contents of field 108, subelement 08, subfield 02. Result of Mastercard name validation check. To request name validation set `type.intent` = `account-status` and provide `card.holderName`.
          example: A
        avsResponse:
          type: string
          description: Contents of field 48, subelement 83
          example: A
        paymentAccountReference:
          type: string
          description: Contents of field 56, subelement 1, subfield 1
          example: 50020EHB2QT3YBD5KU6OFMSN6BHLU
        transactionLinkId:
          type: string
          description: Contents of field 105, subelement 1
          example: qtQRrYlsSvSecPJDBzrzYA
        digitalCommerceProgramType:
          type: string
          description: Contents of field 48, subelement 48, subfield 2. Identifies the specific digital commerce program used.
          example: '1'
        onBehalfServices:
          type: array
          description: Contents of field 48, subelement 71.
          items:
            type: object
            required:
              - onBehalfService
              - onBehalfResult1
              - onBehalfResult2
            properties:
              onBehalfService:
                type: string
                description: Contents of field 48, subelement 71, subfield 1.
                example: '61'
              onBehalfResult1:
                type: string
                description: Contents of field 48, subelement 71, subfield 2.
                example: V
              onBehalfResult2:
                type: string
                description: Contents of field 48, subelement 71, subfield 3.
                example: T
    authorizationIsoFieldsMastercard:
      allOf:
        - $ref: '#/components/schemas/commonIsoFields'
        - type: object
          required:
            - networkCode
            - systemTraceAuditNumber
            - retrievalReferenceNumber
            - eci
            - networkSpecificFields
          properties:
            authorizationCode:
              $ref: '#/components/schemas/isoFieldAuthorizationCode'
            networkCode:
              $ref: '#/components/schemas/isoFieldNetworkCode'
            systemTraceAuditNumber:
              $ref: '#/components/schemas/isoFieldSystemTraceAuditNumber'
            retrievalReferenceNumber:
              $ref: '#/components/schemas/isoFieldRetrievalReferenceNumber'
            eci:
              $ref: '#/components/schemas/isoFieldEciMastercard'
            networkSpecificFields:
              $ref: '#/components/schemas/mastercardSpecificFields'
    isoFieldEciUnionPay:
      type: string
      description: Contents of field 60, subfield 2, subfield 8 of the authorization request.
    unionPaySpecificFields:
      type: object
      description: UnionPay specific ISO8583 raw values
      required:
        - network
      properties:
        network:
          type: string
          description: Card network providing these fields
          enum:
            - unionpay
        pvnCheckResult:
          type: string
          description: Contents of field 61, subfield 3. Result of PIN Verification Value check.
    authorizationIsoFieldsUnionPay:
      allOf:
        - $ref: '#/components/schemas/commonIsoFields'
        - type: object
          required:
            - networkCode
            - systemTraceAuditNumber
            - retrievalReferenceNumber
            - eci
            - networkSpecificFields
          properties:
            authorizationCode:
              $ref: '#/components/schemas/isoFieldAuthorizationCode'
            networkCode:
              type: string
              enum:
                - not-applicable
            systemTraceAuditNumber:
              $ref: '#/components/schemas/isoFieldSystemTraceAuditNumber'
            retrievalReferenceNumber:
              $ref: '#/components/schemas/isoFieldRetrievalReferenceNumber'
            eci:
              $ref: '#/components/schemas/isoFieldEciUnionPay'
            networkSpecificFields:
              $ref: '#/components/schemas/unionPaySpecificFields'
    isoFieldEciVisa:
      type: string
      description: E-commerce Indicator
      example: '5'
    visaSpecificFields:
      type: object
      required:
        - transactionIdentifier
      description: Visa specific ISO8583 raw values
      properties:
        transactionIdentifier:
          type: string
          description: Contents of field 62, subfield 2
          example: '238210000026090'
        cvv2ResultCode:
          type: string
          description: Contents of field 44, subfield 10
          example: M
        avsResultCode:
          type: string
          description: Contents of field 44, subfield 2
          example: 'Y'
        paymentAccountReference:
          type: string
          description: Contents of field 56, dataset 1, tag 1
          example: 50020EHB2QT3YBD5KU6OFMSN6BHLU
        aniResults:
          type: object
          description: Contents of field 34, dataset 4. Result of Visa Account Name Inquiry (ANI) check. To request ANI set `type.intent` = `account-status` and provide `card.holderName`
          required:
            - status
          properties:
            status:
              type: string
              description: Contents of field 34, dataset 4, tag C0
            fullNameMatch:
              type: string
              description: Contents of field 34, dataset 4, tag C4
            firstNameMatch:
              type: string
              description: Contents of field 34, dataset 4, tag CA
            middleNameMatch:
              type: string
              description: Contents of field 34, dataset 4, tag C9
            lastNameMatch:
              type: string
              description: Contents of field 34, dataset 4, tag C8
        vaaiScore:
          type: string
          description: Contents of field 104, dataset 5b, tag 85
          example: '01'
        tokenRequestorId:
          type: string
          description: Contents of field 123, dataset 68, tag 03. Identifies the Token Requestor Id (TRID)
          example: '40000000000'
    authorizationIsoFieldsVisa:
      allOf:
        - $ref: '#/components/schemas/commonIsoFields'
        - type: object
          required:
            - networkCode
            - systemTraceAuditNumber
            - retrievalReferenceNumber
            - eci
            - networkSpecificFields
          properties:
            authorizationCode:
              $ref: '#/components/schemas/isoFieldAuthorizationCode'
            networkCode:
              $ref: '#/components/schemas/isoFieldNetworkCode'
            systemTraceAuditNumber:
              $ref: '#/components/schemas/isoFieldSystemTraceAuditNumber'
            retrievalReferenceNumber:
              $ref: '#/components/schemas/isoFieldRetrievalReferenceNumber'
            eci:
              $ref: '#/components/schemas/isoFieldEciVisa'
            networkSpecificFields:
              $ref: '#/components/schemas/visaSpecificFields'
    authorizationIsoFields:
      description: Object containing the raw values from the ISO8583 response message received from the network.
      oneOf:
        - $ref: '#/components/schemas/authorizationIsoFieldsAmericanExpress'
        - $ref: '#/components/schemas/authorizationIsoFieldsBancontact'
        - $ref: '#/components/schemas/authorizationIsoFieldsDiners'
        - $ref: '#/components/schemas/authorizationIsoFieldsDiscover'
        - $ref: '#/components/schemas/authorizationIsoFieldsMastercard'
        - $ref: '#/components/schemas/authorizationIsoFieldsUnionPay'
        - $ref: '#/components/schemas/authorizationIsoFieldsVisa'
    schemas-countryCodeAlpha3:
      type: string
      pattern: ^[A-Z]+$
      minLength: 3
      maxLength: 3
      externalDocs:
        description: Find more info here.
        url: https://www.iso.org/iso-3166-country-codes.html
      example: NLD
    schemas-countryCodeAlpha2:
      type: string
      pattern: ^[A-Z]+$
      minLength: 2
      maxLength: 2
      externalDocs:
        description: Find more info here.
        url: https://www.iso.org/iso-3166-country-codes.html
      example: NL
    schemas-countryCodeNumeric:
      type: string
      pattern: ^[0-9]+$
      minLength: 3
      maxLength: 3
      externalDocs:
        description: Find more info here.
        url: https://www.iso.org/iso-3166-country-codes.html
      example: '528'
    schemas-CountryCode:
      type: object
      required:
        - alpha3
        - alpha2
        - numeric
      properties:
        alpha3:
          $ref: '#/components/schemas/schemas-countryCodeAlpha3'
        alpha2:
          $ref: '#/components/schemas/schemas-countryCodeAlpha2'
        numeric:
          $ref: '#/components/schemas/schemas-countryCodeNumeric'
    openapi_components-schemas-stateOrProvince:
      type: string
      pattern: ^[\w -,\.\-\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u00FF]+$
      minLength: 1
      maxLength: 120
      description: |
        The state (US) or province (non-US) of the address.
      example: NH
    openapi_components-schemas-city:
      type: string
      pattern: ^[\w -,\.\-\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u00FF]+$
      minLength: 1
      maxLength: 120
      description: |
        The city of the address.
      example: Amsterdam
    openapi_components-schemas-line1:
      type: string
      pattern: ^[\w -,\.\-\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u00FF]+$
      minLength: 1
      maxLength: 120
      description: |
        Address line 1
      example: Langtown Road
    openapi_components-schemas-line2:
      type: string
      pattern: ^[\w -,\.\-\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u00FF]+$
      minLength: 1
      maxLength: 120
      description: |
        Address line 2
      example: '4200'
    openapi_components-schemas-postalCode:
      type: string
      pattern: ^[A-Z0-9]+( [A-Z0-9]*)?$
      minLength: 1
      maxLength: 10
      description: |
        The postal code of the address, allowing a single separating space.
      example: 1234BC
    BillingAddress:
      type: object
      required:
        - postalCode
      additionalProperties: false
      description: |
        The billing address of the cardholder
      properties:
        countryCode:
          $ref: '#/components/schemas/schemas-CountryCode'
        stateOrProvince:
          $ref: '#/components/schemas/openapi_components-schemas-stateOrProvince'
        city:
          $ref: '#/components/schemas/openapi_components-schemas-city'
        line1:
          $ref: '#/components/schemas/openapi_components-schemas-line1'
        line2:
          $ref: '#/components/schemas/openapi_components-schemas-line2'
        postalCode:
          $ref: '#/components/schemas/openapi_components-schemas-postalCode'
    components-schemas-Address:
      type: object
      required:
        - countryCode
        - city
        - line1
        - postalCode
      additionalProperties: false
      description: |
        A physical postal address
      properties:
        countryCode:
          $ref: '#/components/schemas/schemas-CountryCode'
        stateOrProvince:
          $ref: '#/components/schemas/openapi_components-schemas-stateOrProvince'
        city:
          $ref: '#/components/schemas/openapi_components-schemas-city'
        line1:
          $ref: '#/components/schemas/openapi_components-schemas-line1'
        line2:
          $ref: '#/components/schemas/openapi_components-schemas-line2'
        postalCode:
          $ref: '#/components/schemas/openapi_components-schemas-postalCode'
    clearAfter:
      type: string
      description: |
        If provided, clearing will not occur before this point in time.
        If no timezone is included, it is assumed to be UTC.
        The value may be at most 6 months in the future from when the charge was created.
      format: iso-8601-date-time
    schemas-DynamicDescriptor:
      type: object
      minProperties: 1
      additionalProperties: false
      description: |
        Field supports the merchant customizing the DBA name and city on a per-transaction basis,
        to allow the cardholder to recognize the business name and city on their card or bank statement.
      properties:
        merchantName:
          type: string
          pattern: ^[a-zA-Z0-9-\.!\*=_ ]+$
          description: Recognizable business name that will appear on the customer's card or bank statement.
          example: Acme Inc.
          minLength: 1
          maxLength: 22
        merchantCity:
          type: string
          description: City from which the transaction originated
          example: Amsterdam
          pattern: ^[a-zA-Z0-9-\.!\*=_ ]+$
          minLength: 1
          maxLength: 13
    ForeignRetailerDisabled:
      type: object
      description: Transaction does not involve a foreign retailer
      required:
        - indicator
      additionalProperties: false
      properties:
        indicator:
          type: boolean
          enum:
            - false
          description: Specifies if end seller in the transaction is a foreign retailer
    ForeignRetailerEnabled:
      type: object
      description: Transaction involves a foreign retailer
      required:
        - indicator
      additionalProperties: false
      properties:
        indicator:
          type: boolean
          enum:
            - true
          description: Specifies if end seller in the transaction is a foreign retailer
        amount:
          type: integer
          format: int64
          minimum: 1
          maximum: 999999999999
          description: Specifies the exact amount corresponding to the foreign retailer. Cannot be more than the total charge amount (amount.value).
          example: 1000
    schemas-foreignRetailer:
      description: |
        Used for transactions fulfilled partly or fully by end seller that is in a different country than the Marketplace or Ramp Provider. <span class="tag network-tag visa-tag">VISA</span> <a class="experimental-tag-link" href="https://docs.silverflow.com/guides/api-lifecycle#tag/EXPERIMENTAL-Tag"><span class="tag experimental-tag">EXPERIMENTAL</span></a>
      oneOf:
        - $ref: '#/components/schemas/ForeignRetailerDisabled'
        - $ref: '#/components/schemas/ForeignRetailerEnabled'
    subMerchantResponse:
      description: |
        Submerchant information used in the Payment Facilitator set-up. This overrides any subMerchant information present on the Merchant Acceptor.
      type: object
      additionalProperties: false
      properties:
        id:
          type: string
          description: Unique ID assigned to the subMerchant.
          minLength: 1
          maxLength: 15
          example: SUB123456
        address:
          $ref: '#/components/schemas/components-schemas-Address'
          description: Physical address of the subMerchant.
    riskProvider:
      type: string
      description: |
        Provider for the risk check.
      enum:
        - fraudio
    FraudioResult:
      type: object
      required:
        - score
        - recommendation
        - requestId
        - transactionId
      description: |
        The result of the fraudio risk assessment.
      properties:
        score:
          type: number
          description: |
            The score of the fraudio risk assessment.
        recommendation:
          type: string
          description: |
            The recommendation of the fraudio risk assessment.
          enum:
            - green
            - amber
            - red
        requestId:
          type: string
          description: |
            The request id of the fraudio risk assessment.
        transactionId:
          type: string
          description: |
            The transaction id of the fraudio risk assessment.
    RiskCheckResult:
      type: object
      required:
        - provider
        - result
        - actionTaken
      description: |
        Result of the risk check. The field is always present on a charge if a risk check was requested.
      properties:
        provider:
          $ref: '#/components/schemas/riskProvider'
        fraudioResult:
          $ref: '#/components/schemas/FraudioResult'
        actionTaken:
          type: string
          description: |
            The action taken on the charge after risk assessment.
          enum:
            - proceeded
            - aborted
        result:
          type: string
          description: |
            The result of the risk check.
          enum:
            - success
            - error
    openapi_components-schemas-created:
      type: string
      description: The date and time this object was created
      format: iso-8601-date-time
      readOnly: true
    components-schemas-lastModified:
      type: string
      description: The date and time this object was last modified
      format: iso-8601-date-time
      readOnly: true
    GenericCharge:
      type: object
      additionalProperties: false
      required:
        - key
        - created
        - status
        - type
        - localTransactionDateTime
        - merchantAcceptorRef
        - card
        - amount
        - fraudLiability
        - authorizationIsoFields
        - authentication
        - version
      description: |
        A charge
      properties:
        key:
          $ref: '#/components/schemas/chargeKey'
        refundedChargeKey:
          $ref: '#/components/schemas/refundedChargeKey'
        merchantAcceptorRef:
          $ref: '#/components/schemas/components-schemas-AcceptorRef'
        card:
          $ref: '#/components/schemas/OutputCard'
        tokenDetails:
          $ref: '#/components/schemas/StoredChargeTokenDetails'
        amount:
          $ref: '#/components/schemas/components-schemas-Amount'
        cardholderBillingAmount:
          $ref: '#/components/schemas/CardholderBillingAmount'
        type:
          $ref: '#/components/schemas/GetResponseChargeType'
        clearingMode:
          $ref: '#/components/schemas/clearingMode'
        status:
          $ref: '#/components/schemas/ChargeStatus'
        authentication:
          $ref: '#/components/schemas/ChargeAuthentication'
        localTransactionDateTime:
          $ref: '#/components/schemas/localTransactionDateTime'
        transactionType:
          $ref: '#/components/schemas/TransactionType'
        transactionReference:
          allOf:
            - description: |
                Unique ID assigned by the merchant or payment service provider for the transaction. Used to identify the transaction.

                For refund charges created via the refund action, this is the `reference` provided on the refund request, if any.
            - $ref: '#/components/schemas/transactionReference'
        fraudLiability:
          $ref: '#/components/schemas/fraudLiability'
        authorizationIsoFields:
          $ref: '#/components/schemas/authorizationIsoFields'
        billingAddress:
          description: The billing address of the Agent
          $ref: '#/components/schemas/BillingAddress'
        shippingAddress:
          $ref: '#/components/schemas/components-schemas-Address'
        clearAfter:
          $ref: '#/components/schemas/clearAfter'
        dynamicDescriptor:
          $ref: '#/components/schemas/schemas-DynamicDescriptor'
        foreignRetailer:
          $ref: '#/components/schemas/schemas-foreignRetailer'
        subMerchant:
          $ref: '#/components/schemas/subMerchantResponse'
        riskCheckResult:
          $ref: '#/components/schemas/RiskCheckResult'
        created:
          $ref: '#/components/schemas/openapi_components-schemas-created'
        lastModified:
          $ref: '#/components/schemas/components-schemas-lastModified'
        version:
          $ref: '#/components/schemas/schemas-version'
          example: 1
    intentAtm:
      description: |
        The intention of the cardholder for ATM transactions
      type: string
      enum:
        - withdrawal
    atmTerminalEntryMode:
      description: |
        This field indicates the method used for PAN entry on the ATM terminal to initiate the transaction.
      type: string
      enum:
        - chip
        - contactless
        - contactless-magstripe
        - magstripe
        - magstripe-fallback
    ClearingStatus:
      type: string
      description: Clearing status of the charge
      enum:
        - none
        - manual
        - pending
        - completed
        - cancelled
        - abandoned
      example: pending
    AtmTerminalCapability:
      type: string
      description: ATM terminal capabilities subset
      enum:
        - contactChip
        - contactlessChip
        - contactMagStripe
        - contactlessMagStripe
    AtmCharge:
      type: object
      description: |
        An ATM charge (withdrawal transaction)
      additionalProperties: false
      required:
        - key
        - merchantAcceptorRef
        - card
        - type
        - amount
        - status
        - accountSource
        - terminal
        - localTransactionDateTime
        - authorizationIsoFields
        - clearingMode
        - created
        - version
      properties:
        key:
          $ref: '#/components/schemas/chargeKey'
        type:
          description: |
            Describes the kind of ATM charge.
          type: object
          additionalProperties: false
          required:
            - intent
            - terminalEntryMode
          properties:
            intent:
              $ref: '#/components/schemas/intentAtm'
            terminalEntryMode:
              $ref: '#/components/schemas/atmTerminalEntryMode'
        accountSource:
          description: |
            Indicates the type of account from which the funds should be withdrawn.
          type: string
          enum:
            - unspecified
            - savings
            - checking
            - credit
        amount:
          type: object
          additionalProperties: false
          description: The amount for ATM transactions
          required:
            - value
            - currency
          properties:
            value:
              type: integer
              format: int64
              description: The amount in minor units.
              minimum: 1
              maximum: 999999999999
              example: 10000
            currency:
              $ref: '#/components/schemas/common_currencyCode'
        authorizationIsoFields:
          type: object
          required:
            - responseCode
            - responseCodeDescription
            - networkCode
            - systemTraceAuditNumber
            - retrievalReferenceNumber
            - networkSpecificFields
          description: Object containing the raw values from the ISO8583 response message received from the network for ATM transactions.
          properties:
            responseCode:
              $ref: '#/components/schemas/isoFieldResponseCode'
            responseCodeDescription:
              $ref: '#/components/schemas/isoFieldResponseCodeDescription'
            authorizationCode:
              $ref: '#/components/schemas/isoFieldAuthorizationCode'
            networkCode:
              $ref: '#/components/schemas/isoFieldNetworkCode'
            systemTraceAuditNumber:
              $ref: '#/components/schemas/isoFieldSystemTraceAuditNumber'
            retrievalReferenceNumber:
              $ref: '#/components/schemas/isoFieldRetrievalReferenceNumber'
            networkSpecificFields:
              oneOf:
                - $ref: '#/components/schemas/mastercardSpecificFields'
                - $ref: '#/components/schemas/visaSpecificFields'
        card:
          type: object
          required:
            - maskedNumber
          additionalProperties: false
          description: |
            Card data for ATM transactions. ATM transactions do not support processor tokenization.
          properties:
            maskedNumber:
              type: string
              description: |
                The card number used to create this charge, masked according to PCI standards. For card numbers with 16 or more digits, the first 8 and the last 4 digits are visible. For card numbers with 13-15 digits, the first 6 and the last 4 digits are visible. For cards numbers with less than 13 digits, the first 6 and last 2 digits are visible.
        clearingMode:
          $ref: '#/components/schemas/clearingMode'
        localTransactionDateTime:
          $ref: '#/components/schemas/localTransactionDateTime'
        merchantAcceptorRef:
          $ref: '#/components/schemas/components-schemas-AcceptorRef'
        status:
          type: object
          required:
            - authorization
            - clearing
          description: |
            The status property provides a high-level representation of the lifecycle of an ATM charge. ATM charges do not support authentication (no 3DS).
          properties:
            authorization:
              type: string
              description: Authorization status of the ATM charge.
              enum:
                - approved
                - declined
                - reversed
              example: approved
            clearing:
              $ref: '#/components/schemas/ClearingStatus'
        terminal:
          type: object
          description: Details about the ATM terminal.
          required:
            - id
            - capabilities
          additionalProperties: false
          properties:
            id:
              type: string
              description: ATM terminal's ID
              pattern: ^[a-zA-Z0-9]+$
              minLength: 1
              maxLength: 8
              example: ATM001
            capabilities:
              type: array
              description: |
                The capabilities of the ATM terminal. This can be one or multiple.
              minItems: 1
              items:
                $ref: '#/components/schemas/AtmTerminalCapability'
              example:
                - contactChip
                - contactlessChip
                - contactMagStripe
                - contactlessMagStripe
        clearAfter:
          $ref: '#/components/schemas/clearAfter'
        dcc:
          description: |
            Dynamic Currency Conversion (DCC) allows cardholders to see the transaction amount in their home currency at the ATM.
          oneOf:
            - type: object
              description: DCC is not enabled for this transaction
              required:
                - enabled
              additionalProperties: false
              properties:
                enabled:
                  type: boolean
                  enum:
                    - false
                  description: Specifies if DCC is enabled for this transaction
            - type: object
              description: DCC is enabled for this transaction
              required:
                - enabled
                - preConversionAmount
              additionalProperties: false
              properties:
                enabled:
                  type: boolean
                  enum:
                    - true
                  description: Specifies if DCC is enabled for this transaction
                preConversionAmount:
                  type: object
                  additionalProperties: false
                  description: The amount before currency conversion, in the cardholder's home currency
                  required:
                    - value
                    - currency
                  properties:
                    value:
                      type: integer
                      format: int64
                      description: The amount in minor units.
                      minimum: 1
                      maximum: 999999999999
                      example: 10000
                    currency:
                      $ref: '#/components/schemas/common_currencyCode'
        transactionReference:
          $ref: '#/components/schemas/transactionReference'
        created:
          $ref: '#/components/schemas/openapi_components-schemas-created'
        lastModified:
          $ref: '#/components/schemas/components-schemas-lastModified'
        version:
          $ref: '#/components/schemas/schemas-version'
    BepChargeType:
      description: |
        Describes the kind of charge the merchant wants to submit.
      type: object
      required:
        - intent
        - cardEntry
        - order
      properties:
        intent:
          type: string
          description: |
            The intention of the cardholder
          enum:
            - purchase
        cardEntry:
          type: string
          description: |
            The method used to capture the card details.
          enum:
            - e-commerce
        order:
          type: string
          description: |
            The method used to place the order.
          enum:
            - checkout
        sequence:
          type: string
          description: |
            Setting this to `initial` flags the charge as the initial charge in a sequence of payments.

            **From November 22, 2026 this field will be removed since it currently does not have any effect on the charge creation.**
          enum:
            - initial
          deprecated: true
    StatusBep:
      type: object
      required:
        - authentication
        - authorization
        - clearing
      description: |
        The status property provides a high-level representation of the lifecycle of a charge. 
        For a complete history, the actions should be used.
      properties:
        authentication:
          type: string
          description: Strong Customer Authentication (SCA) status of the charge
          enum:
            - authenticated
        authorization:
          type: string
          description: Authorization status of the charge
          enum:
            - approved
            - declined
        clearing:
          $ref: '#/components/schemas/ClearingStatus'
    cvcResultBEP:
      enum:
        - none
      description: The result of cvc verification
    avsResultBEP:
      enum:
        - none
      description: The result of the AVS verification
    ChargeAuthenticationBEP:
      type: object
      required:
        - sca
        - cvc
        - avs
      description: |
        Object container for authentication. If present, contains Strong Customer Authentication (SCA) information, but also indicates whether CVC and AVS was used.
      properties:
        sca:
          $ref: '#/components/schemas/ScaBEP'
        cvc:
          $ref: '#/components/schemas/cvcResultBEP'
        avs:
          $ref: '#/components/schemas/avsResultBEP'
    BepCharge:
      type: object
      required:
        - key
        - created
        - status
        - amount
        - type
        - merchantAcceptorRef
        - fraudLiability
        - authorizationIsoFields
        - authentication
        - version
        - card
        - localTransactionDateTime
      description: |
        A BEP charge
      properties:
        key:
          $ref: '#/components/schemas/chargeKey'
        merchantAcceptorRef:
          $ref: '#/components/schemas/components-schemas-AcceptorRef'
        card:
          $ref: '#/components/schemas/OutputCard'
        amount:
          $ref: '#/components/schemas/components-schemas-Amount'
        type:
          $ref: '#/components/schemas/BepChargeType'
        status:
          $ref: '#/components/schemas/StatusBep'
        authentication:
          $ref: '#/components/schemas/ChargeAuthenticationBEP'
        localTransactionDateTime:
          $ref: '#/components/schemas/localTransactionDateTime'
        transactionReference:
          $ref: '#/components/schemas/transactionReference'
        fraudLiability:
          $ref: '#/components/schemas/fraudLiability'
        clearingMode:
          type: string
          enum:
            - auto
        authorizationIsoFields:
          $ref: '#/components/schemas/authorizationIsoFieldsBancontact'
        billingAddress:
          $ref: '#/components/schemas/components-schemas-Address'
        created:
          $ref: '#/components/schemas/openapi_components-schemas-created'
        lastModified:
          $ref: '#/components/schemas/components-schemas-lastModified'
        version:
          $ref: '#/components/schemas/schemas-version'
    StoredTokenDetailsDigitalWallet:
      type: object
      required:
        - type
      properties:
        type:
          type: string
          description: Details about a token from Apple Pay or Google Pay
          enum:
            - apple-pay
            - google-pay
        eci:
          allOf:
            - description: |
                Zero-padded e-commerce indicator.

                Only supported for <span class="tag network-tag visa-tag">VISA</span> <span class="tag network-tag mastercard-tag">MASTERCARD</span> <span class="tag network-tag amex-tag">AMEX</span>.
            - $ref: '#/components/schemas/schemas-eci'
    StoredTokenDetails:
      description: |
        Further details about the token that was used.
        Required if `type.cardEntry` is `token` or `token-on-file`.
      oneOf:
        - $ref: '#/components/schemas/StoredTokenDetailsNetwork'
        - $ref: '#/components/schemas/StoredTokenDetailsDigitalWallet'
    FundingIntent:
      description: |
        The intention of the cardholder
      type: string
      enum:
        - funding
    FundingCardEntry:
      type: string
      description: |
        The method used to capture the card details.
      enum:
        - e-commerce
        - token
        - token-on-file
        - card-on-file
    FundingOrder:
      type: string
      enum:
        - checkout
        - recurring
        - ucof
        - standing-order
        - one-click
    FundingType:
      type: string
      description: |
        Describes the type of funding charge.
          - `account-to-account`: Transfer funds to a specific type of account. This can be specified in the `receiver`.
          - `general-funds-disbursement`: Funding transaction used to enable a payout disbursement for various use cases.
          - `liquid-assets`: Funding type used for direct acquisition of liquid and cryptocurrency assets or to prefund a wallet primarily used for such assets (e.g., stocks, shares, foreign currency exchange, or cryptocurrency). Currently only supported for **Visa.**
          - `wallet-transfer`: Transfer funds to a wallet. Currently only supported for **Visa.**
          - `person-to-person`: Transaction that uses funds from the sender’s account to fund a subsequent and linked transaction to the receiver's account. Currently only supported for **Mastercard.**
          - `me-to-me`: Transaction that debits a card account of a consumer or organization for the purpose of transferring funds to the same consumer or organization. Currently only supported for **Mastercard.** <a class="experimental-tag-link" href="https://docs.silverflow.com/guides/api-lifecycle#tag/EXPERIMENTAL-Tag"><span class="tag experimental-tag">EXPERIMENTAL</span></a>
          - `me-to-me-debit-prepaid`: Transaction that debits a card account of a consumer or organization for the purpose of transferring funds to a Debit or Prepaid account of the same consumer or organization. Currently only supported for **Mastercard.** <a class="experimental-tag-link" href="https://docs.silverflow.com/guides/api-lifecycle#tag/EXPERIMENTAL-Tag"><span class="tag experimental-tag">EXPERIMENTAL</span></a>
      enum:
        - account-to-account
        - general-funds-disbursement
        - liquid-assets
        - wallet-transfer
        - person-to-person
        - me-to-me
        - me-to-me-debit-prepaid
    FundingChargeType:
      type: object
      description: Describes the kind of charge the merchant wants to submit.
      required:
        - intent
        - cardEntry
        - order
        - fundingType
      properties:
        intent:
          $ref: '#/components/schemas/FundingIntent'
        cardEntry:
          $ref: '#/components/schemas/FundingCardEntry'
        order:
          $ref: '#/components/schemas/FundingOrder'
        fundingType:
          $ref: '#/components/schemas/FundingType'
    schemas-NameOfPeopleAndPlaces:
      type: string
      pattern: ^[\w -,\.\-\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u00FF]+$
      minLength: 1
      maxLength: 120
      example: Name
    MaskedAccountNumber:
      type: string
      description: The masked account number.
      pattern: ^[a-zA-Z0-9 !#$%&'()*+,./:;<=>?@^_`{|}~"\-\[\]\\]+$
      minLength: 1
      maxLength: 50
      example: '************0007'
    AccountNumberType:
      description: The type of the `accountNumber`.
      type: string
      enum:
        - card-account
        - iban-bank-account
        - bic-bank-account
        - rtn-bank-account
        - email
        - phone-number
        - wallet-id
        - social-network-id
    FundingReceiver:
      type: object
      description: Required when `type.intent` is `funding`. Details of the recipient of the funds.
      required:
        - firstName
        - lastName
        - accountNumber
        - accountNumberType
        - address
      properties:
        firstName:
          allOf:
            - description: Recipient's first name.
            - $ref: '#/components/schemas/schemas-NameOfPeopleAndPlaces'
        middleName:
          allOf:
            - description: Recipient's middle name.
            - $ref: '#/components/schemas/schemas-NameOfPeopleAndPlaces'
        lastName:
          allOf:
            - description: Recipient's last name.
            - $ref: '#/components/schemas/schemas-NameOfPeopleAndPlaces'
        accountNumber:
          allOf:
            - description: The masked account number of the recipient.
            - $ref: '#/components/schemas/MaskedAccountNumber'
        accountNumberType:
          $ref: '#/components/schemas/AccountNumberType'
        address:
          allOf:
            - description: The address of the recipient.
            - $ref: '#/components/schemas/components-schemas-Address'
    FundingSender:
      type: object
      description: Details of the sender of the funds.
      required:
        - firstName
        - lastName
        - accountNumber
        - accountNumberType
        - address
      properties:
        firstName:
          allOf:
            - description: Sender's first name.
            - $ref: '#/components/schemas/schemas-NameOfPeopleAndPlaces'
        middleName:
          allOf:
            - description: Sender's middle name.
            - $ref: '#/components/schemas/schemas-NameOfPeopleAndPlaces'
        lastName:
          allOf:
            - description: Sender's last name.
            - $ref: '#/components/schemas/schemas-NameOfPeopleAndPlaces'
        accountNumber:
          allOf:
            - description: The masked account number of the sender.
            - $ref: '#/components/schemas/MaskedAccountNumber'
        accountNumberType:
          $ref: '#/components/schemas/AccountNumberType'
        address:
          allOf:
            - description: The address of the sender.
            - $ref: '#/components/schemas/components-schemas-Address'
    AuthorizationStatus:
      type: string
      description: Authorization status of the charge.
      enum:
        - none
        - approved
        - approved-partial
        - declined
        - reversed
      example: approved
    Status:
      type: object
      required:
        - authentication
        - authorization
        - clearing
      description: |
        The status property provides a high-level representation of the lifecycle of a charge.
        For a complete history, the actions should be used.
      properties:
        authentication:
          $ref: '#/components/schemas/AuthenticationStatus'
        authorization:
          $ref: '#/components/schemas/AuthorizationStatus'
        clearing:
          $ref: '#/components/schemas/ClearingStatus'
    result3DS:
      type: string
      description: |
        Type of 3DS authentication result.
      enum:
        - full-auth
        - attempt
    FundingPayoutThreeDsAuthenticationResultResponse:
      type: object
      required:
        - type
      readOnly: true
      description: Object containing the information of a 3DS transaction.
      properties:
        type:
          $ref: '#/components/schemas/result3DS'
        version:
          description: |
            The 3DS protocol version which has been used to perform 3DS.
            This information is only available when it has been provided in the request.
          type: string
          enum:
            - 2.2.0
        directoryServerTransId:
          type: string
          description: Transaction ID retrieved from the Directory Server
          example: 5340af8a-5505-4bf6-abcd-123412341234
    FundingPayoutThreeDsAuthentication:
      type: object
      required:
        - compliance
        - complianceReason
        - method
        - result
      description: |
        Object container for strong customer authentication.
      properties:
        method:
          $ref: '#/components/schemas/method'
        compliance:
          type: string
          enum:
            - mandated
            - mit
            - exemption
        complianceReason:
          $ref: '#/components/schemas/threeDsComplianceReason'
        result:
          $ref: '#/components/schemas/FundingPayoutThreeDsAuthenticationResultResponse'
    fundingPayoutSca:
      oneOf:
        - $ref: '#/components/schemas/FundingPayoutThreeDsAuthentication'
        - $ref: '#/components/schemas/ScaBEP'
        - $ref: '#/components/schemas/AuthenticationOutOfScope'
        - $ref: '#/components/schemas/AuthenticationExempt'
        - $ref: '#/components/schemas/ScaMit'
    FundingPayoutChargeAuthentication:
      type: object
      required:
        - sca
        - cvc
        - avs
      description: |
        Object container for authentication. If present, contains Strong Customer Authentication (SCA) information, but also indicates whether CVC and AVS was used.
      properties:
        sca:
          $ref: '#/components/schemas/fundingPayoutSca'
        cvc:
          $ref: '#/components/schemas/cvcResult'
        avs:
          $ref: '#/components/schemas/avsResult'
    purposeOfPayment:
      type: string
      minLength: 1
      maxLength: 12
      description: |
        A code that describes the purpose of payment to classify and report the nature and purpose of the transaction. Refer to Visa documentation for country specific requirements for this field.
    FundingCharge:
      type: object
      required:
        - merchantAcceptorRef
        - card
        - key
        - amount
        - localTransactionDateTime
        - type
        - sender
        - receiver
        - status
        - fraudLiability
        - created
        - version
        - authentication
        - authorizationIsoFields
      additionalProperties: false
      description: |
        A funding charge
      properties:
        key:
          $ref: '#/components/schemas/chargeKey'
        merchantAcceptorRef:
          $ref: '#/components/schemas/components-schemas-AcceptorRef'
        card:
          $ref: '#/components/schemas/OutputCard'
        tokenDetails:
          $ref: '#/components/schemas/StoredTokenDetails'
        amount:
          $ref: '#/components/schemas/components-schemas-Amount'
        type:
          $ref: '#/components/schemas/FundingChargeType'
        localTransactionDateTime:
          $ref: '#/components/schemas/localTransactionDateTime'
        transactionReference:
          $ref: '#/components/schemas/transactionReference'
        receiver:
          $ref: '#/components/schemas/FundingReceiver'
        sender:
          $ref: '#/components/schemas/FundingSender'
        riskCheckResult:
          $ref: '#/components/schemas/RiskCheckResult'
        fraudLiability:
          $ref: '#/components/schemas/fraudLiability'
        status:
          $ref: '#/components/schemas/Status'
        authentication:
          $ref: '#/components/schemas/FundingPayoutChargeAuthentication'
        clearingMode:
          type: string
          enum:
            - none
          description: The clearing mode of the charge. For funding charges it is always `none`.
        authorizationIsoFields:
          $ref: '#/components/schemas/authorizationIsoFields'
        purposeOfPayment:
          $ref: '#/components/schemas/purposeOfPayment'
        subMerchant:
          $ref: '#/components/schemas/subMerchantResponse'
        created:
          $ref: '#/components/schemas/openapi_components-schemas-created'
        lastModified:
          $ref: '#/components/schemas/components-schemas-lastModified'
        version:
          $ref: '#/components/schemas/schemas-version'
    PayoutCardEntry:
      type: string
      description: |
        The method used to capture the card details.
      enum:
        - e-commerce
    PayoutOrder:
      description: |
        The method used to place the order.
      type: string
      enum:
        - checkout
    PayoutChargeType:
      type: object
      description: |
        Describes the kind of charge the merchant wants to submit.
      required:
        - intent
        - cardEntry
        - order
        - payoutType
      properties:
        intent:
          description: |
            The intention of the cardholder.
          type: string
          enum:
            - payout
        cardEntry:
          $ref: '#/components/schemas/PayoutCardEntry'
        order:
          $ref: '#/components/schemas/PayoutOrder'
        payoutType:
          description: |
            - `account-to-account`: Payout transaction for moving money from one account to another account, both of which are owned by the sender. Currently only supported for **Visa** <a class="experimental-tag-link" href="https://docs.silverflow.com/guides/api-lifecycle#tag/EXPERIMENTAL-Tag"><span class="tag experimental-tag">EXPERIMENTAL</span></a> and **Mastercard**.
            - `fast-refund`: Transaction that returns funds to the same card used in the original purchase. <span class="tag network-tag mastercard-tag">MASTERCARD</span> <a class="experimental-tag-link" href="https://docs.silverflow.com/guides/api-lifecycle#tag/EXPERIMENTAL-Tag"><span class="tag experimental-tag">EXPERIMENTAL</span></a>
            - `general-funds-disbursement`: Generic funds disbursement transaction used to push funds from a business to an individual cardholder for various purposes. Currently only supported for **Visa** and **Mastercard**.
            - `liquid-assets`: Payout of liquid or cryptocurrency asset proceeds to a card account, e.g., from a sale or cash out. Currently only supported for **Visa**.
            - `merchant-disbursement`: Merchant payments for purchase transaction processing where the settlement payment is sent directly to a card account. Currently only supported for **Visa** and **Mastercard**.
            - `online-gambling`: Payouts of online casino winnings. Currently only supported for **Visa** and **Mastercard**.
            - `person-to-person`: Payout transaction moving funds from the sender's account to the receiver's account. Currently only supported for **Mastercard**.
            - `wallet-transfer`: Payout transaction for adding funds to a digital wallet, the direct acquisition of cryptocurrency, or the acquisition of liquid assets (for example, stocks, shares, foreign currency). Currently only supported for **Visa**.
          type: string
          enum:
            - account-to-account
            - fast-refund
            - general-funds-disbursement
            - liquid-assets
            - merchant-disbursement
            - online-gambling
            - person-to-person
            - wallet-transfer
    AuthorizationStatusWithoutPartialApproval:
      type: string
      description: Authorization status of the charge.
      enum:
        - none
        - approved
        - declined
        - reversed
      example: approved
    StatusWithoutPartialApproval:
      type: object
      required:
        - authentication
        - authorization
        - clearing
      description: |
        The status property provides a high-level representation of the lifecycle of a charge.
        For a complete history, the actions should be used.
      properties:
        authentication:
          $ref: '#/components/schemas/AuthenticationStatus'
        authorization:
          $ref: '#/components/schemas/AuthorizationStatusWithoutPartialApproval'
        clearing:
          $ref: '#/components/schemas/ClearingStatus'
    payout-charge_AccountNumberType:
      description: The type of the `accountNumber`.
      type: string
      enum:
        - card-account
        - iban-bank-account
        - bic-bank-account
        - rtn-bank-account
        - email
        - phone-number
        - wallet-id
        - social-network-id
        - other
    components-schemas-CountryCodeAlpha3:
      type: object
      required:
        - alpha3
      additionalProperties: false
      properties:
        alpha3:
          $ref: '#/components/schemas/schemas-countryCodeAlpha3'
    components-schemas-CountryCodeAlpha2:
      type: object
      required:
        - alpha2
      additionalProperties: false
      properties:
        alpha2:
          $ref: '#/components/schemas/schemas-countryCodeAlpha2'
    components-schemas-CountryCodeNumeric:
      type: object
      required:
        - numeric
      additionalProperties: false
      properties:
        numeric:
          $ref: '#/components/schemas/schemas-countryCodeNumeric'
    schemas-AddressInput:
      type: object
      required:
        - countryCode
        - city
        - line1
        - postalCode
      additionalProperties: false
      description: |
        A physical postal address.
      properties:
        countryCode:
          oneOf:
            - $ref: '#/components/schemas/components-schemas-CountryCodeAlpha3'
            - $ref: '#/components/schemas/components-schemas-CountryCodeAlpha2'
            - $ref: '#/components/schemas/components-schemas-CountryCodeNumeric'
        stateOrProvince:
          $ref: '#/components/schemas/openapi_components-schemas-stateOrProvince'
        city:
          $ref: '#/components/schemas/openapi_components-schemas-city'
        line1:
          $ref: '#/components/schemas/openapi_components-schemas-line1'
        line2:
          $ref: '#/components/schemas/openapi_components-schemas-line2'
        postalCode:
          $ref: '#/components/schemas/openapi_components-schemas-postalCode'
    Identification:
      description: Identification used to verify sender or receiver.
      type: object
      required:
        - value
        - type
      properties:
        type:
          description: |
            Type of identification:
              - `date-of-birth` - Date of birth according to [ISO-8601](https://en.wikipedia.org/wiki/ISO_8601)
              - `national-identification` - National identification
              - `passport-number` - Passport number
              - `driver-license` - Driver license
              - `tax-identification` - Tax identification
              - `company-registration-number` - Company registration number
              - `social-security-number` - Social security number
              - `other` - Customer identification (unspecified)
          type: string
          enum:
            - date-of-birth
            - national-identification
            - passport-number
            - driver-license
            - tax-identification
            - company-registration-number
            - social-security-number
            - other
        value:
          description: |
            The value used for identification of the sender or receiver.
            For BTHD (date of birth) the format should be [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601)
          type: string
          minLength: 1
          maxLength: 35
        issuingCountry:
          description: Issuing country of the identification, according to [ISO 3166-3](https://en.wikipedia.org/wiki/ISO_3166-3)
          type: string
          minLength: 3
          maxLength: 3
    PayoutSender:
      type: object
      description: The details of the sender of the payout.
      properties:
        firstName:
          allOf:
            - description: Sender's first name.
            - $ref: '#/components/schemas/schemas-NameOfPeopleAndPlaces'
        middleName:
          allOf:
            - description: Sender's middle name.
            - $ref: '#/components/schemas/schemas-NameOfPeopleAndPlaces'
        lastName:
          allOf:
            - description: Sender's last name.
            - $ref: '#/components/schemas/schemas-NameOfPeopleAndPlaces'
        accountNumber:
          allOf:
            - description: The masked account number of the sender.
            - $ref: '#/components/schemas/MaskedAccountNumber'
        accountNumberType:
          $ref: '#/components/schemas/payout-charge_AccountNumberType'
        address:
          allOf:
            - description: Address of the sender.
            - $ref: '#/components/schemas/schemas-AddressInput'
        identification:
          allOf:
            - description: Identification used to verify the sender.
            - $ref: '#/components/schemas/Identification'
    PayoutReceiver:
      type: object
      description: Details of the recipient of the payout.
      properties:
        firstName:
          allOf:
            - description: Recipient's first name.
            - $ref: '#/components/schemas/schemas-NameOfPeopleAndPlaces'
        middleName:
          allOf:
            - description: Recipient's middle name.
            - $ref: '#/components/schemas/schemas-NameOfPeopleAndPlaces'
        lastName:
          allOf:
            - description: Recipient's last name.
            - $ref: '#/components/schemas/schemas-NameOfPeopleAndPlaces'
        accountNumber:
          allOf:
            - description: The masked account number of the recipient.
            - $ref: '#/components/schemas/MaskedAccountNumber'
        accountNumberType:
          $ref: '#/components/schemas/payout-charge_AccountNumberType'
        address:
          allOf:
            - description: The address of the recipient.
            - $ref: '#/components/schemas/schemas-AddressInput'
        identification:
          allOf:
            - description: Identification used to verify the receiver.
            - $ref: '#/components/schemas/Identification'
    PayoutCharge:
      type: object
      description: |
        A payout charge
      required:
        - key
        - created
        - status
        - type
        - amount
        - merchantAcceptorRef
        - authorizationIsoFields
        - authentication
        - sender
        - card
        - version
        - localTransactionDateTime
      properties:
        key:
          $ref: '#/components/schemas/chargeKey'
        merchantAcceptorRef:
          $ref: '#/components/schemas/components-schemas-AcceptorRef'
        card:
          $ref: '#/components/schemas/OutputCard'
        amount:
          $ref: '#/components/schemas/components-schemas-Amount'
        type:
          $ref: '#/components/schemas/PayoutChargeType'
        clearingMode:
          $ref: '#/components/schemas/clearingMode'
        status:
          $ref: '#/components/schemas/StatusWithoutPartialApproval'
        authentication:
          $ref: '#/components/schemas/FundingPayoutChargeAuthentication'
        localTransactionDateTime:
          $ref: '#/components/schemas/localTransactionDateTime'
        transactionReference:
          $ref: '#/components/schemas/transactionReference'
        fraudLiability:
          description: |
            Which party is liable in case of fraud.
          deprecated: true
          type: string
          enum:
            - acquirer
            - issuer
        authorizationIsoFields:
          $ref: '#/components/schemas/authorizationIsoFields'
        sender:
          $ref: '#/components/schemas/PayoutSender'
        receiver:
          $ref: '#/components/schemas/PayoutReceiver'
        riskCheckResult:
          $ref: '#/components/schemas/RiskCheckResult'
        purposeOfPayment:
          $ref: '#/components/schemas/purposeOfPayment'
        subMerchant:
          $ref: '#/components/schemas/subMerchantResponse'
        created:
          $ref: '#/components/schemas/openapi_components-schemas-created'
        lastModified:
          $ref: '#/components/schemas/components-schemas-lastModified'
        version:
          $ref: '#/components/schemas/schemas-version'
    posAmountValue:
      type: integer
      format: int64
      minimum: 1
      maximum: 999999999999
      description: |
        An amount in minor units. For example `$12.34` should be encoded as `1234`.
      example: 2599
    BaseAmountBreakdown:
      type: object
      required:
        - baseAmount
      description: |
        A breakdown of the transaction `value`. 

        All provided amounts must exactly add up to `value`.
        Providing a breakdown is only required if any other amounts besides the `baseAmount` are included.
      properties:
        baseAmount:
          allOf:
            - description: |
                The base transaction value in minor units. For example `$12.34` should be encoded as `1234`.
            - $ref: '#/components/schemas/posAmountValue'
    ResponseAmountBreakdown:
      allOf:
        - $ref: '#/components/schemas/BaseAmountBreakdown'
        - type: object
          properties:
            cashback:
              allOf:
                - description: |
                    The cashback amount included in the total transaction `value` in minor units.
                    For example `$12.34` should be encoded as `1234`.
                - $ref: '#/components/schemas/posAmountValue'
    ResponsePosAmount:
      type: object
      required:
        - value
        - currency
      additionalProperties: false
      description: |
        The amount encoded as an object with a `value` in minor units and a `currency` code.

        An optional `breakdown` can be provided to indicate specific sub-amounts.
      properties:
        value:
          allOf:
            - description: |
                The full transaction amount in minor units. For example `$12.34` should be encoded as `1234`.

                If a `breakdown` is provided, it must exactly add up to this `value`.
            - $ref: '#/components/schemas/posAmountValue'
        currency:
          $ref: '#/components/schemas/common_currencyCode'
        breakdown:
          $ref: '#/components/schemas/ResponseAmountBreakdown'
    intentPos:
      description: |
        The intention of the cardholder
      type: string
      enum:
        - purchase
        - reservation
        - refund
    cardEntryPos:
      description: |
        The method used to capture the card details.
      type: string
      enum:
        - terminal
      example: terminal
    orderPos:
      description: |
        The method used to place the order.
      type: string
      enum:
        - counter
    terminalEntryMode:
      description: |
        This field indicates the method used for PAN entry on
        the terminal to initiate the transaction.
      type: string
      enum:
        - contactless
        - manual-entry
        - chip
        - magstripe
        - magstripe-fallback
    sequencePos:
      description: |
        This property indicates that the cardholder has entered Online PIN, when required by the issuer for a Mastercard Single Tap transaction.
      type: string
      enum:
        - subsequent
    ChargePosType:
      description: Describes the kind of POS charge the merchant wants to submit.
      type: object
      required:
        - intent
        - cardEntry
        - order
        - terminalEntryMode
      properties:
        intent:
          $ref: '#/components/schemas/intentPos'
        cardEntry:
          $ref: '#/components/schemas/cardEntryPos'
        order:
          $ref: '#/components/schemas/orderPos'
        terminalEntryMode:
          $ref: '#/components/schemas/terminalEntryMode'
        sequence:
          $ref: '#/components/schemas/sequencePos'
    StatusPos:
      type: object
      required:
        - authentication
        - authorization
        - clearing
      description: |
        The status property provides a high-level representation of the lifecycle of a charge. For a complete history, the actions should be used.
      properties:
        authentication:
          type: string
          description: Strong Customer Authentication (SCA) status of the charge
          enum:
            - none
        authorization:
          type: string
          description: |
            Authorization status of the charge.

            Value 'approved-purchase-amount-only' is only returned for Mastercard charges using 'amount.breakdown.cashback'.
            In this case, only the 'amount.breakdown.baseAmount' was approved, but not the cashback.
          enum:
            - none
            - approved
            - approved-partial
            - declined
            - reversed
            - approved-purchase-amount-only
          example: approved
        clearing:
          $ref: '#/components/schemas/ClearingStatus'
    PosAuthorizationIsoFields:
      type: object
      required:
        - responseCode
        - responseCodeDescription
        - networkCode
        - systemTraceAuditNumber
        - retrievalReferenceNumber
        - eci
        - networkSpecificFields
      description: Object containing the raw values from the ISO8583 response message received from the network.
      properties:
        responseCode:
          $ref: '#/components/schemas/isoFieldResponseCode'
        responseCodeDescription:
          $ref: '#/components/schemas/isoFieldResponseCodeDescription'
        authorizationCode:
          $ref: '#/components/schemas/isoFieldAuthorizationCode'
        networkCode:
          $ref: '#/components/schemas/isoFieldNetworkCode'
        systemTraceAuditNumber:
          $ref: '#/components/schemas/isoFieldSystemTraceAuditNumber'
        retrievalReferenceNumber:
          $ref: '#/components/schemas/isoFieldRetrievalReferenceNumber'
        eci:
          type: string
          enum:
            - '00'
        networkSpecificFields:
          oneOf:
            - $ref: '#/components/schemas/visaSpecificFields'
            - $ref: '#/components/schemas/mastercardSpecificFields'
    BaseTerminal:
      type: object
      required:
        - id
        - attended
      properties:
        id:
          type: string
          description: Terminal's ID
          pattern: ^[a-zA-Z0-9]+$
          minLength: 1
          maxLength: 8
          example: AAFF
        attended:
          type: boolean
          description: Whether the terminal is attended or not.
    TerminalCapability:
      type: string
      enum:
        - contactChip
        - contactlessChip
        - contactMagStripe
        - contactlessMagStripe
        - offlineEncipheredPin
        - offlinePlaintextPin
        - onlinePin
        - signature
        - keyEntry
        - noCvm
        - oneTap
    POS:
      allOf:
        - type: object
          required:
            - type
          properties:
            type:
              type: string
              enum:
                - pos
        - $ref: '#/components/schemas/BaseTerminal'
        - type: object
          required:
            - capabilities
          properties:
            capabilities:
              type: array
              description: |
                The capabilities of the terminal. This can be one or multiple, and if more than one is specified it means that it is capable of all of those things.

                #### Restrictions

                If `capabilities` include `keyEntry` or `signature` then `attended` must be set to `true`.
              items:
                $ref: '#/components/schemas/TerminalCapability'
              example:
                - contactChip
                - contactlessChip
                - contactMagStripe
                - oneTap
    mPOS:
      allOf:
        - type: object
          required:
            - type
          properties:
            type:
              type: string
              enum:
                - mpos
        - $ref: '#/components/schemas/BaseTerminal'
        - type: object
          required:
            - attended
            - capabilities
          properties:
            attended:
              type: boolean
              enum:
                - true
            capabilities:
              type: array
              description: |
                The capabilities of the terminal. This can be one or multiple, and if more than one is specified it means that it is capable of all of those things.
              items:
                $ref: '#/components/schemas/TerminalCapability'
              example:
                - contactChip
                - contactlessChip
                - contactMagStripe
                - oneTap
    softPosTerminalCapability:
      type: string
      enum:
        - contactlessChip
        - onlinePin
        - signature
        - noCvm
        - oneTap
    SoftPOS:
      allOf:
        - type: object
          required:
            - type
          properties:
            type:
              type: string
              enum:
                - softpos
        - $ref: '#/components/schemas/BaseTerminal'
        - type: object
          required:
            - attended
            - capabilities
          properties:
            attended:
              type: boolean
              enum:
                - true
            capabilities:
              type: array
              description: |
                The capabilities of the terminal. This can be one or multiple, and if more than one is specified it means that it is capable of all of those things.
              items:
                $ref: '#/components/schemas/softPosTerminalCapability'
              example:
                - onlinePin
                - contactlessChip
                - noCvm
                - oneTap
    Terminal:
      type: object
      description: Details about the terminal.
      oneOf:
        - $ref: '#/components/schemas/POS'
        - $ref: '#/components/schemas/mPOS'
        - $ref: '#/components/schemas/SoftPOS'
    pointOfSaleAddress:
      allOf:
        - description: |
            The address of the point of sale provided on the charge request.
            It was used for this transaction instead of the `pointOfSaleAddress` on the merchant acceptor.
            Not present if the `pointOfSaleAddress` on the merchant acceptor was used.
        - $ref: '#/components/schemas/components-schemas-Address'
    PosCharge:
      type: object
      required:
        - key
        - created
        - terminal
        - status
        - type
        - merchantAcceptorRef
        - authorizationIsoFields
        - amount
        - version
        - card
        - localTransactionDateTime
      description: |
        A POS charge
      properties:
        key:
          $ref: '#/components/schemas/chargeKey'
        merchantAcceptorRef:
          $ref: '#/components/schemas/components-schemas-AcceptorRef'
        card:
          $ref: '#/components/schemas/OutputCard'
        amount:
          allOf:
            - description: |
                The amount encoded as an object with a `value` in minor units and a `currency` code. In case of a (partially) approved charge, this is the authorized amount.

                An optional `breakdown` can be provided to indicate specific sub-amounts.
            - $ref: '#/components/schemas/ResponsePosAmount'
        type:
          $ref: '#/components/schemas/ChargePosType'
        status:
          $ref: '#/components/schemas/StatusPos'
        localTransactionDateTime:
          $ref: '#/components/schemas/localTransactionDateTime'
        transactionReference:
          $ref: '#/components/schemas/transactionReference'
        authorizationIsoFields:
          $ref: '#/components/schemas/PosAuthorizationIsoFields'
        clearingMode:
          $ref: '#/components/schemas/clearingMode'
        clearAfter:
          $ref: '#/components/schemas/clearAfter'
        terminal:
          $ref: '#/components/schemas/Terminal'
        subMerchant:
          $ref: '#/components/schemas/subMerchantResponse'
        pointOfSaleAddress:
          $ref: '#/components/schemas/pointOfSaleAddress'
        created:
          $ref: '#/components/schemas/openapi_components-schemas-created'
        lastModified:
          $ref: '#/components/schemas/components-schemas-lastModified'
        version:
          $ref: '#/components/schemas/schemas-version'
    schemas-recurringExpiry:
      type: string
      format: date
      description: |
        Date at which the recurring authorization expires. Required for recurring charges. Format: YYYY-MM-DD
      example: '2021-06-12'
    schemas-recurringFrequency:
      type: integer
      minimum: 1
      description: |
        Number of days between recurring authorizations. Required for recurring charges.
    initialChargeKey:
      type: string
      allOf:
        - $ref: '#/components/schemas/chargeKey'
      description: |
        Key of the initial charge in case of a recurring or installment transaction.
      example: chg-4UHjnjyeijYUH7DewdW
    MitAdditionalProperties:
      type: object
      additionalProperties: false
      properties:
        recurringExpiry:
          $ref: '#/components/schemas/schemas-recurringExpiry'
        recurringFrequency:
          $ref: '#/components/schemas/schemas-recurringFrequency'
        initialChargeKey:
          $ref: '#/components/schemas/initialChargeKey'
    MitChargeFromInitialCharge:
      allOf:
        - $ref: '#/components/schemas/GenericCharge'
        - $ref: '#/components/schemas/MitAdditionalProperties'
    MitChargeIntent:
      description: |
        The intention of the cardholder.
        To perform an `account-status` for AMEX, `avs` has to be set to `true`.
      type: string
      enum:
        - purchase
        - reservation
        - account-status
    MitCardEntry:
      type: string
      description: |
        The method used to capture the card details.
      enum:
        - card-on-file
        - token-on-file
    MitChargeOrder:
      type: string
      description: The method used to place the order.
      enum:
        - recurring
        - ucof
        - installment
        - standing-order
    MitFromInitialChargeSequence:
      type: string
      description: |
        This endpoint only allows subsequent transaction of an initial charge which can be created through the `/charges` endpoint.
      enum:
        - subsequent
    MitResponseChargeType:
      type: object
      description: |
        Describes the kind of charge the merchant wants to submit.
      required:
        - intent
        - cardEntry
        - order
      properties:
        intent:
          $ref: '#/components/schemas/MitChargeIntent'
        cardEntry:
          $ref: '#/components/schemas/MitCardEntry'
        order:
          $ref: '#/components/schemas/MitChargeOrder'
        sequence:
          allOf:
            - description: |
                This endpoint only allows subsequent transaction of an initial charge. The property is kept for backwards compatibility and will default to `subsequent`.
            - $ref: '#/components/schemas/MitFromInitialChargeSequence'
    ChargeAuthenticationMit:
      type: object
      required:
        - sca
        - cvc
        - avs
      description: |
        Object container for authentication. If present, contains Strong Customer Authentication (SCA) information, but also indicates whether CVC and AVS was used.
      properties:
        sca:
          $ref: '#/components/schemas/sca'
        cvc:
          description: The result of cvc verification
          enum:
            - none
        avs:
          $ref: '#/components/schemas/avsResult'
    MitCharge:
      type: object
      required:
        - key
        - merchantAcceptorRef
        - card
        - amount
        - type
        - status
        - authentication
        - localTransactionDateTime
        - authorizationIsoFields
        - created
        - version
      description: The created charge.
      additionalProperties: false
      properties:
        key:
          $ref: '#/components/schemas/chargeKey'
        merchantAcceptorRef:
          $ref: '#/components/schemas/components-schemas-AcceptorRef'
        card:
          $ref: '#/components/schemas/OutputCard'
        amount:
          $ref: '#/components/schemas/components-schemas-Amount'
        type:
          $ref: '#/components/schemas/MitResponseChargeType'
        status:
          $ref: '#/components/schemas/Status'
        authentication:
          $ref: '#/components/schemas/ChargeAuthenticationMit'
        localTransactionDateTime:
          $ref: '#/components/schemas/localTransactionDateTime'
        authorizationIsoFields:
          $ref: '#/components/schemas/authorizationIsoFields'
        transactionType:
          $ref: '#/components/schemas/TransactionType'
        transactionReference:
          $ref: '#/components/schemas/transactionReference'
        clearingMode:
          $ref: '#/components/schemas/clearingMode'
        clearAfter:
          $ref: '#/components/schemas/clearAfter'
        dynamicDescriptor:
          $ref: '#/components/schemas/schemas-DynamicDescriptor'
        subMerchant:
          $ref: '#/components/schemas/subMerchantResponse'
        lastModified:
          $ref: '#/components/schemas/components-schemas-lastModified'
        created:
          $ref: '#/components/schemas/openapi_components-schemas-created'
        version:
          $ref: '#/components/schemas/schemas-version'
    MitChargeTypeFunding:
      type: object
      description: Describes the kind of charge the merchant wants to submit.
      required:
        - intent
        - cardEntry
        - order
        - sequence
        - fundingType
      properties:
        intent:
          description: |
            The intention of the cardholder
          type: string
          enum:
            - funding
        cardEntry:
          type: string
          enum:
            - card-on-file
            - token-on-file
        order:
          type: string
          enum:
            - recurring
            - ucof
            - standing-order
        sequence:
          type: string
          enum:
            - subsequent
        fundingType:
          type: string
          enum:
            - account-to-account
            - general-funds-disbursement
            - liquid-assets
            - wallet-transfer
            - person-to-person
            - me-to-me
            - me-to-me-debit-prepaid
    MitFundingThreeDsAuthenticationResultResponse:
      type: object
      readOnly: true
      description: Object containing the information of a 3DS transaction.
      properties:
        directoryServerTransId:
          type: string
          description: Transaction ID retrieved from the Directory Server
          example: 5340af8a-5505-4bf6-abcd-123412341234
    MitFundingThreeDsAuthentication:
      type: object
      required:
        - compliance
        - complianceReason
        - method
        - result
      description: |
        Object container for strong customer authentication.
      properties:
        method:
          $ref: '#/components/schemas/method'
        compliance:
          type: string
          enum:
            - mandated
            - mit
            - exemption
        complianceReason:
          $ref: '#/components/schemas/threeDsComplianceReason'
        result:
          $ref: '#/components/schemas/MitFundingThreeDsAuthenticationResultResponse'
    mitFundingSca:
      oneOf:
        - $ref: '#/components/schemas/MitFundingThreeDsAuthentication'
        - $ref: '#/components/schemas/ScaBEP'
        - $ref: '#/components/schemas/AuthenticationOutOfScope'
        - $ref: '#/components/schemas/AuthenticationExempt'
        - $ref: '#/components/schemas/ScaMit'
    MitFundingChargeAuthentication:
      type: object
      required:
        - sca
        - cvc
        - avs
      description: |
        Object container for authentication. If present, contains Strong Customer Authentication (SCA) information, but also indicates whether CVC and AVS was used.
      properties:
        sca:
          $ref: '#/components/schemas/mitFundingSca'
        cvc:
          $ref: '#/components/schemas/cvcResult'
        avs:
          $ref: '#/components/schemas/avsResult'
    MitFundingCharge:
      type: object
      required:
        - merchantAcceptorRef
        - card
        - key
        - amount
        - localTransactionDateTime
        - type
        - sender
        - receiver
        - status
        - fraudLiability
        - created
        - version
        - authentication
        - authorizationIsoFields
      additionalProperties: false
      description: |
        A MIT funding charge
      properties:
        key:
          $ref: '#/components/schemas/chargeKey'
        merchantAcceptorRef:
          $ref: '#/components/schemas/components-schemas-AcceptorRef'
        card:
          $ref: '#/components/schemas/OutputCard'
        tokenDetails:
          $ref: '#/components/schemas/StoredTokenDetails'
        amount:
          $ref: '#/components/schemas/components-schemas-Amount'
        type:
          $ref: '#/components/schemas/MitChargeTypeFunding'
        localTransactionDateTime:
          $ref: '#/components/schemas/localTransactionDateTime'
        transactionReference:
          $ref: '#/components/schemas/transactionReference'
        receiver:
          $ref: '#/components/schemas/FundingReceiver'
        sender:
          $ref: '#/components/schemas/FundingSender'
        riskCheckResult:
          $ref: '#/components/schemas/RiskCheckResult'
        fraudLiability:
          $ref: '#/components/schemas/fraudLiability'
        status:
          $ref: '#/components/schemas/Status'
        authentication:
          $ref: '#/components/schemas/MitFundingChargeAuthentication'
        clearingMode:
          type: string
          enum:
            - none
          description: The clearing mode of the charge. For funding charges it is always `none`.
        authorizationIsoFields:
          $ref: '#/components/schemas/authorizationIsoFields'
        purposeOfPayment:
          $ref: '#/components/schemas/purposeOfPayment'
        subMerchant:
          $ref: '#/components/schemas/subMerchantResponse'
        created:
          $ref: '#/components/schemas/openapi_components-schemas-created'
        lastModified:
          $ref: '#/components/schemas/components-schemas-lastModified'
        version:
          $ref: '#/components/schemas/schemas-version'
    Charge:
      oneOf:
        - $ref: '#/components/schemas/GenericCharge'
        - $ref: '#/components/schemas/AtmCharge'
        - $ref: '#/components/schemas/BepCharge'
        - $ref: '#/components/schemas/FundingCharge'
        - $ref: '#/components/schemas/PayoutCharge'
        - $ref: '#/components/schemas/PosCharge'
        - $ref: '#/components/schemas/MitChargeFromInitialCharge'
        - $ref: '#/components/schemas/MitCharge'
        - $ref: '#/components/schemas/MitFundingCharge'
    openapi_components-schemas-InvalidInputErrorDetails:
      type: object
      required:
        - type
        - title
        - status
        - detail
        - instance
        - validationErrors
      properties:
        type:
          type: string
          description: |
            A relative URI reference, this property can be used to perform automated error handling.
          enum:
            - /silverflow/problems/invalid-input
        title:
          type: string
          description: |
            A short, human-readable summary of the problem type. It does not change from occurrence to occurrence of the error.
          enum:
            - Invalid Input
        status:
          type: integer
          description: |
            The HTTP status code generated by the origin server for this occurrence
            of the problem.
          enum:
            - 400
        detail:
          $ref: '#/components/schemas/errorDetail'
        instance:
          $ref: '#/components/schemas/errorInstance'
        validationErrors:
          type: array
          items:
            $ref: '#/components/schemas/ValidationError'
          description: A list of validation errors.
    UnauthorizedErrorDetails:
      type: object
      required:
        - type
        - title
        - status
        - detail
        - instance
      properties:
        type:
          type: string
          description: |
            A relative URI reference, this property can be used to perform automated error handling.
          enum:
            - /silverflow/problems/authentication-required
        title:
          type: string
          description: |
            A short, human-readable summary of the problem type. It does not change from occurrence to occurrence of the error.
          enum:
            - Authentication Required
        status:
          type: integer
          description: |
            The HTTP status code generated by the origin server for this occurrence
            of the problem.
          enum:
            - 401
        detail:
          $ref: '#/components/schemas/errorDetail'
        instance:
          $ref: '#/components/schemas/errorInstance'
    schemas-ForbiddenErrorDetails:
      type: object
      required:
        - type
        - title
        - status
        - detail
        - instance
      properties:
        type:
          type: string
          description: |
            A relative URI reference, this property can be used to perform automated error handling.
          enum:
            - /silverflow/problems/forbidden
        title:
          type: string
          description: |
            A short, human-readable summary of the problem type. It does not change from occurrence to occurrence of the error.
          enum:
            - Forbidden
        status:
          type: integer
          description: |
            The HTTP status code generated by the origin server for this occurrence
            of the problem.
          enum:
            - 403
        detail:
          $ref: '#/components/schemas/errorDetail'
        instance:
          $ref: '#/components/schemas/errorInstance'
    components-schemas-EntityNotFoundErrorDetails:
      type: object
      required:
        - type
        - title
        - status
        - detail
        - instance
      properties:
        type:
          type: string
          description: |
            A relative URI reference, this property can be used to perform automated error handling.
          enum:
            - /silverflow/problems/entity-not-found
        title:
          type: string
          description: |
            A short, human-readable summary of the problem type. It does not change from occurrence to occurrence of the error.
          enum:
            - Not Found
        status:
          type: integer
          description: |
            The HTTP status code generated by the origin server for this occurrence
            of the problem.
          enum:
            - 404
        detail:
          $ref: '#/components/schemas/errorDetail'
        instance:
          $ref: '#/components/schemas/errorInstance'
    schemas-TooManyRequestsErrorDetails:
      type: object
      required:
        - type
        - title
        - status
        - detail
        - instance
      properties:
        type:
          type: string
          description: |
            A relative URI reference, this property can be used to perform automated error handling.
          enum:
            - /silverflow/problems/too-many-requests
        title:
          type: string
          description: |
            A short, human-readable summary of the problem type. It does not change from occurrence to occurrence of the error.
          enum:
            - Too Many Requests
        status:
          type: integer
          description: |
            The HTTP status code generated by the origin server for this occurrence
            of the problem.
          enum:
            - 429
        detail:
          $ref: '#/components/schemas/errorDetail'
        instance:
          $ref: '#/components/schemas/errorInstance'
    schemas-InternalServerErrorDetails:
      type: object
      required:
        - type
        - title
        - status
        - detail
        - instance
      properties:
        type:
          type: string
          description: |
            A relative URI reference, this property can be used to perform automated error handling.
          enum:
            - /silverflow/problems/internal-server-error
        title:
          type: string
          description: |
            A short, human-readable summary of the problem type. It does not change from occurrence to occurrence of the error.
          enum:
            - Internal Server Error
        status:
          type: integer
          description: |
            The HTTP status code generated by the origin server for this occurrence
            of the problem.
          enum:
            - 500
        detail:
          $ref: '#/components/schemas/errorDetail'
        instance:
          $ref: '#/components/schemas/errorInstance'
    components-schemas-offsetToken:
      type: string
      pattern: ^[a-zA-Z0-9%]+$
      minLength: 1
      maxLength: 2048
      example: LUtyr0s918rNZ5WuWDYh5FNzqAli6HqKHpPDatcfdsaVlibrlO49BKcOdz9YccUOtDSoyLtc4kAiOLkmjSW5zLa8OCnOXXBRja2rDYh5FNzqAli6HqKHpPDatcfdsaVlibrlO49BKcOdz9Yc
    PageWithMoreItems:
      type: object
      properties:
        moreItems:
          type: boolean
        offsetToken:
          $ref: '#/components/schemas/components-schemas-offsetToken'
    ChargesPage:
      allOf:
        - $ref: '#/components/schemas/PageWithMoreItems'
        - type: object
          required:
            - charges
          properties:
            charges:
              type: array
              items:
                $ref: '#/components/schemas/Charge'
    InvalidToOrFromDateErrorDetails:
      type: object
      required:
        - type
        - title
        - status
        - detail
        - instance
      properties:
        type:
          type: string
          description: |
            A relative URI reference, this property can be used to perform automated error handling.
          enum:
            - /silverflow/problems/invalid-to-or-from-date
        title:
          type: string
          description: |
            A short, human-readable summary of the problem type. It does not change from occurrence to occurrence of the error.
          enum:
            - Invalid To or From Date
        status:
          type: integer
          description: |
            The HTTP status code generated by the origin server for this occurrence
            of the problem.
          enum:
            - 400
        detail:
          $ref: '#/components/schemas/errorDetail'
        instance:
          $ref: '#/components/schemas/errorInstance'
    components-schemas-acceptorKeyRef:
      description: |
        Uniquely identifies a merchant acceptor.
      type: string
      pattern: ^mac-[a-zA-Z0-9]+$
      minLength: 5
      maxLength: 120
      example: mac-1eOdAHhgstYTUhlphPFf
    schemas-ResolverByAcceptorKey:
      type: object
      additionalProperties: false
      required:
        - merchantAcceptorKey
      description: |
        Used to select a merchant acceptor by key.
      properties:
        merchantAcceptorKey:
          $ref: '#/components/schemas/components-schemas-acceptorKeyRef'
    schemas-ResolverByMerchant:
      type: object
      additionalProperties: false
      required:
        - merchantKey
      description: |
        Used to select a merchant acceptor by merchant key and an optional route.
      properties:
        merchantKey:
          $ref: '#/components/schemas/schemas-merchantKey'
        route:
          $ref: '#/components/schemas/schemas-acceptorRoute'
    schemas-AcceptorResolver:
      type: object
      description: |
        The resolver is used to select the appropriate merchant acceptor for creating the charge.
        It can accept either a `merchantAcceptorKey` or a combination of `merchantKey` and an optional `route`. If the optional property for `route` is not provided
        the default one generated when creating an acceptor will be used.
      oneOf:
        - $ref: '#/components/schemas/schemas-ResolverByAcceptorKey'
        - $ref: '#/components/schemas/schemas-ResolverByMerchant'
    components-schemas-pan:
      type: string
      description: Full digits of a card
      pattern: ^\d+$
      minLength: 12
      maxLength: 19
      format: password
      example: '4761070000000905'
    components-schemas-expiryMonth:
      type: integer
      description: |
        The month the card expires. January is 1
      minimum: 1
      maximum: 12
    components-schemas-expiryYear:
      type: integer
      description: |
        The year the card expires including the century
      minimum: 1950
      maximum: 2200
    schemas-cvc:
      type: string
      description: |
        The CVC of the card

        For Mastercard, Visa, Discover, Bancontact, and Diners the length must be 3.
        For American Express the length must be 4.
      pattern: ^\d+$
      minLength: 3
      maxLength: 4
      example: '123'
    schemas-holderName:
      type: string
      description: |
        The name of the cardholder.

        In case of AVS, it will be truncated by the scheme if longer than 26 characters (Visa) or 22 characters (Mastercard).

        More information here: [Cardholder name restrictions](charges.html#section/Appendix-A-Cardholder-Name-Restrictions)
      pattern: ^[\x20-\x7E\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u00FF]+$
      minLength: 1
      maxLength: 120
      example: Joe Cardholder
    CardInput:
      type: object
      title: Card Input
      required:
        - number
        - expiryMonth
        - expiryYear
      additionalProperties: false
      description: Card data
      properties:
        number:
          $ref: '#/components/schemas/components-schemas-pan'
        expiryMonth:
          $ref: '#/components/schemas/components-schemas-expiryMonth'
        expiryYear:
          $ref: '#/components/schemas/components-schemas-expiryYear'
        cvc:
          $ref: '#/components/schemas/schemas-cvc'
        holderName:
          $ref: '#/components/schemas/schemas-holderName'
    schemas-CardByProcessorTokenKey:
      type: object
      title: Processor Token Key
      required:
        - processorTokenKey
      properties:
        processorTokenKey:
          $ref: '#/components/schemas/schemas-processorTokenKey'
        cvc:
          allOf:
            - description: |
                The CVC of the card.

                If a CVC is provided here, it takes precedence over the one stored in the Processor Tokenization.

                For Mastercard, Visa, Discover, Bancontact, and Diners the length must be 3.
                For American Express the length must be 4.
            - $ref: '#/components/schemas/schemas-cvc'
    schemas-Card:
      description: |-
        This field represents the card or token information. 
        The card credentials can either be passed directly in the request or be referenced using a `key`. 
      oneOf:
        - $ref: '#/components/schemas/CardInput'
        - $ref: '#/components/schemas/schemas-CardByProcessorTokenKey'
    tokenCryptogram:
      type: string
      description: The token cryptogram. It must be encoded in base64 format (40 bytes).
      minLength: 28
      maxLength: 28
      pattern: ^[\w\/+=]+$
      example: 112233445566778899001122334=
    TokenDetailsNetwork:
      allOf:
        - $ref: '#/components/schemas/StoredTokenDetailsNetwork'
        - type: object
          required:
            - tokenCryptogram
          properties:
            tokenCryptogram:
              $ref: '#/components/schemas/tokenCryptogram'
    threeDsCryptogram:
      type: string
      description: The 3DS cryptogram provided by the digital wallet. It must be encoded in base64 format (40 bytes).
      minLength: 28
      maxLength: 28
      pattern: ^[\w\/+=]+$
      example: 112233445566778899001122334=
    ChargeTokenDetailsDigitalWallet:
      title: TokenDetailsDigitalWallet
      allOf:
        - $ref: '#/components/schemas/StoredChargeTokenDetailsDigitalWallet'
        - type: object
          required:
            - threeDsCryptogram
          properties:
            threeDsCryptogram:
              $ref: '#/components/schemas/threeDsCryptogram'
    ChargeTokenDetails:
      description: |
        Further details about the token that was used.
        Required if `type.cardEntry` is `token` or `token-on-file`.
      oneOf:
        - $ref: '#/components/schemas/TokenDetailsNetwork'
        - $ref: '#/components/schemas/ChargeTokenDetailsDigitalWallet'
    schemas-intent:
      description: |
        The intention of the cardholder.
        To perform an `account-status` for AMEX, either `card.cvc` has to be present or `avs` has to be set to `true`.
      type: string
      enum:
        - purchase
        - reservation
        - account-status
        - refund
    schemas-cardEntry:
      description: |
        The method used to capture the card details.
      type: string
      enum:
        - e-commerce
        - manual
        - card-on-file
        - token
        - token-on-file
      example: e-commerce
    ChargeType:
      description: |
        Describes the kind of charge the merchant wants to submit.
      type: object
      required:
        - intent
        - cardEntry
        - order
      properties:
        intent:
          $ref: '#/components/schemas/schemas-intent'
        cardEntry:
          $ref: '#/components/schemas/schemas-cardEntry'
        order:
          description: |
            The method used to place the order.
          type: string
          enum:
            - checkout
            - unspecified
            - mail
            - phone
            - one-click
            - recurring
            - ucof
            - installment
            - standing-order
    avs:
      type: boolean
      description: |
        Specifies whether AVS authentication should be used for the charge.
        When `true`, `billingAddress` is required.

        Not supported for Diners.
    authenticationValue3ds:
      type: string
      description: Base64 encoded result value from the 3DS transaction. Note that Mastercard and Visa use a different underlying format.
      pattern: ^[\w\/+=]+$
      minLength: 1
      maxLength: 28
      example: kANBCCDDYJYjadADpka8KoQMqS
    ThreeDsAuthenticationResult:
      type: object
      required:
        - authenticationValue
        - directoryServerTransId
      description: |
        A 3DS result from either the [3DS Authentication endpoint](#operation/create3dsAuthentication) or an external party.
      properties:
        version:
          description: |
            The 3DS protocol version which has been used to perform 3DS.

            **Required for American Express transactions.**
          type: string
          enum:
            - 2.2.0
        authenticationValue:
          $ref: '#/components/schemas/authenticationValue3ds'
        directoryServerTransId:
          type: string
          description: Transaction ID retrieved from the Directory Server (DS).
          pattern: ^[\w +-=.,:;!?$@()]+$
          minLength: 1
          maxLength: 36
          example: 5340af8a-5505-4bf6-abcd-123412341234
        eci:
          type: string
          description: |
            ECI value from the 3DS provider. Use this to explicitly override the ECI value in Visa authorization messages.
            This field has no impact for any other network. <span class="tag network-tag visa-tag">VISA</span>
          pattern: ^\d+$
          minLength: 2
          maxLength: 2
          example: '05'
    BillingAddressInput:
      type: object
      required:
        - postalCode
      additionalProperties: false
      description: The billing address of the cardholder
      properties:
        countryCode:
          oneOf:
            - $ref: '#/components/schemas/components-schemas-CountryCodeAlpha3'
            - $ref: '#/components/schemas/components-schemas-CountryCodeAlpha2'
            - $ref: '#/components/schemas/components-schemas-CountryCodeNumeric'
        stateOrProvince:
          $ref: '#/components/schemas/openapi_components-schemas-stateOrProvince'
        city:
          $ref: '#/components/schemas/openapi_components-schemas-city'
        line1:
          $ref: '#/components/schemas/openapi_components-schemas-line1'
        line2:
          $ref: '#/components/schemas/openapi_components-schemas-line2'
        postalCode:
          $ref: '#/components/schemas/openapi_components-schemas-postalCode'
    riskAssessmentKey:
      type: string
      description: |
        Key that was returned by the transaction risk assessment.
      pattern: ^rak-[a-zA-Z0-9]+$
      minLength: 5
      maxLength: 120
      example: rak-1e1dAHhgstYTUhlphPzZ
    scaExemptionRequest:
      type: string
      description: |
        This field can be used to indicate an acquirer SCA exemption request. Silverflow supports several SCA exemption request use cases, listed below:
          - Transaction risk analysis (TRA)
          - Low value payment (LVP)
          - Secure corporate payment (SCP)

        Please note that these exemption requests may or may not be honored by the issuer.
      enum:
        - scp
        - low-value
        - tra
    allowPartialApproval:
      type: boolean
      default: false
      description: |
        Indicates whether to allow partial approvals for this charge.
        If set to `true` the charge's and the authorization action's `amount` field will contain the approved amount.
        It is only implemented for Visa and Mastercard. It will be ignored for other card networks.
    subMerchant:
      description: |
        Submerchant information used in the Payment Facilitator set-up. If present, will override any subMerchant information present on the Merchant Acceptor.  <span class="tag network-tag discover-tag">DISCOVER</span> <span class="tag network-tag mastercard-tag">MASTERCARD</span> <span class="tag network-tag visa-tag">VISA</span>
      type: object
      additionalProperties: false
      properties:
        id:
          type: string
          description: Unique ID assigned to the subMerchant. When provided, overrides `merchantAcceptor.subMerchantId`.
          minLength: 1
          maxLength: 15
          example: SUB123456
        address:
          $ref: '#/components/schemas/schemas-AddressInput'
          description: Physical address of the subMerchant. When provided, overrides `merchantAcceptor.subMerchantAddress`.
    EnhancedDataDestinationAddressInput:
      type: object
      description: Must be provided if shipment is involved and captured on the invoice
      properties:
        countryCode:
          oneOf:
            - $ref: '#/components/schemas/components-schemas-CountryCodeAlpha3'
            - $ref: '#/components/schemas/components-schemas-CountryCodeAlpha2'
            - $ref: '#/components/schemas/components-schemas-CountryCodeNumeric'
        postalCode:
          allOf:
            - description: Destination postal code.
            - $ref: '#/components/schemas/openapi_components-schemas-postalCode'
    EnhancedDataShippingAddress:
      type: object
      description: Must be provided if shipment is involved and captured on the invoice
      properties:
        postalCode:
          allOf:
            - description: Shipping postal code.
            - $ref: '#/components/schemas/openapi_components-schemas-postalCode'
    EnhancedDataLineItem:
      type: object
      required:
        - commodityCode
        - description
        - discountAmount
        - productCode
        - quantity
        - unitOfMeasure
        - unitPrice
        - taxAmount
        - taxRate
        - totalAmount
      properties:
        commodityCode:
          type: string
          minLength: 1
          maxLength: 12
          description: Commodity classification code (e.g. UNSPSC, NAICS). Required for Visa Fleet transactions.
        description:
          type: string
          minLength: 2
          maxLength: 26
          description: Product or service description.
        discountAmount:
          type: integer
          format: int64
          minimum: 0
          maximum: 999999999999
          description: Discount applied to this line item in minor currency units.
        productCode:
          type: string
          minLength: 1
          maxLength: 12
          description: Product code for the item.
        quantity:
          type: integer
          format: int64
          minimum: 0
          maximum: 999999999999
          description: Quantity of items purchased. Includes 4 implied decimal places (e.g. 1.23 kg = 12300)
        unitOfMeasure:
          type: string
          minLength: 1
          maxLength: 12
          description: The unit of measurement for an item.
        unitPrice:
          type: integer
          format: int64
          minimum: 0
          maximum: 999999999999
          description: Price per unit. Includes 4 implied decimal places (e.g. 1.23$ = 12300).
        taxAmount:
          type: integer
          format: int64
          minimum: 0
          maximum: 999999999999
          description: Tax amount for the line item in minor currency units.
        taxRate:
          type: integer
          format: int64
          minimum: 0
          maximum: 10000
          description: Tax rate percentage for the line item. Includes 2 implied decimal places (e.g. 1.23% = 123)
        totalAmount:
          type: integer
          format: int64
          minimum: 0
          maximum: 999999999999
          description: Total amount for the line item in minor currency units.
    enhancedDataInput:
      type: object
      additionalProperties: false
      description: An optional object for submitting Level 2 (tax and order references) and Level 3 (granular line-item details) payment data. Providing this data can qualify transactions for reduced interchange rates. <span class="tag network-tag visa-tag">VISA</span> <span class="tag network-tag mastercard-tag">MASTERCARD</span> <a class="experimental-tag-link" href="https://docs.silverflow.com/guides/api-lifecycle#tag/EXPERIMENTAL-Tag"><span class="tag experimental-tag">EXPERIMENTAL</span></a>
      required:
        - taxAmount
      properties:
        taxAmount:
          type: integer
          format: int64
          minimum: 0
          maximum: 999999999999
          description: Total amount of Sales Tax or Value Added Tax (VAT) collected in minor units. Enter 0 if no tax is collected.
          example: 300
        customerCode:
          type: string
          minLength: 1
          maxLength: 25
          description: A code used to identify the customer or consumer.
          example: REF12345
        customerTaxId:
          type: string
          minLength: 1
          maxLength: 13
          description: Customer's tax registration or VAT number.
        destinationAddress:
          $ref: '#/components/schemas/EnhancedDataDestinationAddressInput'
        discountAmount:
          type: integer
          format: int64
          minimum: 0
          maximum: 999999999999
          description: Total amount of discount at invoice level in minor units. Excludes any discount amounts defined at line item level.
          example: 50
        invoiceNumber:
          type: string
          minLength: 1
          maxLength: 25
          description: Invoice number for the transaction.
        orderDate:
          type: string
          format: date
          description: Date the order was placed.
          example: '2026-05-01'
        purchaseOrderNumber:
          type: string
          minLength: 1
          maxLength: 13
          description: Purchase order number for the transaction.
        shippingAddress:
          $ref: '#/components/schemas/EnhancedDataShippingAddress'
        timeOfPurchase:
          type: string
          pattern: ^([0-1][0-9]|2[0-3])[0-5][0-9]$
          minLength: 4
          maxLength: 4
          description: Local transaction time in HHMM format.
          example: '1402'
        lineItems:
          type: array
          minItems: 1
          maxItems: 100
          description: Array of line items.
          items:
            $ref: '#/components/schemas/EnhancedDataLineItem'
    ChargeRefundMastercardInitialTransactionReference:
      title: Mastercard
      type: object
      additionalProperties: false
      properties:
        transactionLinkId:
          type: string
          description: Mastercard generated Transaction Link Identifier (TLID). This value comes from the field 105 subelement 001 of the original transaction response. Use only for Refund charges.
          minLength: 1
          maxLength: 22
          example: qtQRrYlsSvSecPJDBzrzYA
    ChargeRequest:
      type: object
      required:
        - merchantAcceptorResolver
        - card
        - amount
        - type
      additionalProperties: false
      description: |
        Create a charge
      properties:
        merchantAcceptorResolver:
          $ref: '#/components/schemas/schemas-AcceptorResolver'
        card:
          allOf:
            - description: |
                This field represents the card or token information.
                The card credentials can either be passed directly in the request or be referenced using a `key`.
                Alternatively, if `type.cardEntry` is `token-on-file`, this property should contain the token credentials instead.
            - $ref: '#/components/schemas/schemas-Card'
        tokenDetails:
          $ref: '#/components/schemas/ChargeTokenDetails'
        amount:
          $ref: '#/components/schemas/common_Amount'
        type:
          $ref: '#/components/schemas/ChargeType'
        avs:
          $ref: '#/components/schemas/avs'
        threeDsAuthenticationResult:
          $ref: '#/components/schemas/ThreeDsAuthenticationResult'
        localTransactionDateTime:
          $ref: '#/components/schemas/localTransactionDateTime'
        transactionType:
          $ref: '#/components/schemas/TransactionType'
        transactionReference:
          $ref: '#/components/schemas/transactionReference'
        billingAddress:
          $ref: '#/components/schemas/BillingAddressInput'
        clearingMode:
          $ref: '#/components/schemas/clearingMode'
        clearAfter:
          $ref: '#/components/schemas/clearAfter'
        riskAssessmentKey:
          $ref: '#/components/schemas/riskAssessmentKey'
        scaExemptionRequest:
          $ref: '#/components/schemas/scaExemptionRequest'
        dynamicDescriptor:
          $ref: '#/components/schemas/schemas-DynamicDescriptor'
        allowPartialApproval:
          $ref: '#/components/schemas/allowPartialApproval'
        foreignRetailer:
          $ref: '#/components/schemas/schemas-foreignRetailer'
        subMerchant:
          $ref: '#/components/schemas/subMerchant'
        enhancedData:
          $ref: '#/components/schemas/enhancedDataInput'
        initialTransactionReferences:
          $ref: '#/components/schemas/ChargeRefundMastercardInitialTransactionReference'
    responseIntentEcommerce:
      description: |
        The intention of the cardholder.
      type: string
      enum:
        - purchase
        - reservation
        - account-status
        - refund
    ResponseChargeType:
      description: |
        Describes the kind of charge the merchant wants to submit.
      type: object
      required:
        - intent
        - cardEntry
        - order
      properties:
        intent:
          $ref: '#/components/schemas/responseIntentEcommerce'
        cardEntry:
          $ref: '#/components/schemas/responseCardEntry'
        order:
          description: |
            The method used to place the order.
          type: string
          enum:
            - checkout
            - unspecified
            - mail
            - phone
            - one-click
            - recurring
            - ucof
            - installment
            - standing-order
        sequence:
          $ref: '#/components/schemas/sequence'
    ChargeResponse:
      type: object
      required:
        - key
        - created
        - status
        - type
        - localTransactionDateTime
        - merchantAcceptorRef
        - card
        - amount
        - fraudLiability
        - authorizationIsoFields
        - authentication
        - version
      description: |
        A charge
      properties:
        key:
          $ref: '#/components/schemas/chargeKey'
        merchantAcceptorRef:
          $ref: '#/components/schemas/components-schemas-AcceptorRef'
        card:
          $ref: '#/components/schemas/OutputCard'
        tokenDetails:
          $ref: '#/components/schemas/StoredChargeTokenDetails'
        amount:
          $ref: '#/components/schemas/common_Amount'
        cardholderBillingAmount:
          $ref: '#/components/schemas/CardholderBillingAmount'
        type:
          $ref: '#/components/schemas/ResponseChargeType'
        clearingMode:
          $ref: '#/components/schemas/clearingMode'
        status:
          $ref: '#/components/schemas/ChargeStatus'
        authentication:
          $ref: '#/components/schemas/ChargeAuthentication'
        localTransactionDateTime:
          $ref: '#/components/schemas/localTransactionDateTime'
        transactionType:
          $ref: '#/components/schemas/TransactionType'
        transactionReference:
          allOf:
            - description: |
                Unique ID assigned by the merchant or payment service provider for the transaction. Used to identify the transaction.

                For refund charges created via the refund action, this is the `reference` provided on the refund request, if any.
            - $ref: '#/components/schemas/transactionReference'
        fraudLiability:
          $ref: '#/components/schemas/fraudLiability'
        authorizationIsoFields:
          $ref: '#/components/schemas/authorizationIsoFields'
        billingAddress:
          $ref: '#/components/schemas/BillingAddress'
        clearAfter:
          $ref: '#/components/schemas/clearAfter'
        dynamicDescriptor:
          $ref: '#/components/schemas/schemas-DynamicDescriptor'
        created:
          $ref: '#/components/schemas/openapi_components-schemas-created'
        lastModified:
          $ref: '#/components/schemas/components-schemas-lastModified'
        allowPartialApproval:
          $ref: '#/components/schemas/allowPartialApproval'
        foreignRetailer:
          $ref: '#/components/schemas/schemas-foreignRetailer'
        subMerchant:
          $ref: '#/components/schemas/subMerchantResponse'
        version:
          $ref: '#/components/schemas/schemas-version'
          example: 1
    schemas-InvalidRequestErrorDetails:
      type: object
      required:
        - type
        - title
        - status
        - detail
        - instance
      properties:
        type:
          type: string
          description: |
            A relative URI reference, this property can be used to perform automated error handling.
          enum:
            - /silverflow/problems/charge/invalid-request
        title:
          $ref: '#/components/schemas/errorTitle'
        status:
          type: integer
          description: |
            The HTTP status code generated by the origin server for this occurrence
            of the problem.
          enum:
            - 400
        detail:
          $ref: '#/components/schemas/errorDetail'
        instance:
          $ref: '#/components/schemas/errorInstance'
    components-schemas-ReferencedEntityNotFoundErrorDetails:
      type: object
      required:
        - type
        - title
        - status
        - detail
        - instance
      properties:
        type:
          type: string
          description: |
            A relative URI reference, this property can be used to perform automated error handling.
          enum:
            - /silverflow/problems/referenced-entity-not-found
        title:
          type: string
          description: |
            A short, human-readable summary of the problem type. It does not change from occurrence to occurrence of the error.
          enum:
            - Referenced Entity Not Found
        status:
          type: integer
          description: |
            The HTTP status code generated by the origin server for this occurrence
            of the problem.
          enum:
            - 409
        detail:
          $ref: '#/components/schemas/errorDetail'
        instance:
          $ref: '#/components/schemas/errorInstance'
    CannotDetermineCardNetworkErrorDetails:
      type: object
      required:
        - type
        - title
        - status
        - detail
        - instance
      properties:
        type:
          type: string
          description: |
            A relative URI reference, this property can be used to perform automated error handling.
          enum:
            - /silverflow/problems/charge/cannot-determine-card-network-by-card-number
        title:
          type: string
          description: |
            A short, human-readable summary of the problem type. It does not change from occurrence to occurrence of the error.
          enum:
            - Cannot Determine Card Network By Card Number
        status:
          type: integer
          description: |
            The HTTP status code generated by the origin server for this occurrence
            of the problem.
          enum:
            - 409
        detail:
          $ref: '#/components/schemas/errorDetail'
        instance:
          $ref: '#/components/schemas/errorInstance'
    schemas-IncompatibleCardNetworkErrorDetails:
      type: object
      required:
        - type
        - title
        - status
        - detail
        - instance
      properties:
        type:
          type: string
          description: |
            A relative URI reference, this property can be used to perform automated error handling.
          enum:
            - /silverflow/problems/bin/unexpected-network
        title:
          $ref: '#/components/schemas/errorTitle'
        status:
          type: integer
          description: |
            The HTTP status code generated by the origin server for this occurrence
            of the problem.
          enum:
            - 409
        detail:
          $ref: '#/components/schemas/errorDetail'
        instance:
          $ref: '#/components/schemas/errorInstance'
    BlockedMerchantAcceptorErrorDetails:
      type: object
      required:
        - type
        - title
        - status
        - detail
        - instance
      properties:
        type:
          type: string
          description: |
            A relative URI reference, this property can be used to perform automated error handling.
          enum:
            - /silverflow/problems/merchant-acceptor/blocked
        title:
          type: string
          description: |
            A short, human-readable summary of the problem type. It does not change from occurrence to occurrence of the error.
          enum:
            - Blocked Merchant Acceptor
        status:
          type: integer
          description: |
            The HTTP status code generated by the origin server for this occurrence
            of the problem.
          enum:
            - 409
        detail:
          $ref: '#/components/schemas/errorDetail'
        instance:
          $ref: '#/components/schemas/errorInstance'
    NonMatchingIdempotentRequestErrorDetails:
      type: object
      required:
        - type
        - title
        - status
        - detail
        - instance
      properties:
        type:
          type: string
          description: |
            A relative URI reference, this property can be used to perform automated error handling.
          enum:
            - /silverflow/problems/idempotency/request-mismatch
        title:
          type: string
          description: |
            A short, human-readable summary of the problem type. It does not change from occurrence to occurrence of the error.
          enum:
            - Idempotent Request Mismatch
        status:
          type: integer
          description: |
            The HTTP status code generated by the origin server for this occurrence
            of the problem.
          enum:
            - 409
        detail:
          $ref: '#/components/schemas/errorDetail'
        instance:
          $ref: '#/components/schemas/errorInstance'
    UnexpectedMessageSystem:
      type: object
      required:
        - type
        - title
        - status
        - detail
        - instance
      properties:
        type:
          type: string
          description: |
            A relative URI reference, this property can be used to perform automated error handling.
          enum:
            - /silverflow/problems/bin/unexpected-message-system
        title:
          type: string
          description: |
            A short, human-readable summary of the problem type. It does not change from occurrence to occurrence of the error.
          enum:
            - Unexpected Message System
        status:
          type: integer
          description: |
            The HTTP status code generated by the origin server for this occurrence
            of the problem.
          enum:
            - 409
        detail:
          $ref: '#/components/schemas/errorDetail'
        instance:
          $ref: '#/components/schemas/errorInstance'
    IncompatibleCardNetworkForOperation:
      type: object
      required:
        - type
        - title
        - status
        - detail
        - instance
      properties:
        type:
          type: string
          description: |
            A relative URI reference, this property can be used to perform automated error handling.
          enum:
            - /silverflow/problems/charge/incompatible-card-network-for-operation
        title:
          type: string
          description: |
            A short, human-readable summary of the problem type. It does not change from occurrence to occurrence of the error.
          enum:
            - Incompatible Network For Operation
        status:
          type: integer
          description: |
            The HTTP status code generated by the origin server for this occurrence
            of the problem.
          enum:
            - 409
        detail:
          $ref: '#/components/schemas/errorDetail'
        instance:
          $ref: '#/components/schemas/errorInstance'
    IncompatibleCardErrorDetails:
      type: object
      required:
        - type
        - title
        - status
        - detail
        - instance
      properties:
        type:
          type: string
          description: |
            A relative URI reference, this property can be used to perform automated error handling.
          enum:
            - /silverflow/problems/charge/incompatible-card
        title:
          type: string
          description: |
            A short, human-readable summary of the problem type. It does not change from occurrence to occurrence of the error.
          enum:
            - Incompatible Card
        status:
          type: integer
          description: |
            The HTTP status code generated by the origin server for this occurrence
            of the problem.
          enum:
            - 409
        detail:
          $ref: '#/components/schemas/errorDetail'
        instance:
          $ref: '#/components/schemas/errorInstance'
    IdempotentRequestIsStillBeingProcessedErrorDetails:
      type: object
      required:
        - type
        - title
        - status
        - detail
        - instance
      properties:
        type:
          type: string
          description: |
            A relative URI reference, this property can be used to perform automated error handling.
          enum:
            - /silverflow/problems/idempotency/request-is-still-being-processed
        title:
          type: string
          description: |
            A short, human-readable summary of the problem type. It does not change from occurrence to occurrence of the error.
          enum:
            - Request Is Still Being Processed
        status:
          type: integer
          description: |
            The HTTP status code generated by the origin server for this occurrence
            of the problem.
          enum:
            - 409
        detail:
          $ref: '#/components/schemas/errorDetail'
        instance:
          $ref: '#/components/schemas/errorInstance'
    UnexpectedCurrencyErrorDetails:
      type: object
      required:
        - type
        - title
        - status
        - detail
        - instance
      properties:
        type:
          type: string
          description: |
            A relative URI reference, this property can be used to perform automated error handling.
          enum:
            - /silverflow/problems/bin/unexpected-currency
        title:
          $ref: '#/components/schemas/errorTitle'
        status:
          type: integer
          description: |
            The HTTP status code generated by the origin server for this occurrence
            of the problem.
          enum:
            - 409
        detail:
          $ref: '#/components/schemas/errorDetail'
        instance:
          $ref: '#/components/schemas/errorInstance'
    schemas-bepKey:
      description: Uniquely identifies a bep payment
      type: string
      pattern: ^bep-[a-zA-Z0-9]+$
      example: bep-1e1dAHhgstYTUhlphPzZ
    ChargeCreateBEPRequest:
      type: object
      required:
        - bepKey
        - type
      properties:
        bepKey:
          $ref: '#/components/schemas/schemas-bepKey'
        type:
          $ref: '#/components/schemas/BepChargeType'
        transactionReference:
          $ref: '#/components/schemas/transactionReference'
    ChargeCreateBEPResponse:
      type: object
      required:
        - key
        - created
        - status
        - amount
        - type
        - merchantAcceptorRef
        - fraudLiability
        - authorizationIsoFields
        - authentication
        - version
        - card
        - localTransactionDateTime
      description: |
        A BEP charge
      properties:
        key:
          $ref: '#/components/schemas/chargeKey'
        merchantAcceptorRef:
          $ref: '#/components/schemas/components-schemas-AcceptorRef'
        card:
          $ref: '#/components/schemas/OutputCard'
        amount:
          $ref: '#/components/schemas/common_Amount'
        type:
          $ref: '#/components/schemas/BepChargeType'
        status:
          $ref: '#/components/schemas/StatusBep'
        authentication:
          $ref: '#/components/schemas/ChargeAuthenticationBEP'
        localTransactionDateTime:
          $ref: '#/components/schemas/localTransactionDateTime'
        transactionReference:
          $ref: '#/components/schemas/transactionReference'
        fraudLiability:
          $ref: '#/components/schemas/fraudLiability'
        clearingMode:
          type: string
          enum:
            - auto
        authorizationIsoFields:
          $ref: '#/components/schemas/authorizationIsoFieldsBancontact'
        billingAddress:
          $ref: '#/components/schemas/BillingAddress'
        created:
          $ref: '#/components/schemas/openapi_components-schemas-created'
        lastModified:
          $ref: '#/components/schemas/components-schemas-lastModified'
        version:
          $ref: '#/components/schemas/schemas-version'
    IncompatibleAuthenticationStatus:
      type: object
      required:
        - type
        - title
        - status
        - detail
        - instance
      properties:
        type:
          type: string
          description: |
            A relative URI reference, this property can be used to perform automated error handling.
          enum:
            - /silverflow/problems/charge/incompatible-authentication-status
        title:
          type: string
          description: |
            A short, human-readable summary of the problem type. It does not change from occurrence to occurrence of the error.
          enum:
            - Incompatible Authentication Status
        status:
          type: integer
          description: |
            The HTTP status code generated by the origin server for this occurrence
            of the problem.
          enum:
            - 409
        detail:
          $ref: '#/components/schemas/errorDetail'
        instance:
          $ref: '#/components/schemas/errorInstance'
    TokenDetailsDigitalWallet:
      allOf:
        - $ref: '#/components/schemas/StoredTokenDetailsDigitalWallet'
        - type: object
          required:
            - threeDsCryptogram
          properties:
            threeDsCryptogram:
              $ref: '#/components/schemas/threeDsCryptogram'
    TokenDetails:
      description: |
        Further details about the token that was used.
        Required if `type.cardEntry` is `token` or `token-on-file`.
      oneOf:
        - $ref: '#/components/schemas/TokenDetailsNetwork'
        - $ref: '#/components/schemas/TokenDetailsDigitalWallet'
    FundingPayoutThreeDsAuthenticationResult:
      type: object
      required:
        - type
        - authenticationValue
        - directoryServerTransId
      description: |
        A 3DS result from either the [3DS Authentication endpoint](#operation/create3dsAuthentication) or an external party.
      properties:
        type:
          $ref: '#/components/schemas/result3DS'
        version:
          description: |
            The version of the 3DS protocol used for authentication.

            **Required for AMEX transactions.**
          type: string
          enum:
            - 2.2.0
        authenticationValue:
          $ref: '#/components/schemas/authenticationValue3ds'
        directoryServerTransId:
          type: string
          description: Transaction ID retrieved from the Directory Server (DS).
          pattern: ^[\w +-=.,:;!?$@()]+$
          minLength: 1
          maxLength: 36
          example: 5340af8a-5505-4bf6-abcd-123412341234
        eci:
          type: string
          description: |
            ECI value from the 3DS provider. Use this to explicitly override the ECI value in Visa authorization messages.
            This field has no impact for any other network. <span class="tag network-tag visa-tag">VISA</span>
          pattern: ^\d+$
          minLength: 2
          maxLength: 2
          example: '05'
    FundingTransactionType:
      type: string
      enum:
        - cryptocurrency
        - central-bank-digital-currency
        - stablecoin
        - blockchain-native-coin
        - non-fungible-token
      description: |
        In case of a special transaction type, this allows you to specify which one. <a class="experimental-tag-link" href="https://docs.silverflow.com/guides/api-lifecycle#tag/EXPERIMENTAL-Tag"><span class="tag experimental-tag">EXPERIMENTAL</span></a>

        - `cryptocurrency`: A transaction involving the purchasing of cryptocurrencies. Use this for Visa only if specific type of digital asset cannot be determined. Use this for Mastercard only when `fundingType` is `account-to-account`. <span class="tag network-tag visa-tag">VISA</span><span class="tag network-tag mastercard-tag">MASTERCARD</span>
        - `central-bank-digital-currency`: A transaction involving purchase of a Central Bank Digital Currency (CBDC). <span class="tag network-tag visa-tag">VISA</span>
        - `stablecoin`: A transaction involving purchase of stablecoins. <span class="tag network-tag visa-tag">VISA</span>
        - `blockchain-native-coin`: A transaction involving purchase of a non fiat backed blockchain coin. <span class="tag network-tag visa-tag">VISA</span>
        - `non-fungible-token`: A transaction involving purchase of a Non Fungible Token (NFT). <span class="tag network-tag visa-tag">VISA</span>
    SenderReceiverType:
      type: string
      enum:
        - consumer
        - organization
        - not-applicable
    SenderReceiverOrganizationName:
      allOf:
        - description: The name of the organization.
        - minLength: 1
        - maxLength: 140
        - $ref: '#/components/schemas/schemas-NameOfPeopleAndPlaces'
    AccountNumber:
      type: string
      description: The account number.
      pattern: ^[a-zA-Z0-9 !#$%&'()*+,./:;<=>?@^_`{|}~"\-\[\]\\]+$
      minLength: 1
      maxLength: 50
      example: '5286940020000007'
    FundingAddressInputForReceiver:
      type: object
      required:
        - countryCode
      additionalProperties: false
      description: |
        A physical postal address.
      properties:
        countryCode:
          oneOf:
            - $ref: '#/components/schemas/components-schemas-CountryCodeAlpha3'
            - $ref: '#/components/schemas/components-schemas-CountryCodeAlpha2'
            - $ref: '#/components/schemas/components-schemas-CountryCodeNumeric'
        stateOrProvince:
          $ref: '#/components/schemas/openapi_components-schemas-stateOrProvince'
        city:
          $ref: '#/components/schemas/openapi_components-schemas-city'
        line1:
          $ref: '#/components/schemas/openapi_components-schemas-line1'
        line2:
          $ref: '#/components/schemas/openapi_components-schemas-line2'
        postalCode:
          $ref: '#/components/schemas/openapi_components-schemas-postalCode'
    FundingReceiverInput:
      type: object
      description: Details of the recipient of the funds.
      required:
        - firstName
        - lastName
        - accountNumber
        - address
      properties:
        type:
          allOf:
            - description: The type of the receiver. **Mastercard only.** <a class="experimental-tag-link" href="https://docs.silverflow.com/guides/api-lifecycle#tag/EXPERIMENTAL-Tag"><span class="tag experimental-tag">EXPERIMENTAL</span></a>
            - $ref: '#/components/schemas/SenderReceiverType'
        organizationName:
          allOf:
            - description: |
                The name of the organization.
                Required when the `receiver.type = "organization"`. **Mastercard only.** <a class="experimental-tag-link" href="https://docs.silverflow.com/guides/api-lifecycle#tag/EXPERIMENTAL-Tag"><span class="tag experimental-tag">EXPERIMENTAL</span></a>
            - $ref: '#/components/schemas/SenderReceiverOrganizationName'
        firstName:
          allOf:
            - description: Recipient's first name.
            - $ref: '#/components/schemas/schemas-NameOfPeopleAndPlaces'
        middleName:
          allOf:
            - description: Recipient's middle name.
            - $ref: '#/components/schemas/schemas-NameOfPeopleAndPlaces'
        lastName:
          allOf:
            - description: Recipient's last name.
            - $ref: '#/components/schemas/schemas-NameOfPeopleAndPlaces'
        accountNumber:
          allOf:
            - description: The account number of the recipient.
            - $ref: '#/components/schemas/AccountNumber'
        accountNumberType:
          allOf:
            - description: The type of the `accountNumber`. This property is required if the `fundingType` is `account-to-account` or `person-to-person`.
            - $ref: '#/components/schemas/AccountNumberType'
        address:
          description: The address of the recipient.
          $ref: '#/components/schemas/FundingAddressInputForReceiver'
    charges-funding_Identification:
      description: Identification used to verify sender or receiver.
      type: object
      required:
        - value
        - type
      properties:
        type:
          description: |
            Type of identification.
          type: string
          enum:
            - date-of-birth
        value:
          description: |
            The value used for identification.

            For `type` `date-of-birth`, the value should be provided in the [ISO 8601 format](https://en.wikipedia.org/wiki/ISO_8601).
          type: string
          minLength: 1
          maxLength: 35
    FundingSenderInput:
      type: object
      description: |
        The details of the sender of the funds.

        **Must be provided for Visa transactions.**
      required:
        - firstName
        - lastName
        - address
      properties:
        type:
          allOf:
            - description: The type of the sender. **Mastercard only.** <a class="experimental-tag-link" href="https://docs.silverflow.com/guides/api-lifecycle#tag/EXPERIMENTAL-Tag"><span class="tag experimental-tag">EXPERIMENTAL</span></a>
            - $ref: '#/components/schemas/SenderReceiverType'
        organizationName:
          allOf:
            - description: |
                The name of the organization.
                Required when the `sender.type` = `"organization"`. **Mastercard only.** <a class="experimental-tag-link" href="https://docs.silverflow.com/guides/api-lifecycle#tag/EXPERIMENTAL-Tag"><span class="tag experimental-tag">EXPERIMENTAL</span></a>
            - $ref: '#/components/schemas/SenderReceiverOrganizationName'
        firstName:
          allOf:
            - description: Sender's first name.
            - $ref: '#/components/schemas/schemas-NameOfPeopleAndPlaces'
        middleName:
          allOf:
            - description: Sender's middle name.
            - $ref: '#/components/schemas/schemas-NameOfPeopleAndPlaces'
        lastName:
          allOf:
            - description: Sender's last name.
            - $ref: '#/components/schemas/schemas-NameOfPeopleAndPlaces'
        accountNumber:
          allOf:
            - description: The account number of the sender. This property is required if the `fundingType` is `account-to-account`.
            - $ref: '#/components/schemas/AccountNumber'
        accountNumberType:
          $ref: '#/components/schemas/AccountNumberType'
        address:
          allOf:
            - description: The address of the sender.
            - $ref: '#/components/schemas/schemas-AddressInput'
        identification:
          allOf:
            - description: Identification used to verify the sender.
            - $ref: '#/components/schemas/charges-funding_Identification'
        nationality:
          oneOf:
            - $ref: '#/components/schemas/components-schemas-CountryCodeAlpha3'
            - $ref: '#/components/schemas/components-schemas-CountryCodeAlpha2'
            - $ref: '#/components/schemas/components-schemas-CountryCodeNumeric'
    fundingScaExemptionRequest:
      type: string
      description: |
        This field can be used to indicate an acquirer SCA exemption request. Silverflow supports several SCA exemption request use cases, listed below:
          - Transaction risk analysis (TRA)
          - Low value payment (LVP)
          - Secure corporate payment (SCP)

        Please note that these exemption requests may or may not be honored by the issuer.
      enum:
        - scp
        - low-value
        - tra
    FundingChargeRequest:
      type: object
      required:
        - merchantAcceptorResolver
        - card
        - amount
        - type
        - receiver
      additionalProperties: false
      description: |
        Create a funding charge.
      properties:
        merchantAcceptorResolver:
          $ref: '#/components/schemas/schemas-AcceptorResolver'
        card:
          $ref: '#/components/schemas/schemas-Card'
        tokenDetails:
          $ref: '#/components/schemas/TokenDetails'
        amount:
          $ref: '#/components/schemas/common_Amount'
        type:
          $ref: '#/components/schemas/FundingChargeType'
        threeDsAuthenticationResult:
          $ref: '#/components/schemas/FundingPayoutThreeDsAuthenticationResult'
        localTransactionDateTime:
          $ref: '#/components/schemas/localTransactionDateTime'
        transactionType:
          $ref: '#/components/schemas/FundingTransactionType'
        transactionReference:
          $ref: '#/components/schemas/transactionReference'
        receiver:
          $ref: '#/components/schemas/FundingReceiverInput'
        sender:
          $ref: '#/components/schemas/FundingSenderInput'
        purposeOfPayment:
          $ref: '#/components/schemas/purposeOfPayment'
        dynamicDescriptor:
          $ref: '#/components/schemas/schemas-DynamicDescriptor'
        allowPartialApproval:
          $ref: '#/components/schemas/allowPartialApproval'
        scaExemptionRequest:
          $ref: '#/components/schemas/fundingScaExemptionRequest'
        clearingMode:
          allOf:
            - description: |
                The clearing method for the charge.
                - `auto`: The charge is cleared automatically as soon as possible. To delay clearing, provide a `clearAfter` timestamp.
                - `manual`: The charge must be manually cleared later.

                **Only supported for <span class="tag network-tag mastercard-tag">MASTERCARD</span>.**
            - $ref: '#/components/schemas/clearingMode'
        clearAfter:
          allOf:
            - description: |
                If provided, clearing will not occur before this point in time. This is only supported when using `clearingMode` `auto`.

                This value may be at most 6 months in the future from when the charge was created.

                This field is only supported for <span class="tag network-tag mastercard-tag">MASTERCARD</span>
            - $ref: '#/components/schemas/clearAfter'
        riskAssessmentKey:
          $ref: '#/components/schemas/riskAssessmentKey'
        foreignRetailer:
          $ref: '#/components/schemas/schemas-foreignRetailer'
        subMerchant:
          $ref: '#/components/schemas/subMerchant'
    FundingAddress:
      type: object
      required:
        - countryCode
      additionalProperties: false
      description: |
        A physical postal address
      properties:
        countryCode:
          $ref: '#/components/schemas/schemas-CountryCode'
        stateOrProvince:
          $ref: '#/components/schemas/openapi_components-schemas-stateOrProvince'
        city:
          $ref: '#/components/schemas/openapi_components-schemas-city'
        line1:
          $ref: '#/components/schemas/openapi_components-schemas-line1'
        line2:
          $ref: '#/components/schemas/openapi_components-schemas-line2'
        postalCode:
          $ref: '#/components/schemas/openapi_components-schemas-postalCode'
    charges-funding_FundingReceiver:
      type: object
      description: Required when `type.intent` is `funding`. Details of the recipient of the funds.
      required:
        - firstName
        - lastName
        - accountNumber
        - address
      properties:
        type:
          allOf:
            - description: The type of the receiver.
            - $ref: '#/components/schemas/SenderReceiverType'
        organizationName:
          allOf:
            - description: The name of the organization.
            - $ref: '#/components/schemas/SenderReceiverOrganizationName'
        firstName:
          allOf:
            - description: Recipient's first name.
            - $ref: '#/components/schemas/schemas-NameOfPeopleAndPlaces'
        middleName:
          allOf:
            - description: Recipient's middle name.
            - $ref: '#/components/schemas/schemas-NameOfPeopleAndPlaces'
        lastName:
          allOf:
            - description: Recipient's last name.
            - $ref: '#/components/schemas/schemas-NameOfPeopleAndPlaces'
        accountNumber:
          allOf:
            - description: The masked account number of the recipient.
            - $ref: '#/components/schemas/MaskedAccountNumber'
        accountNumberType:
          $ref: '#/components/schemas/AccountNumberType'
        address:
          allOf:
            - description: The address of the recipient.
            - $ref: '#/components/schemas/FundingAddress'
    charges-funding_FundingSender:
      type: object
      description: Details of the sender of the funds.
      required:
        - firstName
        - lastName
        - address
      properties:
        type:
          allOf:
            - description: The type of the sender.
            - $ref: '#/components/schemas/SenderReceiverType'
        organizationName:
          allOf:
            - description: The name of the organization.
            - $ref: '#/components/schemas/SenderReceiverOrganizationName'
        firstName:
          allOf:
            - description: Sender's first name.
            - $ref: '#/components/schemas/schemas-NameOfPeopleAndPlaces'
        middleName:
          allOf:
            - description: Sender's middle name.
            - $ref: '#/components/schemas/schemas-NameOfPeopleAndPlaces'
        lastName:
          allOf:
            - description: Sender's last name.
            - $ref: '#/components/schemas/schemas-NameOfPeopleAndPlaces'
        accountNumber:
          allOf:
            - description: The masked account number of the sender.
            - $ref: '#/components/schemas/MaskedAccountNumber'
        accountNumberType:
          $ref: '#/components/schemas/AccountNumberType'
        address:
          allOf:
            - description: The address of the sender.
            - $ref: '#/components/schemas/components-schemas-Address'
        identification:
          allOf:
            - description: Identification used to verify the sender.
            - $ref: '#/components/schemas/charges-funding_Identification'
        nationality:
          allOf:
            - description: The nationality of the sender. Only relevant for Visa transactions.
            - $ref: '#/components/schemas/schemas-CountryCode'
    FundingChargeResponse:
      type: object
      required:
        - merchantAcceptorRef
        - card
        - key
        - amount
        - localTransactionDateTime
        - type
        - receiver
        - status
        - fraudLiability
        - created
        - version
        - authentication
        - clearingMode
        - authorizationIsoFields
      description: |
        Create a funding charge.
      properties:
        key:
          $ref: '#/components/schemas/chargeKey'
        merchantAcceptorRef:
          $ref: '#/components/schemas/components-schemas-AcceptorRef'
        card:
          $ref: '#/components/schemas/OutputCard'
        amount:
          $ref: '#/components/schemas/common_Amount'
        type:
          $ref: '#/components/schemas/FundingChargeType'
        localTransactionDateTime:
          $ref: '#/components/schemas/localTransactionDateTime'
        transactionType:
          $ref: '#/components/schemas/FundingTransactionType'
        transactionReference:
          $ref: '#/components/schemas/transactionReference'
        receiver:
          $ref: '#/components/schemas/charges-funding_FundingReceiver'
        sender:
          $ref: '#/components/schemas/charges-funding_FundingSender'
        fraudLiability:
          $ref: '#/components/schemas/fraudLiability'
        status:
          $ref: '#/components/schemas/Status'
        authentication:
          $ref: '#/components/schemas/FundingPayoutChargeAuthentication'
        clearingMode:
          type: string
          enum:
            - none
            - auto
            - manual
          description: The clearing mode of the charge.
        authorizationIsoFields:
          $ref: '#/components/schemas/authorizationIsoFields'
        purposeOfPayment:
          $ref: '#/components/schemas/purposeOfPayment'
        dynamicDescriptor:
          $ref: '#/components/schemas/schemas-DynamicDescriptor'
        foreignRetailer:
          $ref: '#/components/schemas/schemas-foreignRetailer'
        subMerchant:
          $ref: '#/components/schemas/subMerchantResponse'
        tokenDetails:
          $ref: '#/components/schemas/StoredTokenDetails'
        allowPartialApproval:
          $ref: '#/components/schemas/allowPartialApproval'
        clearAfter:
          $ref: '#/components/schemas/clearAfter'
        created:
          $ref: '#/components/schemas/openapi_components-schemas-created'
        lastModified:
          $ref: '#/components/schemas/components-schemas-lastModified'
        version:
          $ref: '#/components/schemas/schemas-version'
    IncompatibleMccErrorDetails:
      type: object
      required:
        - type
        - title
        - status
        - detail
        - instance
      properties:
        type:
          type: string
          description: |
            A relative URI reference, this property can be used to perform automated error handling.
          enum:
            - /silverflow/problems/merchant-acceptor/incompatible-mcc
        title:
          type: string
          description: |
            A short, human-readable summary of the problem type. It does not change from occurrence to occurrence of the error.
          enum:
            - Incompatible Merchant Category Code
        status:
          type: integer
          description: |
            The HTTP status code generated by the origin server for this occurrence
            of the problem.
          enum:
            - 409
        detail:
          $ref: '#/components/schemas/errorDetail'
        instance:
          $ref: '#/components/schemas/errorInstance'
    expiryMonthOptional:
      allOf:
        - $ref: '#/components/schemas/components-schemas-expiryMonth'
      description: |
        The month the card expires. January is 1. Must be provided together with `expiryYear`, or omitted alongside it.
    expiryYearOptional:
      allOf:
        - $ref: '#/components/schemas/components-schemas-expiryYear'
      description: |
        The year the card expires including the century. Must be provided together with `expiryMonth`, or omitted alongside it.
    CardInputWithOptionalExpiryDate:
      type: object
      title: Card Input With Optional Expiry Date
      required:
        - number
      additionalProperties: false
      properties:
        number:
          $ref: '#/components/schemas/components-schemas-pan'
        expiryMonth:
          $ref: '#/components/schemas/expiryMonthOptional'
        expiryYear:
          $ref: '#/components/schemas/expiryYearOptional'
        cvc:
          $ref: '#/components/schemas/schemas-cvc'
        holderName:
          $ref: '#/components/schemas/schemas-holderName'
    CardWithOptionalExpiryDate:
      description: |-
        This field represents the card or token information. 
        The card credentials can either be passed directly in the request or be referenced using a `key`. 
      oneOf:
        - $ref: '#/components/schemas/CardInputWithOptionalExpiryDate'
        - $ref: '#/components/schemas/schemas-CardByProcessorTokenKey'
    VisaPayoutInitialTransactionReference:
      title: Visa Initial Transaction Reference
      type: object
      required:
        - initialTransactionIdentifier
      additionalProperties: false
      properties:
        initialTransactionIdentifier:
          type: string
          description: The Visa transaction identifier of the initial transaction
          pattern: ^[0-9]+$
          minLength: 1
          maxLength: 15
          example: '303219322378732'
    PayoutFundingSource:
      description: |
        The source of the funds for the payout.
        `mobile-money-account` is specific to Mastercard transactions. The rest are common to both networks.

        **Required for all Mastercard Payouts.**
      type: string
      enum:
        - credit
        - debit
        - prepaid
        - deposit-account
        - mobile-money-account
        - cash
        - other
    charges-payout_AccountNumberType:
      description: The type of the `accountNumber`.
      type: string
      enum:
        - card-account
        - iban-bank-account
        - bic-bank-account
        - rtn-bank-account
        - email
        - phone-number
        - wallet-id
        - social-network-id
        - other
    PayoutSenderInput:
      type: object
      description: |
        The details of the sender of the payout. If not provided or partially provided, the missing sender information will be filled in with the details taken from the merchant acceptor.

        **Must be provided for Mastercard transactions.**
      properties:
        type:
          allOf:
            - description: The type of the sender. **Mastercard only.** <a class="experimental-tag-link" href="https://docs.silverflow.com/guides/api-lifecycle#tag/EXPERIMENTAL-Tag"><span class="tag experimental-tag">EXPERIMENTAL</span></a>
            - $ref: '#/components/schemas/SenderReceiverType'
        organizationName:
          allOf:
            - description: |
                The name of the organization.
                Required when the `sender.type = "organization"`. **Mastercard only.** <a class="experimental-tag-link" href="https://docs.silverflow.com/guides/api-lifecycle#tag/EXPERIMENTAL-Tag"><span class="tag experimental-tag">EXPERIMENTAL</span></a>
            - $ref: '#/components/schemas/SenderReceiverOrganizationName'
        firstName:
          allOf:
            - description: Sender's first name.
            - $ref: '#/components/schemas/schemas-NameOfPeopleAndPlaces'
        middleName:
          allOf:
            - description: Sender's middle name.
            - $ref: '#/components/schemas/schemas-NameOfPeopleAndPlaces'
        lastName:
          allOf:
            - description: Sender's last name.
            - $ref: '#/components/schemas/schemas-NameOfPeopleAndPlaces'
        accountNumber:
          allOf:
            - description: |
                The account number of the sender.

                **Must be provided for Mastercard transactions.**
            - $ref: '#/components/schemas/AccountNumber'
        accountNumberType:
          allOf:
            - description: |
                The type of the `accountNumber`.

                **Must be provided for Mastercard transactions.**
            - $ref: '#/components/schemas/charges-payout_AccountNumberType'
        address:
          allOf:
            - description: Address of the sender.
            - $ref: '#/components/schemas/schemas-AddressInput'
        identification:
          allOf:
            - description: Identification used to verify the sender.
            - $ref: '#/components/schemas/Identification'
    PayoutReceiverInput:
      type: object
      description: |
        Details of the recipient of the payout.

        **Must be provided for Mastercard transactions.**
      properties:
        type:
          allOf:
            - description: The type of the receiver. **Mastercard only.** <a class="experimental-tag-link" href="https://docs.silverflow.com/guides/api-lifecycle#tag/EXPERIMENTAL-Tag"><span class="tag experimental-tag">EXPERIMENTAL</span></a>
            - $ref: '#/components/schemas/SenderReceiverType'
        organizationName:
          allOf:
            - description: |
                The name of the organization.
                Required when the `receiver.type` = `"organization"`. **Mastercard only.** <a class="experimental-tag-link" href="https://docs.silverflow.com/guides/api-lifecycle#tag/EXPERIMENTAL-Tag"><span class="tag experimental-tag">EXPERIMENTAL</span></a>
            - $ref: '#/components/schemas/SenderReceiverOrganizationName'
        firstName:
          allOf:
            - description: |
                Recipient's first name.

                **Must be provided for Mastercard transactions.**
            - $ref: '#/components/schemas/schemas-NameOfPeopleAndPlaces'
        middleName:
          allOf:
            - description: Recipient's middle name.
            - $ref: '#/components/schemas/schemas-NameOfPeopleAndPlaces'
        lastName:
          allOf:
            - description: |
                Recipient's last name.

                **Must be provided for Mastercard transactions.**
            - $ref: '#/components/schemas/schemas-NameOfPeopleAndPlaces'
        accountNumber:
          allOf:
            - description: The account number of the recipient.
            - $ref: '#/components/schemas/AccountNumber'
        accountNumberType:
          $ref: '#/components/schemas/charges-payout_AccountNumberType'
        address:
          allOf:
            - description: The address of the recipient.
            - $ref: '#/components/schemas/schemas-AddressInput'
        identification:
          allOf:
            - description: Identification used to verify the receiver.
            - $ref: '#/components/schemas/Identification'
    PayoutTransactionType:
      type: string
      enum:
        - tax-refund
        - cryptocurrency
        - central-bank-digital-currency
        - stablecoin
        - blockchain-native-coin
        - non-fungible-token
      description: |
        In case of a special transaction type, this allows you to specify which one.

        - `tax-refund`: A transaction involving a tax rebate. Only allowed for `payoutType` of `general-funds-disbursement`. Required for USA cardholders. <span class="tag network-tag visa-tag">VISA</span>
        - `cryptocurrency`: A transaction involving the purchasing of cryptocurrencies. Use this for Visa only if specific type of digital asset cannot be determined. Only allowed for Mastercard when `payoutType` is `account-to-account`. <span class="tag network-tag visa-tag">VISA</span><span class="tag network-tag mastercard-tag">MASTERCARD</span>
        - `central-bank-digital-currency`: A transaction involving purchase of a Central Bank Digital Currency (CBDC). <span class="tag network-tag visa-tag">VISA</span>
        - `stablecoin`: A transaction involving purchase of stablecoins. <span class="tag network-tag visa-tag">VISA</span>
        - `blockchain-native-coin`: A transaction involving purchase of a non fiat backed blockchain coin. <span class="tag network-tag visa-tag">VISA</span>
        - `non-fungible-token`: A transaction involving purchase of a Non Fungible Token (NFT). <span class="tag network-tag visa-tag">VISA</span>
    PayoutChargeRequest:
      type: object
      required:
        - merchantAcceptorResolver
        - card
        - amount
        - type
      additionalProperties: false
      description: |
        Create a payout charge
      properties:
        merchantAcceptorResolver:
          $ref: '#/components/schemas/schemas-AcceptorResolver'
        card:
          $ref: '#/components/schemas/CardWithOptionalExpiryDate'
        amount:
          $ref: '#/components/schemas/common_Amount'
        type:
          $ref: '#/components/schemas/PayoutChargeType'
        initialTransactionReferences:
          description: Network-specific identifiers from the original authorization.
          oneOf:
            - $ref: '#/components/schemas/VisaPayoutInitialTransactionReference'
        threeDsAuthenticationResult:
          $ref: '#/components/schemas/FundingPayoutThreeDsAuthenticationResult'
        localTransactionDateTime:
          $ref: '#/components/schemas/localTransactionDateTime'
        transactionReference:
          $ref: '#/components/schemas/transactionReference'
        fundingSource:
          $ref: '#/components/schemas/PayoutFundingSource'
        sender:
          $ref: '#/components/schemas/PayoutSenderInput'
        receiver:
          $ref: '#/components/schemas/PayoutReceiverInput'
        transactionType:
          $ref: '#/components/schemas/PayoutTransactionType'
        purposeOfPayment:
          $ref: '#/components/schemas/purposeOfPayment'
        dynamicDescriptor:
          $ref: '#/components/schemas/schemas-DynamicDescriptor'
        clearingMode:
          allOf:
            - description: |
                The clearing method for the charge. 
                - `auto`: The charge is cleared automatically as soon as possible. To delay clearing, provide a `clearAfter` timestamp.
                - `manual`: The charge must be manually cleared later.

                **Only supported for <span class="tag network-tag mastercard-tag">MASTERCARD</span>.**
            - $ref: '#/components/schemas/clearingMode'
        clearAfter:
          allOf:
            - description: |
                If provided, clearing will not occur before this point in time. This is only supported when using `clearingMode` `auto`.

                The value may be at most 6 months in the future from when the charge was created.

                This field is only supported for <span class="tag network-tag mastercard-tag">MASTERCARD</span>
            - $ref: '#/components/schemas/clearAfter'
        riskAssessmentKey:
          $ref: '#/components/schemas/riskAssessmentKey'
        foreignRetailer:
          $ref: '#/components/schemas/schemas-foreignRetailer'
        subMerchant:
          $ref: '#/components/schemas/subMerchant'
    PayoutSenderAddress:
      type: object
      required:
        - countryCode
        - city
        - line1
        - postalCode
      additionalProperties: false
      description: |
        A physical postal address returned in payout sender responses. Fields are typed as strings
        without pattern validation, as payout sender address may originate from the merchant (set to the merchant's registered address when the field was not set in the request).
      properties:
        countryCode:
          $ref: '#/components/schemas/schemas-CountryCode'
        stateOrProvince:
          type: string
          minLength: 1
          maxLength: 120
          description: The state (US) or province (non-US) of the address.
        city:
          type: string
          minLength: 1
          maxLength: 120
          description: The city of the address.
        line1:
          type: string
          minLength: 1
          maxLength: 120
          description: Address line 1
        line2:
          type: string
          minLength: 1
          maxLength: 120
          description: Address line 2
        postalCode:
          type: string
          minLength: 1
          maxLength: 10
          description: The postal code of the address.
    charges-payout_PayoutSender:
      type: object
      description: The details of the sender of the payout.
      properties:
        type:
          allOf:
            - description: The type of the sender.
            - $ref: '#/components/schemas/SenderReceiverType'
        organizationName:
          allOf:
            - description: The name of the organization.
            - $ref: '#/components/schemas/SenderReceiverOrganizationName'
        firstName:
          allOf:
            - description: Sender's first name.
            - $ref: '#/components/schemas/schemas-NameOfPeopleAndPlaces'
        middleName:
          allOf:
            - description: Sender's middle name.
            - $ref: '#/components/schemas/schemas-NameOfPeopleAndPlaces'
        lastName:
          allOf:
            - description: Sender's last name.
            - $ref: '#/components/schemas/schemas-NameOfPeopleAndPlaces'
        accountNumber:
          allOf:
            - description: The masked account number of the sender.
            - $ref: '#/components/schemas/MaskedAccountNumber'
        accountNumberType:
          $ref: '#/components/schemas/charges-payout_AccountNumberType'
        address:
          allOf:
            - description: Address of the sender.
            - $ref: '#/components/schemas/PayoutSenderAddress'
        identification:
          allOf:
            - description: Identification used to verify the sender.
            - $ref: '#/components/schemas/Identification'
    charges-payout_PayoutReceiver:
      type: object
      description: Details of the recipient of the payout.
      properties:
        type:
          allOf:
            - description: The type of the receiver.
            - $ref: '#/components/schemas/SenderReceiverType'
        organizationName:
          allOf:
            - description: The name of the organization.
            - $ref: '#/components/schemas/SenderReceiverOrganizationName'
        firstName:
          allOf:
            - description: Recipient's first name.
            - $ref: '#/components/schemas/schemas-NameOfPeopleAndPlaces'
        middleName:
          allOf:
            - description: Recipient's middle name.
            - $ref: '#/components/schemas/schemas-NameOfPeopleAndPlaces'
        lastName:
          allOf:
            - description: Recipient's last name.
            - $ref: '#/components/schemas/schemas-NameOfPeopleAndPlaces'
        accountNumber:
          allOf:
            - description: The masked account number of the recipient.
            - $ref: '#/components/schemas/MaskedAccountNumber'
        accountNumberType:
          $ref: '#/components/schemas/charges-payout_AccountNumberType'
        address:
          allOf:
            - description: The address of the recipient.
            - $ref: '#/components/schemas/components-schemas-Address'
        identification:
          allOf:
            - description: Identification used to verify the receiver.
            - $ref: '#/components/schemas/Identification'
    PayoutChargeResponse:
      type: object
      description: |
        The created payout charge
      required:
        - key
        - created
        - status
        - type
        - amount
        - merchantAcceptorRef
        - clearingMode
        - authorizationIsoFields
        - authentication
        - card
        - version
        - localTransactionDateTime
      properties:
        key:
          $ref: '#/components/schemas/chargeKey'
        merchantAcceptorRef:
          $ref: '#/components/schemas/components-schemas-AcceptorRef'
        card:
          $ref: '#/components/schemas/OutputCard'
        amount:
          $ref: '#/components/schemas/common_Amount'
        type:
          $ref: '#/components/schemas/PayoutChargeType'
        clearingMode:
          type: string
          enum:
            - none
            - auto
            - manual
          description: The clearing mode of the charge.
        status:
          $ref: '#/components/schemas/StatusWithoutPartialApproval'
        authentication:
          $ref: '#/components/schemas/FundingPayoutChargeAuthentication'
        localTransactionDateTime:
          $ref: '#/components/schemas/localTransactionDateTime'
        transactionType:
          $ref: '#/components/schemas/PayoutTransactionType'
        transactionReference:
          $ref: '#/components/schemas/transactionReference'
        fundingSource:
          $ref: '#/components/schemas/PayoutFundingSource'
        authorizationIsoFields:
          $ref: '#/components/schemas/authorizationIsoFields'
        sender:
          $ref: '#/components/schemas/charges-payout_PayoutSender'
        receiver:
          $ref: '#/components/schemas/charges-payout_PayoutReceiver'
        purposeOfPayment:
          $ref: '#/components/schemas/purposeOfPayment'
        dynamicDescriptor:
          $ref: '#/components/schemas/schemas-DynamicDescriptor'
        foreignRetailer:
          $ref: '#/components/schemas/schemas-foreignRetailer'
        subMerchant:
          $ref: '#/components/schemas/subMerchantResponse'
        clearAfter:
          $ref: '#/components/schemas/clearAfter'
        created:
          $ref: '#/components/schemas/openapi_components-schemas-created'
        lastModified:
          $ref: '#/components/schemas/components-schemas-lastModified'
        version:
          $ref: '#/components/schemas/schemas-version'
    PosCardInput:
      type: object
      required:
        - number
        - expiryMonth
        - expiryYear
      additionalProperties: false
      description: Card data
      properties:
        number:
          $ref: '#/components/schemas/components-schemas-pan'
        expiryMonth:
          $ref: '#/components/schemas/components-schemas-expiryMonth'
        expiryYear:
          $ref: '#/components/schemas/components-schemas-expiryYear'
        createProcessorToken:
          type: boolean
          default: false
          description: |
            When set to `true`, Silverflow will [create a processor token](https://docs.silverflow.com/guides/card-tokenization) for the provided `card` and return a processor token key in the response field `card.processorTokenKey`.

            **This flag is non-blocking.** When failing to create a processor token, the authorization will take place as usual and no `card.processorTokenKey` will be returned.
    RequestAmountBreakdown:
      allOf:
        - $ref: '#/components/schemas/BaseAmountBreakdown'
        - type: object
          properties:
            cashback:
              allOf:
                - description: |
                    The cashback amount included in the total transaction `value` in minor units.
                    For example `$12.34` should be encoded as `1234`.

                    The following requirements apply:
                    - `amount.breakdown.cashback` is greater than 0.
                    - `type.intent` must be `purchase`.
                    - `emvData` must be present and include valid data for tag `9F03`.
                    - `partialApproval` is not requested.

                    **Currently only supported for Visa and Mastercard.**
                - $ref: '#/components/schemas/posAmountValue'
    RequestPosAmount:
      type: object
      required:
        - value
        - currency
      additionalProperties: false
      description: |
        The amount encoded as an object with a `value` in minor units and a `currency` code.

        An optional `breakdown` can be provided to indicate specific sub-amounts.
      properties:
        value:
          allOf:
            - description: |
                The full transaction amount in minor units. For example `$12.34` should be encoded as `1234`.

                If a `breakdown` is provided, it must exactly add up to this `value`.
            - $ref: '#/components/schemas/posAmountValue'
        currency:
          $ref: '#/components/schemas/common_currencyCode'
        breakdown:
          $ref: '#/components/schemas/RequestAmountBreakdown'
    charges-pos_terminalEntryMode:
      description: |
        This field indicates the method used for PAN entry on 
        the terminal to initiate the transaction.
      type: string
      enum:
        - contactless
        - manual-entry
        - chip
        - magstripe
        - magstripe-fallback
    charges-pos_ChargePosType:
      description: Describes the kind of POS charge the merchant wants to submit.
      type: object
      required:
        - intent
        - cardEntry
        - order
        - terminalEntryMode
      properties:
        intent:
          $ref: '#/components/schemas/intentPos'
        cardEntry:
          $ref: '#/components/schemas/cardEntryPos'
        order:
          $ref: '#/components/schemas/orderPos'
        terminalEntryMode:
          $ref: '#/components/schemas/charges-pos_terminalEntryMode'
        sequence:
          $ref: '#/components/schemas/sequencePos'
    track2Data:
      type: string
      description: |
        The information encoded on track 2 of the card magnetic stripe as defined in the ISO 7813 specification, including data element separator but excluding the beginning and ending sentinels and the LRC (Longitudinal Redundancy Check) character.
        This property is mandatory when the `terminalEntryMode` is `chip`, `contactless`,`magstripe` or `magstripe-fallback`.
      pattern: ^[A-Fa-f0-9]+$
      minLength: 1
      maxLength: 37
      example: 6799995700000004054D25122010875408456
    emvData:
      type: string
      description: |
        This field contains integrated circuit card (ICC) related binary data that is transmitted from the ICC to the card 
        issuer and from the card issuer to the ICC. This field is formatted as 510 hexadecimal characters, which translates to 255 bytes.
      pattern: ^[A-Fa-f0-9]+$
      minLength: 1
      maxLength: 510
      example: 5F2A0209785F34010082027C008407A0000000093510950500000080009A031104119C01009F02060000000043149F090200029F10120210A780030400009F2100000000000000FF9F1A0202509F26082E3EAB17CEEC500C9F2701809F330360A0409F34034403029F3501229F360200169F3704BC75E9B39F4005A00090F0019F4C089F21B02E0EEAC454
    cardSequenceNumber:
      type: string
      description: |
        Distinguishes among separate cards having the same PAN.
        This is required if EMV tag 5F34 is present/personalized on the card chip.
      pattern: ^[0-9]+$
      minLength: 1
      maxLength: 3
      example: '001'
    PinBlockDataIso0Iso1:
      type: string
      title: ISO-0/ISO-1 Block
      description: |
        Contains encrypted PIN information, formatted as an `ISO-0`/`ISO-1` block of 16 hexadecimal characters.
      pattern: ^[A-Fa-f0-9]+$
      minLength: 16
      maxLength: 16
      example: 32CF86E514CB24FE
    PinBlockZoneId:
      type: string
      pattern: ^[a-zA-Z0-9()+,\-.:=@;$_!*\/?#|]*$
      minLength: 1
      maxLength: 128
      description: ID of the encryption zone.
      example: my-zone
    PinBlockKeyId:
      type: string
      pattern: ^[a-zA-Z0-9()+,\-.:=@;$_!*\/?#|]*$
      minLength: 1
      maxLength: 128
      description: Encryption key in the specified zone to use.
    PinBlockIso0Iso1:
      type: object
      title: ISO-0/ISO-1 PIN Block
      description: PIN block related data in `ISO-0` or `ISO-1` format.
      additionalProperties: false
      required:
        - format
        - block
        - zoneId
        - keyId
      properties:
        format:
          type: string
          description: Indicates the type of PIN block format used.
          enum:
            - ISO-0
            - ISO-1
        block:
          $ref: '#/components/schemas/PinBlockDataIso0Iso1'
        zoneId:
          $ref: '#/components/schemas/PinBlockZoneId'
        keyId:
          $ref: '#/components/schemas/PinBlockKeyId'
    PinBlockDataIso4:
      type: string
      title: ISO-4 Block
      description: |
        Contains encrypted PIN information, formatted as an `ISO-4` block of 32 hexadecimal characters.
      pattern: ^[A-Fa-f0-9]+$
      minLength: 32
      maxLength: 32
      example: 32CF86E514CB24FE32CF86E514CB24FE
    PinBlockIso4:
      type: object
      title: ISO-4 PIN Block
      description: PIN block related data in `ISO-4` format.
      additionalProperties: false
      required:
        - block
        - format
        - zoneId
        - keyId
      properties:
        format:
          type: string
          description: Indicates the type of PIN block format used.
          enum:
            - ISO-4
        block:
          $ref: '#/components/schemas/PinBlockDataIso4'
        zoneId:
          $ref: '#/components/schemas/PinBlockZoneId'
        keyId:
          $ref: '#/components/schemas/PinBlockKeyId'
    PinBlock:
      type: object
      description: PIN block related data.
      oneOf:
        - $ref: '#/components/schemas/PinBlockIso0Iso1'
        - $ref: '#/components/schemas/PinBlockIso4'
    pointOfSaleAddressInput:
      allOf:
        - description: |
            The address of the point of sale where this transaction takes place.
            When provided, this address is used for this transaction instead of the `pointOfSaleAddress` on the merchant acceptor.
            If omitted, the `pointOfSaleAddress` on the merchant acceptor is used.
            If neither is present, the request will be rejected.

            The `stateOrProvince` value is required for the United States and Canada and must be a recognised 2-letter uppercase state/province code.
        - $ref: '#/components/schemas/schemas-AddressInput'
    ChargeCreatePos:
      type: object
      required:
        - merchantAcceptorResolver
        - card
        - amount
        - type
        - terminal
      description: |
        Create a POS charge
      properties:
        merchantAcceptorResolver:
          $ref: '#/components/schemas/schemas-AcceptorResolver'
        card:
          $ref: '#/components/schemas/PosCardInput'
        amount:
          $ref: '#/components/schemas/RequestPosAmount'
        type:
          $ref: '#/components/schemas/charges-pos_ChargePosType'
        localTransactionDateTime:
          $ref: '#/components/schemas/localTransactionDateTime'
        transactionReference:
          $ref: '#/components/schemas/transactionReference'
        track2Data:
          $ref: '#/components/schemas/track2Data'
        emvData:
          $ref: '#/components/schemas/emvData'
        cardSequenceNumber:
          $ref: '#/components/schemas/cardSequenceNumber'
        pinBlock:
          $ref: '#/components/schemas/PinBlock'
        terminal:
          $ref: '#/components/schemas/Terminal'
        allowPartialApproval:
          $ref: '#/components/schemas/allowPartialApproval'
        subMerchant:
          $ref: '#/components/schemas/subMerchant'
        pointOfSaleAddress:
          $ref: '#/components/schemas/pointOfSaleAddressInput'
        clearingMode:
          $ref: '#/components/schemas/clearingMode'
        clearAfter:
          $ref: '#/components/schemas/clearAfter'
        dynamicDescriptor:
          $ref: '#/components/schemas/schemas-DynamicDescriptor'
    newEmvData:
      type: string
      description: |
        This field contains integrated circuit card (ICC) related binary data that is transmitted from the card issuer to the ICC. This field is formatted as 510 hexadecimal characters, which translates to 255 bytes.

        If this field is present in the response message, it should be passed without modification to the ICC.
      pattern: ^[A-Fa-f0-9]+$
      minLength: 1
      maxLength: 510
      example: 5F2A0209785F34010082027C008407A0000000093510950500000080009A031104119C01009F02060000000043149F090200029F10120210A780030400009F2100000000000000FF9F1A0202509F26082E3EAB17CEEC500C9F2701809F330360A0409F34034403029F3501229F360200169F3704BC75E9B39F4005A00090F0019F4C089F21B02E0EEAC454
    terminalAction:
      description: Indicates if the issuer requests a PIN in Single Tap mode, or switching interface.
      type: string
      enum:
        - requestPin
        - switchInterface
    charges-pos_PosAuthorizationIsoFields:
      type: object
      required:
        - responseCode
        - responseCodeDescription
        - networkCode
        - systemTraceAuditNumber
        - retrievalReferenceNumber
        - eci
        - networkSpecificFields
      description: Object containing the raw values from the ISO8583 response message received from the network.
      properties:
        responseCode:
          $ref: '#/components/schemas/isoFieldResponseCode'
        responseCodeDescription:
          $ref: '#/components/schemas/isoFieldResponseCodeDescription'
        authorizationCode:
          $ref: '#/components/schemas/isoFieldAuthorizationCode'
        networkCode:
          $ref: '#/components/schemas/isoFieldNetworkCode'
        systemTraceAuditNumber:
          $ref: '#/components/schemas/isoFieldSystemTraceAuditNumber'
        retrievalReferenceNumber:
          $ref: '#/components/schemas/isoFieldRetrievalReferenceNumber'
        eci:
          type: string
          enum:
            - '00'
        networkSpecificFields:
          oneOf:
            - $ref: '#/components/schemas/amexSpecificFields'
            - $ref: '#/components/schemas/discoverSpecificFields'
            - $ref: '#/components/schemas/mastercardSpecificFields'
            - $ref: '#/components/schemas/visaSpecificFields'
    ChargeCreatePosResponse:
      type: object
      required:
        - key
        - created
        - status
        - type
        - merchantAcceptorRef
        - authorizationIsoFields
        - amount
        - version
        - card
        - localTransactionDateTime
        - terminal
      description: |
        A POS charge
      properties:
        key:
          $ref: '#/components/schemas/chargeKey'
        merchantAcceptorRef:
          $ref: '#/components/schemas/components-schemas-AcceptorRef'
        card:
          $ref: '#/components/schemas/OutputCard'
        amount:
          allOf:
            - description: The amount encoded as an object with a `value` in minor units and a `currency` code. In case of a (partially) approved charge, this is the authorized amount.
            - $ref: '#/components/schemas/ResponsePosAmount'
        type:
          $ref: '#/components/schemas/charges-pos_ChargePosType'
        status:
          $ref: '#/components/schemas/StatusPos'
        localTransactionDateTime:
          $ref: '#/components/schemas/localTransactionDateTime'
        transactionReference:
          $ref: '#/components/schemas/transactionReference'
        newEmvData:
          $ref: '#/components/schemas/newEmvData'
        terminalAction:
          $ref: '#/components/schemas/terminalAction'
        authorizationIsoFields:
          $ref: '#/components/schemas/charges-pos_PosAuthorizationIsoFields'
        allowPartialApproval:
          $ref: '#/components/schemas/allowPartialApproval'
        subMerchant:
          $ref: '#/components/schemas/subMerchantResponse'
        pointOfSaleAddress:
          $ref: '#/components/schemas/pointOfSaleAddress'
        clearingMode:
          $ref: '#/components/schemas/clearingMode'
        clearAfter:
          $ref: '#/components/schemas/clearAfter'
        dynamicDescriptor:
          $ref: '#/components/schemas/schemas-DynamicDescriptor'
        terminal:
          $ref: '#/components/schemas/Terminal'
        created:
          $ref: '#/components/schemas/openapi_components-schemas-created'
        lastModified:
          $ref: '#/components/schemas/components-schemas-lastModified'
        version:
          $ref: '#/components/schemas/schemas-version'
    MissingPosAddressErrorDetails:
      type: object
      required:
        - type
        - title
        - status
        - detail
        - instance
      properties:
        type:
          type: string
          description: |
            A relative URI reference, this property can be used to perform automated error handling.
          enum:
            - /silverflow/problems/merchant-acceptor/missing-pos-address
        title:
          type: string
          description: |
            A short, human-readable summary of the problem type. It does not change from occurrence to occurrence of the error.
          enum:
            - Missing Point of Sale Address
        status:
          type: integer
          description: |
            The HTTP status code generated by the origin server for this occurrence
            of the problem.
          enum:
            - 409
        detail:
          $ref: '#/components/schemas/errorDetail'
        instance:
          $ref: '#/components/schemas/errorInstance'
    AtmCardInput:
      type: object
      description: Card details for ATM transactions.
      additionalProperties: false
      required:
        - number
        - expiryMonth
        - expiryYear
      properties:
        number:
          type: string
          description: The primary account number (PAN) of the card.
          pattern: ^[0-9]+$
          minLength: 12
          maxLength: 19
          example: '5413330089010640'
        expiryMonth:
          type: integer
          description: The expiry month of the card (1-12).
          minimum: 1
          maximum: 12
          example: 12
        expiryYear:
          type: integer
          description: The expiry year of the card (four digits).
          minimum: 1950
          maximum: 2200
          example: 2025
    charges-atm_atmTerminalEntryMode:
      description: |
        This field indicates the method used for PAN entry on the ATM terminal to initiate the transaction.

        If `chip`, `contactless`, or `magstripe`, then `track2data` is required.
        If `chip` or `contactless`, then `emvData` is required.
      type: string
      enum:
        - chip
        - contactless
        - contactless-magstripe
        - magstripe
        - magstripe-fallback
    ChargeAtmType:
      description: |
        Describes the kind of ATM charge.
      type: object
      additionalProperties: false
      required:
        - intent
        - terminalEntryMode
      properties:
        intent:
          $ref: '#/components/schemas/intentAtm'
        terminalEntryMode:
          $ref: '#/components/schemas/charges-atm_atmTerminalEntryMode'
    AtmAmount:
      type: object
      additionalProperties: false
      description: The amount for ATM transactions
      required:
        - value
        - currency
      properties:
        value:
          type: integer
          format: int64
          description: The amount in minor units.
          minimum: 1
          maximum: 999999999999
          example: 10000
        currency:
          $ref: '#/components/schemas/common_currencyCode'
    DccDisabled:
      type: object
      description: DCC is not enabled for this transaction
      required:
        - enabled
      additionalProperties: false
      properties:
        enabled:
          type: boolean
          enum:
            - false
          description: Specifies if DCC is enabled for this transaction
    DccEnabled:
      type: object
      description: DCC is enabled for this transaction
      required:
        - enabled
        - preConversionAmount
      additionalProperties: false
      properties:
        enabled:
          type: boolean
          enum:
            - true
          description: Specifies if DCC is enabled for this transaction
        preConversionAmount:
          allOf:
            - description: The amount before currency conversion, in the cardholder's home currency
            - $ref: '#/components/schemas/AtmAmount'
    Dcc:
      description: |
        Dynamic Currency Conversion (DCC) allows cardholders to see the transaction amount in their home currency at the ATM.
      oneOf:
        - $ref: '#/components/schemas/DccDisabled'
        - $ref: '#/components/schemas/DccEnabled'
    accountSource:
      description: |
        Indicates the type of account from which the funds should be withdrawn.
      type: string
      enum:
        - unspecified
        - savings
        - checking
        - credit
    AtmTerminal:
      type: object
      description: Details about the ATM terminal.
      required:
        - id
        - capabilities
      additionalProperties: false
      properties:
        id:
          type: string
          description: ATM terminal's ID
          pattern: ^[a-zA-Z0-9]+$
          minLength: 1
          maxLength: 8
          example: ATM001
        capabilities:
          type: array
          description: |
            The capabilities of the ATM terminal. This can be one or multiple.
          minItems: 1
          items:
            $ref: '#/components/schemas/AtmTerminalCapability'
          example:
            - contactChip
            - contactlessChip
            - contactMagStripe
            - contactlessMagStripe
    ChargeCreateAtm:
      type: object
      additionalProperties: false
      required:
        - merchantAcceptorResolver
        - card
        - amount
        - type
        - accountSource
        - terminal
        - pinBlock
      description: |
        Create an ATM charge
      properties:
        merchantAcceptorResolver:
          $ref: '#/components/schemas/schemas-AcceptorResolver'
        card:
          $ref: '#/components/schemas/AtmCardInput'
        type:
          $ref: '#/components/schemas/ChargeAtmType'
        amount:
          $ref: '#/components/schemas/AtmAmount'
        dcc:
          $ref: '#/components/schemas/Dcc'
        accountSource:
          $ref: '#/components/schemas/accountSource'
        terminal:
          $ref: '#/components/schemas/AtmTerminal'
        localTransactionDateTime:
          $ref: '#/components/schemas/localTransactionDateTime'
        transactionReference:
          $ref: '#/components/schemas/transactionReference'
        track2Data:
          allOf:
            - description: |
                The information encoded on track 2 of the card magnetic stripe as defined in the ISO 7813 specification, 
                including data element separator but excluding the beginning and ending sentinels and the LRC (Longitudinal Redundancy Check) character.

                Required if `type.terminalEntryMode` is `chip`, `contactless`, or `magstripe`.
            - $ref: '#/components/schemas/track2Data'
        cardSequenceNumber:
          $ref: '#/components/schemas/cardSequenceNumber'
        emvData:
          allOf:
            - description: |
                This field contains integrated circuit card (ICC) related binary data that is transmitted from the ICC to the card 
                issuer and from the card issuer to the ICC. This field is formatted as 510 hexadecimal characters, which translates to 255 bytes.

                Required if `type.terminalEntryMode` is `chip` or `contactless`.
            - $ref: '#/components/schemas/emvData'
        pinBlock:
          $ref: '#/components/schemas/PinBlockIso4'
        clearingMode:
          $ref: '#/components/schemas/clearingMode'
        clearAfter:
          $ref: '#/components/schemas/clearAfter'
    OutputCardAtm:
      type: object
      required:
        - maskedNumber
      additionalProperties: false
      description: |
        Card data for ATM transactions. ATM transactions do not support processor tokenization.
      properties:
        maskedNumber:
          type: string
          description: |
            The card number used to create this charge, masked according to PCI standards. For card numbers with 16 or more digits, the first 8 and the last 4 digits are visible. For card numbers with 13-15 digits, the first 6 and the last 4 digits are visible. For cards numbers with less than 13 digits, the first 6 and last 2 digits are visible.
    StatusAtm:
      type: object
      required:
        - authorization
        - clearing
      description: |
        The status property provides a high-level representation of the lifecycle of an ATM charge. ATM charges do not support authentication (no 3DS).
      properties:
        authorization:
          type: string
          description: Authorization status of the ATM charge.
          enum:
            - approved
            - declined
            - reversed
          example: approved
        clearing:
          $ref: '#/components/schemas/ClearingStatus'
    BalanceInformation:
      type: object
      additionalProperties: false
      description: |
        Account balance returned by the issuer.
      required:
        - accountSource
        - amount
        - currency
      properties:
        accountSource:
          $ref: '#/components/schemas/accountSource'
        amount:
          type: integer
          format: int64
          description: The available balance, in minor units.
          minimum: 0
          maximum: 999999999999
          example: 125000
        currency:
          $ref: '#/components/schemas/common_currencyCode'
    AtmAuthorizationIsoFields:
      type: object
      required:
        - responseCode
        - responseCodeDescription
        - networkCode
        - systemTraceAuditNumber
        - retrievalReferenceNumber
        - networkSpecificFields
      description: Object containing the raw values from the ISO8583 response message received from the network for ATM transactions.
      properties:
        responseCode:
          $ref: '#/components/schemas/isoFieldResponseCode'
        responseCodeDescription:
          $ref: '#/components/schemas/isoFieldResponseCodeDescription'
        authorizationCode:
          $ref: '#/components/schemas/isoFieldAuthorizationCode'
        networkCode:
          $ref: '#/components/schemas/isoFieldNetworkCode'
        systemTraceAuditNumber:
          $ref: '#/components/schemas/isoFieldSystemTraceAuditNumber'
        retrievalReferenceNumber:
          $ref: '#/components/schemas/isoFieldRetrievalReferenceNumber'
        networkSpecificFields:
          oneOf:
            - $ref: '#/components/schemas/mastercardSpecificFields'
            - $ref: '#/components/schemas/visaSpecificFields'
    ChargeCreateAtmResponse:
      type: object
      required:
        - key
        - created
        - version
        - merchantAcceptorRef
        - card
        - amount
        - type
        - status
        - localTransactionDateTime
        - authorizationIsoFields
      description: |
        An ATM charge
      properties:
        key:
          $ref: '#/components/schemas/chargeKey'
        merchantAcceptorRef:
          $ref: '#/components/schemas/components-schemas-AcceptorRef'
        card:
          $ref: '#/components/schemas/OutputCardAtm'
        type:
          $ref: '#/components/schemas/ChargeAtmType'
        amount:
          allOf:
            - description: The amount encoded as an object with a `value` in minor units and a `currency` code. For ATM withdrawals, this is the authorized amount.
            - $ref: '#/components/schemas/AtmAmount'
        dcc:
          allOf:
            - description: Dynamic Currency Conversion details. Only present if DCC was enabled on the request.
            - $ref: '#/components/schemas/Dcc'
        status:
          $ref: '#/components/schemas/StatusAtm'
        localTransactionDateTime:
          $ref: '#/components/schemas/localTransactionDateTime'
        transactionReference:
          $ref: '#/components/schemas/transactionReference'
        newEmvData:
          $ref: '#/components/schemas/newEmvData'
        balanceInformation:
          $ref: '#/components/schemas/BalanceInformation'
        authorizationIsoFields:
          $ref: '#/components/schemas/AtmAuthorizationIsoFields'
        clearingMode:
          $ref: '#/components/schemas/clearingMode'
        clearAfter:
          $ref: '#/components/schemas/clearAfter'
        created:
          $ref: '#/components/schemas/openapi_components-schemas-created'
        version:
          $ref: '#/components/schemas/schemas-version'
    MitFromInitialChargeCardEntry:
      type: string
      description: The method used to capture the card details.
      enum:
        - card-on-file
    MitFromInitialChargeOrder:
      type: string
      description: The method used to place the order.
      enum:
        - recurring
        - ucof
        - installment
        - standing-order
    MitFromInitialChargeType:
      description: |
        Describes the kind of charge the merchant wants to submit.
      type: object
      required:
        - intent
        - cardEntry
        - order
      properties:
        intent:
          $ref: '#/components/schemas/MitChargeIntent'
        cardEntry:
          $ref: '#/components/schemas/MitFromInitialChargeCardEntry'
        order:
          $ref: '#/components/schemas/MitFromInitialChargeOrder'
    CreateMitChargeFromInitialChargeRequest:
      type: object
      properties:
        amount:
          $ref: '#/components/schemas/common_Amount'
        type:
          $ref: '#/components/schemas/MitFromInitialChargeType'
        clearingMode:
          $ref: '#/components/schemas/clearingMode'
        clearAfter:
          $ref: '#/components/schemas/clearAfter'
        transactionReference:
          $ref: '#/components/schemas/transactionReference'
        localTransactionDateTime:
          $ref: '#/components/schemas/localTransactionDateTime'
        billingAddress:
          $ref: '#/components/schemas/BillingAddressInput'
        avs:
          $ref: '#/components/schemas/avs'
        threeDsAuthenticationResult:
          $ref: '#/components/schemas/ThreeDsAuthenticationResult'
        riskAssessmentKey:
          $ref: '#/components/schemas/riskAssessmentKey'
        dynamicDescriptor:
          $ref: '#/components/schemas/schemas-DynamicDescriptor'
        foreignRetailer:
          $ref: '#/components/schemas/schemas-foreignRetailer'
        allowPartialApproval:
          allOf:
            - description: |
                Indicates whether to allow partial approvals for this charge. If set to true the charge's and the authorization action's amount field will contain the approved amount. Currently, only Visa and Mastercard are supported. It will be ignored for other card networks.
            - $ref: '#/components/schemas/allowPartialApproval'
        enhancedData:
          $ref: '#/components/schemas/enhancedDataInput'
    MitFromInitialChargeResponseChargeType:
      description: |
        Describes the kind of charge the merchant wants to submit.
      type: object
      required:
        - intent
        - cardEntry
        - order
      properties:
        intent:
          $ref: '#/components/schemas/MitChargeIntent'
        cardEntry:
          $ref: '#/components/schemas/MitFromInitialChargeCardEntry'
        order:
          $ref: '#/components/schemas/MitFromInitialChargeOrder'
        sequence:
          $ref: '#/components/schemas/MitFromInitialChargeSequence'
    MitChargeFromInitialChargeResponse:
      type: object
      description: The created MIT charge
      additionalProperties: false
      required:
        - key
        - merchantAcceptorRef
        - card
        - amount
        - type
        - status
        - authentication
        - clearingMode
        - localTransactionDateTime
        - fraudLiability
        - authorizationIsoFields
        - created
        - version
      properties:
        key:
          $ref: '#/components/schemas/chargeKey'
        initialChargeKey:
          $ref: '#/components/schemas/initialChargeKey'
        merchantAcceptorRef:
          $ref: '#/components/schemas/components-schemas-AcceptorRef'
        card:
          $ref: '#/components/schemas/OutputCard'
        amount:
          $ref: '#/components/schemas/common_Amount'
        type:
          $ref: '#/components/schemas/MitFromInitialChargeResponseChargeType'
        clearingMode:
          $ref: '#/components/schemas/clearingMode'
        status:
          $ref: '#/components/schemas/Status'
        authentication:
          $ref: '#/components/schemas/ChargeAuthentication'
        localTransactionDateTime:
          $ref: '#/components/schemas/localTransactionDateTime'
        fraudLiability:
          $ref: '#/components/schemas/fraudLiability'
        authorizationIsoFields:
          $ref: '#/components/schemas/authorizationIsoFields'
        transactionReference:
          $ref: '#/components/schemas/transactionReference'
        cardholderBillingAmount:
          $ref: '#/components/schemas/CardholderBillingAmount'
        billingAddress:
          $ref: '#/components/schemas/BillingAddress'
        clearAfter:
          $ref: '#/components/schemas/clearAfter'
        dynamicDescriptor:
          $ref: '#/components/schemas/schemas-DynamicDescriptor'
        foreignRetailer:
          $ref: '#/components/schemas/schemas-foreignRetailer'
        allowPartialApproval:
          $ref: '#/components/schemas/allowPartialApproval'
        lastModified:
          $ref: '#/components/schemas/components-schemas-lastModified'
        created:
          $ref: '#/components/schemas/openapi_components-schemas-created'
        version:
          $ref: '#/components/schemas/schemas-version'
          example: 1
    UnexpectedSequenceErrorDetails:
      type: object
      required:
        - type
        - title
        - status
        - detail
        - instance
      properties:
        type:
          type: string
          description: |
            A relative URI reference, this property can be used to perform automated error handling.
          enum:
            - /silverflow/problems/charge/unexpected-sequence
        title:
          type: string
          description: |
            A short, human-readable summary of the problem type. It does not change from occurrence to occurrence of the error.
          enum:
            - Unexpected Sequence
        status:
          type: integer
          description: |
            The HTTP status code generated by the origin server for this occurrence
            of the problem.
          enum:
            - 400
        detail:
          $ref: '#/components/schemas/errorDetail'
        instance:
          $ref: '#/components/schemas/errorInstance'
    MissingNetworkReferenceErrorDetails:
      type: object
      required:
        - type
        - title
        - status
        - detail
        - instance
      properties:
        type:
          type: string
          description: |
            A relative URI reference, this property can be used to perform automated error handling.
          enum:
            - /silverflow/problems/charge/missing-network-reference
        title:
          $ref: '#/components/schemas/errorTitle'
        status:
          type: integer
          description: |
            The HTTP status code generated by the origin server for this occurrence
            of the problem.
          enum:
            - 409
        detail:
          $ref: '#/components/schemas/errorDetail'
        instance:
          $ref: '#/components/schemas/errorInstance'
    MitChargeType:
      type: object
      description: |
        Describes the kind of charge the merchant wants to submit.
      required:
        - intent
        - cardEntry
        - order
      properties:
        intent:
          $ref: '#/components/schemas/MitChargeIntent'
        cardEntry:
          $ref: '#/components/schemas/MitCardEntry'
        order:
          $ref: '#/components/schemas/MitChargeOrder'
    AmexInitialTransactionReference:
      title: American Express
      type: object
      required:
        - originalTransactionIdentifier
      additionalProperties: false
      properties:
        originalTransactionIdentifier:
          type: string
          description: The transaction identifier of the original transaction. This value comes from data field 31 (Acquirer Reference Data) of the original transaction response.
          pattern: ^[0-9]+$
          minLength: 15
          maxLength: 15
          example: '008386585389302'
    DiscoverInitialTransactionReference:
      title: Discover
      type: object
      required:
        - originalNetworkReferenceId
        - originalAmountValue
      additionalProperties: false
      properties:
        originalNetworkReferenceId:
          type: string
          description: The network reference ID from the original transaction coming from the 0110 in field 48 pos 11-25.
          minLength: 1
          maxLength: 15
        originalAmountValue:
          type: integer
          format: int64
          minimum: 0
          maximum: 999999999999
          description: |
            The amount in minor units from the original transaction (from field 4).
          example: 2599
    MastercardInitialTransactionReference:
      title: Mastercard
      type: object
      required:
        - initialTraceId
      additionalProperties: false
      properties:
        initialTraceId:
          type: string
          description: The trace ID of the initial transaction
          minLength: 1
          maxLength: 15
          example: MCSPMLCC30807
        transactionLinkId:
          type: string
          description: Mastercard generated Transaction Link Identifier (TLID). This value comes from the field 105 subelement 001 of the original transaction response.
          minLength: 1
          maxLength: 22
          example: qtQRrYlsSvSecPJDBzrzYA
    VisaInitialTransactionReference:
      title: Visa
      type: object
      required:
        - initialTransactionIdentifier
      additionalProperties: false
      properties:
        initialTransactionIdentifier:
          type: string
          description: The Visa transaction identifier of the initial transaction
          pattern: ^[0-9]+$
          minLength: 1
          maxLength: 15
          example: '303219322378732'
    DinersInitialTransactionReference:
      title: Diners
      type: object
      required:
        - originalNetworkReferenceId
        - originalRetrievalReferenceNumber
        - originalAmountValue
      additionalProperties: false
      properties:
        originalNetworkReferenceId:
          type: string
          description: The Network Reference ID of the original transaction. This value comes from field 123 in the original transaction response.
          minLength: 1
          maxLength: 15
        originalRetrievalReferenceNumber:
          type: string
          description: The Retrieval Reference Number of the original transaction. This value comes from field 37 in the original transaction response.
          minLength: 12
          maxLength: 12
        originalAmountValue:
          type: integer
          format: int64
          minimum: 0
          maximum: 999999999999
          description: |
            The amount in minor units from the original transaction (from field 4).
          example: 2599
    CreateMitChargeRequest:
      type: object
      additionalProperties: false
      required:
        - merchantAcceptorResolver
        - card
        - type
        - amount
        - initialTransactionReferences
      properties:
        merchantAcceptorResolver:
          $ref: '#/components/schemas/schemas-AcceptorResolver'
        card:
          allOf:
            - description: |
                This field represents the card or token information.
                The card credentials can either be passed directly in the request or be referenced using a `key`.
                Alternatively, if `type.cardEntry` is `token-on-file`, this property should contain the token credentials instead.
            - $ref: '#/components/schemas/schemas-Card'
        type:
          $ref: '#/components/schemas/MitChargeType'
        amount:
          $ref: '#/components/schemas/common_Amount'
        initialTransactionReferences:
          description: Network-specific identifiers from the original authorization. Diners support is <a class="experimental-tag-link" href="https://docs.silverflow.com/guides/api-lifecycle#tag/EXPERIMENTAL-Tag"><span class="tag experimental-tag">EXPERIMENTAL</span></a>.
          oneOf:
            - $ref: '#/components/schemas/AmexInitialTransactionReference'
            - $ref: '#/components/schemas/DiscoverInitialTransactionReference'
            - $ref: '#/components/schemas/MastercardInitialTransactionReference'
            - $ref: '#/components/schemas/VisaInitialTransactionReference'
            - $ref: '#/components/schemas/DinersInitialTransactionReference'
        tokenDetails:
          allOf:
            - description: If `type.cardEntry` is `token-on-file` then this property can be optionally used to specify a network token cryptogram different from the one in the original authorization or a digital wallet cryptogram.
            - $ref: '#/components/schemas/TokenDetails'
        transactionType:
          $ref: '#/components/schemas/TransactionType'
        transactionReference:
          $ref: '#/components/schemas/transactionReference'
        localTransactionDateTime:
          $ref: '#/components/schemas/localTransactionDateTime'
        threeDsAuthenticationResult:
          $ref: '#/components/schemas/ThreeDsAuthenticationResult'
        clearingMode:
          $ref: '#/components/schemas/clearingMode'
        clearAfter:
          $ref: '#/components/schemas/clearAfter'
        billingAddress:
          $ref: '#/components/schemas/BillingAddressInput'
        avs:
          $ref: '#/components/schemas/avs'
        dynamicDescriptor:
          $ref: '#/components/schemas/schemas-DynamicDescriptor'
        riskAssessmentKey:
          $ref: '#/components/schemas/riskAssessmentKey'
        foreignRetailer:
          $ref: '#/components/schemas/schemas-foreignRetailer'
        subMerchant:
          $ref: '#/components/schemas/subMerchant'
        enhancedData:
          $ref: '#/components/schemas/enhancedDataInput'
        allowPartialApproval:
          allOf:
            - description: |
                Indicates whether to allow partial approvals for this charge. If set to true the charge's and the authorization action's amount field will contain the approved amount. Currently, only Visa and Mastercard are supported. It will be ignored for other card networks.
            - $ref: '#/components/schemas/allowPartialApproval'
    MitChargeResponse:
      type: object
      required:
        - key
        - merchantAcceptorRef
        - card
        - amount
        - type
        - status
        - authentication
        - localTransactionDateTime
        - authorizationIsoFields
        - created
        - version
      description: The created charge.
      additionalProperties: false
      properties:
        key:
          $ref: '#/components/schemas/chargeKey'
        merchantAcceptorRef:
          $ref: '#/components/schemas/components-schemas-AcceptorRef'
        card:
          $ref: '#/components/schemas/OutputCard'
        amount:
          $ref: '#/components/schemas/common_Amount'
        type:
          $ref: '#/components/schemas/MitResponseChargeType'
        status:
          $ref: '#/components/schemas/Status'
        authentication:
          $ref: '#/components/schemas/ChargeAuthenticationMit'
        localTransactionDateTime:
          $ref: '#/components/schemas/localTransactionDateTime'
        authorizationIsoFields:
          $ref: '#/components/schemas/authorizationIsoFields'
        transactionType:
          $ref: '#/components/schemas/TransactionType'
        transactionReference:
          $ref: '#/components/schemas/transactionReference'
        clearingMode:
          $ref: '#/components/schemas/clearingMode'
        clearAfter:
          $ref: '#/components/schemas/clearAfter'
        dynamicDescriptor:
          $ref: '#/components/schemas/schemas-DynamicDescriptor'
        foreignRetailer:
          $ref: '#/components/schemas/schemas-foreignRetailer'
        subMerchant:
          $ref: '#/components/schemas/subMerchantResponse'
        tokenDetails:
          allOf:
            - description: If `type.cardEntry` is `token-on-file` then this property can be optionally used to specify a network token cryptogram different from the one in the original authorization or a digital wallet cryptogram.
            - $ref: '#/components/schemas/StoredTokenDetails'
        allowPartialApproval:
          $ref: '#/components/schemas/allowPartialApproval'
        lastModified:
          $ref: '#/components/schemas/components-schemas-lastModified'
        created:
          $ref: '#/components/schemas/openapi_components-schemas-created'
        version:
          $ref: '#/components/schemas/schemas-version'
    MitFundingCardEntry:
      type: string
      description: |
        The method used to capture the card details.
      enum:
        - card-on-file
        - token-on-file
    MitFundingOrder:
      type: string
      enum:
        - recurring
        - ucof
        - standing-order
    MitFundingChargeTypeInput:
      type: object
      description: Describes the kind of charge the merchant wants to submit.
      required:
        - intent
        - cardEntry
        - order
        - fundingType
      properties:
        intent:
          $ref: '#/components/schemas/FundingIntent'
        cardEntry:
          $ref: '#/components/schemas/MitFundingCardEntry'
        order:
          $ref: '#/components/schemas/MitFundingOrder'
        fundingType:
          $ref: '#/components/schemas/FundingType'
    MitFundingThreeDsAuthenticationResult:
      type: object
      required:
        - authenticationValue
        - directoryServerTransId
      description: |
        A 3DS result from either the [3DS Authentication endpoint](#operation/create3dsAuthentication) or an external party.
      properties:
        authenticationValue:
          $ref: '#/components/schemas/authenticationValue3ds'
        directoryServerTransId:
          type: string
          description: Transaction ID retrieved from the Directory Server (DS).
          pattern: ^[\w +-=.,:;!?$@()]+$
          minLength: 1
          maxLength: 36
          example: 5340af8a-5505-4bf6-abcd-123412341234
        eci:
          type: string
          description: |
            ECI value from the 3DS provider. Use this to explicitly override the ECI value in Visa authorization messages.
            This field has no impact for any other network. <span class="tag network-tag visa-tag">VISA</span>
          pattern: ^\d+$
          minLength: 2
          maxLength: 2
          example: '05'
    MitFundingChargeRequest:
      type: object
      required:
        - merchantAcceptorResolver
        - card
        - amount
        - type
        - initialTransactionReferences
        - receiver
      additionalProperties: false
      description: |
        Create a MIT funding charge.
      properties:
        merchantAcceptorResolver:
          $ref: '#/components/schemas/schemas-AcceptorResolver'
        card:
          $ref: '#/components/schemas/schemas-Card'
        amount:
          $ref: '#/components/schemas/common_Amount'
        type:
          $ref: '#/components/schemas/MitFundingChargeTypeInput'
        initialTransactionReferences:
          description: Network-specific identifiers from the original authorization.
          oneOf:
            - $ref: '#/components/schemas/MastercardInitialTransactionReference'
            - $ref: '#/components/schemas/VisaInitialTransactionReference'
        threeDsAuthenticationResult:
          $ref: '#/components/schemas/MitFundingThreeDsAuthenticationResult'
        localTransactionDateTime:
          $ref: '#/components/schemas/localTransactionDateTime'
        transactionType:
          $ref: '#/components/schemas/FundingTransactionType'
        transactionReference:
          $ref: '#/components/schemas/transactionReference'
        receiver:
          $ref: '#/components/schemas/FundingReceiverInput'
        sender:
          $ref: '#/components/schemas/FundingSenderInput'
        purposeOfPayment:
          $ref: '#/components/schemas/purposeOfPayment'
        clearingMode:
          allOf:
            - description: |
                The clearing method for the charge.
                - `auto`: The charge is cleared automatically as soon as possible. To delay clearing, provide a `clearAfter` timestamp.
                - `manual`: The charge must be manually cleared later.

                Only supported for <span class="tag network-tag mastercard-tag">MASTERCARD</span>.
            - $ref: '#/components/schemas/clearingMode'
        clearAfter:
          allOf:
            - description: |
                If provided, clearing will not occur before this point in time.

                The value may be at most 6 months in the future from when the charge was created.

                Only supported for <span class="tag network-tag mastercard-tag">MASTERCARD</span>.
            - $ref: '#/components/schemas/clearAfter'
        riskAssessmentKey:
          $ref: '#/components/schemas/riskAssessmentKey'
        foreignRetailer:
          $ref: '#/components/schemas/schemas-foreignRetailer'
        subMerchant:
          $ref: '#/components/schemas/subMerchant'
        allowPartialApproval:
          allOf:
            - description: |
                Indicates whether to allow partial approvals for this charge. If set to true the charge's and the authorization action's amount field will contain the approved amount. Currently, only Visa and Mastercard are supported. It will be ignored for other card networks.
            - $ref: '#/components/schemas/allowPartialApproval'
    MitFundingChargeType:
      type: object
      description: Describes the kind of charge the merchant wants to submit.
      required:
        - intent
        - cardEntry
        - order
        - sequence
        - fundingType
      properties:
        intent:
          $ref: '#/components/schemas/FundingIntent'
        cardEntry:
          type: string
          enum:
            - card-on-file
            - token-on-file
        order:
          $ref: '#/components/schemas/MitFundingOrder'
        sequence:
          type: string
          enum:
            - subsequent
        fundingType:
          $ref: '#/components/schemas/FundingType'
    MitFundingChargeResponse:
      type: object
      required:
        - merchantAcceptorRef
        - card
        - key
        - amount
        - localTransactionDateTime
        - type
        - receiver
        - status
        - fraudLiability
        - created
        - version
        - authentication
        - authorizationIsoFields
      description: |
        Create a MIT funding charge.
      properties:
        key:
          $ref: '#/components/schemas/chargeKey'
        merchantAcceptorRef:
          $ref: '#/components/schemas/components-schemas-AcceptorRef'
        card:
          $ref: '#/components/schemas/OutputCard'
        amount:
          $ref: '#/components/schemas/common_Amount'
        type:
          $ref: '#/components/schemas/MitFundingChargeType'
        localTransactionDateTime:
          $ref: '#/components/schemas/localTransactionDateTime'
        transactionType:
          $ref: '#/components/schemas/FundingTransactionType'
        transactionReference:
          $ref: '#/components/schemas/transactionReference'
        receiver:
          $ref: '#/components/schemas/charges-funding_FundingReceiver'
        sender:
          $ref: '#/components/schemas/charges-funding_FundingSender'
        fraudLiability:
          $ref: '#/components/schemas/fraudLiability'
        status:
          $ref: '#/components/schemas/Status'
        authentication:
          $ref: '#/components/schemas/MitFundingChargeAuthentication'
        authorizationIsoFields:
          $ref: '#/components/schemas/authorizationIsoFields'
        purposeOfPayment:
          $ref: '#/components/schemas/purposeOfPayment'
        clearingMode:
          type: string
          enum:
            - none
            - auto
            - manual
          description: The clearing mode of the charge.
        clearAfter:
          $ref: '#/components/schemas/clearAfter'
        foreignRetailer:
          $ref: '#/components/schemas/schemas-foreignRetailer'
        subMerchant:
          $ref: '#/components/schemas/subMerchantResponse'
        allowPartialApproval:
          $ref: '#/components/schemas/allowPartialApproval'
        created:
          $ref: '#/components/schemas/openapi_components-schemas-created'
        lastModified:
          $ref: '#/components/schemas/components-schemas-lastModified'
        version:
          $ref: '#/components/schemas/schemas-version'
    AmountInEuro:
      type: object
      required:
        - value
        - currency
      additionalProperties: false
      description: |
        The amount encoded as an object with a `value` in minor units and a `currency` code. Only EUR currency is supported.
      properties:
        value:
          $ref: '#/components/schemas/components-schemas-amountValue'
        currency:
          type: string
          enum:
            - EUR
    WipType:
      type: object
      additionalProperties: false
      required:
        - intent
        - cardEntry
        - order
      properties:
        intent:
          type: string
          enum:
            - purchase
        cardEntry:
          type: string
          enum:
            - card-on-file
        order:
          type: string
          enum:
            - one-click
            - recurring
    WalletDetails:
      type: object
      description: The values to send to Bancontact to perform a Wallet Initiated Payment. The fields are in hexadecimal format as described by the Bancontact specifications.
      additionalProperties: false
      required:
        - merchantAuthMethod
        - merchantWipToken
        - walletProviderId
      properties:
        merchantAuthMethod:
          type: string
          description: Indicates how the cardholder was authenticated by the Merchant Wallet for transaction initiation. A bitmap representing the authentication method.
          maxLength: 2
          minLength: 2
          pattern: ^[0-9A-F]+$
        merchantWipToken:
          type: string
          description: Static token is assigned by Bancontact to the given Merchant Wallet.
          maxLength: 16
          minLength: 16
          pattern: ^[0-9A-F]+$
        walletProviderId:
          type: string
          description: This is the Payment Scheme Manager issued identifier assigned to wallets elligible to perform WIP transactions.
          maxLength: 6
          minLength: 6
          pattern: ^71[0-9]+$
    WipChargeRequest:
      type: object
      additionalProperties: false
      required:
        - walletDetails
      properties:
        amount:
          $ref: '#/components/schemas/AmountInEuro'
        type:
          $ref: '#/components/schemas/WipType'
        transactionReference:
          $ref: '#/components/schemas/transactionReference'
        walletDetails:
          $ref: '#/components/schemas/WalletDetails'
    WipTypeResponse:
      type: object
      required:
        - intent
        - cardEntry
        - order
        - sequence
      properties:
        intent:
          type: string
          enum:
            - purchase
        cardEntry:
          type: string
          enum:
            - card-on-file
        order:
          type: string
          enum:
            - one-click
            - recurring
        sequence:
          type: string
          enum:
            - subsequent
    ScaWip:
      type: object
      required:
        - compliance
        - complianceReason
        - method
      properties:
        method:
          type: string
          enum:
            - none
        compliance:
          type: string
          enum:
            - exemption
        complianceReason:
          type: string
          enum:
            - wip
        result:
          type: string
    ChargeAuthenticationWip:
      type: object
      required:
        - sca
        - cvc
        - avs
      description: |
        Object container for authentication. If present, contains Strong Customer Authentication (SCA) information, but also indicates whether CVC and AVS was used.
      properties:
        sca:
          $ref: '#/components/schemas/ScaWip'
        cvc:
          description: The result of cvc verification
          enum:
            - none
        avs:
          description: The result of the AVS verification
          enum:
            - none
    WipChargeResponse:
      type: object
      additionalProperties: false
      required:
        - key
        - created
        - status
        - type
        - localTransactionDateTime
        - merchantAcceptorRef
        - card
        - amount
        - fraudLiability
        - authorizationIsoFields
        - authentication
        - version
      description: |
        A charge
      properties:
        key:
          $ref: '#/components/schemas/chargeKey'
        merchantAcceptorRef:
          $ref: '#/components/schemas/components-schemas-AcceptorRef'
        card:
          $ref: '#/components/schemas/OutputCard'
        amount:
          $ref: '#/components/schemas/AmountInEuro'
        type:
          $ref: '#/components/schemas/WipTypeResponse'
        clearingMode:
          type: string
          enum:
            - auto
        status:
          $ref: '#/components/schemas/StatusWithoutPartialApproval'
        authentication:
          $ref: '#/components/schemas/ChargeAuthenticationWip'
        localTransactionDateTime:
          $ref: '#/components/schemas/localTransactionDateTime'
        transactionReference:
          $ref: '#/components/schemas/transactionReference'
        fraudLiability:
          $ref: '#/components/schemas/fraudLiability'
        authorizationIsoFields:
          $ref: '#/components/schemas/authorizationIsoFieldsBancontact'
        billingAddress:
          description: The billing address of the Agent
          $ref: '#/components/schemas/BillingAddress'
        created:
          $ref: '#/components/schemas/openapi_components-schemas-created'
        lastModified:
          $ref: '#/components/schemas/components-schemas-lastModified'
        version:
          $ref: '#/components/schemas/schemas-version'
          example: 1
    actionReference:
      description: Action reference assigned by the agent. Must not start with "act-".
      type: string
      pattern: ^(?!act-)[a-zA-Z0-9-_\.]+$
      minLength: 1
      maxLength: 120
      example: MyRef
    ChargeCancel:
      type: object
      description: Request to cancel the referenced charge.
      additionalProperties: false
      properties:
        reference:
          $ref: '#/components/schemas/actionReference'
    actionKey:
      description: Uniquely identifies an action
      type: string
      pattern: ^act-[a-zA-Z0-9]+$
      minLength: 5
      maxLength: 120
      example: act-1e1dA2fgs1YTUhlhyPOp
    authorizationIsoFieldsAmericanExpressWithDiscriminator:
      allOf:
        - type: object
          required:
            - network
          properties:
            network:
              type: string
              enum:
                - american-express
        - $ref: '#/components/schemas/commonIsoFields'
    authorizationIsoFieldsBancontactWithDiscriminator:
      allOf:
        - type: object
          required:
            - network
          properties:
            network:
              type: string
              enum:
                - bancontact
        - $ref: '#/components/schemas/commonIsoFields'
    authorizationIsoFieldsDinersWithDiscriminator:
      allOf:
        - type: object
          required:
            - network
          properties:
            network:
              type: string
              enum:
                - diners
        - $ref: '#/components/schemas/commonIsoFields'
    authorizationIsoFieldsDiscoverWithDiscriminator:
      allOf:
        - type: object
          required:
            - network
          properties:
            network:
              type: string
              enum:
                - discover
        - $ref: '#/components/schemas/commonIsoFields'
    authorizationIsoFieldsMastercardWithDiscriminator:
      allOf:
        - type: object
          required:
            - network
          properties:
            network:
              type: string
              enum:
                - mastercard
        - $ref: '#/components/schemas/commonIsoFields'
    authorizationIsoFieldsUnionPayWithDiscriminator:
      allOf:
        - type: object
          required:
            - network
          properties:
            network:
              type: string
              enum:
                - unionpay
        - $ref: '#/components/schemas/commonIsoFields'
    authorizationIsoFieldsVisaWithDiscriminator:
      allOf:
        - type: object
          required:
            - network
          properties:
            network:
              type: string
              enum:
                - visa
        - $ref: '#/components/schemas/commonIsoFields'
    authorizationIsoFieldsUnknown:
      type: object
      required:
        - network
        - responseCode
        - responseCodeDescription
      properties:
        network:
          type: string
          enum:
            - unknown
        responseCode:
          type: string
          enum:
            - unknown
        responseCodeDescription:
          type: string
          enum:
            - unknown
    authorizationResponseForReversalAction:
      type: object
      description: |
        Network-specific details from the authorization response.
        Actions created before 2023-10-07 will have the `network` property and other remaining properties as `unknown`.
      discriminator:
        propertyName: network
        mapping:
          american-express: '#/components/schemas/authorizationIsoFieldsAmericanExpressWithDiscriminator'
          bancontact: '#/components/schemas/authorizationIsoFieldsBancontactWithDiscriminator'
          diners: '#/components/schemas/authorizationIsoFieldsDinersWithDiscriminator'
          discover: '#/components/schemas/authorizationIsoFieldsDiscoverWithDiscriminator'
          mastercard: '#/components/schemas/authorizationIsoFieldsMastercardWithDiscriminator'
          unionpay: '#/components/schemas/authorizationIsoFieldsUnionPayWithDiscriminator'
          visa: '#/components/schemas/authorizationIsoFieldsVisaWithDiscriminator'
          unknown: '#/components/schemas/authorizationIsoFieldsUnknown'
      oneOf:
        - $ref: '#/components/schemas/authorizationIsoFieldsAmericanExpressWithDiscriminator'
        - $ref: '#/components/schemas/authorizationIsoFieldsBancontactWithDiscriminator'
        - $ref: '#/components/schemas/authorizationIsoFieldsDinersWithDiscriminator'
        - $ref: '#/components/schemas/authorizationIsoFieldsDiscoverWithDiscriminator'
        - $ref: '#/components/schemas/authorizationIsoFieldsMastercardWithDiscriminator'
        - $ref: '#/components/schemas/authorizationIsoFieldsUnionPayWithDiscriminator'
        - $ref: '#/components/schemas/authorizationIsoFieldsVisaWithDiscriminator'
        - $ref: '#/components/schemas/authorizationIsoFieldsUnknown'
    ReversalAction:
      type: object
      description: Action for reversing a charge
      required:
        - key
        - chargeKey
        - created
        - version
        - type
        - status
        - replacementAmount
        - authorizationResponse
      properties:
        type:
          type: string
          enum:
            - reversal
        key:
          $ref: '#/components/schemas/actionKey'
        chargeKey:
          $ref: '#/components/schemas/chargeKey'
        reference:
          $ref: '#/components/schemas/actionReference'
        replacementAmount:
          $ref: '#/components/schemas/common_Amount'
        status:
          type: object
          required:
            - authorization
          properties:
            authorization:
              type: string
              enum:
                - approved
                - declined
        authorizationResponse:
          $ref: '#/components/schemas/authorizationResponseForReversalAction'
        created:
          $ref: '#/components/schemas/openapi_components-schemas-created'
        lastModified:
          $ref: '#/components/schemas/components-schemas-lastModified'
        version:
          $ref: '#/components/schemas/schemas-version'
    ChargeTooOldForClearingErrorDetails:
      type: object
      required:
        - type
        - title
        - status
        - detail
        - instance
      properties:
        type:
          type: string
          description: |
            A relative URI reference, this property can be used to perform automated error handling.
          enum:
            - /silverflow/problems/charges/invalid-charge
        title:
          type: string
          description: |
            A short, human-readable summary of the problem type. It does not change from occurrence to occurrence of the error.
          enum:
            - Invalid Charge
        status:
          type: integer
          description: |
            The HTTP status code generated by the origin server for this occurrence
            of the problem.
          enum:
            - 409
        detail:
          $ref: '#/components/schemas/errorDetail'
        instance:
          $ref: '#/components/schemas/errorInstance'
    ClearingAlreadySubmittedErrorDetails:
      type: object
      required:
        - type
        - title
        - status
        - detail
        - instance
      properties:
        type:
          type: string
          description: |
            A relative URI reference, this property can be used to perform automated error handling.
          enum:
            - /silverflow/problems/charge/clearing-already-submitted
        title:
          type: string
          description: |
            A short, human-readable summary of the problem type. It does not change from occurrence to occurrence of the error.
          enum:
            - Clearing Already Submitted
        status:
          type: integer
          description: |
            The HTTP status code generated by the origin server for this occurrence
            of the problem.
          enum:
            - 409
        detail:
          $ref: '#/components/schemas/errorDetail'
        instance:
          $ref: '#/components/schemas/errorInstance'
    UnexpectedAuthorizationErrorDetails:
      type: object
      required:
        - type
        - title
        - status
        - detail
        - instance
      properties:
        type:
          type: string
          description: |
            A relative URI reference, this property can be used to perform automated error handling.
          enum:
            - /silverflow/problems/charge/unexpected-authorization-status
        title:
          type: string
          description: |
            A short, human-readable summary of the problem type. It does not change from occurrence to occurrence of the error.
          enum:
            - Unexpected Authorization Status
        status:
          type: integer
          description: |
            The HTTP status code generated by the origin server for this occurrence
            of the problem.
          enum:
            - 409
        detail:
          $ref: '#/components/schemas/errorDetail'
        instance:
          $ref: '#/components/schemas/errorInstance'
    UnexpectedClearingModeErrorDetails:
      type: object
      required:
        - type
        - title
        - status
        - detail
        - instance
      properties:
        type:
          type: string
          description: |
            A relative URI reference, this property can be used to perform automated error handling.
          enum:
            - /silverflow/problems/charge/unexpected-clearing-mode
        title:
          $ref: '#/components/schemas/errorTitle'
        status:
          type: integer
          description: |
            The HTTP status code generated by the origin server for this occurrence
            of the problem.
          enum:
            - 409
        detail:
          $ref: '#/components/schemas/errorDetail'
        instance:
          $ref: '#/components/schemas/errorInstance'
    UnexpectedClearingStatusErrorDetails:
      type: object
      required:
        - type
        - title
        - status
        - detail
        - instance
      properties:
        type:
          type: string
          description: |
            A relative URI reference, this property can be used to perform automated error handling.
          enum:
            - /silverflow/problems/charge/unexpected-clearing-status
        title:
          $ref: '#/components/schemas/errorTitle'
        status:
          type: integer
          description: |
            The HTTP status code generated by the origin server for this occurrence
            of the problem.
          enum:
            - 409
        detail:
          $ref: '#/components/schemas/errorDetail'
        instance:
          $ref: '#/components/schemas/errorInstance'
    UnexpectedIntentErrorDetails:
      type: object
      required:
        - type
        - title
        - status
        - detail
        - instance
      properties:
        type:
          type: string
          description: |
            A relative URI reference, this property can be used to perform automated error handling.
          enum:
            - /silverflow/problems/charge/unexpected-intent
        title:
          $ref: '#/components/schemas/errorTitle'
        status:
          type: integer
          description: |
            The HTTP status code generated by the origin server for this occurrence
            of the problem.
          enum:
            - 409
        detail:
          $ref: '#/components/schemas/errorDetail'
        instance:
          $ref: '#/components/schemas/errorInstance'
    RefundAmount:
      type: integer
      format: int64
      minimum: 1
      maximum: 999999999999
      description: |
        The refund amount. If not specified the full authorized charge amount will be refunded.
      example: 2599
    createRefundCharge:
      type: boolean
      default: true
      deprecated: true
      description: |
        A full refund charge will be created along with the refund action.

        **On 23 February 2027, this field will be removed. Refunds on this endpoint will then always create a refund charge.**
    refundClearingMode:
      type: string
      enum:
        - auto
        - manual
      description: |
        The clearing method for the refund charge.
        - `auto`: The charge is cleared automatically as soon as possible. To delay clearing, provide a `clearAfter` timestamp.
        - `manual`: The charge must be manually cleared later.

        **Only supported if `createRefundCharge` is set to `true`**.
      default: auto
    ChargeRefund:
      type: object
      additionalProperties: false
      description: |
        Refund a Charge
      properties:
        refundAmount:
          $ref: '#/components/schemas/RefundAmount'
        reference:
          allOf:
            - description: |
                Action reference assigned by the agent. Must not start with "act-".

                When `createRefundCharge` is not `false` then this field is also set as the `transactionReference` of the refund charge. If no reference is provided, the refund charge has no `transactionReference`.
            - $ref: '#/components/schemas/actionReference'
        clearAfter:
          $ref: '#/components/schemas/clearAfter'
        dynamicDescriptor:
          $ref: '#/components/schemas/schemas-DynamicDescriptor'
        createRefundCharge:
          $ref: '#/components/schemas/createRefundCharge'
        clearingMode:
          $ref: '#/components/schemas/refundClearingMode'
    refundChargeKey:
      description: |
        Charge key of the created refund charge. Included only when the refund was
        created with `createRefundCharge = true`.
      type: string
      pattern: ^chg-[a-zA-Z0-9]+$
      minLength: 5
      maxLength: 120
      example: chg-1e1dAHhgstYTUhlphPzZ
    authorizationIsoFieldsAmericanExpressForAuthorizationAndRefundActions:
      allOf:
        - $ref: '#/components/schemas/authorizationIsoFieldsAmericanExpressWithDiscriminator'
        - type: object
          required:
            - acquirerReferenceData
          properties:
            acquirerReferenceData:
              type: string
              description: Contents of field 31. <a class="experimental-tag-link" href="https://docs.silverflow.com/guides/api-lifecycle#tag/EXPERIMENTAL-Tag"><span class="tag experimental-tag">EXPERIMENTAL</span></a>
    authorizationIsoFieldsDinersForAuthorizationAndRefundActions:
      allOf:
        - $ref: '#/components/schemas/authorizationIsoFieldsDinersWithDiscriminator'
        - type: object
          required:
            - networkReferenceId
          properties:
            networkReferenceId:
              type: string
              description: Contents field 123 <a class="experimental-tag-link" href="https://docs.silverflow.com/guides/api-lifecycle#tag/EXPERIMENTAL-Tag"><span class="tag experimental-tag">EXPERIMENTAL</span></a>
    authorizationIsoFieldsDiscoverForAuthorizationAndRefundActions:
      allOf:
        - $ref: '#/components/schemas/authorizationIsoFieldsDiscoverWithDiscriminator'
        - type: object
          required:
            - networkReferenceId
          properties:
            networkReferenceId:
              type: string
              description: Contents field 48, position 11-25 <a class="experimental-tag-link" href="https://docs.silverflow.com/guides/api-lifecycle#tag/EXPERIMENTAL-Tag"><span class="tag experimental-tag">EXPERIMENTAL</span></a>
    authorizationIsoFieldsMastercardForAuthorizationAndRefundActions:
      allOf:
        - $ref: '#/components/schemas/authorizationIsoFieldsMastercardWithDiscriminator'
        - type: object
          required:
            - traceId
          properties:
            traceId:
              type: string
              description: |
                The trace ID can be used to refer to the original authorization for subsequent transactions (e.g., reversals, MITs). <a class="experimental-tag-link" href="https://docs.silverflow.com/guides/api-lifecycle#tag/EXPERIMENTAL-Tag"><span class="tag experimental-tag">EXPERIMENTAL</span></a>

                The value is constructed from the contents of field 63, subfield 1, field 63, subfield 2, and field 15. The value intentionally ends with two spaces.
    authorizationIsoFieldsVisaForAuthorizationAndRefundActions:
      allOf:
        - $ref: '#/components/schemas/authorizationIsoFieldsVisaWithDiscriminator'
        - type: object
          required:
            - transactionIdentifier
          properties:
            transactionIdentifier:
              type: string
              description: Contents of field 62, subfield 2 <a class="experimental-tag-link" href="https://docs.silverflow.com/guides/api-lifecycle#tag/EXPERIMENTAL-Tag"><span class="tag experimental-tag">EXPERIMENTAL</span></a>
              example: '238210000026090'
    authorizationResponseForAuthorizationAndRefundActions:
      type: object
      description: |
        Network-specific details from the authorization response.
        Actions created before 2023-10-07 will have the `network` property and other remaining properties as `unknown`.
      discriminator:
        propertyName: network
        mapping:
          american-express: '#/components/schemas/authorizationIsoFieldsAmericanExpressForAuthorizationAndRefundActions'
          bancontact: '#/components/schemas/authorizationIsoFieldsBancontactWithDiscriminator'
          diners: '#/components/schemas/authorizationIsoFieldsDinersForAuthorizationAndRefundActions'
          discover: '#/components/schemas/authorizationIsoFieldsDiscoverForAuthorizationAndRefundActions'
          mastercard: '#/components/schemas/authorizationIsoFieldsMastercardForAuthorizationAndRefundActions'
          unionpay: '#/components/schemas/authorizationIsoFieldsUnionPayWithDiscriminator'
          visa: '#/components/schemas/authorizationIsoFieldsVisaForAuthorizationAndRefundActions'
          unknown: '#/components/schemas/authorizationIsoFieldsUnknown'
      oneOf:
        - $ref: '#/components/schemas/authorizationIsoFieldsAmericanExpressForAuthorizationAndRefundActions'
        - $ref: '#/components/schemas/authorizationIsoFieldsBancontactWithDiscriminator'
        - $ref: '#/components/schemas/authorizationIsoFieldsDinersForAuthorizationAndRefundActions'
        - $ref: '#/components/schemas/authorizationIsoFieldsDiscoverForAuthorizationAndRefundActions'
        - $ref: '#/components/schemas/authorizationIsoFieldsMastercardForAuthorizationAndRefundActions'
        - $ref: '#/components/schemas/authorizationIsoFieldsUnionPayWithDiscriminator'
        - $ref: '#/components/schemas/authorizationIsoFieldsVisaForAuthorizationAndRefundActions'
        - $ref: '#/components/schemas/authorizationIsoFieldsUnknown'
    RefundAction:
      type: object
      description: Action for refunding a charge
      required:
        - key
        - chargeKey
        - created
        - version
        - type
        - status
        - amount
        - authorizationResponse
      properties:
        type:
          type: string
          enum:
            - refund
        key:
          $ref: '#/components/schemas/actionKey'
        chargeKey:
          $ref: '#/components/schemas/chargeKey'
        refundChargeKey:
          $ref: '#/components/schemas/refundChargeKey'
        reference:
          allOf:
            - description: |
                Action reference assigned by the agent. Must not start with "act-".

                When `createRefundCharge` is not `false` then this field is also set as the `transactionReference` of the refund charge. If no reference is provided, the refund charge has no `transactionReference`.
            - $ref: '#/components/schemas/actionReference'
        amount:
          $ref: '#/components/schemas/common_Amount'
        status:
          type: object
          required:
            - authorization
          properties:
            authorization:
              type: string
              enum:
                - approved
                - declined
        clearAfter:
          $ref: '#/components/schemas/clearAfter'
        authorizationResponse:
          $ref: '#/components/schemas/authorizationResponseForAuthorizationAndRefundActions'
        created:
          $ref: '#/components/schemas/openapi_components-schemas-created'
        lastModified:
          $ref: '#/components/schemas/components-schemas-lastModified'
        version:
          $ref: '#/components/schemas/schemas-version'
    OfflineRefundInitialTransactionReferences:
      title: Mastercard
      type: object
      required:
        - initialTraceId
      additionalProperties: false
      properties:
        initialTraceId:
          type: string
          description: The Trace ID from the original declined online refund authorization response.
          minLength: 1
          maxLength: 15
          example: MCGATSGHX1112
    ChargeOfflineRefundRequest:
      type: object
      additionalProperties: false
      description: |
        Offline-refund a Charge
      properties:
        amount:
          $ref: '#/components/schemas/RefundAmount'
        reference:
          $ref: '#/components/schemas/actionReference'
        clearAfter:
          $ref: '#/components/schemas/clearAfter'
        dynamicDescriptor:
          $ref: '#/components/schemas/schemas-DynamicDescriptor'
        initialRefundReferences:
          description: Network-specific identifiers from the original authorization. Currently only supported for Mastercard.
          oneOf:
            - $ref: '#/components/schemas/OfflineRefundInitialTransactionReferences'
    OfflineRefundAction:
      type: object
      description: Action for offline refunding a charge
      required:
        - type
        - key
        - chargeKey
        - amount
        - created
        - version
      properties:
        type:
          type: string
          enum:
            - offline-refund
        key:
          $ref: '#/components/schemas/actionKey'
        chargeKey:
          $ref: '#/components/schemas/chargeKey'
        reference:
          $ref: '#/components/schemas/actionReference'
        amount:
          allOf:
            - description: The amount that was refunded.
            - $ref: '#/components/schemas/common_Amount'
        clearAfter:
          $ref: '#/components/schemas/clearAfter'
        initialRefundReferences:
          description: Network-specific identifiers from the original authorization. Currently only supported for Mastercard.
          oneOf:
            - $ref: '#/components/schemas/OfflineRefundInitialTransactionReferences'
        created:
          $ref: '#/components/schemas/openapi_components-schemas-created'
        lastModified:
          $ref: '#/components/schemas/components-schemas-lastModified'
        version:
          $ref: '#/components/schemas/schemas-version'
    InvalidCardErrorDetails:
      type: object
      required:
        - type
        - title
        - status
        - detail
        - instance
      properties:
        type:
          type: string
          description: |
            A relative URI reference, this property can be used to perform automated error handling.
          enum:
            - /silverflow/problems/card/invalid
        title:
          type: string
          description: |
            A short, human-readable summary of the problem type. It does not change from occurrence to occurrence of the error.
          enum:
            - Invalid Card
        status:
          type: integer
          description: |
            The HTTP status code generated by the origin server for this occurrence
            of the problem.
          enum:
            - 409
        detail:
          $ref: '#/components/schemas/errorDetail'
        instance:
          $ref: '#/components/schemas/errorInstance'
    ChargeInvalidOperationErrorDetails:
      type: object
      required:
        - type
        - title
        - status
        - detail
        - instance
      properties:
        type:
          type: string
          description: |
            A relative URI reference, this property can be used to perform automated error handling.
          enum:
            - /silverflow/problems/charge/invalid-operation
        title:
          type: string
          description: |
            A short, human-readable summary of the problem type. It does not change from occurrence to occurrence of the error.
          enum:
            - Invalid Operation on Charge
        status:
          type: integer
          description: |
            The HTTP status code generated by the origin server for this occurrence
            of the problem.
          enum:
            - 409
        detail:
          $ref: '#/components/schemas/errorDetail'
        instance:
          $ref: '#/components/schemas/errorInstance'
    TemporaryServerErrorDetails:
      type: object
      required:
        - type
        - title
        - status
        - detail
        - instance
      properties:
        type:
          type: string
          description: |
            A relative URI reference, this property can be used to perform automated error handling.
          enum:
            - /silverflow/problems/temporary-server-error
        title:
          type: string
          description: |
            A short, human-readable summary of the problem type. It does not change from occurrence to occurrence of the error.
          enum:
            - Temporary Server Error
        status:
          type: integer
          description: |
            The HTTP status code generated by the origin server for this occurrence
            of the problem.
          enum:
            - 503
        detail:
          $ref: '#/components/schemas/errorDetail'
        instance:
          $ref: '#/components/schemas/errorInstance'
    ChargeReverse:
      type: object
      additionalProperties: false
      description: |
        Reverse a Charge.
      properties:
        replacementAmount:
          type: integer
          format: int64
          minimum: 0
          maximum: 999999999999
          default: 0
          description: |
            The amount to replace the original authorization with. Note that this is not the amount to be reversed.
            If zero, the full current charge amount will be reversed. If a non-zero amount is
            provided, a partial reversal will be done.

            When reversing Visa POS transactions with cashback, this value must be 0.
          example: 2599
        reference:
          $ref: '#/components/schemas/actionReference'
    InvalidAmountErrorDetails:
      type: object
      required:
        - type
        - title
        - status
        - detail
        - instance
      properties:
        type:
          type: string
          description: |
            A relative URI reference, this property can be used to perform automated error handling.
          enum:
            - /silverflow/problems/charge/invalid-amount
        title:
          $ref: '#/components/schemas/errorTitle'
        status:
          type: integer
          description: |
            The HTTP status code generated by the origin server for this occurrence
            of the problem.
          enum:
            - 409
        detail:
          $ref: '#/components/schemas/errorDetail'
        instance:
          $ref: '#/components/schemas/errorInstance'
    IncrementReplacementAmount:
      type: integer
      format: int64
      minimum: 1
      maximum: 999999999999
      description: |
        The new total authorized amount (initial amount plus increment).
      example: 2599
    ChargeIncrement:
      type: object
      additionalProperties: false
      description: |
        Increment a charge.
      required:
        - replacementAmount
      properties:
        replacementAmount:
          $ref: '#/components/schemas/IncrementReplacementAmount'
        reference:
          $ref: '#/components/schemas/actionReference'
    authorizationResponseForIncrementAction:
      type: object
      description: |
        Network-specific details from the authorization response.
        Actions created before 2023-10-07 will have the `network` property and other remaining properties as `unknown`.
      discriminator:
        propertyName: network
        mapping:
          bancontact: '#/components/schemas/authorizationIsoFieldsBancontactWithDiscriminator'
          diners: '#/components/schemas/authorizationIsoFieldsDinersWithDiscriminator'
          discover: '#/components/schemas/authorizationIsoFieldsDiscoverWithDiscriminator'
          mastercard: '#/components/schemas/authorizationIsoFieldsMastercardWithDiscriminator'
          unionpay: '#/components/schemas/authorizationIsoFieldsUnionPayWithDiscriminator'
          visa: '#/components/schemas/authorizationIsoFieldsVisaWithDiscriminator'
          unknown: '#/components/schemas/authorizationIsoFieldsUnknown'
      oneOf:
        - $ref: '#/components/schemas/authorizationIsoFieldsBancontactWithDiscriminator'
        - $ref: '#/components/schemas/authorizationIsoFieldsDinersWithDiscriminator'
        - $ref: '#/components/schemas/authorizationIsoFieldsDiscoverWithDiscriminator'
        - $ref: '#/components/schemas/authorizationIsoFieldsMastercardWithDiscriminator'
        - $ref: '#/components/schemas/authorizationIsoFieldsUnionPayWithDiscriminator'
        - $ref: '#/components/schemas/authorizationIsoFieldsVisaWithDiscriminator'
        - $ref: '#/components/schemas/authorizationIsoFieldsUnknown'
    IncrementAction:
      type: object
      description: Action for incrementing a charge
      required:
        - key
        - chargeKey
        - type
        - replacementAmount
        - status
        - authorizationResponse
        - created
        - version
      properties:
        type:
          type: string
          enum:
            - increment
        key:
          $ref: '#/components/schemas/actionKey'
        chargeKey:
          $ref: '#/components/schemas/chargeKey'
        reference:
          $ref: '#/components/schemas/actionReference'
        replacementAmount:
          $ref: '#/components/schemas/common_Amount'
        status:
          type: object
          required:
            - authorization
          properties:
            authorization:
              type: string
              enum:
                - approved
                - declined
        authorizationResponse:
          $ref: '#/components/schemas/authorizationResponseForIncrementAction'
        created:
          $ref: '#/components/schemas/openapi_components-schemas-created'
        lastModified:
          $ref: '#/components/schemas/components-schemas-lastModified'
        version:
          $ref: '#/components/schemas/schemas-version'
    UnexpectedRefundStatusErrorDetails:
      type: object
      required:
        - type
        - title
        - status
        - detail
        - instance
      properties:
        type:
          type: string
          description: |
            A relative URI reference, this property can be used to perform automated error handling.
          enum:
            - /silverflow/problems/charge/unexpected-refunds-status
        title:
          $ref: '#/components/schemas/errorTitle'
        status:
          type: integer
          description: |
            The HTTP status code generated by the origin server for this occurrence
            of the problem.
          enum:
            - 409
        detail:
          $ref: '#/components/schemas/errorDetail'
        instance:
          $ref: '#/components/schemas/errorInstance'
    ManualClearing:
      type: object
      additionalProperties: false
      properties:
        amount:
          type: integer
          format: int64
          minimum: 1
          maximum: 999999999999
          description: |
            The amount to clear. If omitted, the full amount of the charge will be cleared.

            The amount should be in minor units. For example `$12.34` should be encoded as `1234`. Note
            that not all currencies have 2 minor units; some have three or zero.
          example: 900
        closeCharge:
          type: boolean
          description: |
            Indicates if the series of clearings for this transaction ends after the current clearing.
            Only relevant when doing partial clearing.
        clearAfter:
          $ref: '#/components/schemas/clearAfter'
        reference:
          $ref: '#/components/schemas/actionReference'
        enhancedData:
          $ref: '#/components/schemas/enhancedDataInput'
    EnhancedDataDestinationAddress:
      type: object
      description: Must be provided if shipment is involved and captured on the invoice
      properties:
        countryCode:
          allOf:
            - description: Destination country code.
            - $ref: '#/components/schemas/schemas-CountryCode'
        postalCode:
          allOf:
            - description: Destination postal code.
            - $ref: '#/components/schemas/openapi_components-schemas-postalCode'
    enhancedData:
      type: object
      additionalProperties: false
      description: An optional object for submitting Level 2 (tax and order references) and Level 3 (granular line-item details) payment data. Providing this data can qualify transactions for reduced interchange rates. <span class="tag network-tag visa-tag">VISA</span> <span class="tag network-tag mastercard-tag">MASTERCARD</span> <a class="experimental-tag-link" href="https://docs.silverflow.com/guides/api-lifecycle#tag/EXPERIMENTAL-Tag"><span class="tag experimental-tag">EXPERIMENTAL</span></a>
      required:
        - taxAmount
      properties:
        taxAmount:
          type: integer
          format: int64
          minimum: 0
          maximum: 999999999999
          description: Total amount of Sales Tax or Value Added Tax (VAT) collected in minor units. It is set to 0 if no tax is collected.
          example: 300
        customerCode:
          type: string
          minLength: 1
          maxLength: 25
          description: A code used to identify the customer or consumer.
          example: REF12345
        customerTaxId:
          type: string
          minLength: 1
          maxLength: 13
          description: Customer's tax registration or VAT number.
        destinationAddress:
          $ref: '#/components/schemas/EnhancedDataDestinationAddress'
        discountAmount:
          type: integer
          format: int64
          minimum: 0
          maximum: 999999999999
          description: Total amount of discount at invoice level in minor units. Excludes any discount amounts defined at line item level.
          example: 50
        invoiceNumber:
          type: string
          minLength: 1
          maxLength: 25
          description: Invoice number for the transaction.
        orderDate:
          type: string
          format: date
          description: Date the order was placed.
          example: '2026-05-01'
        purchaseOrderNumber:
          type: string
          minLength: 1
          maxLength: 13
          description: Purchase order number for the transaction.
        shippingAddress:
          $ref: '#/components/schemas/EnhancedDataShippingAddress'
        timeOfPurchase:
          type: string
          pattern: ^([0-1][0-9]|2[0-3])[0-5][0-9]$
          minLength: 4
          maxLength: 4
          description: Local transaction time in HHMM format.
          example: '1402'
        lineItems:
          type: array
          minItems: 1
          maxItems: 100
          description: Array of line items.
          items:
            $ref: '#/components/schemas/EnhancedDataLineItem'
    ClearingAction:
      type: object
      description: Action for clearing a charge
      required:
        - key
        - chargeKey
        - created
        - version
        - type
        - amount
      properties:
        type:
          type: string
          enum:
            - clearing
        key:
          $ref: '#/components/schemas/actionKey'
        chargeKey:
          $ref: '#/components/schemas/chargeKey'
        reference:
          $ref: '#/components/schemas/actionReference'
        amount:
          allOf:
            - description: The amount to clear
            - $ref: '#/components/schemas/common_Amount'
        enhancedData:
          $ref: '#/components/schemas/enhancedData'
        created:
          $ref: '#/components/schemas/openapi_components-schemas-created'
        lastModified:
          $ref: '#/components/schemas/components-schemas-lastModified'
        version:
          $ref: '#/components/schemas/schemas-version'
    ClearingCurrentZeroAmountErrorDetails:
      type: object
      required:
        - type
        - title
        - status
        - detail
        - instance
      properties:
        type:
          type: string
          description: |
            A relative URI reference, this property can be used to perform automated error handling.
          enum:
            - /silverflow/problems/charge/cannot-clear-zero-amount
        title:
          type: string
          description: |
            A short, human-readable summary of the problem type. It does not change from occurrence to occurrence of the error.
          enum:
            - Cannot Clear Zero Amount
        status:
          type: integer
          description: |
            The HTTP status code generated by the origin server for this occurrence
            of the problem.
          enum:
            - 409
        detail:
          $ref: '#/components/schemas/errorDetail'
        instance:
          $ref: '#/components/schemas/errorInstance'
    AuthorizationAction:
      type: object
      description: Action for authorizing a charge
      required:
        - key
        - chargeKey
        - created
        - version
        - type
        - status
        - amount
        - authorizationResponse
      properties:
        type:
          type: string
          enum:
            - authorization
        key:
          $ref: '#/components/schemas/actionKey'
        chargeKey:
          $ref: '#/components/schemas/chargeKey'
        reference:
          $ref: '#/components/schemas/actionReference'
        amount:
          allOf:
            - description: The amount encoded as an object with a `value` in minor units and a `currency` code. In case of a (partially) approved charge, this is the authorized amount.
            - $ref: '#/components/schemas/common_Amount'
        status:
          type: object
          required:
            - authorization
          properties:
            authorization:
              type: string
              enum:
                - approved
                - approved-partial
                - approved-purchase-amount-only
                - declined
        authorizationResponse:
          $ref: '#/components/schemas/authorizationResponseForAuthorizationAndRefundActions'
        enhancedData:
          $ref: '#/components/schemas/enhancedData'
        created:
          $ref: '#/components/schemas/openapi_components-schemas-created'
        lastModified:
          $ref: '#/components/schemas/components-schemas-lastModified'
        version:
          $ref: '#/components/schemas/schemas-version'
    Action:
      description: An action performed on a charge
      type: object
      discriminator:
        propertyName: type
        mapping:
          authorization: '#/components/schemas/AuthorizationAction'
          reversal: '#/components/schemas/ReversalAction'
          refund: '#/components/schemas/RefundAction'
          offline-refund: '#/components/schemas/OfflineRefundAction'
          clearing: '#/components/schemas/ClearingAction'
          increment: '#/components/schemas/IncrementAction'
      oneOf:
        - $ref: '#/components/schemas/AuthorizationAction'
        - $ref: '#/components/schemas/ReversalAction'
        - $ref: '#/components/schemas/RefundAction'
        - $ref: '#/components/schemas/OfflineRefundAction'
        - $ref: '#/components/schemas/ClearingAction'
        - $ref: '#/components/schemas/IncrementAction'
    ActionsPage:
      allOf:
        - $ref: '#/components/schemas/PageWithMoreItems'
        - description: List of actions
        - type: object
          required:
            - actions
          properties:
            actions:
              type: array
              items:
                $ref: '#/components/schemas/Action'
    MerchantAcceptorKey:
      type: string
      description: Uniquely identifies a merchant acceptor.
      pattern: ^mac-[a-zA-Z0-9]+$
      minLength: 5
      maxLength: 120
      example: mac-1eOdAHhgstYTUhlphPFf
    MerchantAcceptorKeyResolver:
      type: object
      description: |
        Used to select a merchant acceptor by key.
      additionalProperties: false
      required:
        - merchantAcceptorKey
      properties:
        merchantAcceptorKey:
          $ref: '#/components/schemas/MerchantAcceptorKey'
    MerchantKey:
      type: string
      description: Uniquely identifies a merchant.
      pattern: ^mct-[a-zA-Z0-9]+$
      minLength: 5
      maxLength: 120
      example: mct-1234abcdef123
    MerchantKeyResolver:
      type: object
      description: |
        Used to select a merchant acceptor by merchant key and an optional route.
      additionalProperties: false
      required:
        - merchantKey
      properties:
        merchantKey:
          $ref: '#/components/schemas/MerchantKey'
        route:
          type: string
          description: |
            Route key used to uniquely reference an acceptor when used in combination
            with its card network and merchant key.
          pattern: ^(^$|^[a-zA-Z0-9-_:;.,]+$)
          minLength: 0
          maxLength: 255
    MerchantAcceptorResolver:
      description: |
        The resolver is used to select the appropriate merchant acceptor for the action.
        It can accept either a `merchantAcceptorKey` or a combination of `merchantKey` and an optional `route`. If the optional property for `route` is not provided
        the default one generated when creating an acceptor will be used.
      oneOf:
        - $ref: '#/components/schemas/MerchantAcceptorKeyResolver'
        - $ref: '#/components/schemas/MerchantKeyResolver'
    components-schemas-Card:
      type: object
      description: Card details for ATM transactions.
      additionalProperties: false
      required:
        - number
        - expiryMonth
        - expiryYear
      properties:
        number:
          type: string
          description: The primary account number (PAN) of the card.
          pattern: ^[0-9]+$
          minLength: 12
          maxLength: 19
          example: '5413330089010640'
        expiryMonth:
          type: integer
          description: The expiry month of the card (1-12).
          minimum: 1
          maximum: 12
          example: 12
        expiryYear:
          type: integer
          description: The expiry year of the card (four digits).
          minimum: 1950
          maximum: 2200
          example: 2025
    TerminalEntryMode:
      type: string
      description: |
        The method used for PAN entry on the ATM terminal.

        When set to `chip` or `contactless`, `emvData` is required.
      enum:
        - chip
        - contactless
        - magstripe
        - magstripe_fallback
        - contactless_magstripe
    schemas-TerminalCapability:
      type: string
      description: ATM terminal capabilities subset
      enum:
        - contact_chip
        - contactless_chip
        - magstripe
    schemas-Terminal:
      type: object
      description: Details about the ATM terminal.
      additionalProperties: false
      required:
        - id
        - capabilities
      properties:
        id:
          type: string
          description: ATM terminal's ID
          pattern: ^[a-zA-Z0-9]+$
          minLength: 1
          maxLength: 8
          example: ATM001
        capabilities:
          type: array
          description: |
            The capabilities of the ATM terminal. This can be one or multiple.
          minItems: 1
          items:
            $ref: '#/components/schemas/schemas-TerminalCapability'
          example:
            - contact_chip
            - contactless_chip
            - magstripe
    LocalTransactionDateTime:
      type: string
      description: Date and time of the transaction in the local timezone.
      format: iso-8601-date-time
    TransactionReference:
      type: string
      description: |
        Unique ID assigned by the merchant or payment service provider for the transaction. Used to identify the transaction.
      pattern: ^[a-zA-Z0-9()+,\-.:=@;$_!*\/?|]+$
      minLength: 1
      maxLength: 120
      example: Dz3dIzE74EfH1HeTInyE
    Track2Data:
      type: string
      description: |
        The information encoded on track 2 of the card magnetic stripe as defined in the ISO 7813 specification, including data element separator but excluding the beginning and ending sentinels and the LRC (Longitudinal Redundancy Check) character.
        This property is mandatory when the `terminalEntryMode` is `chip`, `contactless` or `magstripe`.
      pattern: ^[A-Fa-f0-9]+$
      minLength: 1
      maxLength: 37
      example: 6799995700000004054D25122010875408456
    CardSequenceNumber:
      type: string
      description: |
        Distinguishes among separate cards having the same PAN.
        This is required if EMV tag 5F34 is present/personalized on the card chip.
      pattern: ^[0-9]+$
      minLength: 1
      maxLength: 3
      example: '001'
    EmvData:
      type: string
      description: |
        This field contains integrated circuit card (ICC) related binary data that is transmitted from the ICC to the card 
        issuer and from the card issuer to the ICC. This field is formatted as 510 hexadecimal characters, which translates to 255 bytes.

        Required if `terminalEntryMode` is `chip` or `contactless`.
      pattern: ^[A-Fa-f0-9]+$
      minLength: 1
      maxLength: 510
      example: 5F2A0209785F34010082027C008407A0000000093510950500000080009A031104119C01009F02060000000043149F090200029F10120210A780030400009F2100000000000000FF9F1A0202509F26082E3EAB17CEEC500C9F2701809F330360A0409F34034403029F3501229F360200169F3704BC75E9B39F4005A00090F0019F4C089F21B02E0EEAC454
    schemas-PinBlock:
      type: object
      title: ISO-4 PIN Block
      description: PIN block related data in `ISO-4` format.
      additionalProperties: false
      required:
        - block
        - format
        - zoneId
        - keyId
      properties:
        format:
          type: string
          description: The PIN block format.
          enum:
            - ISO-4
        block:
          type: string
          title: ISO-4 Block
          description: |
            The encrypted PIN, as an `ISO-4` block of 32 hexadecimal characters.
          pattern: ^[A-Fa-f0-9]+$
          minLength: 32
          maxLength: 32
          example: 32CF86E514CB24FE32CF86E514CB24FE
        zoneId:
          type: string
          description: ID of the encryption zone.
          pattern: ^[a-zA-Z0-9()+,\-.:=@;$_!*\/?#|]*$
          minLength: 1
          maxLength: 128
          example: my-zone
        keyId:
          type: string
          description: Encryption key in the specified zone to use.
          pattern: ^[a-zA-Z0-9()+,\-.:=@;$_!*\/?#|]*$
          minLength: 1
          maxLength: 128
          example: my-encryption-key
    CreatePinChangeRequest:
      type: object
      additionalProperties: false
      required:
        - merchantAcceptorResolver
        - card
        - terminalEntryMode
        - terminal
        - pinBlock
        - newPinBlock
      properties:
        merchantAcceptorResolver:
          $ref: '#/components/schemas/MerchantAcceptorResolver'
        card:
          $ref: '#/components/schemas/components-schemas-Card'
        terminalEntryMode:
          $ref: '#/components/schemas/TerminalEntryMode'
        terminal:
          $ref: '#/components/schemas/schemas-Terminal'
        localTransactionDateTime:
          $ref: '#/components/schemas/LocalTransactionDateTime'
        transactionReference:
          $ref: '#/components/schemas/TransactionReference'
        track2Data:
          $ref: '#/components/schemas/Track2Data'
        cardSequenceNumber:
          $ref: '#/components/schemas/CardSequenceNumber'
        emvData:
          $ref: '#/components/schemas/EmvData'
        pinBlock:
          $ref: '#/components/schemas/schemas-PinBlock'
        newPinBlock:
          $ref: '#/components/schemas/schemas-PinBlock'
      example:
        merchantAcceptorResolver:
          merchantAcceptorKey: mac-1eOdAHhgstYTUhlphPFf
        card:
          number: '5286940020000205'
          expiryYear: 2030
          expiryMonth: 12
        terminalEntryMode: contactless
        terminal:
          id: ATM001
          capabilities:
            - contact_chip
            - contactless_chip
            - magstripe
        track2Data: 5286940020000205D30122010123456789
        emvData: 820219808407A00000000410109505000000800101020880
        pinBlock:
          format: ISO-4
          block: 32CF86E514CB24FE32CF86E514CB24FE
          zoneId: atm-gateway
          keyId: '0001'
        newPinBlock:
          format: ISO-4
          block: A1B2C3D4E5F60718A1B2C3D4E5F60718
          zoneId: atm-gateway
          keyId: '0001'
    ActionKey:
      type: string
      description: Uniquely identifies a card-management action.
      pattern: ^cma-[a-zA-Z0-9]+$
      minLength: 5
      maxLength: 120
      example: cma-1e1dAHhgstYTUhlphPzZ
    ActionResult:
      type: string
      description: The result of the authorization.
      enum:
        - approved
        - declined
    MaskedCard:
      type: object
      description: |
        Card data for ATM transactions. ATM transactions do not support processor tokenization.
      additionalProperties: false
      required:
        - maskedNumber
      properties:
        maskedNumber:
          type: string
          description: |
            The card number used to create this action, masked according to PCI standards. For card numbers with 16 or more digits, the first 8 and the last 4 digits are visible. For card numbers with 13-15 digits, the first 6 and the last 4 digits are visible. For cards numbers with less than 13 digits, the first 6 and last 2 digits are visible.
    MerchantAcceptorRef:
      type: object
      additionalProperties: false
      required:
        - key
        - version
      properties:
        key:
          $ref: '#/components/schemas/MerchantAcceptorKey'
        version:
          type: integer
          description: The version of this object
          format: int64
          example: 1
    VisaNetworkFields:
      type: object
      description: Visa specific ISO8583 raw values
      additionalProperties: false
      required:
        - network
        - transactionIdentifier
      properties:
        network:
          type: string
          enum:
            - visa
          description: Card network
          example: visa
        transactionIdentifier:
          type: string
          description: Contents of field 62, subfield 2
          example: '238210000026090'
    MastercardNetworkFields:
      type: object
      description: Mastercard specific ISO8583 raw values
      additionalProperties: false
      required:
        - network
        - banknetReference
        - traceId
      properties:
        network:
          type: string
          enum:
            - mastercard
          description: Card network
          example: mastercard
        banknetReference:
          type: string
          description: Contents of field 63, subfield 2
          example: ATSGHX
        traceId:
          type: string
          description: |
            The trace ID can be used to refer to the original authorization when reversing it.

            The value is constructed from the contents of field 63, subfield 1, field 63, subfield 2, and field 15. The value intentionally ends with two spaces.
    NetworkSpecificFields:
      oneOf:
        - $ref: '#/components/schemas/VisaNetworkFields'
        - $ref: '#/components/schemas/MastercardNetworkFields'
      discriminator:
        propertyName: network
        mapping:
          visa: '#/components/schemas/VisaNetworkFields'
          mastercard: '#/components/schemas/MastercardNetworkFields'
    AuthorizationIsoFields:
      type: object
      description: The values from the ISO8583 response message received from the network.
      additionalProperties: false
      required:
        - responseCode
        - responseCodeDescription
        - networkCode
        - systemTraceAuditNumber
        - retrievalReferenceNumber
        - networkSpecificFields
      properties:
        responseCode:
          type: string
          description: Contents of field 39
          example: '00'
        responseCodeDescription:
          type: string
          description: The description of the `responseCode`
          example: Approved
        authorizationCode:
          type: string
          description: Contents of field 38
          example: 4A4316
        networkCode:
          type: string
          description: Contents of field 63, subfield 1
          example: '0000'
        systemTraceAuditNumber:
          type: string
          description: Contents of field 11
          example: '123456'
        retrievalReferenceNumber:
          type: string
          description: Contents of field 37
          example: '131608123456'
        networkSpecificFields:
          $ref: '#/components/schemas/NetworkSpecificFields'
    NewEmvData:
      type: string
      description: |
        This field contains integrated circuit card (ICC) related binary data that is transmitted from the card issuer to the ICC. This field is formatted as 510 hexadecimal characters, which translates to 255 bytes.

        If this field is present in the response message, it should be passed without modification to the ICC.
      pattern: ^[A-Fa-f0-9]+$
      minLength: 1
      maxLength: 510
      example: 5F2A0209785F34010082027C008407A0000000093510950500000080009A031104119C01009F02060000000043149F090200029F10120210A780030400009F2100000000000000FF9F1A0202509F26082E3EAB17CEEC500C9F2701809F330360A0409F34034403029F3501229F360200169F3704BC75E9B39F4005A00090F0019F4C089F21B02E0EEAC454
    components-schemas-version:
      type: integer
      description: The version of this object
      format: int64
      example: 1
    CreatePinChangeResponse:
      type: object
      additionalProperties: false
      required:
        - key
        - type
        - result
        - card
        - merchantAcceptorRef
        - terminalEntryMode
        - terminal
        - authorizationIsoFields
        - created
        - version
      properties:
        key:
          $ref: '#/components/schemas/ActionKey'
        type:
          type: string
          enum:
            - pin_change
        result:
          $ref: '#/components/schemas/ActionResult'
        card:
          $ref: '#/components/schemas/MaskedCard'
        merchantAcceptorRef:
          $ref: '#/components/schemas/MerchantAcceptorRef'
        terminalEntryMode:
          $ref: '#/components/schemas/TerminalEntryMode'
        terminal:
          $ref: '#/components/schemas/schemas-Terminal'
        transactionReference:
          $ref: '#/components/schemas/TransactionReference'
        authorizationIsoFields:
          $ref: '#/components/schemas/AuthorizationIsoFields'
        newEmvData:
          $ref: '#/components/schemas/NewEmvData'
        localTransactionDateTime:
          $ref: '#/components/schemas/LocalTransactionDateTime'
        created:
          $ref: '#/components/schemas/schemas-created'
        version:
          $ref: '#/components/schemas/components-schemas-version'
      example:
        key: cma-3pkSK2b2ES9ZTiYM4GWZ
        type: pin_change
        result: approved
        card:
          maskedNumber: 52869400****0205
        merchantAcceptorRef:
          key: mac-1eOdAHhgstYTUhlphPFf
          version: 1
        terminalEntryMode: contactless
        terminal:
          id: ATM001
          capabilities:
            - contact_chip
            - contactless_chip
            - magstripe
        authorizationIsoFields:
          responseCode: '00'
          responseCodeDescription: Approved
          authorizationCode: '547158'
          networkCode: MCS
          systemTraceAuditNumber: '665356'
          retrievalReferenceNumber: '326312665356'
          networkSpecificFields:
            network: mastercard
            banknetReference: '842823'
            traceId: 'MCS8428230527  '
        localTransactionDateTime: '2026-07-13T12:46:05.516Z'
        created: '2026-07-13T12:46:05.516Z'
        version: 1
    components-schemas-ValidationError:
      type: object
      additionalProperties: false
      required:
        - path
        - message
      properties:
        path:
          type: string
          description: A relative path to the error location within the request body.
        errorCode:
          type: string
          description: A code that identifies the error.
        message:
          type: string
          description: A brief description of the validation error.
    InvalidInputError:
      type: object
      additionalProperties: false
      required:
        - type
        - title
        - status
        - detail
        - instance
        - validationErrors
      properties:
        type:
          type: string
          enum:
            - /silverflow/problems/invalid-input
        title:
          type: string
          enum:
            - Invalid Input
        status:
          type: integer
          enum:
            - 400
        detail:
          $ref: '#/components/schemas/errorDetail'
        instance:
          $ref: '#/components/schemas/errorInstance'
        validationErrors:
          type: array
          items:
            $ref: '#/components/schemas/components-schemas-ValidationError'
          description: A list of validation errors.
      example:
        type: /silverflow/problems/invalid-input
        title: Invalid Input
        status: 400
        detail: The request does not adhere to the defined API schema.
        instance: /silverflow/b4cc37a0-ab24-46b4-aa8c-cc2d6eddf1b6
        validationErrors:
          - path: /body/card/number
            message: must have required property 'number'
            errorCode: required.openapi.validation
    InvalidRequestError:
      type: object
      additionalProperties: false
      required:
        - type
        - title
        - status
        - detail
        - instance
      properties:
        type:
          type: string
          enum:
            - /silverflow/problems/invalid-request
        title:
          type: string
          enum:
            - Invalid Request
        status:
          type: integer
          enum:
            - 400
        detail:
          $ref: '#/components/schemas/errorDetail'
        instance:
          $ref: '#/components/schemas/errorInstance'
      example:
        type: /silverflow/problems/invalid-request
        title: Invalid Request
        status: 400
        detail: Cannot create the action due to one or more errors in the request.
        instance: /silverflow/b0451a9d-f66d-4ef7-9f5d-d48064a2bb3e
    IncompatibleMccError:
      type: object
      additionalProperties: false
      required:
        - type
        - title
        - status
        - detail
        - instance
      properties:
        type:
          type: string
          enum:
            - /silverflow/problems/incompatible-mcc
        title:
          type: string
          enum:
            - Incompatible MCC
        status:
          type: integer
          enum:
            - 400
        detail:
          $ref: '#/components/schemas/errorDetail'
        instance:
          $ref: '#/components/schemas/errorInstance'
      example:
        type: /silverflow/problems/incompatible-mcc
        title: Incompatible MCC
        status: 400
        detail: The merchant category code is not compatible with this operation.
        instance: /silverflow/2b6f1c9e-3a2d-4c1b-8e5f-1a2b3c4d5e6f
    IncompatibleNetworkForOperationError:
      type: object
      additionalProperties: false
      required:
        - type
        - title
        - status
        - detail
        - instance
      properties:
        type:
          type: string
          enum:
            - /silverflow/problems/incompatible-network-for-operation
        title:
          type: string
          enum:
            - Incompatible Network For Operation
        status:
          type: integer
          enum:
            - 400
        detail:
          $ref: '#/components/schemas/errorDetail'
        instance:
          $ref: '#/components/schemas/errorInstance'
      example:
        type: /silverflow/problems/incompatible-network-for-operation
        title: Incompatible Network For Operation
        status: 400
        detail: The network is not compatible with this operation.
        instance: /silverflow/2b6f1c9e-3a2d-4c1b-8e5f-1a2b3c4d5e6f
    CannotDetermineCardNetworkError:
      type: object
      additionalProperties: false
      required:
        - type
        - title
        - status
        - detail
        - instance
      properties:
        type:
          type: string
          enum:
            - /silverflow/problems/card-management/cannot-determine-card-network
        title:
          type: string
          enum:
            - Cannot Determine Card Network
        status:
          type: integer
          enum:
            - 400
        detail:
          $ref: '#/components/schemas/errorDetail'
        instance:
          $ref: '#/components/schemas/errorInstance'
      example:
        type: /silverflow/problems/card-management/cannot-determine-card-network
        title: Cannot Determine Card Network
        status: 400
        detail: Could not determine a supported card network for the provided card.
        instance: /silverflow/3d7e8f9a-1b2c-4d3e-9f0a-1b2c3d4e5f6a
    UnauthorizedError:
      type: object
      additionalProperties: false
      required:
        - type
        - title
        - status
        - detail
        - instance
      properties:
        type:
          type: string
          enum:
            - /silverflow/problems/authentication-required
        title:
          type: string
          enum:
            - Authentication Required
        status:
          type: integer
          enum:
            - 401
        detail:
          $ref: '#/components/schemas/errorDetail'
        instance:
          $ref: '#/components/schemas/errorInstance'
      example:
        type: /silverflow/problems/authentication-required
        title: Authentication Required
        status: 401
        detail: Authentication Required
        instance: /silverflow/8e445b2e-d745-4b38-a38d-781fc998e442
    ForbiddenError:
      type: object
      additionalProperties: false
      required:
        - type
        - title
        - status
        - detail
        - instance
      properties:
        type:
          type: string
          enum:
            - /silverflow/problems/forbidden
        title:
          type: string
          enum:
            - Forbidden
        status:
          type: integer
          enum:
            - 403
        detail:
          $ref: '#/components/schemas/errorDetail'
        instance:
          $ref: '#/components/schemas/errorInstance'
      example:
        type: /silverflow/problems/forbidden
        title: Forbidden
        status: 403
        detail: The authenticated agent is not allowed to perform this operation.
        instance: /silverflow/6d334a1d-c634-4a27-9f2d-670eb887d331
    BlockedMerchantAcceptorError:
      type: object
      additionalProperties: false
      required:
        - type
        - title
        - status
        - detail
        - instance
      properties:
        type:
          type: string
          enum:
            - /silverflow/problems/blocked-merchant-acceptor
        title:
          type: string
          enum:
            - Blocked Merchant Acceptor
        status:
          type: integer
          enum:
            - 409
        detail:
          $ref: '#/components/schemas/errorDetail'
        instance:
          $ref: '#/components/schemas/errorInstance'
      example:
        type: /silverflow/problems/blocked-merchant-acceptor
        title: Blocked Merchant Acceptor
        status: 409
        detail: The merchant acceptor is blocked and cannot process this operation.
        instance: /silverflow/2b6f1c9e-3a2d-4c1b-8e5f-1a2b3c4d5e6f
    ReferencedEntityNotFoundError:
      type: object
      additionalProperties: false
      required:
        - type
        - title
        - status
        - detail
        - instance
      properties:
        type:
          type: string
          enum:
            - /silverflow/problems/referenced-entity-not-found
        title:
          type: string
          enum:
            - Referenced Entity Not Found
        status:
          type: integer
          enum:
            - 409
        detail:
          $ref: '#/components/schemas/errorDetail'
        instance:
          $ref: '#/components/schemas/errorInstance'
      example:
        type: /silverflow/problems/referenced-entity-not-found
        title: Referenced Entity Not Found
        status: 409
        detail: The referenced merchant acceptor could not be found.
        instance: /silverflow/1a2b3c4d-5e6f-4a1b-8c9d-0e1f2a3b4c5d
    ReferencedAcceptorNotFoundByRouteError:
      type: object
      additionalProperties: false
      required:
        - type
        - title
        - status
        - detail
        - instance
      properties:
        type:
          type: string
          enum:
            - /silverflow/problems/card-management/referenced-acceptor-not-found-by-route
        title:
          type: string
          enum:
            - Referenced Acceptor Not Found By Route
        status:
          type: integer
          enum:
            - 409
        detail:
          $ref: '#/components/schemas/errorDetail'
        instance:
          $ref: '#/components/schemas/errorInstance'
      example:
        type: /silverflow/problems/card-management/referenced-acceptor-not-found-by-route
        title: Referenced Acceptor Not Found By Route
        status: 409
        detail: No acceptor could be found for the provided merchant key and card network.
        instance: /silverflow/4e5f6a7b-8c9d-4e5f-0a1b-2c3d4e5f6a7b
    IdempotentRequestMismatchError:
      type: object
      additionalProperties: false
      required:
        - type
        - title
        - status
        - detail
        - instance
      properties:
        type:
          type: string
          enum:
            - /silverflow/problems/idempotency/request-mismatch
        title:
          type: string
          enum:
            - Idempotent Request Mismatch
        status:
          type: integer
          enum:
            - 409
        detail:
          $ref: '#/components/schemas/errorDetail'
        instance:
          $ref: '#/components/schemas/errorInstance'
      example:
        type: /silverflow/problems/idempotency/request-mismatch
        title: Idempotent Request Mismatch
        status: 409
        detail: The request body does not match the original request for this idempotency key.
        instance: /silverflow/2b3c4d5e-6f7a-4b2c-9d0e-1f2a3b4c5d6e
    IdempotentRequestIsStillBeingProcessedError:
      type: object
      additionalProperties: false
      required:
        - type
        - title
        - status
        - detail
        - instance
      properties:
        type:
          type: string
          enum:
            - /silverflow/problems/idempotency/request-is-still-being-processed
        title:
          type: string
          enum:
            - Request Is Still Being Processed
        status:
          type: integer
          enum:
            - 409
        detail:
          $ref: '#/components/schemas/errorDetail'
        instance:
          $ref: '#/components/schemas/errorInstance'
      example:
        type: /silverflow/problems/idempotency/request-is-still-being-processed
        title: Request Is Still Being Processed
        status: 409
        detail: The original request for this idempotency key is still being processed.
        instance: /silverflow/3c4d5e6f-7a8b-4c3d-0e1f-2a3b4c5d6e7f
    TooManyRequestsError:
      type: object
      additionalProperties: false
      required:
        - type
        - title
        - status
        - detail
        - instance
      properties:
        type:
          type: string
          enum:
            - /silverflow/problems/too-many-requests
        title:
          type: string
          enum:
            - Too Many Requests
        status:
          type: integer
          enum:
            - 429
        detail:
          $ref: '#/components/schemas/errorDetail'
        instance:
          $ref: '#/components/schemas/errorInstance'
      example:
        type: /silverflow/problems/too-many-requests
        title: Too Many Requests
        status: 429
        detail: The rate limit for this operation has been exceeded.
        instance: /silverflow/6f7a8b9c-0d1e-4f6a-3b4c-5d6e7f8a9b0c
    InternalServerError:
      type: object
      additionalProperties: false
      required:
        - type
        - title
        - status
        - detail
        - instance
      properties:
        type:
          type: string
          enum:
            - /silverflow/problems/internal-server-error
        title:
          type: string
          enum:
            - Internal Server Error
        status:
          type: integer
          enum:
            - 500
        detail:
          $ref: '#/components/schemas/errorDetail'
        instance:
          $ref: '#/components/schemas/errorInstance'
      example:
        type: /silverflow/problems/internal-server-error
        title: Internal Server Error
        status: 500
        detail: The server encountered an unexpected error.
        instance: /silverflow/7a8b9c0d-1e2f-4a7b-4c5d-6e7f8a9b0c1d
    ReversePinChangeResponse:
      type: object
      additionalProperties: false
      required:
        - key
        - reversedActionKey
        - type
        - result
        - authorizationIsoFields
        - created
        - version
      properties:
        key:
          $ref: '#/components/schemas/ActionKey'
        reversedActionKey:
          allOf:
            - description: The key of the card management action that was reversed.
            - $ref: '#/components/schemas/ActionKey'
        type:
          type: string
          enum:
            - pin_change_reversal
        result:
          $ref: '#/components/schemas/ActionResult'
        authorizationIsoFields:
          $ref: '#/components/schemas/AuthorizationIsoFields'
        created:
          $ref: '#/components/schemas/schemas-created'
        version:
          $ref: '#/components/schemas/components-schemas-version'
    EntityNotFoundError:
      type: object
      additionalProperties: false
      required:
        - type
        - title
        - status
        - detail
        - instance
      properties:
        type:
          type: string
          enum:
            - /silverflow/problems/entity-not-found
        title:
          type: string
          enum:
            - Not Found
        status:
          type: integer
          enum:
            - 404
        detail:
          $ref: '#/components/schemas/errorDetail'
        instance:
          $ref: '#/components/schemas/errorInstance'
      example:
        type: /silverflow/problems/entity-not-found
        title: Not Found
        status: 404
        detail: The action with key 'cma-123456789' was not found.
        instance: /silverflow/0f2da730-7ee1-4860-b75b-5e0a42248513
    ActionAlreadyReversedError:
      type: object
      additionalProperties: false
      required:
        - type
        - title
        - status
        - detail
        - instance
      properties:
        type:
          type: string
          enum:
            - /silverflow/problems/card-management/action-already-reversed
        title:
          type: string
          enum:
            - Action Already Reversed
        status:
          type: integer
          enum:
            - 409
        detail:
          $ref: '#/components/schemas/errorDetail'
        instance:
          $ref: '#/components/schemas/errorInstance'
      example:
        type: /silverflow/problems/card-management/action-already-reversed
        title: Action Already Reversed
        status: 409
        detail: The PIN change 'cma-3pkSK2b2ES9ZTiYM4GWZ' has already been reversed.
        instance: /silverflow/4d5e6f7a-8b9c-4d4e-1f2a-3b4c5d6e7f8a
    ActionNotReversibleError:
      type: object
      additionalProperties: false
      required:
        - type
        - title
        - status
        - detail
        - instance
      properties:
        type:
          type: string
          enum:
            - /silverflow/problems/card-management/action-not-reversible
        title:
          type: string
          enum:
            - Action Not Reversible
        status:
          type: integer
          enum:
            - 409
        detail:
          $ref: '#/components/schemas/errorDetail'
        instance:
          $ref: '#/components/schemas/errorInstance'
      example:
        type: /silverflow/problems/card-management/action-not-reversible
        title: Action Not Reversible
        status: 409
        detail: Only pin_change actions can be reversed.
        instance: /silverflow/5e6f7a8b-9c0d-4e5f-2a3b-4c5d6e7f8a9b
    PinUnblockRequest:
      type: object
      additionalProperties: false
      required:
        - merchantAcceptorResolver
        - card
        - terminalEntryMode
        - terminal
        - pinBlock
      properties:
        merchantAcceptorResolver:
          $ref: '#/components/schemas/MerchantAcceptorResolver'
        card:
          $ref: '#/components/schemas/components-schemas-Card'
        terminalEntryMode:
          $ref: '#/components/schemas/TerminalEntryMode'
        terminal:
          $ref: '#/components/schemas/schemas-Terminal'
        localTransactionDateTime:
          $ref: '#/components/schemas/LocalTransactionDateTime'
        transactionReference:
          $ref: '#/components/schemas/TransactionReference'
        track2Data:
          $ref: '#/components/schemas/Track2Data'
        cardSequenceNumber:
          $ref: '#/components/schemas/CardSequenceNumber'
        emvData:
          $ref: '#/components/schemas/EmvData'
        pinBlock:
          $ref: '#/components/schemas/schemas-PinBlock'
      example:
        merchantAcceptorResolver:
          merchantAcceptorKey: mac-1eOdAHhgstYTUhlphPFf
        card:
          number: '5286940020000205'
          expiryYear: 2030
          expiryMonth: 12
        terminalEntryMode: contactless
        terminal:
          id: ATM001
          capabilities:
            - contact_chip
            - contactless_chip
            - magstripe
        track2Data: 5286940020000205D30122010123456789
        emvData: 820219808407A00000000410109505000000800101020880
        pinBlock:
          format: ISO-4
          block: 32CF86E514CB24FE32CF86E514CB24FE
          zoneId: atm-gateway
          keyId: '0001'
    CreatePinUnblockResponse:
      type: object
      additionalProperties: false
      required:
        - key
        - type
        - result
        - card
        - merchantAcceptorRef
        - terminalEntryMode
        - terminal
        - authorizationIsoFields
        - created
        - version
      properties:
        key:
          $ref: '#/components/schemas/ActionKey'
        type:
          type: string
          enum:
            - pin_unblock
        result:
          $ref: '#/components/schemas/ActionResult'
        card:
          $ref: '#/components/schemas/MaskedCard'
        merchantAcceptorRef:
          $ref: '#/components/schemas/MerchantAcceptorRef'
        terminalEntryMode:
          $ref: '#/components/schemas/TerminalEntryMode'
        terminal:
          $ref: '#/components/schemas/schemas-Terminal'
        transactionReference:
          $ref: '#/components/schemas/TransactionReference'
        authorizationIsoFields:
          $ref: '#/components/schemas/AuthorizationIsoFields'
        newEmvData:
          $ref: '#/components/schemas/NewEmvData'
        localTransactionDateTime:
          $ref: '#/components/schemas/LocalTransactionDateTime'
        created:
          $ref: '#/components/schemas/schemas-created'
        version:
          $ref: '#/components/schemas/components-schemas-version'
      example:
        key: cma-4qlTL3c3FT0AUjZN5HXa
        type: pin_unblock
        result: approved
        card:
          maskedNumber: 52869400****0205
        merchantAcceptorRef:
          key: mac-1eOdAHhgstYTUhlphPFf
          version: 1
        terminalEntryMode: contactless
        terminal:
          id: ATM001
          capabilities:
            - contact_chip
            - contactless_chip
            - magstripe
        authorizationIsoFields:
          responseCode: '00'
          responseCodeDescription: Approved
          authorizationCode: '547159'
          networkCode: MCS
          systemTraceAuditNumber: '665357'
          retrievalReferenceNumber: '326312665357'
          networkSpecificFields:
            network: mastercard
            banknetReference: '842824'
            traceId: 'MCS8428240527  '
        newEmvData: 9F1A0208409F02060000000001009F21031104
        localTransactionDateTime: '2026-07-13T12:46:05.516Z'
        created: '2026-07-13T12:46:05.516Z'
        version: 1
    AccountSource:
      type: string
      description: The type of account from which the funds should be withdrawn.
      enum:
        - unspecified
        - savings
        - checking
        - credit
    BalanceInquiryRequest:
      type: object
      additionalProperties: false
      required:
        - merchantAcceptorResolver
        - card
        - accountSource
        - terminalEntryMode
        - terminal
        - pinBlock
      properties:
        merchantAcceptorResolver:
          $ref: '#/components/schemas/MerchantAcceptorResolver'
        card:
          $ref: '#/components/schemas/components-schemas-Card'
        accountSource:
          $ref: '#/components/schemas/AccountSource'
        terminalEntryMode:
          $ref: '#/components/schemas/TerminalEntryMode'
        terminal:
          $ref: '#/components/schemas/schemas-Terminal'
        localTransactionDateTime:
          $ref: '#/components/schemas/LocalTransactionDateTime'
        transactionReference:
          $ref: '#/components/schemas/TransactionReference'
        track2Data:
          $ref: '#/components/schemas/Track2Data'
        cardSequenceNumber:
          $ref: '#/components/schemas/CardSequenceNumber'
        emvData:
          $ref: '#/components/schemas/EmvData'
        pinBlock:
          $ref: '#/components/schemas/schemas-PinBlock'
      example:
        merchantAcceptorResolver:
          merchantAcceptorKey: mac-1eOdAHhgstYTUhlphPFf
        card:
          number: '5286940020000205'
          expiryYear: 2030
          expiryMonth: 12
        accountSource: checking
        terminalEntryMode: contactless
        terminal:
          id: ATM001
          capabilities:
            - contact_chip
            - contactless_chip
            - magstripe
        track2Data: 5286940020000205D30122010123456789
        emvData: 820219808407A00000000410109505000000800101020880
        pinBlock:
          format: ISO-4
          block: 32CF86E514CB24FE32CF86E514CB24FE
          zoneId: atm-gateway
          keyId: '0001'
    CurrencyCode:
      type: string
      enum:
        - AED
        - AFN
        - ALL
        - AMD
        - AOA
        - ARS
        - AUD
        - AWG
        - AZN
        - BAM
        - BBD
        - BDT
        - BHD
        - BIF
        - BMD
        - BND
        - BOB
        - BRL
        - BSD
        - BTN
        - BWP
        - BYN
        - BZD
        - CAD
        - CDF
        - CHF
        - CLP
        - CNY
        - COP
        - CRC
        - CUC
        - CUP
        - CVE
        - CZK
        - DJF
        - DKK
        - DOP
        - DZD
        - EGP
        - ERN
        - ETB
        - EUR
        - FJD
        - FKP
        - GBP
        - GEL
        - GHS
        - GIP
        - GMD
        - GNF
        - GTQ
        - GYD
        - HKD
        - HNL
        - HTG
        - HUF
        - IDR
        - ILS
        - INR
        - IQD
        - IRR
        - ISK
        - JMD
        - JOD
        - JPY
        - KES
        - KGS
        - KHR
        - KMF
        - KPW
        - KRW
        - KWD
        - KYD
        - KZT
        - LAK
        - LBP
        - LKR
        - LRD
        - LSL
        - LYD
        - MAD
        - MDL
        - MGA
        - MKD
        - MMK
        - MNT
        - MOP
        - MRU
        - MUR
        - MVR
        - MWK
        - MXN
        - MYR
        - MZN
        - NAD
        - NGN
        - NIO
        - NOK
        - NPR
        - NZD
        - OMR
        - PAB
        - PEN
        - PGK
        - PHP
        - PKR
        - PLN
        - PYG
        - QAR
        - RON
        - RSD
        - RUB
        - RWF
        - SAR
        - SBD
        - SCR
        - SDG
        - SEK
        - SGD
        - SHP
        - SOS
        - SRD
        - SSP
        - STN
        - SYP
        - SZL
        - THB
        - TJS
        - TMT
        - TND
        - TOP
        - TRY
        - TTD
        - TWD
        - TZS
        - UAH
        - UGX
        - USD
        - UYU
        - UZS
        - VES
        - VND
        - VUV
        - WST
        - XAF
        - XCD
        - XCG
        - XOF
        - XPF
        - YER
        - ZAR
        - ZMW
        - ZWL
    schemas-BalanceInformation:
      type: object
      additionalProperties: false
      required:
        - accountSource
        - amount
        - currency
      properties:
        accountSource:
          $ref: '#/components/schemas/AccountSource'
        amount:
          type: integer
          description: The available balance, in minor units.
          format: int64
          minimum: 1
          maximum: 999999999999
          example: 10000
        currency:
          $ref: '#/components/schemas/CurrencyCode'
    CreateBalanceInquiryResponse:
      type: object
      additionalProperties: false
      required:
        - key
        - type
        - result
        - card
        - merchantAcceptorRef
        - terminalEntryMode
        - terminal
        - authorizationIsoFields
        - created
        - version
      properties:
        key:
          $ref: '#/components/schemas/ActionKey'
        type:
          type: string
          enum:
            - balance_inquiry
        result:
          $ref: '#/components/schemas/ActionResult'
        card:
          $ref: '#/components/schemas/MaskedCard'
        merchantAcceptorRef:
          $ref: '#/components/schemas/MerchantAcceptorRef'
        terminalEntryMode:
          $ref: '#/components/schemas/TerminalEntryMode'
        terminal:
          $ref: '#/components/schemas/schemas-Terminal'
        transactionReference:
          $ref: '#/components/schemas/TransactionReference'
        authorizationIsoFields:
          $ref: '#/components/schemas/AuthorizationIsoFields'
        balanceInformation:
          $ref: '#/components/schemas/schemas-BalanceInformation'
        newEmvData:
          $ref: '#/components/schemas/NewEmvData'
        localTransactionDateTime:
          $ref: '#/components/schemas/LocalTransactionDateTime'
        created:
          $ref: '#/components/schemas/schemas-created'
        version:
          $ref: '#/components/schemas/components-schemas-version'
      example:
        key: cma-5rmUM4d4GU1BVkaO6IYb
        type: balance_inquiry
        result: approved
        card:
          maskedNumber: 52869400****0205
        merchantAcceptorRef:
          key: mac-1eOdAHhgstYTUhlphPFf
          version: 1
        terminalEntryMode: contactless
        terminal:
          id: ATM001
          capabilities:
            - contact_chip
            - contactless_chip
            - magstripe
        authorizationIsoFields:
          responseCode: '00'
          responseCodeDescription: Approved
          authorizationCode: '547160'
          networkCode: MCS
          systemTraceAuditNumber: '665358'
          retrievalReferenceNumber: '326312665358'
          networkSpecificFields:
            network: mastercard
            banknetReference: '842825'
            traceId: 'MCS8428250527  '
        balanceInformation:
          accountSource: checking
          amount: 125000
          currency: EUR
        localTransactionDateTime: '2026-07-13T12:46:05.516Z'
        created: '2026-07-13T12:46:05.516Z'
        version: 1
    openapi_components-schemas-lastModified:
      type: string
      description: The date and time this object was last modified
      format: iso-8601-date-time
    GetPinChangeResponse:
      type: object
      additionalProperties: false
      required:
        - key
        - type
        - result
        - card
        - merchantAcceptorRef
        - terminalEntryMode
        - terminal
        - authorizationIsoFields
        - created
        - version
      properties:
        key:
          $ref: '#/components/schemas/ActionKey'
        type:
          type: string
          enum:
            - pin_change
        result:
          type: string
          enum:
            - approved
            - declined
            - reversed
        card:
          $ref: '#/components/schemas/MaskedCard'
        merchantAcceptorRef:
          $ref: '#/components/schemas/MerchantAcceptorRef'
        terminalEntryMode:
          $ref: '#/components/schemas/TerminalEntryMode'
        terminal:
          $ref: '#/components/schemas/schemas-Terminal'
        transactionReference:
          $ref: '#/components/schemas/TransactionReference'
        authorizationIsoFields:
          $ref: '#/components/schemas/AuthorizationIsoFields'
        localTransactionDateTime:
          $ref: '#/components/schemas/LocalTransactionDateTime'
        created:
          $ref: '#/components/schemas/schemas-created'
        lastModified:
          $ref: '#/components/schemas/openapi_components-schemas-lastModified'
        version:
          $ref: '#/components/schemas/components-schemas-version'
    GetPinUnblockResponse:
      type: object
      additionalProperties: false
      required:
        - key
        - type
        - result
        - card
        - merchantAcceptorRef
        - terminalEntryMode
        - terminal
        - authorizationIsoFields
        - created
        - version
      properties:
        key:
          $ref: '#/components/schemas/ActionKey'
        type:
          type: string
          enum:
            - pin_unblock
        result:
          $ref: '#/components/schemas/ActionResult'
        card:
          $ref: '#/components/schemas/MaskedCard'
        merchantAcceptorRef:
          $ref: '#/components/schemas/MerchantAcceptorRef'
        terminalEntryMode:
          $ref: '#/components/schemas/TerminalEntryMode'
        terminal:
          $ref: '#/components/schemas/schemas-Terminal'
        transactionReference:
          $ref: '#/components/schemas/TransactionReference'
        authorizationIsoFields:
          $ref: '#/components/schemas/AuthorizationIsoFields'
        localTransactionDateTime:
          $ref: '#/components/schemas/LocalTransactionDateTime'
        created:
          $ref: '#/components/schemas/schemas-created'
        version:
          $ref: '#/components/schemas/components-schemas-version'
      example:
        key: cma-4qlTL3c3FT0AUjZN5HXa
        type: pin_unblock
        result: approved
        card:
          maskedNumber: 52869400****0205
        merchantAcceptorRef:
          key: mac-1eOdAHhgstYTUhlphPFf
          version: 1
        terminalEntryMode: contactless
        terminal:
          id: ATM001
          capabilities:
            - contact_chip
            - contactless_chip
            - magstripe
        authorizationIsoFields:
          responseCode: '00'
          responseCodeDescription: Approved
          authorizationCode: '547159'
          networkCode: MCS
          systemTraceAuditNumber: '665357'
          retrievalReferenceNumber: '326312665357'
          networkSpecificFields:
            network: mastercard
            banknetReference: '842824'
            traceId: 'MCS8428240527  '
        localTransactionDateTime: '2026-07-13T12:46:05.516Z'
        created: '2026-07-13T12:46:05.516Z'
        version: 1
    GetBalanceInquiryResponse:
      type: object
      additionalProperties: false
      required:
        - key
        - type
        - result
        - card
        - merchantAcceptorRef
        - terminalEntryMode
        - terminal
        - authorizationIsoFields
        - created
        - version
      properties:
        key:
          $ref: '#/components/schemas/ActionKey'
        type:
          type: string
          enum:
            - balance_inquiry
        result:
          $ref: '#/components/schemas/ActionResult'
        card:
          $ref: '#/components/schemas/MaskedCard'
        merchantAcceptorRef:
          $ref: '#/components/schemas/MerchantAcceptorRef'
        terminalEntryMode:
          $ref: '#/components/schemas/TerminalEntryMode'
        terminal:
          $ref: '#/components/schemas/schemas-Terminal'
        transactionReference:
          $ref: '#/components/schemas/TransactionReference'
        authorizationIsoFields:
          $ref: '#/components/schemas/AuthorizationIsoFields'
        localTransactionDateTime:
          $ref: '#/components/schemas/LocalTransactionDateTime'
        created:
          $ref: '#/components/schemas/schemas-created'
        version:
          $ref: '#/components/schemas/components-schemas-version'
      example:
        key: cma-5rmUM4d4GU1BVkaO6IYb
        type: balance_inquiry
        result: approved
        card:
          maskedNumber: 52869400****0205
        merchantAcceptorRef:
          key: mac-1eOdAHhgstYTUhlphPFf
          version: 1
        terminalEntryMode: contactless
        terminal:
          id: ATM001
          capabilities:
            - contact_chip
            - contactless_chip
            - magstripe
        authorizationIsoFields:
          responseCode: '00'
          responseCodeDescription: Approved
          authorizationCode: '547160'
          networkCode: MCS
          systemTraceAuditNumber: '665358'
          retrievalReferenceNumber: '326312665358'
          networkSpecificFields:
            network: mastercard
            banknetReference: '842825'
            traceId: 'MCS8428250527  '
        localTransactionDateTime: '2026-07-13T12:46:05.516Z'
        created: '2026-07-13T12:46:05.516Z'
        version: 1
    GetCardManagementActionResponse:
      oneOf:
        - $ref: '#/components/schemas/GetPinChangeResponse'
        - $ref: '#/components/schemas/GetPinUnblockResponse'
        - $ref: '#/components/schemas/GetBalanceInquiryResponse'
        - $ref: '#/components/schemas/ReversePinChangeResponse'
      discriminator:
        propertyName: type
        mapping:
          pin_change: '#/components/schemas/GetPinChangeResponse'
          pin_unblock: '#/components/schemas/GetPinUnblockResponse'
          balance_inquiry: '#/components/schemas/GetBalanceInquiryResponse'
          pin_change_reversal: '#/components/schemas/ReversePinChangeResponse'
    listQuerySortOrder:
      type: string
      enum:
        - asc
        - desc
      description: The order in which to return actions by creation time.
      default: asc
    listQueryLimit:
      type: integer
      description: The maximum number of actions to return.
      minimum: 1
      maximum: 100
      default: 10
    InitialRequestByDatesQuery:
      type: object
      title: Query by Dates
      additionalProperties: false
      properties:
        from:
          type: string
          format: date-time
          description: Inclusive lower bound of the creation time range (ISO date-time).
        to:
          type: string
          format: date-time
          description: Inclusive upper bound of the creation time range (ISO date-time).
        sortOrder:
          $ref: '#/components/schemas/listQuerySortOrder'
        limit:
          $ref: '#/components/schemas/listQueryLimit'
    InitialRequestByTransactionReferenceQuery:
      type: object
      title: Query by Transaction Reference
      additionalProperties: false
      required:
        - transactionReference
      properties:
        transactionReference:
          type: string
          description: Filter by the transaction reference.
        sortOrder:
          $ref: '#/components/schemas/listQuerySortOrder'
        limit:
          $ref: '#/components/schemas/listQueryLimit'
    OffsetTokenQuery:
      type: object
      title: Query by Offset Token
      additionalProperties: false
      required:
        - offsetToken
      properties:
        offsetToken:
          type: string
          description: |
            Offset token used to fetch the next page of results.
    ListCardManagementActionsResponse:
      type: object
      additionalProperties: false
      required:
        - actions
      properties:
        offsetToken:
          type: string
          description: |
            If returned then there are more items available which you can retrieve by making another request to this endpoint.
            It is valid for 24 hours from when it is returned.
        actions:
          type: array
          items:
            $ref: '#/components/schemas/GetCardManagementActionResponse'
    InvalidToOrFromDateError:
      type: object
      additionalProperties: false
      required:
        - type
        - title
        - status
        - detail
        - instance
      properties:
        type:
          type: string
          enum:
            - /silverflow/problems/invalid-to-or-from-date
        title:
          type: string
          enum:
            - Invalid To or From Date
        status:
          type: integer
          enum:
            - 400
        detail:
          $ref: '#/components/schemas/errorDetail'
        instance:
          $ref: '#/components/schemas/errorInstance'
      example:
        type: /silverflow/problems/invalid-to-or-from-date
        title: Invalid To or From Date
        status: 400
        detail: Cannot list actions by transactionReference with from or to date.
        instance: /silverflow/2b6f1c9e-3a2d-4c1b-8e5f-1a2b3c4d5e6f
    InfoSource:
      type: string
      enum:
        - american-express
        - bancontact
        - discover
        - diners
        - mastercard
        - visa
      description: |
        The card network that should be the source of the information. If not provided, all sources will be checked!
    CardInfoRequestByCard:
      type: object
      title: Card Input
      required:
        - cardNumber
      properties:
        cardNumber:
          $ref: '#/components/schemas/components-schemas-pan'
        infoSource:
          $ref: '#/components/schemas/InfoSource'
    CardInfoRequestByProcessorToken:
      type: object
      title: Processor Token Key Input
      required:
        - processorTokenKey
      properties:
        processorTokenKey:
          type: string
          description: A [processor token key](#tag/Processor-Tokenization).
          pattern: ^ptk-[a-zA-Z0-9]+$
          minLength: 5
          maxLength: 120
          example: ptk-1e1dA2fgs1YTUhlhyPOp
        infoSource:
          $ref: '#/components/schemas/InfoSource'
    components-schemas-countryCodeAlpha3:
      type: string
      pattern: ^[A-Z]{3}$
      description: |
        The ISO code of the country.

        **European ISO Country Codes**

        <details>

        | Country                                          | Alpha-2 code | Numeric |
        | ------------------------------------------------ | ------------ | ------- | --- |
        | Åland Islands                                    | AX           | 248     |
        | Andorra                                          | AD           | 020     |
        | Austria                                          | AT           | 040     |
        | Belgium                                          | BE           | 056     |
        | Cyprus                                           | CY           | 196     |
        | Estonia                                          | EE           | 233     |     |
        | Finland                                          | FI           | 246     |
        | France                                           | FR           | 250     |
        | French Guiana                                    | GF           | 254     |
        | French Southern Territories                      | TF           | 260     |
        | Germany                                          | DE           | 280     |
        | Greece                                           | GR           | 300     |
        | Guadeloupe                                       | GP           | 312     |
        | Ireland                                          | IE           | 372     |
        | Italy                                            | IT           | 380     |
        | Kosovo, United Nations Mission in Kosovo (UNMIK) | QZ           | 900     |
        | Latvia                                           | LV           | 428     |
        | Lithuania                                        | LT           | 440     |
        | Luxembourg                                       | LU           | 442     |
        | Malta                                            | MT           | 470     |
        | Martinique                                       | MQ           | 474     |
        | Mayotte                                          | YT           | 175     |
        | Monaco                                           | MC           | 492     |
        | Montenegro                                       | ME           | 499     |
        | Netherlands                                      | NL           | 528     |
        | Portugal                                         | PT           | 620     |
        | Reunion                                          | RE           | 638     |
        | Saint Barthélemy                                 | BL           | 652     |
        | Saint Martin (French Part)                       | MF           | 663     |
        | San Marino                                       | SM           | 674     |
        | Slovakia                                         | SK           | 703     |
        | Slovenia                                         | SI           | 705     |
        | Spain                                            | ES           | 724     |
        | St. Pierre and Miquelon                          | PM           | 666     |
        | Vatican City State (Holy See)                    | VA           | 336     |

        </details>

        **US ISO Country Codes**

        <details>

        | Country                         | Alpha-2 code | Numeric |
        | ------------------------------- | ------------ | ------- |
        | American Samoa                  | AS           | 016     |
        | Bonaire, St. Eusasius and Saba  | BQ           | 535     |
        | British Indian Ocean Territory  | IO           | 086     |
        | Ecuador                         | EC           | 218     |
        | Guam                            | GU           | 316     |
        | Marshall Islands                | MH           | 584     |
        | Micronesia, Federated States of | FM           | 583     |
        | Northern Mariana Islands        | MP           | 580     |
        | Palau                           | PW           | 585     |
        | Palestine, State of             | PS           | 275     |
        | Puerto Rico                     | PR           | 630     |
        | Timor-Leste                     | TP           | 626     |
        | Turks and Caicos Islands        | TC           | 796     |
        | U.S. Minor Outlying Islands     | UM           | 581     |
        | United States                   | US           | 840     |
        | Virgin Islands, British         | VG           | 092     |
        | Virgin Islands, U.S.            | VI           | 850     |

        </details>

        **Other ISO Country Codes**

        <details>

        | Country                                      | Alpha-2 code | Numeric |
        | -------------------------------------------- | ------------ | ------- |
        | Afghanistan                                  | AF           | 004     |
        | Albania                                      | AL           | 008     |
        | Algeria                                      | DZ           | 012     |
        | Angola                                       | AO           | 024     |
        | Anguilla                                     | AI           | 660     |
        | Antarctica                                   | AQ           | 010     |
        | Antigua and Barbuda                          | AG           | 028     |
        | Argentina                                    | AR           | 032     |
        | Armenia                                      | AM           | 051     |
        | Aruba                                        | AW           | 533     |
        | Australia                                    | AU           | 036     |
        | Azerbaijan                                   | AZ           | 031     |
        | Bahamas                                      | BS           | 044     |
        | Bahrain                                      | BH           | 048     |
        | Bangladesh                                   | BD           | 050     |
        | Barbados                                     | BB           | 052     |
        | Belarus                                      | BR           | 112     |
        | Belize                                       | BZ           | 084     |
        | Benin                                        | BJ           | 204     |
        | Bermuda                                      | BM           | 060     |
        | Bhutan                                       | BT           | 064     |
        | Bolivia, Plurinational State of              | BO           | 068     |
        | Bosnia and Herzegovina                       | BA           | 070     |
        | Botswana                                     | BW           | 072     |
        | Bouvet Island                                | BV           | 074     |
        | Brazil                                       | BR           | 076     |
        | Brunei Darussalam                            | BN           | 096     |
        | Bulgaria                                     | BG           | 100     |
        | Burkina Faso                                 | BF           | 854     |
        | Burundi                                      | BI           | 108     |
        | Cambodia                                     | KH           | 116     |
        | Cameroon                                     | CM           | 120     |
        | Canada                                       | CA           | 124     |
        | Cape Verde                                   | CV           | 132     |
        | Cayman Islands                               | KY           | 136     |
        | Central African Republic                     | CF           | 140     |
        | Chad                                         | TD           | 148     |
        | Chile                                        | CL           | 152     |
        | China                                        | CN           | 156     |
        | Christmas Island                             | CX           | 162     |
        | Cocos (Keeling) Islands                      | CC           | 166     |
        | Colombia                                     | CO           | 170     |
        | Comoros                                      | KM           | 174     |
        | Congo                                        | CG           | 178     |
        | Cook Islands                                 | CK           | 184     |
        | Costa Rica                                   | CR           | 188     |
        | Côte D'Ivoire                                | CI           | 384     |
        | Croatia                                      | HR           | 191     |
        | Cuba                                         | CU           | 192     |
        | Curacao                                      | CW           | 531     |
        | Czech Republic                               | CZ           | 203     |
        | Democratic Republic of the Congo             | CD           | 180     |
        | Denmark                                      | DK           | 208     |
        | Djibouti                                     | DJ           | 262     |
        | Dominica                                     | DM           | 212     |
        | Dominican Republic                           | DO           | 214     |
        | Egypt                                        | EG           | 818     |
        | El Salvador                                  | SV           | 222     |
        | Equatorial Guinea                            | GQ           | 226     |
        | Eritrea                                      | ER           | 232     |
        | Ethiopia                                     | ET           | 230     |
        | Falkland Islands (Malvinas)                  | FK           | 238     |
        | Faroe Islands                                | FO           | 234     |
        | Fiji                                         | FJ           | 242     |
        | French Polynesia                             | PF           | 258     |
        | Gabon                                        | GA           | 266     |
        | Gambia                                       | GM           | 270     |
        | Georgia                                      | GE           | 268     |
        | Ghana                                        | GH           | 288     |
        | Gibraltar                                    | GI           | 292     |
        | Greenland                                    | GL           | 304     |
        | Grenada                                      | GD           | 308     |
        | Guatemala                                    | GT           | 320     |
        | Guernsey                                     | GG           | 831     |
        | Guinea                                       | GN           | 324     |
        | Guinea-Bissau                                | GW           | 624     |
        | Guyana                                       | GY           | 328     |
        | Haiti                                        | HT           | 332     |
        | Heard and McDonald Islands                   | HM           | 334     |
        | Honduras                                     | HN           | 340     |
        | Hong Kong                                    | HK           | 344     |
        | Hungary                                      | HU           | 348     |
        | Iceland                                      | IS           | 352     |
        | India                                        | IN           | 356     |
        | Indonesia                                    | ID           | 360     |
        | Iraq                                         | IQ           | 368     |
        | Isle of Man                                  | IM           | 833     |
        | Israel                                       | IL           | 376     |
        | Jamaica                                      | JM           | 388     |
        | Japan                                        | JP           | 392     |
        | Jersey                                       | JE           | 832     |
        | Jordan                                       | JO           | 400     |
        | Kazakhstan                                   | KZ           | 398     |
        | Kenya                                        | KE           | 404     |
        | Kiribati                                     | KI           | 296     |
        | Korea, Republic of                           | KR           | 410     |
        | Kuwait                                       | KW           | 414     |
        | Kyrgyzstan                                   | KG           | 417     |
        | Lao People's Democratic Republic             | LA           | 418     |
        | Lebanon                                      | LB           | 422     |
        | Lesotho                                      | LS           | 426     |
        | Liberia                                      | LR           | 430     |
        | Libyan Arab Jamahiriya                       | LY           | 434     |
        | Liechtenstein                                | LI           | 438     |
        | Macao                                        | MO           | 446     |
        | Macedonia                                    | MK           | 807     |
        | Madagascar                                   | MG           | 450     |
        | Malawi                                       | MW           | 454     |
        | Malaysia                                     | MY           | 458     |
        | Maldives                                     | MV           | 462     |
        | Mali                                         | ML           | 466     |
        | Mauritania                                   | MR           | 478     |
        | Mauritius                                    | MU           | 480     |
        | Mexico                                       | MX           | 484     |
        | Moldova, Republic of                         | MD           | 498     |
        | Mongolia                                     | MN           | 496     |
        | Montserrat                                   | MS           | 500     |
        | Morocco                                      | MA           | 504     |
        | Mozambique                                   | MZ           | 508     |
        | Myanmar (effective 1 November 2012)          | MM           | 104     |
        | Namibia                                      | NA           | 516     |
        | Nauru                                        | NR           | 520     |
        | Nepal                                        | NP           | 524     |
        | Netherlands Antilles                         | AN           | 530     |
        | New Caledonia                                | NC           | 540     |
        | New Zealand                                  | NZ           | 554     |
        | Nicaragua                                    | NI           | 558     |
        | Niger                                        | NE           | 562     |
        | Nigeria                                      | NG           | 566     |
        | Niue                                         | NU           | 570     |
        | Norfolk Island                               | NF           | 574     |
        | Norway                                       | NO           | 578     |
        | Oman                                         | OM           | 512     |
        | Pakistan                                     | PK           | 586     |
        | Panama                                       | PA           | 591     |
        | Papua New Guinea                             | PG           | 598     |
        | Paraguay                                     | PY           | 600     |
        | Peru                                         | PE           | 604     |
        | Philippines                                  | PH           | 608     |
        | Pitcairn                                     | PN           | 612     |
        | Poland                                       | PL           | 616     |
        | Qatar                                        | QA           | 634     |
        | Republic of South Sudan                      | SS           | 728     |
        | Romania                                      | RO           | 642     |
        | Russian Federation                           | RU           | 643     |
        | Rwanda                                       | RW           | 646     |
        | Samoa                                        | WS           | 882     |
        | Sao Tome and Principe                        | ST           | 678     |
        | Saudi Arabia                                 | SA           | 682     |
        | Senegal                                      | SN           | 686     |
        | Serbia                                       | RS           | 688     |
        | Seychelles                                   | SC           | 690     |
        | Sierra Leone                                 | SL           | 694     |
        | Singapore                                    | SG           | 702     |
        | Sint Maarten (Dutch Part)                    | SX           | 534     |
        | Solomon Islands                              | SB           | 090     |
        | Somalia                                      | SO           | 706     |
        | South Africa                                 | ZA           | 710     |
        | South Georgia and the South Sandwich Islands | GS           | 239     |
        | Sri Lanka                                    | LK           | 144     |
        | Saint Helena, Ascension and Tristan Da Cunha | SH           | 654     |
        | St. Kitts and Nevis                          | KN           | 659     |
        | St. Lucia                                    | LC           | 662     |
        | St. Vincent and the Grenadines               | VC           | 670     |
        | Suriname                                     | SR           | 740     |
        | Svalbard and Jan Mayen                       | SJ           | 744     |
        | Swaziland                                    | SZ           | 748     |
        | Sweden                                       | SE           | 752     |
        | Switzerland                                  | CH           | 756     |
        | Taiwan                                       | TW           | 158     |
        | Tajikistan                                   | TJ           | 762     |
        | Tanzania, United Republic of                 | TZ           | 834     |
        | Thailand                                     | TH           | 764     |
        | Togo                                         | TG           | 768     |
        | Tokelau                                      | TK           | 772     |
        | Tonga                                        | TO           | 776     |
        | Trinidad and Tobago                          | TT           | 780     |
        | Tunisia                                      | TN           | 788     |
        | Turkey                                       | TR           | 792     |
        | Turkmenistan                                 | TM           | 795     |
        | Tuvalu                                       | TV           | 798     |
        | Uganda                                       | UG           | 800     |
        | Ukraine                                      | UA           | 804     |
        | United Arab Emirates                         | AE           | 784     |
        | United Kingdom                               | GB           | 826     |
        | Uruguay                                      | UY           | 858     |
        | Uzbekistan                                   | UZ           | 860     |
        | Vanuatu                                      | VU           | 548     |
        | Venezuela, Bolivarian Republic of            | VE           | 862     |
        | Vietnam                                      | VN           | 704     |
        | Wallis and Futuna                            | WF           | 876     |
        | Western Sahara                               | EH           | 732     |
        | Yemen                                        | YE           | 886     |
        | Zambia                                       | ZM           | 894     |
        | Zimbabwe                                     | ZW           | 716     |

        </details>
      externalDocs:
        description: Find more info here
        url: https://www.iso.org/iso-3166-country-codes.html
      example: NLD
    components-schemas-countryCodeAlpha2:
      type: string
      pattern: ^[A-Z]{2}$
      description: |
        The ISO code of the country.

        **European ISO Country Codes**

        <details>

        | Country                                          | Alpha-2 code | Numeric |
        | ------------------------------------------------ | ------------ | ------- | --- |
        | Åland Islands                                    | AX           | 248     |
        | Andorra                                          | AD           | 020     |
        | Austria                                          | AT           | 040     |
        | Belgium                                          | BE           | 056     |
        | Cyprus                                           | CY           | 196     |
        | Estonia                                          | EE           | 233     |     |
        | Finland                                          | FI           | 246     |
        | France                                           | FR           | 250     |
        | French Guiana                                    | GF           | 254     |
        | French Southern Territories                      | TF           | 260     |
        | Germany                                          | DE           | 280     |
        | Greece                                           | GR           | 300     |
        | Guadeloupe                                       | GP           | 312     |
        | Ireland                                          | IE           | 372     |
        | Italy                                            | IT           | 380     |
        | Kosovo, United Nations Mission in Kosovo (UNMIK) | QZ           | 900     |
        | Latvia                                           | LV           | 428     |
        | Lithuania                                        | LT           | 440     |
        | Luxembourg                                       | LU           | 442     |
        | Malta                                            | MT           | 470     |
        | Martinique                                       | MQ           | 474     |
        | Mayotte                                          | YT           | 175     |
        | Monaco                                           | MC           | 492     |
        | Montenegro                                       | ME           | 499     |
        | Netherlands                                      | NL           | 528     |
        | Portugal                                         | PT           | 620     |
        | Reunion                                          | RE           | 638     |
        | Saint Barthélemy                                 | BL           | 652     |
        | Saint Martin (French Part)                       | MF           | 663     |
        | San Marino                                       | SM           | 674     |
        | Slovakia                                         | SK           | 703     |
        | Slovenia                                         | SI           | 705     |
        | Spain                                            | ES           | 724     |
        | St. Pierre and Miquelon                          | PM           | 666     |
        | Vatican City State (Holy See)                    | VA           | 336     |

        </details>

        **US ISO Country Codes**

        <details>

        | Country                         | Alpha-2 code | Numeric |
        | ------------------------------- | ------------ | ------- |
        | American Samoa                  | AS           | 016     |
        | Bonaire, St. Eusasius and Saba  | BQ           | 535     |
        | British Indian Ocean Territory  | IO           | 086     |
        | Ecuador                         | EC           | 218     |
        | Guam                            | GU           | 316     |
        | Marshall Islands                | MH           | 584     |
        | Micronesia, Federated States of | FM           | 583     |
        | Northern Mariana Islands        | MP           | 580     |
        | Palau                           | PW           | 585     |
        | Palestine, State of             | PS           | 275     |
        | Puerto Rico                     | PR           | 630     |
        | Timor-Leste                     | TP           | 626     |
        | Turks and Caicos Islands        | TC           | 796     |
        | U.S. Minor Outlying Islands     | UM           | 581     |
        | United States                   | US           | 840     |
        | Virgin Islands, British         | VG           | 092     |
        | Virgin Islands, U.S.            | VI           | 850     |

        </details>

        **Other ISO Country Codes**

        <details>

        | Country                                      | Alpha-2 code | Numeric |
        | -------------------------------------------- | ------------ | ------- |
        | Afghanistan                                  | AF           | 004     |
        | Albania                                      | AL           | 008     |
        | Algeria                                      | DZ           | 012     |
        | Angola                                       | AO           | 024     |
        | Anguilla                                     | AI           | 660     |
        | Antarctica                                   | AQ           | 010     |
        | Antigua and Barbuda                          | AG           | 028     |
        | Argentina                                    | AR           | 032     |
        | Armenia                                      | AM           | 051     |
        | Aruba                                        | AW           | 533     |
        | Australia                                    | AU           | 036     |
        | Azerbaijan                                   | AZ           | 031     |
        | Bahamas                                      | BS           | 044     |
        | Bahrain                                      | BH           | 048     |
        | Bangladesh                                   | BD           | 050     |
        | Barbados                                     | BB           | 052     |
        | Belarus                                      | BR           | 112     |
        | Belize                                       | BZ           | 084     |
        | Benin                                        | BJ           | 204     |
        | Bermuda                                      | BM           | 060     |
        | Bhutan                                       | BT           | 064     |
        | Bolivia, Plurinational State of              | BO           | 068     |
        | Bosnia and Herzegovina                       | BA           | 070     |
        | Botswana                                     | BW           | 072     |
        | Bouvet Island                                | BV           | 074     |
        | Brazil                                       | BR           | 076     |
        | Brunei Darussalam                            | BN           | 096     |
        | Bulgaria                                     | BG           | 100     |
        | Burkina Faso                                 | BF           | 854     |
        | Burundi                                      | BI           | 108     |
        | Cambodia                                     | KH           | 116     |
        | Cameroon                                     | CM           | 120     |
        | Canada                                       | CA           | 124     |
        | Cape Verde                                   | CV           | 132     |
        | Cayman Islands                               | KY           | 136     |
        | Central African Republic                     | CF           | 140     |
        | Chad                                         | TD           | 148     |
        | Chile                                        | CL           | 152     |
        | China                                        | CN           | 156     |
        | Christmas Island                             | CX           | 162     |
        | Cocos (Keeling) Islands                      | CC           | 166     |
        | Colombia                                     | CO           | 170     |
        | Comoros                                      | KM           | 174     |
        | Congo                                        | CG           | 178     |
        | Cook Islands                                 | CK           | 184     |
        | Costa Rica                                   | CR           | 188     |
        | Côte D'Ivoire                                | CI           | 384     |
        | Croatia                                      | HR           | 191     |
        | Cuba                                         | CU           | 192     |
        | Curacao                                      | CW           | 531     |
        | Czech Republic                               | CZ           | 203     |
        | Democratic Republic of the Congo             | CD           | 180     |
        | Denmark                                      | DK           | 208     |
        | Djibouti                                     | DJ           | 262     |
        | Dominica                                     | DM           | 212     |
        | Dominican Republic                           | DO           | 214     |
        | Egypt                                        | EG           | 818     |
        | El Salvador                                  | SV           | 222     |
        | Equatorial Guinea                            | GQ           | 226     |
        | Eritrea                                      | ER           | 232     |
        | Ethiopia                                     | ET           | 230     |
        | Falkland Islands (Malvinas)                  | FK           | 238     |
        | Faroe Islands                                | FO           | 234     |
        | Fiji                                         | FJ           | 242     |
        | French Polynesia                             | PF           | 258     |
        | Gabon                                        | GA           | 266     |
        | Gambia                                       | GM           | 270     |
        | Georgia                                      | GE           | 268     |
        | Ghana                                        | GH           | 288     |
        | Gibraltar                                    | GI           | 292     |
        | Greenland                                    | GL           | 304     |
        | Grenada                                      | GD           | 308     |
        | Guatemala                                    | GT           | 320     |
        | Guernsey                                     | GG           | 831     |
        | Guinea                                       | GN           | 324     |
        | Guinea-Bissau                                | GW           | 624     |
        | Guyana                                       | GY           | 328     |
        | Haiti                                        | HT           | 332     |
        | Heard and McDonald Islands                   | HM           | 334     |
        | Honduras                                     | HN           | 340     |
        | Hong Kong                                    | HK           | 344     |
        | Hungary                                      | HU           | 348     |
        | Iceland                                      | IS           | 352     |
        | India                                        | IN           | 356     |
        | Indonesia                                    | ID           | 360     |
        | Iraq                                         | IQ           | 368     |
        | Isle of Man                                  | IM           | 833     |
        | Israel                                       | IL           | 376     |
        | Jamaica                                      | JM           | 388     |
        | Japan                                        | JP           | 392     |
        | Jersey                                       | JE           | 832     |
        | Jordan                                       | JO           | 400     |
        | Kazakhstan                                   | KZ           | 398     |
        | Kenya                                        | KE           | 404     |
        | Kiribati                                     | KI           | 296     |
        | Korea, Republic of                           | KR           | 410     |
        | Kuwait                                       | KW           | 414     |
        | Kyrgyzstan                                   | KG           | 417     |
        | Lao People's Democratic Republic             | LA           | 418     |
        | Lebanon                                      | LB           | 422     |
        | Lesotho                                      | LS           | 426     |
        | Liberia                                      | LR           | 430     |
        | Libyan Arab Jamahiriya                       | LY           | 434     |
        | Liechtenstein                                | LI           | 438     |
        | Macao                                        | MO           | 446     |
        | Macedonia                                    | MK           | 807     |
        | Madagascar                                   | MG           | 450     |
        | Malawi                                       | MW           | 454     |
        | Malaysia                                     | MY           | 458     |
        | Maldives                                     | MV           | 462     |
        | Mali                                         | ML           | 466     |
        | Mauritania                                   | MR           | 478     |
        | Mauritius                                    | MU           | 480     |
        | Mexico                                       | MX           | 484     |
        | Moldova, Republic of                         | MD           | 498     |
        | Mongolia                                     | MN           | 496     |
        | Montserrat                                   | MS           | 500     |
        | Morocco                                      | MA           | 504     |
        | Mozambique                                   | MZ           | 508     |
        | Myanmar (effective 1 November 2012)          | MM           | 104     |
        | Namibia                                      | NA           | 516     |
        | Nauru                                        | NR           | 520     |
        | Nepal                                        | NP           | 524     |
        | Netherlands Antilles                         | AN           | 530     |
        | New Caledonia                                | NC           | 540     |
        | New Zealand                                  | NZ           | 554     |
        | Nicaragua                                    | NI           | 558     |
        | Niger                                        | NE           | 562     |
        | Nigeria                                      | NG           | 566     |
        | Niue                                         | NU           | 570     |
        | Norfolk Island                               | NF           | 574     |
        | Norway                                       | NO           | 578     |
        | Oman                                         | OM           | 512     |
        | Pakistan                                     | PK           | 586     |
        | Panama                                       | PA           | 591     |
        | Papua New Guinea                             | PG           | 598     |
        | Paraguay                                     | PY           | 600     |
        | Peru                                         | PE           | 604     |
        | Philippines                                  | PH           | 608     |
        | Pitcairn                                     | PN           | 612     |
        | Poland                                       | PL           | 616     |
        | Qatar                                        | QA           | 634     |
        | Republic of South Sudan                      | SS           | 728     |
        | Romania                                      | RO           | 642     |
        | Russian Federation                           | RU           | 643     |
        | Rwanda                                       | RW           | 646     |
        | Samoa                                        | WS           | 882     |
        | Sao Tome and Principe                        | ST           | 678     |
        | Saudi Arabia                                 | SA           | 682     |
        | Senegal                                      | SN           | 686     |
        | Serbia                                       | RS           | 688     |
        | Seychelles                                   | SC           | 690     |
        | Sierra Leone                                 | SL           | 694     |
        | Singapore                                    | SG           | 702     |
        | Sint Maarten (Dutch Part)                    | SX           | 534     |
        | Solomon Islands                              | SB           | 090     |
        | Somalia                                      | SO           | 706     |
        | South Africa                                 | ZA           | 710     |
        | South Georgia and the South Sandwich Islands | GS           | 239     |
        | Sri Lanka                                    | LK           | 144     |
        | Saint Helena, Ascension and Tristan Da Cunha | SH           | 654     |
        | St. Kitts and Nevis                          | KN           | 659     |
        | St. Lucia                                    | LC           | 662     |
        | St. Vincent and the Grenadines               | VC           | 670     |
        | Suriname                                     | SR           | 740     |
        | Svalbard and Jan Mayen                       | SJ           | 744     |
        | Swaziland                                    | SZ           | 748     |
        | Sweden                                       | SE           | 752     |
        | Switzerland                                  | CH           | 756     |
        | Taiwan                                       | TW           | 158     |
        | Tajikistan                                   | TJ           | 762     |
        | Tanzania, United Republic of                 | TZ           | 834     |
        | Thailand                                     | TH           | 764     |
        | Togo                                         | TG           | 768     |
        | Tokelau                                      | TK           | 772     |
        | Tonga                                        | TO           | 776     |
        | Trinidad and Tobago                          | TT           | 780     |
        | Tunisia                                      | TN           | 788     |
        | Turkey                                       | TR           | 792     |
        | Turkmenistan                                 | TM           | 795     |
        | Tuvalu                                       | TV           | 798     |
        | Uganda                                       | UG           | 800     |
        | Ukraine                                      | UA           | 804     |
        | United Arab Emirates                         | AE           | 784     |
        | United Kingdom                               | GB           | 826     |
        | Uruguay                                      | UY           | 858     |
        | Uzbekistan                                   | UZ           | 860     |
        | Vanuatu                                      | VU           | 548     |
        | Venezuela, Bolivarian Republic of            | VE           | 862     |
        | Vietnam                                      | VN           | 704     |
        | Wallis and Futuna                            | WF           | 876     |
        | Western Sahara                               | EH           | 732     |
        | Yemen                                        | YE           | 886     |
        | Zambia                                       | ZM           | 894     |
        | Zimbabwe                                     | ZW           | 716     |

        </details>
      externalDocs:
        description: Find more info here
        url: https://www.iso.org/iso-3166-country-codes.html
      example: NL
    components-schemas-countryCodeNumeric:
      type: string
      pattern: ^[0-9]{3}$
      description: |
        The ISO code of the country.

        **European ISO Country Codes**

        <details>

        | Country                                          | Alpha-2 code | Numeric |
        | ------------------------------------------------ | ------------ | ------- | --- |
        | Åland Islands                                    | AX           | 248     |
        | Andorra                                          | AD           | 020     |
        | Austria                                          | AT           | 040     |
        | Belgium                                          | BE           | 056     |
        | Cyprus                                           | CY           | 196     |
        | Estonia                                          | EE           | 233     |     |
        | Finland                                          | FI           | 246     |
        | France                                           | FR           | 250     |
        | French Guiana                                    | GF           | 254     |
        | French Southern Territories                      | TF           | 260     |
        | Germany                                          | DE           | 280     |
        | Greece                                           | GR           | 300     |
        | Guadeloupe                                       | GP           | 312     |
        | Ireland                                          | IE           | 372     |
        | Italy                                            | IT           | 380     |
        | Kosovo, United Nations Mission in Kosovo (UNMIK) | QZ           | 900     |
        | Latvia                                           | LV           | 428     |
        | Lithuania                                        | LT           | 440     |
        | Luxembourg                                       | LU           | 442     |
        | Malta                                            | MT           | 470     |
        | Martinique                                       | MQ           | 474     |
        | Mayotte                                          | YT           | 175     |
        | Monaco                                           | MC           | 492     |
        | Montenegro                                       | ME           | 499     |
        | Netherlands                                      | NL           | 528     |
        | Portugal                                         | PT           | 620     |
        | Reunion                                          | RE           | 638     |
        | Saint Barthélemy                                 | BL           | 652     |
        | Saint Martin (French Part)                       | MF           | 663     |
        | San Marino                                       | SM           | 674     |
        | Slovakia                                         | SK           | 703     |
        | Slovenia                                         | SI           | 705     |
        | Spain                                            | ES           | 724     |
        | St. Pierre and Miquelon                          | PM           | 666     |
        | Vatican City State (Holy See)                    | VA           | 336     |

        </details>

        **US ISO Country Codes**

        <details>

        | Country                         | Alpha-2 code | Numeric |
        | ------------------------------- | ------------ | ------- |
        | American Samoa                  | AS           | 016     |
        | Bonaire, St. Eusasius and Saba  | BQ           | 535     |
        | British Indian Ocean Territory  | IO           | 086     |
        | Ecuador                         | EC           | 218     |
        | Guam                            | GU           | 316     |
        | Marshall Islands                | MH           | 584     |
        | Micronesia, Federated States of | FM           | 583     |
        | Northern Mariana Islands        | MP           | 580     |
        | Palau                           | PW           | 585     |
        | Palestine, State of             | PS           | 275     |
        | Puerto Rico                     | PR           | 630     |
        | Timor-Leste                     | TP           | 626     |
        | Turks and Caicos Islands        | TC           | 796     |
        | U.S. Minor Outlying Islands     | UM           | 581     |
        | United States                   | US           | 840     |
        | Virgin Islands, British         | VG           | 092     |
        | Virgin Islands, U.S.            | VI           | 850     |

        </details>

        **Other ISO Country Codes**

        <details>

        | Country                                      | Alpha-2 code | Numeric |
        | -------------------------------------------- | ------------ | ------- |
        | Afghanistan                                  | AF           | 004     |
        | Albania                                      | AL           | 008     |
        | Algeria                                      | DZ           | 012     |
        | Angola                                       | AO           | 024     |
        | Anguilla                                     | AI           | 660     |
        | Antarctica                                   | AQ           | 010     |
        | Antigua and Barbuda                          | AG           | 028     |
        | Argentina                                    | AR           | 032     |
        | Armenia                                      | AM           | 051     |
        | Aruba                                        | AW           | 533     |
        | Australia                                    | AU           | 036     |
        | Azerbaijan                                   | AZ           | 031     |
        | Bahamas                                      | BS           | 044     |
        | Bahrain                                      | BH           | 048     |
        | Bangladesh                                   | BD           | 050     |
        | Barbados                                     | BB           | 052     |
        | Belarus                                      | BR           | 112     |
        | Belize                                       | BZ           | 084     |
        | Benin                                        | BJ           | 204     |
        | Bermuda                                      | BM           | 060     |
        | Bhutan                                       | BT           | 064     |
        | Bolivia, Plurinational State of              | BO           | 068     |
        | Bosnia and Herzegovina                       | BA           | 070     |
        | Botswana                                     | BW           | 072     |
        | Bouvet Island                                | BV           | 074     |
        | Brazil                                       | BR           | 076     |
        | Brunei Darussalam                            | BN           | 096     |
        | Bulgaria                                     | BG           | 100     |
        | Burkina Faso                                 | BF           | 854     |
        | Burundi                                      | BI           | 108     |
        | Cambodia                                     | KH           | 116     |
        | Cameroon                                     | CM           | 120     |
        | Canada                                       | CA           | 124     |
        | Cape Verde                                   | CV           | 132     |
        | Cayman Islands                               | KY           | 136     |
        | Central African Republic                     | CF           | 140     |
        | Chad                                         | TD           | 148     |
        | Chile                                        | CL           | 152     |
        | China                                        | CN           | 156     |
        | Christmas Island                             | CX           | 162     |
        | Cocos (Keeling) Islands                      | CC           | 166     |
        | Colombia                                     | CO           | 170     |
        | Comoros                                      | KM           | 174     |
        | Congo                                        | CG           | 178     |
        | Cook Islands                                 | CK           | 184     |
        | Costa Rica                                   | CR           | 188     |
        | Côte D'Ivoire                                | CI           | 384     |
        | Croatia                                      | HR           | 191     |
        | Cuba                                         | CU           | 192     |
        | Curacao                                      | CW           | 531     |
        | Czech Republic                               | CZ           | 203     |
        | Democratic Republic of the Congo             | CD           | 180     |
        | Denmark                                      | DK           | 208     |
        | Djibouti                                     | DJ           | 262     |
        | Dominica                                     | DM           | 212     |
        | Dominican Republic                           | DO           | 214     |
        | Egypt                                        | EG           | 818     |
        | El Salvador                                  | SV           | 222     |
        | Equatorial Guinea                            | GQ           | 226     |
        | Eritrea                                      | ER           | 232     |
        | Ethiopia                                     | ET           | 230     |
        | Falkland Islands (Malvinas)                  | FK           | 238     |
        | Faroe Islands                                | FO           | 234     |
        | Fiji                                         | FJ           | 242     |
        | French Polynesia                             | PF           | 258     |
        | Gabon                                        | GA           | 266     |
        | Gambia                                       | GM           | 270     |
        | Georgia                                      | GE           | 268     |
        | Ghana                                        | GH           | 288     |
        | Gibraltar                                    | GI           | 292     |
        | Greenland                                    | GL           | 304     |
        | Grenada                                      | GD           | 308     |
        | Guatemala                                    | GT           | 320     |
        | Guernsey                                     | GG           | 831     |
        | Guinea                                       | GN           | 324     |
        | Guinea-Bissau                                | GW           | 624     |
        | Guyana                                       | GY           | 328     |
        | Haiti                                        | HT           | 332     |
        | Heard and McDonald Islands                   | HM           | 334     |
        | Honduras                                     | HN           | 340     |
        | Hong Kong                                    | HK           | 344     |
        | Hungary                                      | HU           | 348     |
        | Iceland                                      | IS           | 352     |
        | India                                        | IN           | 356     |
        | Indonesia                                    | ID           | 360     |
        | Iraq                                         | IQ           | 368     |
        | Isle of Man                                  | IM           | 833     |
        | Israel                                       | IL           | 376     |
        | Jamaica                                      | JM           | 388     |
        | Japan                                        | JP           | 392     |
        | Jersey                                       | JE           | 832     |
        | Jordan                                       | JO           | 400     |
        | Kazakhstan                                   | KZ           | 398     |
        | Kenya                                        | KE           | 404     |
        | Kiribati                                     | KI           | 296     |
        | Korea, Republic of                           | KR           | 410     |
        | Kuwait                                       | KW           | 414     |
        | Kyrgyzstan                                   | KG           | 417     |
        | Lao People's Democratic Republic             | LA           | 418     |
        | Lebanon                                      | LB           | 422     |
        | Lesotho                                      | LS           | 426     |
        | Liberia                                      | LR           | 430     |
        | Libyan Arab Jamahiriya                       | LY           | 434     |
        | Liechtenstein                                | LI           | 438     |
        | Macao                                        | MO           | 446     |
        | Macedonia                                    | MK           | 807     |
        | Madagascar                                   | MG           | 450     |
        | Malawi                                       | MW           | 454     |
        | Malaysia                                     | MY           | 458     |
        | Maldives                                     | MV           | 462     |
        | Mali                                         | ML           | 466     |
        | Mauritania                                   | MR           | 478     |
        | Mauritius                                    | MU           | 480     |
        | Mexico                                       | MX           | 484     |
        | Moldova, Republic of                         | MD           | 498     |
        | Mongolia                                     | MN           | 496     |
        | Montserrat                                   | MS           | 500     |
        | Morocco                                      | MA           | 504     |
        | Mozambique                                   | MZ           | 508     |
        | Myanmar (effective 1 November 2012)          | MM           | 104     |
        | Namibia                                      | NA           | 516     |
        | Nauru                                        | NR           | 520     |
        | Nepal                                        | NP           | 524     |
        | Netherlands Antilles                         | AN           | 530     |
        | New Caledonia                                | NC           | 540     |
        | New Zealand                                  | NZ           | 554     |
        | Nicaragua                                    | NI           | 558     |
        | Niger                                        | NE           | 562     |
        | Nigeria                                      | NG           | 566     |
        | Niue                                         | NU           | 570     |
        | Norfolk Island                               | NF           | 574     |
        | Norway                                       | NO           | 578     |
        | Oman                                         | OM           | 512     |
        | Pakistan                                     | PK           | 586     |
        | Panama                                       | PA           | 591     |
        | Papua New Guinea                             | PG           | 598     |
        | Paraguay                                     | PY           | 600     |
        | Peru                                         | PE           | 604     |
        | Philippines                                  | PH           | 608     |
        | Pitcairn                                     | PN           | 612     |
        | Poland                                       | PL           | 616     |
        | Qatar                                        | QA           | 634     |
        | Republic of South Sudan                      | SS           | 728     |
        | Romania                                      | RO           | 642     |
        | Russian Federation                           | RU           | 643     |
        | Rwanda                                       | RW           | 646     |
        | Samoa                                        | WS           | 882     |
        | Sao Tome and Principe                        | ST           | 678     |
        | Saudi Arabia                                 | SA           | 682     |
        | Senegal                                      | SN           | 686     |
        | Serbia                                       | RS           | 688     |
        | Seychelles                                   | SC           | 690     |
        | Sierra Leone                                 | SL           | 694     |
        | Singapore                                    | SG           | 702     |
        | Sint Maarten (Dutch Part)                    | SX           | 534     |
        | Solomon Islands                              | SB           | 090     |
        | Somalia                                      | SO           | 706     |
        | South Africa                                 | ZA           | 710     |
        | South Georgia and the South Sandwich Islands | GS           | 239     |
        | Sri Lanka                                    | LK           | 144     |
        | Saint Helena, Ascension and Tristan Da Cunha | SH           | 654     |
        | St. Kitts and Nevis                          | KN           | 659     |
        | St. Lucia                                    | LC           | 662     |
        | St. Vincent and the Grenadines               | VC           | 670     |
        | Suriname                                     | SR           | 740     |
        | Svalbard and Jan Mayen                       | SJ           | 744     |
        | Swaziland                                    | SZ           | 748     |
        | Sweden                                       | SE           | 752     |
        | Switzerland                                  | CH           | 756     |
        | Taiwan                                       | TW           | 158     |
        | Tajikistan                                   | TJ           | 762     |
        | Tanzania, United Republic of                 | TZ           | 834     |
        | Thailand                                     | TH           | 764     |
        | Togo                                         | TG           | 768     |
        | Tokelau                                      | TK           | 772     |
        | Tonga                                        | TO           | 776     |
        | Trinidad and Tobago                          | TT           | 780     |
        | Tunisia                                      | TN           | 788     |
        | Turkey                                       | TR           | 792     |
        | Turkmenistan                                 | TM           | 795     |
        | Tuvalu                                       | TV           | 798     |
        | Uganda                                       | UG           | 800     |
        | Ukraine                                      | UA           | 804     |
        | United Arab Emirates                         | AE           | 784     |
        | United Kingdom                               | GB           | 826     |
        | Uruguay                                      | UY           | 858     |
        | Uzbekistan                                   | UZ           | 860     |
        | Vanuatu                                      | VU           | 548     |
        | Venezuela, Bolivarian Republic of            | VE           | 862     |
        | Vietnam                                      | VN           | 704     |
        | Wallis and Futuna                            | WF           | 876     |
        | Western Sahara                               | EH           | 732     |
        | Yemen                                        | YE           | 886     |
        | Zambia                                       | ZM           | 894     |
        | Zimbabwe                                     | ZW           | 716     |

        </details>
      externalDocs:
        description: Find more info here
        url: https://www.iso.org/iso-3166-country-codes.html
      example: '528'
    components-schemas-CountryCode:
      type: object
      required:
        - alpha2
        - alpha3
        - numeric
      description: |
        Card country value in different standards.
      properties:
        alpha3:
          $ref: '#/components/schemas/components-schemas-countryCodeAlpha3'
        alpha2:
          $ref: '#/components/schemas/components-schemas-countryCodeAlpha2'
        numeric:
          $ref: '#/components/schemas/components-schemas-countryCodeNumeric'
    CardCountry:
      type: object
      required:
        - code
        - isInEEA
      properties:
        code:
          $ref: '#/components/schemas/components-schemas-CountryCode'
        isInEEA:
          description: Indicates whether the Card Country is part of the European Economic Area
          type: boolean
    cardNetworkMember:
      type: object
      description: A principal member of a card network.
      required:
        - id
        - name
        - countryCode
      properties:
        id:
          type: string
          description: Identifying code of the member assigned by the card network
        name:
          type: string
          description: Human-readable name of the member.
        countryCode:
          $ref: '#/components/schemas/components-schemas-CountryCode'
    cardProduct:
      description: A Card Product.
      required:
        - code
        - name
        - accountFundingSource
      properties:
        code:
          type: string
          description: A code assigned by the card network identifying the Card Product
        name:
          type: string
          description: Human-readable name of the Card Product.
        accountFundingSource:
          type: string
          description: Manner in which the account belonging to the Card Product is funded.
          enum:
            - Credit
            - Debit
            - Prepaid
            - Charge
            - Deferred Debit
            - Unknown
        isDurbinRegulated:
          description: Whether the Card Product is Durbin regulated.
          type: boolean
    cardInfoCurrencyCode:
      type: string
      enum:
        - AED
        - AFN
        - ALL
        - AMD
        - ANG
        - AOA
        - ARS
        - AUD
        - AWG
        - AZN
        - BAM
        - BBD
        - BDT
        - BGN
        - BHD
        - BIF
        - BMD
        - BND
        - BOB
        - BRL
        - BSD
        - BTN
        - BWP
        - BYN
        - BZD
        - CAD
        - CDF
        - CHF
        - CLP
        - CNH
        - CNY
        - COP
        - CRC
        - CUC
        - CUP
        - CVE
        - CZK
        - DJF
        - DKK
        - DOP
        - DZD
        - EGP
        - ERN
        - ETB
        - EUR
        - FJD
        - FKP
        - GBP
        - GEL
        - GHS
        - GIP
        - GMD
        - GNF
        - GTQ
        - GYD
        - HKD
        - HNL
        - HRK
        - HTG
        - HUF
        - IDR
        - ILS
        - INR
        - IQD
        - IRR
        - ISK
        - JMD
        - JOD
        - JPY
        - KES
        - KGS
        - KHR
        - KMF
        - KPW
        - KRW
        - KWD
        - KYD
        - KZT
        - LAK
        - LBP
        - LKR
        - LRD
        - LSL
        - LYD
        - MAD
        - MDL
        - MGA
        - MKD
        - MMK
        - MNT
        - MOP
        - MRU
        - MUR
        - MVR
        - MWK
        - MXN
        - MYR
        - MZN
        - NAD
        - NGN
        - NIO
        - NOK
        - NPR
        - NZD
        - OMR
        - PAB
        - PEN
        - PGK
        - PHP
        - PKR
        - PLN
        - PYG
        - QAR
        - RON
        - RSD
        - RUB
        - RWF
        - SAR
        - SBD
        - SCR
        - SDG
        - SEK
        - SGD
        - SHP
        - SLE
        - SLL
        - SOS
        - SRD
        - SSP
        - STN
        - SVC
        - SYP
        - SZL
        - THB
        - TJS
        - TMT
        - TND
        - TOP
        - TRY
        - TTD
        - TWD
        - TZS
        - UAH
        - UGX
        - USD
        - UYU
        - UYW
        - UZS
        - VES
        - VND
        - VUV
        - WST
        - XAF
        - XCD
        - XOF
        - XPF
        - YER
        - ZAR
        - ZMW
        - ZWG
        - ZWL
        - XXX
      description: |
        The three-letter ISO code of the currency.
        When the currency is not known, the placeholder value `XXX` is used.

        **European ISO Currency Codes**

        <details>

        | Country — Currency                       | Code | Numeric | Minor Units |
        | ---------------------------------------- | ---- | ------- | ----------- |
        | Åland Islands — Euro                     | EUR  | 978     | 2           |
        | Andorra — Euro                           | EUR  | 978     | 2           |
        | Austria — Euro                           | EUR  | 978     | 2           |
        | Belgium — Euro                           | EUR  | 978     | 2           |
        | Cyprus — Euro                            | EUR  | 978     | 2           |
        | Estonia — Euro                           | EUR  | 978     | 2           |
        | European Union — Euro                    | EUR  | 978     | 2           |
        | Finland — Euro                           | EUR  | 978     | 2           |
        | France — Euro                            | EUR  | 978     | 2           |
        | French Guiana — Euro                     | EUR  | 978     | 2           |
        | French Southern Territories (The) — Euro | EUR  | 978     | 2           |
        | Germany — Euro                           | EUR  | 978     | 2           |
        | Greece — Euro                            | EUR  | 978     | 2           |
        | Guadeloupe — Euro                        | EUR  | 978     | 2           |
        | Holy See (The) — Euro                    | EUR  | 978     | 2           |
        | Ireland — Euro                           | EUR  | 978     | 2           |
        | Italy — Euro                             | EUR  | 978     | 2           |
        | Latvia — Euro                            | EUR  | 978     | 2           |
        | Lithuania — Euro                         | EUR  | 978     | 2           |
        | Luxembourg — Euro                        | EUR  | 978     | 2           |
        | Malta — Euro                             | EUR  | 978     | 2           |
        | Martinique — Euro                        | EUR  | 978     | 2           |
        | Mayotte — Euro                           | EUR  | 978     | 2           |
        | Monaco — Euro                            | EUR  | 978     | 2           |
        | Montenegro — Euro                        | EUR  | 978     | 2           |
        | Netherlands (The) — Euro                 | EUR  | 978     | 2           |
        | Portugal — Euro                          | EUR  | 978     | 2           |
        | Réunion — Euro                           | EUR  | 978     | 2           |
        | Saint Barthélemy — Euro                  | EUR  | 978     | 2           |
        | Saint Martin (French Part) — Euro        | EUR  | 978     | 2           |
        | Saint Pierre And Miquelon — Euro         | EUR  | 978     | 2           |
        | San Marino — Euro                        | EUR  | 978     | 2           |
        | Slovakia — Euro                          | EUR  | 978     | 2           |
        | Slovenia — Euro                          | EUR  | 978     | 2           |
        | Spain — Euro                             | EUR  | 978     | 2           |

        </details>

        **US ISO Currency Codes**

        <details>

        | Country — Currency                                     | Code | Numeric | Minor Units |
        | ------------------------------------------------------ | ---- | ------- | ----------- |
        | American Samoa — US Dollar                             | USD  | 840     | 2           |
        | Bonaire, Sint Eustatius And Saba — US Dollar           | USD  | 840     | 2           |
        | British Indian Ocean Territory (The) — US Dollar       | USD  | 840     | 2           |
        | Ecuador — US Dollar                                    | USD  | 840     | 2           |
        | El Salvador — US Dollar                                | USD  | 840     | 2           |
        | Guam — US Dollar                                       | USD  | 840     | 2           |
        | Haiti — US Dollar                                      | USD  | 840     | 2           |
        | Marshall Islands (The) — US Dollar                     | USD  | 840     | 2           |
        | Micronesia (Federated States Of) — US Dollar           | USD  | 840     | 2           |
        | Northern Mariana Islands (The) — US Dollar             | USD  | 840     | 2           |
        | Palau — US Dollar                                      | USD  | 840     | 2           |
        | Panama — US Dollar                                     | USD  | 840     | 2           |
        | Puerto Rico — US Dollar                                | USD  | 840     | 2           |
        | Timor-leste — US Dollar                                | USD  | 840     | 2           |
        | Turks And Caicos Islands (The) — US Dollar             | USD  | 840     | 2           |
        | United States Minor Outlying Islands (The) — US Dollar | USD  | 840     | 2           |
        | United States Of America (The) — US Dollar             | USD  | 840     | 2           |
        | Virgin Islands (British) — US Dollar                   | USD  | 840     | 2           |
        | Virgin Islands (U.s.) — US Dollar                      | USD  | 840     | 2           |

        </details>

        **Other ISO Currency Codes**

        <details>

        | Country — Currency                                                          | Code | Numeric | Minor Units |
        | --------------------------------------------------------------------------- | ---- | ------- | ----------- |
        | Afghanistan — Afghani                                                       | AFN  | 971     | 2           |
        | Albania — Lek                                                               | ALL  | 008     | 2           |
        | Algeria — Algerian Dinar                                                    | DZD  | 012     | 2           |
        | Angola — Kwanza                                                             | AOA  | 973     | 2           |
        | Anguilla — East Caribbean Dollar                                            | XCD  | 951     | 2           |
        | Antigua And Barbuda — East Caribbean Dollar                                 | XCD  | 951     | 2           |
        | Argentina — Argentine Peso                                                  | ARS  | 032     | 2           |
        | Armenia — Armenian Dram                                                     | AMD  | 051     | 2           |
        | Aruba — Aruban Florin                                                       | AWG  | 533     | 2           |
        | Australia — Australian Dollar                                               | AUD  | 036     | 2           |
        | Azerbaijan — Azerbaijan Manat                                               | AZN  | 944     | 2           |
        | Bahamas (The) — Bahamian Dollar                                             | BSD  | 044     | 2           |
        | Bahrain — Bahraini Dinar                                                    | BHD  | 048     | 3           |
        | Bangladesh — Taka                                                           | BDT  | 050     | 2           |
        | Barbados — Barbados Dollar                                                  | BBD  | 052     | 2           |
        | Belarus — Belarusian Ruble                                                  | BYN  | 933     | 2           |
        | Belize — Belize Dollar                                                      | BZD  | 084     | 2           |
        | Benin — CFA Franc BCEAO                                                     | XOF  | 952     | 0           |
        | Bermuda — Bermudian Dollar                                                  | BMD  | 060     | 2           |
        | Bhutan — Indian Rupee                                                       | INR  | 356     | 2           |
        | Bhutan — Ngultrum                                                           | BTN  | 064     | 2           |
        | Bolivia (Plurinational State Of) — Boliviano                                | BOB  | 068     | 2           |
        | Bosnia And Herzegovina — Convertible Mark                                   | BAM  | 977     | 2           |
        | Botswana — Pula                                                             | BWP  | 072     | 2           |
        | Bouvet Island — Norwegian Krone                                             | NOK  | 578     | 2           |
        | Brazil — Brazilian Real                                                     | BRL  | 986     | 2           |
        | Brunei Darussalam — Brunei Dollar                                           | BND  | 096     | 2           |
        | Bulgaria — Bulgarian Lev                                                    | BGN  | 975     | 2           |
        | Burkina Faso — CFA Franc BCEAO                                              | XOF  | 952     | 0           |
        | Burundi — Burundi Franc                                                     | BIF  | 108     | 0           |
        | Cabo Verde — Cabo Verde Escudo                                              | CVE  | 132     | 2           |
        | Cambodia — Riel                                                             | KHR  | 116     | 2           |
        | Cameroon — CFA Franc BEAC                                                   | XAF  | 950     | 0           |
        | Canada — Canadian Dollar                                                    | CAD  | 124     | 2           |
        | Cayman Islands (The) — Cayman Islands Dollar                                | KYD  | 136     | 2           |
        | Central African Republic (The) — CFA Franc BEAC                             | XAF  | 950     | 0           |
        | Chad — CFA Franc BEAC                                                       | XAF  | 950     | 0           |
        | Chile — Chilean Peso                                                        | CLP  | 152     | 0           |
        | China — Yuan Renminbi                                                       | CNY  | 156     | 2           |
        | China - Hong Kong Renminbi                                                  | CNH  | -       | 2           |
        | Christmas Island — Australian Dollar                                        | AUD  | 036     | 2           |
        | Cocos (Keeling) Islands (The) — Australian Dollar                           | AUD  | 036     | 2           |
        | Colombia — Colombian Peso                                                   | COP  | 170     | 2           |
        | Comoros (The) — Comorian Franc                                              | KMF  | 174     | 0           |
        | Congo (The Democratic Republic Of The) — Congolese Franc                    | CDF  | 976     | 2           |
        | Congo (The) — CFA Franc BEAC                                                | XAF  | 950     | 0           |
        | Cook Islands (The) — New Zealand Dollar                                     | NZD  | 554     | 2           |
        | Costa Rica — Costa Rican Colon                                              | CRC  | 188     | 2           |
        | Côte D'ivoire — CFA Franc BCEAO                                             | XOF  | 952     | 0           |
        | Croatia — Kuna                                                              | HRK  | 191     | 2           |
        | Cuba — Cuban Peso                                                           | CUP  | 192     | 2           |
        | Cuba — Peso Convertible                                                     | CUC  | 931     | 2           |
        | Curaçao — Netherlands Antillean Guilder                                     | ANG  | 532     | 2           |
        | Czechia — Czech Koruna                                                      | CZK  | 203     | 2           |
        | Denmark — Danish Krone                                                      | DKK  | 208     | 2           |
        | Djibouti — Djibouti Franc                                                   | DJF  | 262     | 0           |
        | Dominica — East Caribbean Dollar                                            | XCD  | 951     | 2           |
        | Dominican Republic (The) — Dominican Peso                                   | DOP  | 214     | 2           |
        | Egypt — Egyptian Pound                                                      | EGP  | 818     | 2           |
        | El Salvador — El Salvador Colon                                             | SVC  | 222     | 2           |
        | Equatorial Guinea — CFA Franc BEAC                                          | XAF  | 950     | 0           |
        | Eritrea — Nakfa                                                             | ERN  | 232     | 2           |
        | Ethiopia — Ethiopian Birr                                                   | ETB  | 230     | 2           |
        | Falkland Islands (The) [Malvinas] — Falkland Islands Pound                  | FKP  | 238     | 2           |
        | Faroe Islands (The) — Danish Krone                                          | DKK  | 208     | 2           |
        | Fiji — Fiji Dollar                                                          | FJD  | 242     | 2           |
        | French Polynesia — CFP Franc                                                | XPF  | 953     | 0           |
        | Gabon — CFA Franc BEAC                                                      | XAF  | 950     | 0           |
        | Gambia (The) — Dalasi                                                       | GMD  | 270     | 2           |
        | Georgia — Lari                                                              | GEL  | 981     | 2           |
        | Ghana — Ghana Cedi                                                          | GHS  | 936     | 2           |
        | Gibraltar — Gibraltar Pound                                                 | GIP  | 292     | 2           |
        | Greenland — Danish Krone                                                    | DKK  | 208     | 2           |
        | Grenada — East Caribbean Dollar                                             | XCD  | 951     | 2           |
        | Guatemala — Quetzal                                                         | GTQ  | 320     | 2           |
        | Guernsey — Pound Sterling                                                   | GBP  | 826     | 2           |
        | Guinea — Guinean Franc                                                      | GNF  | 324     | 0           |
        | Guinea-bissau — CFA Franc BCEAO                                             | XOF  | 952     | 0           |
        | Guyana — Guyana Dollar                                                      | GYD  | 328     | 2           |
        | Haiti — Gourde                                                              | HTG  | 332     | 2           |
        | Heard Island And Mcdonald Islands — Australian Dollar                       | AUD  | 036     | 2           |
        | Honduras — Lempira                                                          | HNL  | 340     | 2           |
        | Hong Kong — Hong Kong Dollar                                                | HKD  | 344     | 2           |
        | Hungary — Forint                                                            | HUF  | 348     | 2           |
        | Iceland — Iceland Krona                                                     | ISK  | 352     | 0           |
        | India — Indian Rupee                                                        | INR  | 356     | 2           |
        | Indonesia — Rupiah                                                          | IDR  | 360     | 2           |
        | Iran (Islamic Republic Of) — Iranian Rial                                   | IRR  | 364     | 2           |
        | Iraq — Iraqi Dinar                                                          | IQD  | 368     | 3           |
        | Isle Of Man — Pound Sterling                                                | GBP  | 826     | 2           |
        | Israel — New Israeli Sheqel                                                 | ILS  | 376     | 2           |
        | Jamaica — Jamaican Dollar                                                   | JMD  | 388     | 2           |
        | Japan — Yen                                                                 | JPY  | 392     | 0           |
        | Jersey — Pound Sterling                                                     | GBP  | 826     | 2           |
        | Jordan — Jordanian Dinar                                                    | JOD  | 400     | 3           |
        | Kazakhstan — Tenge                                                          | KZT  | 398     | 2           |
        | Kenya — Kenyan Shilling                                                     | KES  | 404     | 2           |
        | Kiribati — Australian Dollar                                                | AUD  | 036     | 2           |
        | Korea (The Democratic People’s Republic Of) — North Korean Won              | KPW  | 408     | 2           |
        | Korea (The Republic Of) — Won                                               | KRW  | 410     | 0           |
        | Kuwait — Kuwaiti Dinar                                                      | KWD  | 414     | 3           |
        | Kyrgyzstan — Som                                                            | KGS  | 417     | 2           |
        | Lao People’s Democratic Republic (The) — Lao Kip                            | LAK  | 418     | 2           |
        | Lebanon — Lebanese Pound                                                    | LBP  | 422     | 2           |
        | Lesotho — Loti                                                              | LSL  | 426     | 2           |
        | Lesotho — Rand                                                              | ZAR  | 710     | 2           |
        | Liberia — Liberian Dollar                                                   | LRD  | 430     | 2           |
        | Libya — Libyan Dinar                                                        | LYD  | 434     | 3           |
        | Liechtenstein — Swiss Franc                                                 | CHF  | 756     | 2           |
        | Macao — Pataca                                                              | MOP  | 446     | 2           |
        | Macedonia (The Former Yugoslav Republic Of) — Denar                         | MKD  | 807     | 2           |
        | Madagascar — Malagasy Ariary                                                | MGA  | 969     | 2           |
        | Malawi — Malawi Kwacha                                                      | MWK  | 454     | 2           |
        | Malaysia — Malaysian Ringgit                                                | MYR  | 458     | 2           |
        | Maldives — Rufiyaa                                                          | MVR  | 462     | 2           |
        | Mali — CFA Franc BCEAO                                                      | XOF  | 952     | 0           |
        | Mauritania — Ouguiya                                                        | MRU  | 929     | 2           |
        | Mauritius — Mauritius Rupee                                                 | MUR  | 480     | 2           |
        | Mexico — Mexican Peso                                                       | MXN  | 484     | 2           |
        | Moldova (The Republic Of) — Moldovan Leu                                    | MDL  | 498     | 2           |
        | Mongolia — Tugrik                                                           | MNT  | 496     | 2           |
        | Montserrat — East Caribbean Dollar                                          | XCD  | 951     | 2           |
        | Morocco — Moroccan Dirham                                                   | MAD  | 504     | 2           |
        | Mozambique — Mozambique Metical                                             | MZN  | 943     | 2           |
        | Myanmar — Kyat                                                              | MMK  | 104     | 2           |
        | Namibia — Namibia Dollar                                                    | NAD  | 516     | 2           |
        | Namibia — Rand                                                              | ZAR  | 710     | 2           |
        | Nauru — Australian Dollar                                                   | AUD  | 036     | 2           |
        | Nepal — Nepalese Rupee                                                      | NPR  | 524     | 2           |
        | New Caledonia — CFP Franc                                                   | XPF  | 953     | 0           |
        | New Zealand — New Zealand Dollar                                            | NZD  | 554     | 2           |
        | Nicaragua — Cordoba Oro                                                     | NIO  | 558     | 2           |
        | Niger (The) — CFA Franc BCEAO                                               | XOF  | 952     | 0           |
        | Nigeria — Naira                                                             | NGN  | 566     | 2           |
        | Niue — New Zealand Dollar                                                   | NZD  | 554     | 2           |
        | Norfolk Island — Australian Dollar                                          | AUD  | 036     | 2           |
        | Norway — Norwegian Krone                                                    | NOK  | 578     | 2           |
        | Oman — Rial Omani                                                           | OMR  | 512     | 3           |
        | Pakistan — Pakistan Rupee                                                   | PKR  | 586     | 2           |
        | Panama — Balboa                                                             | PAB  | 590     | 2           |
        | Papua New Guinea — Kina                                                     | PGK  | 598     | 2           |
        | Paraguay — Guarani                                                          | PYG  | 600     | 0           |
        | Peru — Sol                                                                  | PEN  | 604     | 2           |
        | Philippines (The) — Philippine Peso                                         | PHP  | 608     | 2           |
        | Pitcairn — New Zealand Dollar                                               | NZD  | 554     | 2           |
        | Poland — Zloty                                                              | PLN  | 985     | 2           |
        | Qatar — Qatari Rial                                                         | QAR  | 634     | 2           |
        | Romania — Romanian Leu                                                      | RON  | 946     | 2           |
        | Russian Federation (The) — Russian Ruble                                    | RUB  | 643     | 2           |
        | Rwanda — Rwanda Franc                                                       | RWF  | 646     | 0           |
        | Saint Helena, Ascension And Tristan Da Cunha — Saint Helena Pound           | SHP  | 654     | 2           |
        | Saint Kitts And Nevis — East Caribbean Dollar                               | XCD  | 951     | 2           |
        | Saint Lucia — East Caribbean Dollar                                         | XCD  | 951     | 2           |
        | Saint Vincent And The Grenadines — East Caribbean Dollar                    | XCD  | 951     | 2           |
        | Samoa — Tala                                                                | WST  | 882     | 2           |
        | Sao Tome And Principe — Dobra                                               | STN  | 930     | 2           |
        | Saudi Arabia — Saudi Riyal                                                  | SAR  | 682     | 2           |
        | Senegal — CFA Franc BCEAO                                                   | XOF  | 952     | 0           |
        | Serbia — Serbian Dinar                                                      | RSD  | 941     | 2           |
        | Seychelles — Seychelles Rupee                                               | SCR  | 690     | 2           |
        | Sierra Leone — Leone                                                        | SLL  | 694     | 2           |
        | Singapore — Singapore Dollar                                                | SGD  | 702     | 2           |
        | Sint Maarten (Dutch Part) — Netherlands Antillean Guilder                   | ANG  | 532     | 2           |
        | Solomon Islands — Solomon Islands Dollar                                    | SBD  | 090     | 2           |
        | Somalia — Somali Shilling                                                   | SOS  | 706     | 2           |
        | South Africa — Rand                                                         | ZAR  | 710     | 2           |
        | South Sudan — South Sudanese Pound                                          | SSP  | 728     | 2           |
        | Sri Lanka — Sri Lanka Rupee                                                 | LKR  | 144     | 2           |
        | Sudan (The) — Sudanese Pound                                                | SDG  | 938     | 2           |
        | Suriname — Surinam Dollar                                                   | SRD  | 968     | 2           |
        | Svalbard And Jan Mayen — Norwegian Krone                                    | NOK  | 578     | 2           |
        | Eswatini — Lilangeni                                                        | SZL  | 748     | 2           |
        | Sweden — Swedish Krona                                                      | SEK  | 752     | 2           |
        | Switzerland — Swiss Franc                                                   | CHF  | 756     | 2           |
        | Syrian Arab Republic — Syrian Pound                                         | SYP  | 760     | 2           |
        | Taiwan (Province Of China) — New Taiwan Dollar                              | TWD  | 901     | 2           |
        | Tajikistan — Somoni                                                         | TJS  | 972     | 2           |
        | Tanzania, United Republic Of — Tanzanian Shilling                           | TZS  | 834     | 2           |
        | Thailand — Baht                                                             | THB  | 764     | 2           |
        | Togo — CFA Franc BCEAO                                                      | XOF  | 952     | 0           |
        | Tokelau — New Zealand Dollar                                                | NZD  | 554     | 2           |
        | Tonga — Pa’anga                                                             | TOP  | 776     | 2           |
        | Trinidad And Tobago — Trinidad and Tobago Dollar                            | TTD  | 780     | 2           |
        | Tunisia — Tunisian Dinar                                                    | TND  | 788     | 3           |
        | Turkey — Turkish Lira                                                       | TRY  | 949     | 2           |
        | Turkmenistan — Turkmenistan New Manat                                       | TMT  | 934     | 2           |
        | Tuvalu — Australian Dollar                                                  | AUD  | 036     | 2           |
        | Uganda — Uganda Shilling                                                    | UGX  | 800     | 0           |
        | Ukraine — Hryvnia                                                           | UAH  | 980     | 2           |
        | United Arab Emirates (The) — UAE Dirham                                     | AED  | 784     | 2           |
        | United Kingdom Of Great Britain And Northern Ireland (The) — Pound Sterling | GBP  | 826     | 2           |
        | Uruguay — Peso Uruguayo                                                     | UYU  | 858     | 2           |
        | Uruguay — Unidad Previsional                                                | UYW  | 927     | 4           |
        | Uzbekistan — Uzbekistan Sum                                                 | UZS  | 860     | 2           |
        | Vanuatu — Vatu                                                              | VUV  | 548     | 0           |
        | Venezuela (Bolivarian Republic Of) — Bolívar Soberano                       | VES  | 928     | 2           |
        | Viet Nam — Dong                                                             | VND  | 704     | 0           |
        | Wallis And Futuna — CFP Franc                                               | XPF  | 953     | 0           |
        | Western Sahara — Moroccan Dirham                                            | MAD  | 504     | 2           |
        | Yemen — Yemeni Rial                                                         | YER  | 886     | 2           |
        | Zambia — Zambian Kwacha                                                     | ZMW  | 967     | 2           |
        | Zimbabwe — Zimbabwe Dollar                                                  | ZWL  | 932     | 2           |

        </details>
      externalDocs:
        description: Find more info here
        url: https://www.iso.org/iso-4217-currency-codes.html
      example: EUR
    isTokenRange:
      type: boolean
    CardInfoResponseBase:
      type: object
      required:
        - cardCountry
        - issuerAccountRangeLow
        - issuerAccountRangeHigh
        - member
        - cardProducts
        - cardholderBillingCurrency
      description: |
        A response to a Card Info Request
      properties:
        cardCountry:
          $ref: '#/components/schemas/CardCountry'
        issuerAccountRangeLow:
          description: The lower boundary of the range to which the information applies.
          type: string
        issuerAccountRangeHigh:
          description: The higher boundary of the range to which the information applies.
          type: string
        member:
          $ref: '#/components/schemas/cardNetworkMember'
        cardProducts:
          type: array
          minItems: 1
          items:
            $ref: '#/components/schemas/cardProduct'
        cardholderBillingCurrency:
          $ref: '#/components/schemas/cardInfoCurrencyCode'
        isTokenRange:
          $ref: '#/components/schemas/isTokenRange'
    MastercardProductType:
      properties:
        code:
          type: string
          enum:
            - '1'
            - '2'
            - '3'
            - '4'
        description:
          type: string
    MastercardCardProgramIdentifier:
      properties:
        code:
          type: string
          enum:
            - CIR
            - DMC
            - MCC
            - MSI
            - PRO
            - PVL
            - VIS
        description:
          type: string
    MastercardProductClass:
      properties:
        gcmsProductID:
          type: string
        licensedProductID:
          type: string
        licensedProductDescription:
          type: string
        productClassID:
          type: string
        productClassDescription:
          type: string
    MastercardProductCategory:
      properties:
        code:
          type: string
          enum:
            - D
            - P
            - C
            - 'N'
        description:
          type: string
    MastercardBrandProduct:
      properties:
        productClass:
          $ref: '#/components/schemas/MastercardProductClass'
        productCategory:
          $ref: '#/components/schemas/MastercardProductCategory'
    MastercardCardBrandProduct:
      properties:
        cardProgramIdentifier:
          $ref: '#/components/schemas/MastercardCardProgramIdentifier'
        brandProduct:
          $ref: '#/components/schemas/MastercardBrandProduct'
        priority:
          type: string
    MastercardInterchangeRegion:
      properties:
        code:
          type: string
          enum:
            - '1'
            - A
            - B
            - C
            - D
            - E
        description:
          type: string
    MastercardAnonymousPrepaidIndicator:
      properties:
        code:
          type: string
          enum:
            - A
            - E
            - 'N'
            - U
        description:
          type: string
    MastercardSpecificCardInfo:
      description: Mastercard-specific Card Information.
      type: object
      properties:
        productType:
          $ref: '#/components/schemas/MastercardProductType'
        brandProducts:
          type: array
          minItems: 1
          items:
            $ref: '#/components/schemas/MastercardCardBrandProduct'
        interchangeRegion:
          $ref: '#/components/schemas/MastercardInterchangeRegion'
        coBrandParticipation:
          type: boolean
        moneySendIndicator:
          type: string
        anonymousPrepaidIndicator:
          $ref: '#/components/schemas/MastercardAnonymousPrepaidIndicator'
        dccIndicator:
          type: string
          description: Cardholder Currency Indicator (IP0040T1 position 178). Indicates the card range's eligibility for Dynamic Currency Conversion (DCC) services.
    DuplicatedMastercardCardInfo:
      description: Mastercard-specific Card Information.
      allOf:
        - $ref: '#/components/schemas/MastercardSpecificCardInfo'
        - $ref: '#/components/schemas/CardInfoResponseBase'
    VisaRegion:
      properties:
        code:
          type: string
          enum:
            - '1'
            - '2'
            - '3'
            - '4'
            - '5'
            - '6'
        description:
          type: string
    VisaDomain:
      properties:
        code:
          type: string
          enum:
            - D
            - 'N'
            - R
            - W
            - C
        description:
          type: string
    VisaProduct:
      properties:
        visaProductID:
          type: string
        productDescription:
          type: string
        productType:
          type: string
        productSubTypeCode:
          type: string
        productSubTypeDescription:
          type: string
    VisaAccountFundingSource:
      properties:
        code:
          type: string
          enum:
            - C
            - D
            - P
            - H
            - R
        description:
          type: string
    VisaDirectParticipation:
      properties:
        nonMoneyTransferOCTsDomestic:
          type: boolean
        nonMoneyTransferOCTsCrossBorder:
          type: boolean
        onlineGamblingOCTsDomestic:
          type: boolean
        onlineGamblingOCTsCrossBorder:
          type: boolean
        moneyTransferOCTsDomestic:
          type: boolean
        moneyTransferOCTsCrossBorder:
          type: boolean
        fastFundsDomesticMoneyTransfer:
          type: boolean
        fastFundsDomesticNonMoneyTransfer:
          type: boolean
        fastFundsDomesticGambling:
          type: boolean
        fastFundsCrossBorderMoneyTransfer:
          type: boolean
        fastFundsCrossBorderNonMoneyTransfer:
          type: boolean
        fastFundsCrossBorderGambling:
          type: boolean
    VisaSpecificCardInfoBase:
      description: Visa-specific Card Information.
      type: object
      properties:
        accountNumberLength:
          description: Length of Account Numbers in this Card Range.
          type: number
        checkDigit:
          description: Indicates whether the Card Range Uses a Check Digit.
          type: boolean
        accountRangeRegion:
          $ref: '#/components/schemas/VisaRegion'
        domain:
          $ref: '#/components/schemas/VisaDomain'
        product:
          $ref: '#/components/schemas/VisaProduct'
        accountFundingSource:
          $ref: '#/components/schemas/VisaAccountFundingSource'
        visaDirectParticipation:
          $ref: '#/components/schemas/VisaDirectParticipation'
    VisaSpecificMemberSingleResponse:
      description: Visa-specific member properties.
      properties:
        cib:
          description: Member processing base-2 CIB
          type: string
        iin:
          description: Issuer identifier
          type: string
    VisaSpecificMemberDuplicatedResponse:
      description: Visa-specific member properties.
      allOf:
        - $ref: '#/components/schemas/VisaSpecificMemberSingleResponse'
        - $ref: '#/components/schemas/cardNetworkMember'
    DuplicatedVisaCardInfo:
      description: Visa-specific Card Information.
      allOf:
        - $ref: '#/components/schemas/VisaSpecificCardInfoBase'
        - $ref: '#/components/schemas/CardInfoResponseBase'
        - type: object
          required:
            - member
          properties:
            member:
              $ref: '#/components/schemas/VisaSpecificMemberDuplicatedResponse'
    BancontactSpecificCardInfo:
      type: object
      description: Bancontact specific Card Info.
      properties:
        cardType:
          type: string
          enum:
            - Physical
            - Digital
    DuplicatedBancontactCardInfo:
      description: Bancontact-specific Card Info.
      allOf:
        - $ref: '#/components/schemas/BancontactSpecificCardInfo'
        - $ref: '#/components/schemas/CardInfoResponseBase'
    MultiSourceResponse:
      allOf:
        - $ref: '#/components/schemas/CardInfoResponseBase'
        - type: object
          required:
            - primaryCardNetwork
            - infoSource
          properties:
            primaryCardNetwork:
              description: The primary card network issuing this card range.
              type: string
              enum:
                - mastercard
                - visa
                - bancontact
                - unknown
            infoSource:
              type: string
              enum:
                - mastercard
                - visa
                - bancontact
              description: The source of the provided information.
            mastercardCardInfo:
              $ref: '#/components/schemas/DuplicatedMastercardCardInfo'
            visaCardInfo:
              $ref: '#/components/schemas/DuplicatedVisaCardInfo'
            bancontactCardInfo:
              $ref: '#/components/schemas/DuplicatedBancontactCardInfo'
    VisaSpecificCardInfo:
      description: Visa-specific Card Information.
      allOf:
        - $ref: '#/components/schemas/VisaSpecificCardInfoBase'
        - type: object
          properties:
            member:
              $ref: '#/components/schemas/VisaSpecificMemberSingleResponse'
    AmericanExpressSpecificCardInfo:
      type: object
      description: American Express specific Card Info.
    DiscoverSpecificCardInfo:
      type: object
      description: Discover specific Card Info.
      properties:
        atmIndicator:
          type: boolean
        eligibleForNetworkStandInProcessingIndicator:
          type: boolean
        countryOfIssuanceIndicator:
          type: boolean
        accountLevelProcessingEnabledIndicator:
          type: boolean
        regulationIIIndicator:
          type: string
        discoverPayWithRewardsEnabledIndicator:
          type: boolean
        realTimeTransactionPricingIndicator:
          type: boolean
    DinersSpecificCardInfo:
      type: object
      description: Diners specific Card info.
      properties:
        accountNumberLength:
          type: string
        issuerDxs:
          type: string
        product:
          type: object
          properties:
            productType:
              type: string
    SingleSourceResponse:
      allOf:
        - $ref: '#/components/schemas/CardInfoResponseBase'
        - type: object
          required:
            - primaryCardNetwork
            - infoSource
          properties:
            primaryCardNetwork:
              description: The primary card network issuing this card range.
              type: string
              enum:
                - mastercard
                - visa
                - bancontact
                - american-express
                - discover
                - diners
                - jcb
                - union-pay
                - paypal
                - unknown
            infoSource:
              $ref: '#/components/schemas/InfoSource'
            mastercardCardInfo:
              $ref: '#/components/schemas/MastercardSpecificCardInfo'
            visaCardInfo:
              $ref: '#/components/schemas/VisaSpecificCardInfo'
            bancontactCardInfo:
              $ref: '#/components/schemas/BancontactSpecificCardInfo'
            americanExpressCardInfo:
              $ref: '#/components/schemas/AmericanExpressSpecificCardInfo'
            discoverCardInfo:
              $ref: '#/components/schemas/DiscoverSpecificCardInfo'
            dinersCardInfo:
              $ref: '#/components/schemas/DinersSpecificCardInfo'
    CardInfoCardNetworkResponse:
      type: object
      required:
        - items
      properties:
        items:
          type: array
          items:
            $ref: '#/components/schemas/SingleSourceResponse'
    openapi_components-schemas-offsetToken:
      type: string
      pattern: ^[a-zA-Z0-9%]+$
    components-schemas-Page:
      type: object
      properties:
        offsetToken:
          $ref: '#/components/schemas/openapi_components-schemas-offsetToken'
    cardNetwork:
      type: string
      description: The card network
      enum:
        - mastercard
        - visa
      example: mastercard
    SellRate:
      description: The sell rate.
      type: object
      required:
        - rate
        - exponent
      properties:
        rate:
          type: integer
          format: int64
        exponent:
          type: integer
          format: int64
    BuyRate:
      description: The buy rate.
      type: object
      required:
        - rate
        - exponent
      properties:
        rate:
          type: integer
          format: int64
        exponent:
          type: integer
          format: int64
    MidRate:
      description: The mid rate.
      type: object
      required:
        - rate
        - exponent
      properties:
        rate:
          type: integer
          format: int64
        exponent:
          type: integer
          format: int64
    CurrencyExponent:
      description: The source or target currency.
      type: object
      required:
        - code
        - exponent
      properties:
        code:
          type: string
        exponent:
          type: integer
          format: int64
    CurrencyRate:
      type: object
      required:
        - id
        - network
        - effectiveDate
        - effectiveFrom
        - sell
        - buy
        - sourceCurrency
        - targetCurrency
      properties:
        id:
          description: Unique id for each item
          type: string
        network:
          description: The card network for which the currency rates are requested.
          $ref: '#/components/schemas/cardNetwork'
        effectiveDate:
          description: The date for which the currency rates are effective.
          type: string
        effectiveFrom:
          description: The datetime in utc from which the currency rates are effective.
          type: string
        sell:
          description: The sell rate.
          $ref: '#/components/schemas/SellRate'
        buy:
          description: The buy rate.
          $ref: '#/components/schemas/BuyRate'
        mid:
          description: The mid rate.
          $ref: '#/components/schemas/MidRate'
        sourceCurrency:
          description: The source currency.
          $ref: '#/components/schemas/CurrencyExponent'
        targetCurrency:
          description: The target currency.
          $ref: '#/components/schemas/CurrencyExponent'
    CurrencyRatePage:
      allOf:
        - $ref: '#/components/schemas/components-schemas-Page'
        - type: object
          properties:
            items:
              type: array
              items:
                $ref: '#/components/schemas/CurrencyRate'
    schemas-PageWithMoreItems:
      type: object
      properties:
        moreItems:
          $ref: '#/components/schemas/moreItems'
        offsetToken:
          $ref: '#/components/schemas/openapi_components-schemas-offsetToken'
    components-schemas-processorTokenKey:
      description: Uniquely identifies a processor token entity.
      type: string
      pattern: ^ptk-[a-zA-Z0-9]+$
      minLength: 5
      maxLength: 120
      example: ptk-1e1dAHhgstYTUhlphPzZ
    schemas-agentKey:
      description: Uniquely identifies an Agent
      type: string
      pattern: ^cgt-[a-zA-Z0-9]+$
      minLength: 5
      maxLength: 120
      example: cgt-1UF2NafdfrdPMf2XrS2
    last4:
      type: string
      description: last 4 digits of the card
      readOnly: true
      pattern: ^\d{4}$
      minLength: 4
      maxLength: 4
      example: '0905'
    cardStatus:
      type: string
      enum:
        - active
        - archived
      description: The status of the card.
    schemas-reference:
      type: string
      description: User-specific reference for the card.
      minLength: 5
      maxLength: 120
    cardInfoSimplified:
      type: array
      items:
        type: object
        required:
          - infoSource
          - network
          - primaryNetwork
        properties:
          infoSource:
            type: string
            description: The source of the card information.
          network:
            type: string
            description: The network of the card.
          primaryNetwork:
            type: boolean
            description: The primary card network issuing this card range.
    openapi_components-schemas-created-2:
      type: string
      description: The date and time this object was created
      format: date-time
      readOnly: true
    cvcPresent:
      description: Specifies whether the Card Verification Code (CVC) is stored within our system
      type: boolean
      readOnly: true
    lastActionDate:
      type: string
      description: The date and time this card was last used.
      format: date-time
    openapi_components-schemas-lastModified-2:
      type: string
      description: The date and time this object was last modified
      format: date-time
      readOnly: true
    openapi_components-schemas-version:
      type: integer
      description: The version of this object
      format: int64
      readOnly: true
    PublicProcessorTokenObject:
      type: object
      required:
        - key
        - agentKey
        - last4
        - status
        - cardInfo
        - created
        - cvcPresent
        - version
      description: A Processor Token object.
      properties:
        key:
          $ref: '#/components/schemas/components-schemas-processorTokenKey'
        agentKey:
          $ref: '#/components/schemas/schemas-agentKey'
        last4:
          $ref: '#/components/schemas/last4'
        status:
          $ref: '#/components/schemas/cardStatus'
        reference:
          $ref: '#/components/schemas/schemas-reference'
        cardInfo:
          $ref: '#/components/schemas/cardInfoSimplified'
        created:
          $ref: '#/components/schemas/openapi_components-schemas-created-2'
        cvcPresent:
          $ref: '#/components/schemas/cvcPresent'
        lastActionDate:
          $ref: '#/components/schemas/lastActionDate'
        lastModified:
          $ref: '#/components/schemas/openapi_components-schemas-lastModified-2'
        version:
          $ref: '#/components/schemas/openapi_components-schemas-version'
    ProcessorTokensPage:
      allOf:
        - $ref: '#/components/schemas/schemas-PageWithMoreItems'
        - type: object
          required:
            - processorTokens
          properties:
            processorTokens:
              type: array
              items:
                $ref: '#/components/schemas/PublicProcessorTokenObject'
    components-schemas-ProblemDetail:
      type: object
      description: |
        The 'problem detail' object relays detailed information about the error that occurred. It is defined
        by [RFC 7807 - Problem Details for HTTP APIs](https://tools.ietf.org/html/rfc7807).

        Note that additional properties may be used to relay error specific information. For instance,
        A Bad Request error may hold information about the individual validation errors found in the request.
      properties:
        type:
          type: string
          description: |
            An absolute URI that identifies the problem type.
          example: https://api.silverflow.co/problem/constraint-violation
        title:
          type: string
          description: |
            A short, summary of the problem type. Written in english and readable
            for engineers (usually not suited for non technical stakeholders and
            not localized);
          example: Service Unavailable
        status:
          type: integer
          format: int32
          description: |
            The HTTP status code generated by the origin server for this occurrence
            of the problem.
          minimum: 100
          maximum: 599
          example: 503
        detail:
          type: string
          description: |
            A human readable explanation specific to this occurrence of the
            problem.
          example: Connection to database timed out
        instance:
          type: string
          description: |
            An absolute URI that identifies the specific occurrence of the problem.
            It may or may not yield further information if dereferenced.
      additionalProperties: true
      example:
        type: /silverflow/problems/bad-request
        title: Bad Request
        status: 400
        detail: The request could not be processed as it contained an invalid request entity
        instance: https://api.silverflow.co/v1/merchants/mct-1hPdFqhgstYTUhlphPDp
        validationErrors:
          - The value of property 'status' should be one of 'idle', 'active' or 'archived'
          - The value of property 'tags.0.businessId' must not be longer than 255 characters
    openapi_components-schemas-pan:
      type: string
      description: Full digits of a card
      pattern: ^\d{12,19}$
      format: password
      example: '4761070000000905'
    openapi_components-schemas-expiryYear:
      type: integer
      description: |
        The year the card expires including the century.
      minimum: 1950
      maximum: 2200
    components-schemas-cvc:
      type: string
      description: |
        The CVC of the card.
      pattern: ^\d+$
      minLength: 3
      maxLength: 4
      example: '123'
    components-schemas-holderName:
      type: string
      description: |
        The name of the cardholder.
      pattern: ^[\x20-\x7E\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u00FF]+$
      minLength: 1
      maxLength: 120
      example: Joe Cardholder
    cardData:
      type: object
      additionalProperties: false
      required:
        - number
        - expiryMonth
        - expiryYear
      description: |
        The card data required to tokenize.
      properties:
        number:
          $ref: '#/components/schemas/openapi_components-schemas-pan'
        expiryMonth:
          $ref: '#/components/schemas/schemas-expiryMonth'
        expiryYear:
          $ref: '#/components/schemas/openapi_components-schemas-expiryYear'
        cvc:
          $ref: '#/components/schemas/components-schemas-cvc'
        holderName:
          $ref: '#/components/schemas/components-schemas-holderName'
    CreateProcessorTokenRequest:
      type: object
      additionalProperties: false
      required:
        - cardData
      description: The request body to create a processor token entity.
      properties:
        reference:
          $ref: '#/components/schemas/schemas-reference'
        cardData:
          $ref: '#/components/schemas/cardData'
    BadRequestErrorDetails:
      type: object
      required:
        - type
        - title
        - status
        - detail
        - instance
      properties:
        type:
          allOf:
            - $ref: '#/components/schemas/errorType'
            - enum:
                - /silverflow/problems/bad-request
        title:
          allOf:
            - $ref: '#/components/schemas/errorTitle'
            - enum:
                - Bad Request
        status:
          allOf:
            - $ref: '#/components/schemas/errorStatus'
            - enum:
                - 400
        detail:
          $ref: '#/components/schemas/errorDetail'
        instance:
          $ref: '#/components/schemas/errorInstance'
    InvalidProcessorTokenErrorDetails:
      type: object
      required:
        - type
        - title
        - status
        - detail
        - instance
      properties:
        type:
          allOf:
            - $ref: '#/components/schemas/errorType'
            - enum:
                - /silverflow/problems/processorTokens/invalid-processor-token
        title:
          allOf:
            - $ref: '#/components/schemas/errorTitle'
            - enum:
                - Invalid Processor Token
        status:
          allOf:
            - $ref: '#/components/schemas/errorStatus'
            - enum:
                - 409
        detail:
          $ref: '#/components/schemas/errorDetail'
        instance:
          $ref: '#/components/schemas/errorInstance'
    processorTokenPublicKey:
      description: Uniquely identifies a processor token public key entity.
      type: string
      pattern: ^ppk-[a-zA-Z0-9]+$
      minLength: 5
      maxLength: 120
      example: ppk-1e1dAHhgstYTUhlphPzZ
    GetCardDataResponse:
      type: object
      required:
        - processorTokenPublicKey
        - encryptedCardData
        - encryptedDataKey
        - iv
      properties:
        processorTokenPublicKey:
          $ref: '#/components/schemas/processorTokenPublicKey'
        encryptedCardData:
          type: string
          description: The card data encrypted with AES-256 algorithm. Base64 encoded.
        encryptedDataKey:
          type: string
          description: The data key used to encrypt the card data. Encrypted with the agent's public key. Base64 encoded.
        iv:
          type: string
          description: The initialization vector used to encrypt the card data. Base64 encoded.
    openapi_components-schemas-amountValue:
      type: integer
      format: int64
      minimum: 1
      maximum: 999999999999
      description: |
        An amount in minor units. For example `$12.34` should be encoded as `1234`.
      example: 2599
    openapi_components-schemas-currencyCode-2:
      type: string
      enum:
        - AED
        - AFN
        - ALL
        - AMD
        - AOA
        - ARS
        - AUD
        - AWG
        - AZN
        - BAM
        - BBD
        - BDT
        - BGN
        - BHD
        - BIF
        - BMD
        - BND
        - BOB
        - BRL
        - BSD
        - BTN
        - BWP
        - BYN
        - BZD
        - CAD
        - CDF
        - CHF
        - CLP
        - CNY
        - COP
        - CRC
        - CUC
        - CUP
        - CVE
        - CZK
        - DJF
        - DKK
        - DOP
        - DZD
        - EGP
        - ERN
        - ETB
        - EUR
        - FJD
        - FKP
        - GBP
        - GEL
        - GHS
        - GIP
        - GMD
        - GNF
        - GTQ
        - GYD
        - HKD
        - HNL
        - HTG
        - HUF
        - IDR
        - ILS
        - INR
        - IQD
        - IRR
        - ISK
        - JMD
        - JOD
        - JPY
        - KES
        - KGS
        - KHR
        - KMF
        - KPW
        - KRW
        - KWD
        - KYD
        - KZT
        - LAK
        - LBP
        - LKR
        - LRD
        - LSL
        - LYD
        - MAD
        - MDL
        - MGA
        - MKD
        - MMK
        - MNT
        - MOP
        - MRU
        - MUR
        - MVR
        - MWK
        - MXN
        - MYR
        - MZN
        - NAD
        - NGN
        - NIO
        - NOK
        - NPR
        - NZD
        - OMR
        - PAB
        - PEN
        - PGK
        - PHP
        - PKR
        - PLN
        - PYG
        - QAR
        - RON
        - RSD
        - RUB
        - RWF
        - SAR
        - SBD
        - SCR
        - SDG
        - SEK
        - SGD
        - SHP
        - SOS
        - SRD
        - SSP
        - STN
        - SYP
        - SZL
        - THB
        - TJS
        - TMT
        - TND
        - TOP
        - TRY
        - TTD
        - TWD
        - TZS
        - UAH
        - UGX
        - USD
        - UYU
        - UZS
        - VES
        - VND
        - VUV
        - WST
        - XAF
        - XCD
        - XCG
        - XOF
        - XPF
        - YER
        - ZAR
        - ZMW
        - ZWL
      description: An alphabetic ISO-4217 currency code.
      externalDocs:
        description: Find more info here
        url: https://www.iso.org/iso-4217-currency-codes.html
      example: EUR
    schemas-BaseAmountBreakdown:
      type: object
      required:
        - baseAmount
      description: |
        A breakdown of the transaction `value`.

        All provided amounts must exactly add up to `value`.
        Providing a breakdown is only required if any other amounts besides the `baseAmount` are included.
      properties:
        baseAmount:
          allOf:
            - description: |
                The base transaction value in minor units. For example `$12.34` should be encoded as `1234`.
            - $ref: '#/components/schemas/openapi_components-schemas-amountValue'
    schemas-ResponseAmountBreakdown:
      allOf:
        - $ref: '#/components/schemas/schemas-BaseAmountBreakdown'
        - type: object
          properties:
            cashback:
              allOf:
                - description: |
                    The cashback amount included in the total transaction `value` in minor units.
                    For example `$12.34` should be encoded as `1234`.
                - $ref: '#/components/schemas/openapi_components-schemas-amountValue'
            gratuity:
              allOf:
                - description: |
                    The gratuity amount included in the total transaction `value` in minor units.
                    For example `$12.34` should be encoded as `1234`.
                - $ref: '#/components/schemas/openapi_components-schemas-amountValue'
    schemas-ResponseAmount:
      type: object
      required:
        - value
        - currency
      additionalProperties: false
      description: |
        The amount encoded as an object with a `value` in minor units and a `currency` code.

        An optional `breakdown` can be provided to indicate specific sub-amounts.
      properties:
        value:
          allOf:
            - description: |
                The full transaction amount in minor units. For example `$12.34` should be encoded as `1234`.

                If a `breakdown` is provided, it must exactly add up to this `value`.
            - $ref: '#/components/schemas/openapi_components-schemas-amountValue'
        currency:
          $ref: '#/components/schemas/openapi_components-schemas-currencyCode-2'
        breakdown:
          $ref: '#/components/schemas/schemas-ResponseAmountBreakdown'
    components-schemas-intent:
      description: The intention of the cardholder
      type: string
      enum:
        - purchase
        - reservation
        - refund
    components-schemas-cardEntry:
      description: The method used to capture the card details.
      type: string
      enum:
        - terminal
      example: terminal
    schemas-order:
      description: The method used to place the order.
      type: string
      enum:
        - counter
    schemas-sequence:
      description: |
        This property indicates that the cardholder has entered Online PIN, when required by the issuer for a Mastercard Single Tap transaction.
      type: string
      enum:
        - subsequent
    schemas-ChargeType:
      description: Describes the kind of POS charge the merchant wants to submit.
      type: object
      required:
        - intent
        - cardEntry
        - order
        - terminalEntryMode
      properties:
        intent:
          $ref: '#/components/schemas/components-schemas-intent'
        cardEntry:
          $ref: '#/components/schemas/components-schemas-cardEntry'
        order:
          $ref: '#/components/schemas/schemas-order'
        terminalEntryMode:
          $ref: '#/components/schemas/terminalEntryMode'
        sequence:
          $ref: '#/components/schemas/schemas-sequence'
    ChargeListItem:
      type: object
      required:
        - chargeKey
        - merchantKey
        - terminalId
        - created
        - amount
        - status
        - cardMaskedNumber
        - type
      properties:
        chargeKey:
          $ref: '#/components/schemas/chargeKey'
        merchantKey:
          $ref: '#/components/schemas/schemas-merchantKey'
        terminalId:
          type: string
          description: Terminal's ID
          pattern: ^[a-zA-Z0-9]+$
          minLength: 1
          maxLength: 8
          example: AAFF
        created:
          type: string
          description: The date and time this object was created
          format: iso-8601-date-time
        amount:
          $ref: '#/components/schemas/schemas-ResponseAmount'
        status:
          type: string
          description: Status of the charge
          example: approved
          enum:
            - approved
            - canceled
            - refunded
        cardMaskedNumber:
          type: string
          description: Masked card number
          example: 47613499****1234
        type:
          $ref: '#/components/schemas/schemas-ChargeType'
        transactionReference:
          $ref: '#/components/schemas/transactionReference'
    ChargeListResponse:
      type: object
      required:
        - itemCount
        - moreItems
        - charges
      properties:
        itemCount:
          type: integer
          format: int32
        moreItems:
          type: boolean
        offsetToken:
          $ref: '#/components/schemas/components-schemas-offsetToken'
        charges:
          type: array
          items:
            $ref: '#/components/schemas/ChargeListItem'
          maxItems: 100
    openapi_components-schemas-InvalidInputErrorDetails-2:
      type: object
      required:
        - type
        - title
        - status
        - detail
        - instance
        - validationErrors
      properties:
        type:
          allOf:
            - $ref: '#/components/schemas/errorType'
            - enum:
                - /silverflow/problems/invalid-input
        title:
          allOf:
            - $ref: '#/components/schemas/errorTitle'
            - enum:
                - Invalid Input
        status:
          allOf:
            - $ref: '#/components/schemas/errorStatus'
            - enum:
                - 400
        detail:
          $ref: '#/components/schemas/errorDetail'
        instance:
          $ref: '#/components/schemas/errorInstance'
        validationErrors:
          type: array
          items:
            $ref: '#/components/schemas/ValidationError'
          description: A list of validation errors.
    schemas-UnauthorizedErrorDetails:
      type: object
      required:
        - type
        - title
        - status
        - detail
        - instance
      properties:
        type:
          allOf:
            - $ref: '#/components/schemas/errorType'
            - enum:
                - /silverflow/problems/authentication-required
        title:
          allOf:
            - $ref: '#/components/schemas/errorTitle'
            - enum:
                - Authentication Required
        status:
          allOf:
            - $ref: '#/components/schemas/errorStatus'
            - enum:
                - 401
        detail:
          $ref: '#/components/schemas/errorDetail'
        instance:
          $ref: '#/components/schemas/errorInstance'
    ServiceUnavailableErrorDetails:
      type: object
      required:
        - type
        - title
        - status
        - detail
        - instance
      properties:
        type:
          allOf:
            - $ref: '#/components/schemas/errorType'
            - enum:
                - silverflow/problems/service-unavailable
        title:
          allOf:
            - $ref: '#/components/schemas/errorTitle'
            - enum:
                - Service Unavailable
        status:
          allOf:
            - $ref: '#/components/schemas/errorStatus'
            - enum:
                - 503
        detail:
          $ref: '#/components/schemas/errorDetail'
        instance:
          $ref: '#/components/schemas/errorInstance'
    components-schemas-ResolverByAcceptorKey:
      type: object
      additionalProperties: false
      required:
        - merchantAcceptorKey
      description: |
        Used to select a merchant acceptor by key.
      properties:
        merchantAcceptorKey:
          $ref: '#/components/schemas/components-schemas-acceptorKey'
    components-schemas-AcceptorResolver:
      type: object
      description: |
        The resolver is used to select the appropriate merchant acceptor for creating the charge.
        It can accept either a `merchantAcceptorKey` or a combination of `merchantKey` and an optional `route`. If the optional property for `route` is not provided
        the default one generated when creating an acceptor will be used.
      oneOf:
        - $ref: '#/components/schemas/components-schemas-ResolverByAcceptorKey'
        - $ref: '#/components/schemas/schemas-ResolverByMerchant'
    schemas-CardInput:
      type: object
      required:
        - number
        - expiryMonth
        - expiryYear
      additionalProperties: false
      description: Card data
      properties:
        number:
          $ref: '#/components/schemas/components-schemas-pan'
        expiryMonth:
          $ref: '#/components/schemas/components-schemas-expiryMonth'
        expiryYear:
          $ref: '#/components/schemas/components-schemas-expiryYear'
        createProcessorToken:
          type: boolean
          default: false
          description: |
            When set to `true`, Silverflow will [create a processor token](https://docs.silverflow.com/guides/card-tokenization) for the provided `card` and return a processor token key in the response field `card.processorTokenKey`. <a class="experimental-tag-link" href="https://docs.silverflow.com/guides/api-lifecycle#tag/EXPERIMENTAL-Tag"><span class="tag experimental-tag">EXPERIMENTAL</span></a>

            **This flag is non-blocking.** When failing to create a processor token, the authorization will take place as usual and no `card.processorTokenKey` will be returned.
    schemas-RequestAmountBreakdown:
      allOf:
        - $ref: '#/components/schemas/schemas-BaseAmountBreakdown'
        - type: object
          properties:
            cashback:
              allOf:
                - description: |
                    The cashback amount included in the total transaction `value` in minor units.
                    For example `$12.34` should be encoded as `1234`.

                    The following requirements apply:
                    - `amount.breakdown.cashback` is greater than 0.
                    - `type.intent` must be `purchase`.
                    - `emvData` must be present and include valid data for tag `9F03`.
                    - `partialApproval` is not requested.

                    **Currently only supported for Visa and Mastercard.**
                - $ref: '#/components/schemas/openapi_components-schemas-amountValue'
            gratuity:
              allOf:
                - description: |
                    An optional field specifying the explicit tip or gratuity amount.

                    The following requirements apply:
                    - `amount.breakdown.gratuity` is greater than 0.
                    - `type.intent` must be `purchase`.
                - $ref: '#/components/schemas/openapi_components-schemas-amountValue'
    RequestAmount:
      type: object
      required:
        - value
        - currency
      additionalProperties: false
      description: |
        The amount encoded as an object with a `value` in minor units and a `currency` code.

        An optional `breakdown` can be provided to indicate specific sub-amounts.
      properties:
        value:
          allOf:
            - description: |
                The full transaction amount in minor units. For example `$12.34` should be encoded as `1234`.

                If a `breakdown` is provided, it must exactly add up to this `value`.
            - $ref: '#/components/schemas/openapi_components-schemas-amountValue'
        currency:
          $ref: '#/components/schemas/openapi_components-schemas-currencyCode-2'
        breakdown:
          $ref: '#/components/schemas/schemas-RequestAmountBreakdown'
    schemas-emvData:
      type: string
      description: |
        This field contains integrated circuit card (ICC) related binary data that is transmitted from the ICC to the card issuer and from the card issuer to the ICC. This field is formatted as 510 hexadecimal characters, which translates to 255 bytes.
      pattern: ^[A-Fa-f0-9]+$
      minLength: 1
      maxLength: 510
      example: 5F2A0209785F34010082027C008407A0000000093510950500000080009A031104119C01009F02060000000043149F090200029F10120210A780030400009F2100000000000000FF9F1A0202509F26082E3EAB17CEEC500C9F2701809F330360A0409F34034403029F3501229F360200169F3704BC75E9B39F4005A00090F0019F4C089F21B02E0EEAC454
    schemas-PinBlockKeyId:
      type: string
      pattern: ^[a-zA-Z0-9()+,\-.:=@;$_!*\/?#|]*$
      minLength: 1
      maxLength: 128
      description: Encryption key in the specified zone to use.
      example: my-encryption-key
    schemas-PinBlockIso0Iso1:
      type: object
      title: ISO-0/ISO-1 PIN Block
      description: PIN block related data in `ISO-0` or `ISO-1` format.
      additionalProperties: false
      required:
        - format
        - block
        - zoneId
        - keyId
      properties:
        format:
          type: string
          description: Indicates the type of PIN block format used.
          enum:
            - ISO-0
            - ISO-1
        block:
          $ref: '#/components/schemas/PinBlockDataIso0Iso1'
        zoneId:
          $ref: '#/components/schemas/PinBlockZoneId'
        keyId:
          $ref: '#/components/schemas/schemas-PinBlockKeyId'
    schemas-PinBlockIso4:
      type: object
      title: ISO-4 PIN Block
      description: PIN block related data in `ISO-4` format.
      additionalProperties: false
      required:
        - block
        - format
        - zoneId
        - keyId
      properties:
        format:
          type: string
          description: Indicates the type of PIN block format used.
          enum:
            - ISO-4
        block:
          $ref: '#/components/schemas/PinBlockDataIso4'
        zoneId:
          $ref: '#/components/schemas/PinBlockZoneId'
        keyId:
          $ref: '#/components/schemas/schemas-PinBlockKeyId'
    components-schemas-PinBlock:
      type: object
      description: PIN block related data.
      oneOf:
        - $ref: '#/components/schemas/schemas-PinBlockIso0Iso1'
        - $ref: '#/components/schemas/schemas-PinBlockIso4'
    schemas-clearAfter:
      type: string
      description: |
        If provided, clearing will not occur before this point in time. From August 13, 2025, `clearAfter` may be at most 6 months in the future from when the charge was created.
      format: iso-8601-date-time
    CreateChargeRequest:
      type: object
      additionalProperties: false
      required:
        - merchantAcceptorResolver
        - card
        - amount
        - type
        - terminal
      description: |
        Create a charge request
      properties:
        merchantAcceptorResolver:
          $ref: '#/components/schemas/components-schemas-AcceptorResolver'
        card:
          $ref: '#/components/schemas/schemas-CardInput'
        amount:
          $ref: '#/components/schemas/RequestAmount'
        type:
          $ref: '#/components/schemas/schemas-ChargeType'
        localTransactionDateTime:
          $ref: '#/components/schemas/localTransactionDateTime'
        transactionReference:
          $ref: '#/components/schemas/transactionReference'
        track2Data:
          $ref: '#/components/schemas/track2Data'
        emvData:
          $ref: '#/components/schemas/schemas-emvData'
        cardSequenceNumber:
          $ref: '#/components/schemas/cardSequenceNumber'
        pinBlock:
          $ref: '#/components/schemas/components-schemas-PinBlock'
        terminal:
          $ref: '#/components/schemas/Terminal'
        allowPartialApproval:
          $ref: '#/components/schemas/allowPartialApproval'
        clearAfter:
          $ref: '#/components/schemas/schemas-clearAfter'
    schemas-AuthorizationStatus:
      type: string
      description: Authorization status of the charge
      enum:
        - none
        - approved
        - declined
        - reversed
      example: approved
    schemas-ClearingStatus:
      type: string
      description: Clearing status of the charge
      enum:
        - none
        - manual
        - pending
        - completed
        - canceled
        - abandoned
      example: pending
    schemas-Status:
      type: object
      required:
        - authentication
        - authorization
        - clearing
      description: |
        The status property provides a high-level representation of the lifecycle of a charge. For a complete history, the actions should be used.
      properties:
        authentication:
          type: string
          description: Strong Customer Authentication (SCA) status of the charge
          enum:
            - none
        authorization:
          $ref: '#/components/schemas/schemas-AuthorizationStatus'
        clearing:
          $ref: '#/components/schemas/schemas-ClearingStatus'
    schemas-mastercardSpecificFields:
      type: object
      required:
        - banknetReference
        - traceId
      description: Mastercard specific ISO8583 raw values
      properties:
        banknetReference:
          type: string
          description: Contents of field 63, subfield 2
          example: ATSGHX
        traceId:
          type: string
          description: |
            The trace ID can be used to refer to the original authorization for subsequent transactions (e.g., reversals, MITs).

            The value is constructed from the contents of field 63, subfield 1, field 63, subfield 2, and field 15. The value intentionally ends with two spaces.
        merchantAdviceCode:
          type: string
          description: Contents of field 48, subelement 84
          example: '01'
        cvcResult:
          type: string
          description: Contents of field 48, subelement 87
          example: M
        avsResponse:
          type: string
          description: Contents of field 48, subelement 83
          example: A
        paymentAccountReference:
          type: string
          description: Contents of field 56, subelement 1, subfield 1
          example: 50020EHB2QT3YBD5KU6OFMSN6BHLU
        transactionLinkId:
          type: string
          description: Contents of field 105, subelement 1
          example: qtQRrYlsSvSecPJDBzrzYA
    schemas-visaSpecificFields:
      type: object
      required:
        - transactionIdentifier
      description: Visa specific ISO8583 raw values
      properties:
        transactionIdentifier:
          type: string
          description: Contents of field 62, subfield 2
          example: '238210000026090'
        cvv2ResultCode:
          type: string
          description: Contents of field 44, subfield 10
          example: M
        avsResultCode:
          type: string
          description: Contents of field 44, subfield 2
          example: 'Y'
        paymentAccountReference:
          type: string
          description: Contents of field 56, dataset 1, tag 1
          example: 50020EHB2QT3YBD5KU6OFMSN6BHLU
        aniResults:
          type: object
          description: Contents of field 34, dataset 4
          required:
            - status
          properties:
            status:
              type: string
              description: Contents of field 34, dataset 4, tag C0
            fullNameMatch:
              type: string
              description: Contents of field 34, dataset 4, tag C4
            firstNameMatch:
              type: string
              description: Contents of field 34, dataset 4, tag CA
            middleNameMatch:
              type: string
              description: Contents of field 34, dataset 4, tag C9
            lastNameMatch:
              type: string
              description: Contents of field 34, dataset 4, tag C8
        vaaiScore:
          type: string
          description: Contents of field 104, dataset 5b, tag 85
          example: '01'
    schemas-AuthorizationIsoFields:
      type: object
      required:
        - responseCode
        - responseCodeDescription
        - networkCode
        - systemTraceAuditNumber
        - retrievalReferenceNumber
        - eci
        - networkSpecificFields
      description: Object containing the raw values from the ISO8583 response message received from the network.
      properties:
        responseCode:
          $ref: '#/components/schemas/isoFieldResponseCode'
        responseCodeDescription:
          $ref: '#/components/schemas/isoFieldResponseCodeDescription'
        authorizationCode:
          $ref: '#/components/schemas/isoFieldAuthorizationCode'
        networkCode:
          $ref: '#/components/schemas/isoFieldNetworkCode'
        systemTraceAuditNumber:
          $ref: '#/components/schemas/isoFieldSystemTraceAuditNumber'
        retrievalReferenceNumber:
          $ref: '#/components/schemas/isoFieldRetrievalReferenceNumber'
        eci:
          type: string
          enum:
            - '00'
        networkSpecificFields:
          oneOf:
            - $ref: '#/components/schemas/amexSpecificFields'
            - $ref: '#/components/schemas/discoverSpecificFields'
            - $ref: '#/components/schemas/schemas-mastercardSpecificFields'
            - $ref: '#/components/schemas/schemas-visaSpecificFields'
    schemas-clearingMode:
      type: string
      enum:
        - auto
        - manual
      description: |
        The clearing method for the charge. Charges with `clearingMode` set to `manual` must be manually cleared later.
      default: auto
    CreateChargeResponse:
      type: object
      required:
        - key
        - created
        - status
        - type
        - merchantAcceptorRef
        - authorizationIsoFields
        - amount
        - version
        - card
        - localTransactionDateTime
        - terminal
      description: |
        A POS charge
      properties:
        key:
          $ref: '#/components/schemas/chargeKey'
        merchantAcceptorRef:
          $ref: '#/components/schemas/components-schemas-AcceptorRef'
        card:
          $ref: '#/components/schemas/OutputCard'
        amount:
          allOf:
            - description: The amount encoded as an object with a `value` in minor units and a `currency` code. In case of a (partially) approved charge, this is the authorized amount.
            - $ref: '#/components/schemas/schemas-ResponseAmount'
        type:
          $ref: '#/components/schemas/schemas-ChargeType'
        status:
          $ref: '#/components/schemas/schemas-Status'
        localTransactionDateTime:
          $ref: '#/components/schemas/localTransactionDateTime'
        transactionReference:
          $ref: '#/components/schemas/transactionReference'
        newEmvData:
          $ref: '#/components/schemas/newEmvData'
        terminalAction:
          $ref: '#/components/schemas/terminalAction'
        authorizationIsoFields:
          $ref: '#/components/schemas/schemas-AuthorizationIsoFields'
        allowPartialApproval:
          $ref: '#/components/schemas/allowPartialApproval'
        clearingMode:
          $ref: '#/components/schemas/schemas-clearingMode'
        clearAfter:
          $ref: '#/components/schemas/schemas-clearAfter'
        terminal:
          $ref: '#/components/schemas/Terminal'
        created:
          $ref: '#/components/schemas/openapi_components-schemas-created'
        lastModified:
          $ref: '#/components/schemas/components-schemas-lastModified'
        version:
          $ref: '#/components/schemas/schemas-version'
    components-schemas-InvalidRequestErrorDetails:
      type: object
      required:
        - type
        - title
        - status
        - detail
        - instance
      properties:
        type:
          allOf:
            - $ref: '#/components/schemas/errorType'
            - enum:
                - /silverflow/problems/charge/invalid-request
        title:
          $ref: '#/components/schemas/errorTitle'
        status:
          allOf:
            - $ref: '#/components/schemas/errorStatus'
            - enum:
                - 400
        detail:
          $ref: '#/components/schemas/errorDetail'
        instance:
          $ref: '#/components/schemas/errorInstance'
    schemas-CannotDetermineCardNetworkErrorDetails:
      type: object
      required:
        - type
        - title
        - status
        - detail
        - instance
      properties:
        type:
          allOf:
            - $ref: '#/components/schemas/errorType'
            - enum:
                - /silverflow/problems/charge/cannot-determine-card-network-by-card-number
        title:
          allOf:
            - $ref: '#/components/schemas/errorTitle'
            - enum:
                - Cannot Determine Card Network By Card Number
        status:
          allOf:
            - $ref: '#/components/schemas/errorStatus'
            - enum:
                - 409
        detail:
          $ref: '#/components/schemas/errorDetail'
        instance:
          $ref: '#/components/schemas/errorInstance'
    schemas-IncompatibleCardNetworkForOperation:
      type: object
      required:
        - type
        - title
        - status
        - detail
        - instance
      properties:
        type:
          allOf:
            - $ref: '#/components/schemas/errorType'
            - enum:
                - /silverflow/problems/charge/incompatible-card-network-for-operation
        title:
          allOf:
            - $ref: '#/components/schemas/errorTitle'
            - enum:
                - Incompatible Network For Operation
        status:
          allOf:
            - $ref: '#/components/schemas/errorStatus'
            - enum:
                - 409
        detail:
          $ref: '#/components/schemas/errorDetail'
        instance:
          $ref: '#/components/schemas/errorInstance'
    components-schemas-IncompatibleCardNetworkErrorDetails:
      type: object
      required:
        - type
        - title
        - status
        - detail
        - instance
      properties:
        type:
          allOf:
            - $ref: '#/components/schemas/errorType'
            - enum:
                - /silverflow/problems/bin/unexpected-network
        title:
          $ref: '#/components/schemas/errorTitle'
        status:
          allOf:
            - $ref: '#/components/schemas/errorStatus'
            - enum:
                - 409
        detail:
          $ref: '#/components/schemas/errorDetail'
        instance:
          $ref: '#/components/schemas/errorInstance'
    schemas-BlockedMerchantAcceptorErrorDetails:
      type: object
      required:
        - type
        - title
        - status
        - detail
        - instance
      properties:
        type:
          allOf:
            - $ref: '#/components/schemas/errorType'
            - enum:
                - /silverflow/problems/merchant-acceptor/blocked
        title:
          allOf:
            - $ref: '#/components/schemas/errorTitle'
            - enum:
                - Blocked Merchant Acceptor
        status:
          allOf:
            - $ref: '#/components/schemas/errorStatus'
            - enum:
                - 409
        detail:
          $ref: '#/components/schemas/errorDetail'
        instance:
          $ref: '#/components/schemas/errorInstance'
    schemas-NonMatchingIdempotentRequestErrorDetails:
      type: object
      required:
        - type
        - title
        - status
        - detail
        - instance
      properties:
        type:
          allOf:
            - $ref: '#/components/schemas/errorType'
            - enum:
                - /silverflow/problems/idempotency/request-mismatch
        title:
          allOf:
            - $ref: '#/components/schemas/errorTitle'
            - enum:
                - Idempotent Request Mismatch
        status:
          allOf:
            - $ref: '#/components/schemas/errorStatus'
            - enum:
                - 409
        detail:
          $ref: '#/components/schemas/errorDetail'
        instance:
          $ref: '#/components/schemas/errorInstance'
    schemas-MissingPosAddressErrorDetails:
      type: object
      required:
        - type
        - title
        - status
        - detail
        - instance
      properties:
        type:
          allOf:
            - $ref: '#/components/schemas/errorType'
            - enum:
                - /silverflow/problems/merchant-acceptor/missing-pos-address
        title:
          allOf:
            - $ref: '#/components/schemas/errorTitle'
            - enum:
                - Missing Point of Sale Address
        status:
          allOf:
            - $ref: '#/components/schemas/errorStatus'
            - enum:
                - 409
        detail:
          $ref: '#/components/schemas/errorDetail'
        instance:
          $ref: '#/components/schemas/errorInstance'
    schemas-UnexpectedMessageSystem:
      type: object
      required:
        - type
        - title
        - status
        - detail
        - instance
      properties:
        type:
          allOf:
            - $ref: '#/components/schemas/errorType'
            - enum:
                - /silverflow/problems/bin/unexpected-message-system
        title:
          allOf:
            - $ref: '#/components/schemas/errorTitle'
            - enum:
                - Unexpected Message System
        status:
          allOf:
            - $ref: '#/components/schemas/errorStatus'
            - enum:
                - 409
        detail:
          $ref: '#/components/schemas/errorDetail'
        instance:
          $ref: '#/components/schemas/errorInstance'
    schemas-IncompatibleCardErrorDetails:
      type: object
      required:
        - type
        - title
        - status
        - detail
        - instance
      properties:
        type:
          allOf:
            - $ref: '#/components/schemas/errorType'
            - enum:
                - /silverflow/problems/charge/incompatible-card
        title:
          allOf:
            - $ref: '#/components/schemas/errorTitle'
            - enum:
                - Incompatible Card
        status:
          allOf:
            - $ref: '#/components/schemas/errorStatus'
            - enum:
                - 409
        detail:
          $ref: '#/components/schemas/errorDetail'
        instance:
          $ref: '#/components/schemas/errorInstance'
    schemas-IdempotentRequestIsStillBeingProcessedErrorDetails:
      type: object
      required:
        - type
        - title
        - status
        - detail
        - instance
      properties:
        type:
          allOf:
            - $ref: '#/components/schemas/errorType'
            - enum:
                - /silverflow/problems/idempotency/request-is-still-being-processed
        title:
          allOf:
            - $ref: '#/components/schemas/errorTitle'
            - enum:
                - Request Is Still Being Processed
        status:
          allOf:
            - $ref: '#/components/schemas/errorStatus'
            - enum:
                - 409
        detail:
          $ref: '#/components/schemas/errorDetail'
        instance:
          $ref: '#/components/schemas/errorInstance'
    schemas-UnexpectedCurrencyErrorDetails:
      type: object
      required:
        - type
        - title
        - status
        - detail
        - instance
      properties:
        type:
          allOf:
            - $ref: '#/components/schemas/errorType'
            - enum:
                - /silverflow/problems/bin/unexpected-currency
        title:
          $ref: '#/components/schemas/errorTitle'
        status:
          allOf:
            - $ref: '#/components/schemas/errorStatus'
            - enum:
                - 409
        detail:
          $ref: '#/components/schemas/errorDetail'
        instance:
          $ref: '#/components/schemas/errorInstance'
    schemas-actionReference:
      type: string
      description: |
        Action reference assigned by the agent. Must not start with "act-".
        This allows merchants to track actions with their own reference system.
      minLength: 1
      maxLength: 100
      example: cancel-001
    CancelRequest:
      type: object
      properties:
        reference:
          $ref: '#/components/schemas/schemas-actionReference'
    schemas-actionKey:
      type: string
      description: Uniquely identifies an action
      pattern: ^(act-|rvsl-|incr-|rfnd-|clr-|void-|dis-)[A-Za-z0-9]{16,22}$
      example: rvsl-5BH5chO93SXky5gw
    schemas-authorizationIsoFieldsBancontactWithDiscriminator:
      allOf:
        - type: object
          required:
            - network
          description: Object containing the raw values from the ISO8583 response message received from the network.
          properties:
            network:
              type: string
              enum:
                - bancontact
        - $ref: '#/components/schemas/commonIsoFields'
    AuthorizationResponseForReversalActions:
      description: |
        Network-specific details from the authorization response.
        This is a discriminated union based on the network property.
      oneOf:
        - $ref: '#/components/schemas/authorizationIsoFieldsAmericanExpressWithDiscriminator'
        - $ref: '#/components/schemas/schemas-authorizationIsoFieldsBancontactWithDiscriminator'
        - $ref: '#/components/schemas/authorizationIsoFieldsDiscoverWithDiscriminator'
        - $ref: '#/components/schemas/authorizationIsoFieldsMastercardWithDiscriminator'
        - $ref: '#/components/schemas/authorizationIsoFieldsVisaWithDiscriminator'
        - $ref: '#/components/schemas/authorizationIsoFieldsUnknown'
    schemas-ReversalAction:
      type: object
      required:
        - key
        - chargeKey
        - type
        - status
        - replacementAmount
        - authorizationResponse
        - created
        - version
      description: |
        A reversal action represents a cancellation of a charge's authorization.
      properties:
        key:
          $ref: '#/components/schemas/schemas-actionKey'
        chargeKey:
          $ref: '#/components/schemas/chargeKey'
        type:
          type: string
          enum:
            - reversal
          description: The type of action (always "reversal" for cancel operations)
        reference:
          $ref: '#/components/schemas/schemas-actionReference'
        status:
          type: object
          required:
            - authorization
          properties:
            authorization:
              type: string
              enum:
                - approved
                - declined
              description: Authorization status of the reversal
        replacementAmount:
          $ref: '#/components/schemas/schemas-ResponseAmount'
        authorizationResponse:
          $ref: '#/components/schemas/AuthorizationResponseForReversalActions'
        created:
          $ref: '#/components/schemas/openapi_components-schemas-created'
        lastModified:
          $ref: '#/components/schemas/components-schemas-lastModified'
        version:
          $ref: '#/components/schemas/schemas-version'
    schemas-ClearingAlreadySubmittedErrorDetails:
      type: object
      required:
        - type
        - title
        - status
        - detail
        - instance
      properties:
        type:
          allOf:
            - $ref: '#/components/schemas/errorType'
            - enum:
                - /silverflow/problems/charge/clearing-already-submitted
        title:
          allOf:
            - $ref: '#/components/schemas/errorTitle'
            - enum:
                - Clearing Already Submitted
        status:
          allOf:
            - $ref: '#/components/schemas/errorStatus'
            - enum:
                - 409
        detail:
          $ref: '#/components/schemas/errorDetail'
        instance:
          $ref: '#/components/schemas/errorInstance'
    schemas-UnexpectedClearingStatusErrorDetails:
      type: object
      required:
        - type
        - title
        - status
        - detail
        - instance
      properties:
        type:
          allOf:
            - $ref: '#/components/schemas/errorType'
            - enum:
                - /silverflow/problems/charge/unexpected-clearing-status
        title:
          allOf:
            - $ref: '#/components/schemas/errorTitle'
            - enum:
                - Unexpected Clearing Status
        status:
          allOf:
            - $ref: '#/components/schemas/errorStatus'
            - enum:
                - 409
        detail:
          $ref: '#/components/schemas/errorDetail'
        instance:
          $ref: '#/components/schemas/errorInstance'
    RefundRequest:
      type: object
      properties:
        attemptCancel:
          type: boolean
          default: false
          description: |
            If true and the charge has not been cleared yet, the service attempts to cancel the transaction first.
            On success, returns a "ReversalAction". On failure, falls back to the refund process.
        reference:
          $ref: '#/components/schemas/schemas-actionReference'
        dynamicDescriptor:
          $ref: '#/components/schemas/schemas-DynamicDescriptor'
        clearAfter:
          $ref: '#/components/schemas/schemas-clearAfter'
    schemas-refundedChargeKey:
      description: The charge key of the refunded charge.
      type: string
      pattern: ^chg-[a-zA-Z0-9]+$
      minLength: 5
      maxLength: 120
      example: chg-1e1dAHhgstYTUhlphPzZ
    AuthorizationResponseForRefundActions:
      description: |
        Network-specific details from the authorization response for refund actions.
        This is a discriminated union based on the network property.
      oneOf:
        - $ref: '#/components/schemas/authorizationIsoFieldsAmericanExpressWithDiscriminator'
        - $ref: '#/components/schemas/schemas-authorizationIsoFieldsBancontactWithDiscriminator'
        - $ref: '#/components/schemas/authorizationIsoFieldsDiscoverWithDiscriminator'
        - $ref: '#/components/schemas/authorizationIsoFieldsMastercardWithDiscriminator'
        - $ref: '#/components/schemas/authorizationIsoFieldsVisaWithDiscriminator'
        - $ref: '#/components/schemas/authorizationIsoFieldsUnknown'
    schemas-RefundAction:
      type: object
      required:
        - key
        - chargeKey
        - type
        - status
        - amount
        - authorizationResponse
        - created
        - version
      description: |
        A refund action represents a refund of a charge.
      properties:
        key:
          $ref: '#/components/schemas/schemas-actionKey'
        chargeKey:
          $ref: '#/components/schemas/chargeKey'
        type:
          type: string
          enum:
            - refund
          description: The type of action (always "refund" for refund operations)
        reference:
          $ref: '#/components/schemas/schemas-actionReference'
        status:
          type: object
          required:
            - authorization
          properties:
            authorization:
              type: string
              enum:
                - approved
                - declined
              description: Authorization status of the refund
        amount:
          $ref: '#/components/schemas/schemas-ResponseAmount'
        clearAfter:
          $ref: '#/components/schemas/schemas-clearAfter'
        refundChargeKey:
          $ref: '#/components/schemas/schemas-refundedChargeKey'
        authorizationResponse:
          $ref: '#/components/schemas/AuthorizationResponseForRefundActions'
        created:
          $ref: '#/components/schemas/openapi_components-schemas-created'
        lastModified:
          $ref: '#/components/schemas/components-schemas-lastModified'
        version:
          $ref: '#/components/schemas/schemas-version'
    AlreadyRefundedErrorDetails:
      type: object
      required:
        - type
        - title
        - status
        - detail
        - instance
      properties:
        type:
          allOf:
            - $ref: '#/components/schemas/errorType'
            - enum:
                - /silverflow/problems/charge/already-refunded
        title:
          allOf:
            - $ref: '#/components/schemas/errorTitle'
            - enum:
                - Charge Already Refunded
        status:
          allOf:
            - $ref: '#/components/schemas/errorStatus'
            - enum:
                - 409
        detail:
          $ref: '#/components/schemas/errorDetail'
        instance:
          $ref: '#/components/schemas/errorInstance'
    AlreadyCanceledErrorDetails:
      type: object
      required:
        - type
        - title
        - status
        - detail
        - instance
      properties:
        type:
          allOf:
            - $ref: '#/components/schemas/errorType'
            - enum:
                - /silverflow/problems/charge/already-canceled
        title:
          allOf:
            - $ref: '#/components/schemas/errorTitle'
            - enum:
                - Charge Already Canceled
        status:
          allOf:
            - $ref: '#/components/schemas/errorStatus'
            - enum:
                - 409
        detail:
          $ref: '#/components/schemas/errorDetail'
        instance:
          $ref: '#/components/schemas/errorInstance'
    openapi_components-schemas-amountValue-2:
      type: integer
      format: int64
      minimum: 0
      maximum: 900000000
      description: |
        The amount in minor units. For example `$12.34` should be encoded as `1234`. Note that not all
        currencies have 2 minor units. Some have three or zero.
      example: 2599
    disputeStatus:
      description: The current (flow)status of a Dispute
      type: string
      enum:
        - acceptanceInitiated
        - acceptanceFailed
        - defenseInitiated
        - defenseFailed
        - received
        - awaitingResponse
        - evidenceSubmitted
        - evidenceRejected
        - closedAccepted
        - closedWon
        - closedLost
        - reversed
        - withdrawn
    disputeStatuses:
      description: The list of (flow)statuses of a Dispute
      type: array
      items:
        $ref: '#/components/schemas/disputeStatus'
    disputeStage:
      description: The current stage of a Dispute
      type: string
      enum:
        - rapidDisputeResolution
        - collaboration
        - requestForInformation
        - requestForInformationResponse
        - collaborationResponse
        - chargeback
        - chargebackResponse
        - preArbitration
        - preArbitrationResponse
        - arbitration
    disputeStages:
      description: The list of stages of a Dispute
      type: array
      items:
        $ref: '#/components/schemas/disputeStage'
    schemas-cardNetwork:
      type: string
      description: The card network
      enum:
        - mastercard
        - visa
        - american-express
    components-schemas-merchantKey:
      description: Uniquely identifies a Merchant
      type: string
      pattern: ^mct-[a-zA-Z0-9]+$
      minLength: 1
      maxLength: 120
      readOnly: false
      example: mct-123dinkqFqfq3q2f2adfa
    openapi_components-schemas-acceptorKey:
      description: Uniquely identifies a Merchant Acceptor.
      type: string
      pattern: ^mac-[a-zA-Z0-9]+$
      minLength: 1
      maxLength: 120
      readOnly: false
      example: mac-1JRadf2ffdfrdPMf2XrS2
    closed:
      type: boolean
      description: 'Indicates if a Dispute has one of the final statuses: `closedAccepted, closedWon, closedLost`.'
    actionRequired:
      type: boolean
      description: Indicates if a Dispute is in a status where it can be accepted or defended by the acquirer.
    totalItems:
      type: number
      format: int64
      minLength: 0
      example: '1'
    PageWithMoreAndTotalItems:
      type: object
      properties:
        moreItems:
          $ref: '#/components/schemas/moreItems'
        offsetToken:
          $ref: '#/components/schemas/components-schemas-offsetToken'
        totalItems:
          $ref: '#/components/schemas/totalItems'
    disputeKey:
      description: Uniquely identifies a Dispute.
      type: string
      pattern: ^dsp-[a-zA-Z0-9]+$
      minLength: 1
      maxLength: 120
      readOnly: false
      example: dsp-1JRadf2ffdfrdPMf2XrS2
    disputeReference:
      description: Unique identifier assigned by the card networks.
      type: string
      readOnly: false
    networkReference:
      type: string
      description: |
        Unique ID assigned by the network when authorizing. This ID is returned in the response of the authorization.
      pattern: ^[a-zA-Z0-9()+,\-.:=@;$_!*\/?#|]+$
      minLength: 1
      maxLength: 120
    acquirerReferenceNumber:
      description: Unique identifier assigned by the acquirer at clearing. Used to identify the transaction with the card networks.
      type: string
      pattern: ^\d+$
      minLength: 23
      maxLength: 23
      readOnly: false
      example: '12345678901234567890123'
    schemas-localTransactionDateTime:
      type: string
      description: The date and time of the transaction
      format: date-time
      readOnly: false
      example: '2021-05-27T10:57:52Z'
    openapi_components-schemas-currencyCode-3:
      type: string
      enum:
        - AED
        - AFN
        - ALL
        - AMD
        - ANG
        - AOA
        - ARS
        - AUD
        - AWG
        - AZN
        - BAM
        - BBD
        - BDT
        - BGN
        - BHD
        - BIF
        - BMD
        - BND
        - BOB
        - BRL
        - BSD
        - BTN
        - BWP
        - BYN
        - BZD
        - CAD
        - CDF
        - CHF
        - CLP
        - CNH
        - CNY
        - COP
        - CRC
        - CUC
        - CUP
        - CVE
        - CZK
        - DJF
        - DKK
        - DOP
        - DZD
        - EGP
        - ERN
        - ETB
        - EUR
        - FJD
        - FKP
        - GBP
        - GEL
        - GHS
        - GIP
        - GMD
        - GNF
        - GTQ
        - GYD
        - HKD
        - HNL
        - HRK
        - HTG
        - HUF
        - IDR
        - ILS
        - INR
        - IQD
        - IRR
        - ISK
        - JMD
        - JOD
        - JPY
        - KES
        - KGS
        - KHR
        - KMF
        - KPW
        - KRW
        - KWD
        - KYD
        - KZT
        - LAK
        - LBP
        - LKR
        - LRD
        - LSL
        - LYD
        - MAD
        - MDL
        - MGA
        - MKD
        - MMK
        - MNT
        - MOP
        - MRU
        - MUR
        - MVR
        - MWK
        - MXN
        - MYR
        - MZN
        - NAD
        - NGN
        - NIO
        - NOK
        - NPR
        - NZD
        - OMR
        - PAB
        - PEN
        - PGK
        - PHP
        - PKR
        - PLN
        - PYG
        - QAR
        - RON
        - RSD
        - RUB
        - RWF
        - SAR
        - SBD
        - SCR
        - SDG
        - SEK
        - SGD
        - SHP
        - SLE
        - SLL
        - SOS
        - SRD
        - SSP
        - STN
        - SVC
        - SYP
        - SZL
        - THB
        - TJS
        - TMT
        - TND
        - TOP
        - TRY
        - TTD
        - TWD
        - TZS
        - UAH
        - UGX
        - USD
        - UYU
        - UYW
        - UZS
        - VES
        - VND
        - VUV
        - WST
        - XAF
        - XCD
        - XCG
        - XOF
        - XPF
        - YER
        - ZAR
        - ZMW
        - ZWL
      description: |
        The three-letter ISO code of the currency.

        **European ISO Currency Codes**

        <details>

        | Country — Currency                       | Code | Numeric | Minor Units |
        | ---------------------------------------- | ---- | ------- | ----------- |
        | Åland Islands — Euro                     | EUR  | 978     | 2           |
        | Andorra — Euro                           | EUR  | 978     | 2           |
        | Austria — Euro                           | EUR  | 978     | 2           |
        | Belgium — Euro                           | EUR  | 978     | 2           |
        | Cyprus — Euro                            | EUR  | 978     | 2           |
        | Estonia — Euro                           | EUR  | 978     | 2           |
        | European Union — Euro                    | EUR  | 978     | 2           |
        | Finland — Euro                           | EUR  | 978     | 2           |
        | France — Euro                            | EUR  | 978     | 2           |
        | French Guiana — Euro                     | EUR  | 978     | 2           |
        | French Southern Territories (The) — Euro | EUR  | 978     | 2           |
        | Germany — Euro                           | EUR  | 978     | 2           |
        | Greece — Euro                            | EUR  | 978     | 2           |
        | Guadeloupe — Euro                        | EUR  | 978     | 2           |
        | Holy See (The) — Euro                    | EUR  | 978     | 2           |
        | Ireland — Euro                           | EUR  | 978     | 2           |
        | Italy — Euro                             | EUR  | 978     | 2           |
        | Latvia — Euro                            | EUR  | 978     | 2           |
        | Lithuania — Euro                         | EUR  | 978     | 2           |
        | Luxembourg — Euro                        | EUR  | 978     | 2           |
        | Malta — Euro                             | EUR  | 978     | 2           |
        | Martinique — Euro                        | EUR  | 978     | 2           |
        | Mayotte — Euro                           | EUR  | 978     | 2           |
        | Monaco — Euro                            | EUR  | 978     | 2           |
        | Montenegro — Euro                        | EUR  | 978     | 2           |
        | Netherlands (The) — Euro                 | EUR  | 978     | 2           |
        | Portugal — Euro                          | EUR  | 978     | 2           |
        | Réunion — Euro                           | EUR  | 978     | 2           |
        | Saint Barthélemy — Euro                  | EUR  | 978     | 2           |
        | Saint Martin (French Part) — Euro        | EUR  | 978     | 2           |
        | Saint Pierre And Miquelon — Euro         | EUR  | 978     | 2           |
        | San Marino — Euro                        | EUR  | 978     | 2           |
        | Slovakia — Euro                          | EUR  | 978     | 2           |
        | Slovenia — Euro                          | EUR  | 978     | 2           |
        | Spain — Euro                             | EUR  | 978     | 2           |

        </details>

        **US ISO Currency Codes**

        <details>

        | Country — Currency                                     | Code | Numeric | Minor Units |
        | ------------------------------------------------------ | ---- | ------- | ----------- |
        | American Samoa — US Dollar                             | USD  | 840     | 2           |
        | Bonaire, Sint Eustatius And Saba — US Dollar           | USD  | 840     | 2           |
        | British Indian Ocean Territory (The) — US Dollar       | USD  | 840     | 2           |
        | Ecuador — US Dollar                                    | USD  | 840     | 2           |
        | El Salvador — US Dollar                                | USD  | 840     | 2           |
        | Guam — US Dollar                                       | USD  | 840     | 2           |
        | Haiti — US Dollar                                      | USD  | 840     | 2           |
        | Marshall Islands (The) — US Dollar                     | USD  | 840     | 2           |
        | Micronesia (Federated States Of) — US Dollar           | USD  | 840     | 2           |
        | Northern Mariana Islands (The) — US Dollar             | USD  | 840     | 2           |
        | Palau — US Dollar                                      | USD  | 840     | 2           |
        | Panama — US Dollar                                     | USD  | 840     | 2           |
        | Puerto Rico — US Dollar                                | USD  | 840     | 2           |
        | Timor-leste — US Dollar                                | USD  | 840     | 2           |
        | Turks And Caicos Islands (The) — US Dollar             | USD  | 840     | 2           |
        | United States Minor Outlying Islands (The) — US Dollar | USD  | 840     | 2           |
        | United States Of America (The) — US Dollar             | USD  | 840     | 2           |
        | Virgin Islands (British) — US Dollar                   | USD  | 840     | 2           |
        | Virgin Islands (U.s.) — US Dollar                      | USD  | 840     | 2           |

        </details>

        **Other ISO Currency Codes**

        <details>

        | Country — Currency                                                          | Code | Numeric | Minor Units |
        | --------------------------------------------------------------------------- | ---- | ------- | ----------- |
        | Afghanistan — Afghani                                                       | AFN  | 971     | 2           |
        | Albania — Lek                                                               | ALL  | 008     | 2           |
        | Algeria — Algerian Dinar                                                    | DZD  | 012     | 2           |
        | Angola — Kwanza                                                             | AOA  | 973     | 2           |
        | Anguilla — East Caribbean Dollar                                            | XCD  | 951     | 2           |
        | Antigua And Barbuda — East Caribbean Dollar                                 | XCD  | 951     | 2           |
        | Argentina — Argentine Peso                                                  | ARS  | 032     | 2           |
        | Armenia — Armenian Dram                                                     | AMD  | 051     | 2           |
        | Aruba — Aruban Florin                                                       | AWG  | 533     | 2           |
        | Australia — Australian Dollar                                               | AUD  | 036     | 2           |
        | Azerbaijan — Azerbaijan Manat                                               | AZN  | 944     | 2           |
        | Bahamas (The) — Bahamian Dollar                                             | BSD  | 044     | 2           |
        | Bahrain — Bahraini Dinar                                                    | BHD  | 048     | 3           |
        | Bangladesh — Taka                                                           | BDT  | 050     | 2           |
        | Barbados — Barbados Dollar                                                  | BBD  | 052     | 2           |
        | Belarus — Belarusian Ruble                                                  | BYN  | 933     | 2           |
        | Belize — Belize Dollar                                                      | BZD  | 084     | 2           |
        | Benin — CFA Franc BCEAO                                                     | XOF  | 952     | 0           |
        | Bermuda — Bermudian Dollar                                                  | BMD  | 060     | 2           |
        | Bhutan — Indian Rupee                                                       | INR  | 356     | 2           |
        | Bhutan — Ngultrum                                                           | BTN  | 064     | 2           |
        | Bolivia (Plurinational State Of) — Boliviano                                | BOB  | 068     | 2           |
        | Bosnia And Herzegovina — Convertible Mark                                   | BAM  | 977     | 2           |
        | Botswana — Pula                                                             | BWP  | 072     | 2           |
        | Bouvet Island — Norwegian Krone                                             | NOK  | 578     | 2           |
        | Brazil — Brazilian Real                                                     | BRL  | 986     | 2           |
        | Brunei Darussalam — Brunei Dollar                                           | BND  | 096     | 2           |
        | Bulgaria — Bulgarian Lev                                                    | BGN  | 975     | 2           |
        | Burkina Faso — CFA Franc BCEAO                                              | XOF  | 952     | 0           |
        | Burundi — Burundi Franc                                                     | BIF  | 108     | 0           |
        | Cabo Verde — Cabo Verde Escudo                                              | CVE  | 132     | 2           |
        | Cambodia — Riel                                                             | KHR  | 116     | 2           |
        | Cameroon — CFA Franc BEAC                                                   | XAF  | 950     | 0           |
        | Canada — Canadian Dollar                                                    | CAD  | 124     | 2           |
        | Cayman Islands (The) — Cayman Islands Dollar                                | KYD  | 136     | 2           |
        | Central African Republic (The) — CFA Franc BEAC                             | XAF  | 950     | 0           |
        | Chad — CFA Franc BEAC                                                       | XAF  | 950     | 0           |
        | Chile — Chilean Peso                                                        | CLP  | 152     | 0           |
        | China — Yuan Renminbi                                                       | CNY  | 156     | 2           |
        | Christmas Island — Australian Dollar                                        | AUD  | 036     | 2           |
        | Cocos (Keeling) Islands (The) — Australian Dollar                           | AUD  | 036     | 2           |
        | Colombia — Colombian Peso                                                   | COP  | 170     | 2           |
        | Comoros (The) — Comorian Franc                                              | KMF  | 174     | 0           |
        | Congo (The Democratic Republic Of The) — Congolese Franc                    | CDF  | 976     | 2           |
        | Congo (The) — CFA Franc BEAC                                                | XAF  | 950     | 0           |
        | Cook Islands (The) — New Zealand Dollar                                     | NZD  | 554     | 2           |
        | Costa Rica — Costa Rican Colon                                              | CRC  | 188     | 2           |
        | Côte D'ivoire — CFA Franc BCEAO                                             | XOF  | 952     | 0           |
        | Croatia — Kuna                                                              | HRK  | 191     | 2           |
        | Cuba — Cuban Peso                                                           | CUP  | 192     | 2           |
        | Cuba — Peso Convertible                                                     | CUC  | 931     | 2           |
        | Curaçao — Netherlands Antillean Guilder                                     | ANG  | 532     | 2           |
        | Czechia — Czech Koruna                                                      | CZK  | 203     | 2           |
        | Denmark — Danish Krone                                                      | DKK  | 208     | 2           |
        | Djibouti — Djibouti Franc                                                   | DJF  | 262     | 0           |
        | Dominica — East Caribbean Dollar                                            | XCD  | 951     | 2           |
        | Dominican Republic (The) — Dominican Peso                                   | DOP  | 214     | 2           |
        | Egypt — Egyptian Pound                                                      | EGP  | 818     | 2           |
        | El Salvador — El Salvador Colon                                             | SVC  | 222     | 2           |
        | Equatorial Guinea — CFA Franc BEAC                                          | XAF  | 950     | 0           |
        | Eritrea — Nakfa                                                             | ERN  | 232     | 2           |
        | Ethiopia — Ethiopian Birr                                                   | ETB  | 230     | 2           |
        | Falkland Islands (The) [Malvinas] — Falkland Islands Pound                  | FKP  | 238     | 2           |
        | Faroe Islands (The) — Danish Krone                                          | DKK  | 208     | 2           |
        | Fiji — Fiji Dollar                                                          | FJD  | 242     | 2           |
        | French Polynesia — CFP Franc                                                | XPF  | 953     | 0           |
        | Gabon — CFA Franc BEAC                                                      | XAF  | 950     | 0           |
        | Gambia (The) — Dalasi                                                       | GMD  | 270     | 2           |
        | Georgia — Lari                                                              | GEL  | 981     | 2           |
        | Ghana — Ghana Cedi                                                          | GHS  | 936     | 2           |
        | Gibraltar — Gibraltar Pound                                                 | GIP  | 292     | 2           |
        | Greenland — Danish Krone                                                    | DKK  | 208     | 2           |
        | Grenada — East Caribbean Dollar                                             | XCD  | 951     | 2           |
        | Guatemala — Quetzal                                                         | GTQ  | 320     | 2           |
        | Guernsey — Pound Sterling                                                   | GBP  | 826     | 2           |
        | Guinea — Guinean Franc                                                      | GNF  | 324     | 0           |
        | Guinea-bissau — CFA Franc BCEAO                                             | XOF  | 952     | 0           |
        | Guyana — Guyana Dollar                                                      | GYD  | 328     | 2           |
        | Haiti — Gourde                                                              | HTG  | 332     | 2           |
        | Heard Island And Mcdonald Islands — Australian Dollar                       | AUD  | 036     | 2           |
        | Honduras — Lempira                                                          | HNL  | 340     | 2           |
        | Hong Kong — Hong Kong Dollar                                                | HKD  | 344     | 2           |
        | Hungary — Forint                                                            | HUF  | 348     | 2           |
        | Iceland — Iceland Krona                                                     | ISK  | 352     | 0           |
        | India — Indian Rupee                                                        | INR  | 356     | 2           |
        | Indonesia — Rupiah                                                          | IDR  | 360     | 2           |
        | Iran (Islamic Republic Of) — Iranian Rial                                   | IRR  | 364     | 2           |
        | Iraq — Iraqi Dinar                                                          | IQD  | 368     | 3           |
        | Isle Of Man — Pound Sterling                                                | GBP  | 826     | 2           |
        | Israel — New Israeli Sheqel                                                 | ILS  | 376     | 2           |
        | Jamaica — Jamaican Dollar                                                   | JMD  | 388     | 2           |
        | Japan — Yen                                                                 | JPY  | 392     | 0           |
        | Jersey — Pound Sterling                                                     | GBP  | 826     | 2           |
        | Jordan — Jordanian Dinar                                                    | JOD  | 400     | 3           |
        | Kazakhstan — Tenge                                                          | KZT  | 398     | 2           |
        | Kenya — Kenyan Shilling                                                     | KES  | 404     | 2           |
        | Kiribati — Australian Dollar                                                | AUD  | 036     | 2           |
        | Korea (The Democratic People’s Republic Of) — North Korean Won              | KPW  | 408     | 2           |
        | Korea (The Republic Of) — Won                                               | KRW  | 410     | 0           |
        | Kuwait — Kuwaiti Dinar                                                      | KWD  | 414     | 3           |
        | Kyrgyzstan — Som                                                            | KGS  | 417     | 2           |
        | Lao People’s Democratic Republic (The) — Lao Kip                            | LAK  | 418     | 2           |
        | Lebanon — Lebanese Pound                                                    | LBP  | 422     | 2           |
        | Lesotho — Loti                                                              | LSL  | 426     | 2           |
        | Lesotho — Rand                                                              | ZAR  | 710     | 2           |
        | Liberia — Liberian Dollar                                                   | LRD  | 430     | 2           |
        | Libya — Libyan Dinar                                                        | LYD  | 434     | 3           |
        | Liechtenstein — Swiss Franc                                                 | CHF  | 756     | 2           |
        | Macao — Pataca                                                              | MOP  | 446     | 2           |
        | Macedonia (The Former Yugoslav Republic Of) — Denar                         | MKD  | 807     | 2           |
        | Madagascar — Malagasy Ariary                                                | MGA  | 969     | 2           |
        | Malawi — Malawi Kwacha                                                      | MWK  | 454     | 2           |
        | Malaysia — Malaysian Ringgit                                                | MYR  | 458     | 2           |
        | Maldives — Rufiyaa                                                          | MVR  | 462     | 2           |
        | Mali — CFA Franc BCEAO                                                      | XOF  | 952     | 0           |
        | Mauritania — Ouguiya                                                        | MRU  | 929     | 2           |
        | Mauritius — Mauritius Rupee                                                 | MUR  | 480     | 2           |
        | Mexico — Mexican Peso                                                       | MXN  | 484     | 2           |
        | Moldova (The Republic Of) — Moldovan Leu                                    | MDL  | 498     | 2           |
        | Mongolia — Tugrik                                                           | MNT  | 496     | 2           |
        | Montserrat — East Caribbean Dollar                                          | XCD  | 951     | 2           |
        | Morocco — Moroccan Dirham                                                   | MAD  | 504     | 2           |
        | Mozambique — Mozambique Metical                                             | MZN  | 943     | 2           |
        | Myanmar — Kyat                                                              | MMK  | 104     | 2           |
        | Namibia — Namibia Dollar                                                    | NAD  | 516     | 2           |
        | Namibia — Rand                                                              | ZAR  | 710     | 2           |
        | Nauru — Australian Dollar                                                   | AUD  | 036     | 2           |
        | Nepal — Nepalese Rupee                                                      | NPR  | 524     | 2           |
        | New Caledonia — CFP Franc                                                   | XPF  | 953     | 0           |
        | New Zealand — New Zealand Dollar                                            | NZD  | 554     | 2           |
        | Nicaragua — Cordoba Oro                                                     | NIO  | 558     | 2           |
        | Niger (The) — CFA Franc BCEAO                                               | XOF  | 952     | 0           |
        | Nigeria — Naira                                                             | NGN  | 566     | 2           |
        | Niue — New Zealand Dollar                                                   | NZD  | 554     | 2           |
        | Norfolk Island — Australian Dollar                                          | AUD  | 036     | 2           |
        | Norway — Norwegian Krone                                                    | NOK  | 578     | 2           |
        | Oman — Rial Omani                                                           | OMR  | 512     | 3           |
        | Pakistan — Pakistan Rupee                                                   | PKR  | 586     | 2           |
        | Panama — Balboa                                                             | PAB  | 590     | 2           |
        | Papua New Guinea — Kina                                                     | PGK  | 598     | 2           |
        | Paraguay — Guarani                                                          | PYG  | 600     | 0           |
        | Peru — Sol                                                                  | PEN  | 604     | 2           |
        | Philippines (The) — Philippine Peso                                         | PHP  | 608     | 2           |
        | Pitcairn — New Zealand Dollar                                               | NZD  | 554     | 2           |
        | Poland — Zloty                                                              | PLN  | 985     | 2           |
        | Qatar — Qatari Rial                                                         | QAR  | 634     | 2           |
        | Romania — Romanian Leu                                                      | RON  | 946     | 2           |
        | Russian Federation (The) — Russian Ruble                                    | RUB  | 643     | 2           |
        | Rwanda — Rwanda Franc                                                       | RWF  | 646     | 0           |
        | Saint Helena, Ascension And Tristan Da Cunha — Saint Helena Pound           | SHP  | 654     | 2           |
        | Saint Kitts And Nevis — East Caribbean Dollar                               | XCD  | 951     | 2           |
        | Saint Lucia — East Caribbean Dollar                                         | XCD  | 951     | 2           |
        | Saint Vincent And The Grenadines — East Caribbean Dollar                    | XCD  | 951     | 2           |
        | Samoa — Tala                                                                | WST  | 882     | 2           |
        | Sao Tome And Principe — Dobra                                               | STN  | 930     | 2           |
        | Saudi Arabia — Saudi Riyal                                                  | SAR  | 682     | 2           |
        | Senegal — CFA Franc BCEAO                                                   | XOF  | 952     | 0           |
        | Serbia — Serbian Dinar                                                      | RSD  | 941     | 2           |
        | Seychelles — Seychelles Rupee                                               | SCR  | 690     | 2           |
        | Sierra Leone — Leone                                                        | SLL  | 694     | 2           |
        | Singapore — Singapore Dollar                                                | SGD  | 702     | 2           |
        | Sint Maarten (Dutch Part) — Netherlands Antillean Guilder                   | ANG  | 532     | 2           |
        | Solomon Islands — Solomon Islands Dollar                                    | SBD  | 090     | 2           |
        | Somalia — Somali Shilling                                                   | SOS  | 706     | 2           |
        | South Africa — Rand                                                         | ZAR  | 710     | 2           |
        | South Sudan — South Sudanese Pound                                          | SSP  | 728     | 2           |
        | Sri Lanka — Sri Lanka Rupee                                                 | LKR  | 144     | 2           |
        | Sudan (The) — Sudanese Pound                                                | SDG  | 938     | 2           |
        | Suriname — Surinam Dollar                                                   | SRD  | 968     | 2           |
        | Svalbard And Jan Mayen — Norwegian Krone                                    | NOK  | 578     | 2           |
        | Eswatini — Lilangeni                                                        | SZL  | 748     | 2           |
        | Sweden — Swedish Krona                                                      | SEK  | 752     | 2           |
        | Switzerland — Swiss Franc                                                   | CHF  | 756     | 2           |
        | Syrian Arab Republic — Syrian Pound                                         | SYP  | 760     | 2           |
        | Taiwan (Province Of China) — New Taiwan Dollar                              | TWD  | 901     | 2           |
        | Tajikistan — Somoni                                                         | TJS  | 972     | 2           |
        | Tanzania, United Republic Of — Tanzanian Shilling                           | TZS  | 834     | 2           |
        | Thailand — Baht                                                             | THB  | 764     | 2           |
        | Togo — CFA Franc BCEAO                                                      | XOF  | 952     | 0           |
        | Tokelau — New Zealand Dollar                                                | NZD  | 554     | 2           |
        | Tonga — Pa’anga                                                             | TOP  | 776     | 2           |
        | Trinidad And Tobago — Trinidad and Tobago Dollar                            | TTD  | 780     | 2           |
        | Tunisia — Tunisian Dinar                                                    | TND  | 788     | 3           |
        | Turkey — Turkish Lira                                                       | TRY  | 949     | 2           |
        | Turkmenistan — Turkmenistan New Manat                                       | TMT  | 934     | 2           |
        | Tuvalu — Australian Dollar                                                  | AUD  | 036     | 2           |
        | Uganda — Uganda Shilling                                                    | UGX  | 800     | 0           |
        | Ukraine — Hryvnia                                                           | UAH  | 980     | 2           |
        | United Arab Emirates (The) — UAE Dirham                                     | AED  | 784     | 2           |
        | United Kingdom Of Great Britain And Northern Ireland (The) — Pound Sterling | GBP  | 826     | 2           |
        | Uruguay — Peso Uruguayo                                                     | UYU  | 858     | 2           |
        | Uruguay — Unidad Previsional                                                | UYW  | 927     | 4           |
        | Uzbekistan — Uzbekistan Sum                                                 | UZS  | 860     | 2           |
        | Vanuatu — Vatu                                                              | VUV  | 548     | 0           |
        | Venezuela (Bolivarian Republic Of) — Bolívar Soberano                       | VES  | 928     | 2           |
        | Viet Nam — Dong                                                             | VND  | 704     | 0           |
        | Wallis And Futuna — CFP Franc                                               | XPF  | 953     | 0           |
        | Western Sahara — Moroccan Dirham                                            | MAD  | 504     | 2           |
        | Yemen — Yemeni Rial                                                         | YER  | 886     | 2           |
        | Zambia — Zambian Kwacha                                                     | ZMW  | 967     | 2           |
        | Zimbabwe — Zimbabwe Dollar                                                  | ZWL  | 932     | 2           |

        </details>
      externalDocs:
        description: Find more info here
        url: https://www.iso.org/iso-4217-currency-codes.html
      example: EUR
    openapi_components-schemas-Amount:
      type: object
      required:
        - value
        - currency
      additionalProperties: false
      description: |
        An amount encoded as an object with a `value` in minor units and a `currency` code.
      properties:
        value:
          $ref: '#/components/schemas/openapi_components-schemas-amountValue-2'
        currency:
          $ref: '#/components/schemas/openapi_components-schemas-currencyCode-3'
    schemas-chargeKey:
      description: Uniquely identifies a charge.
      type: string
      pattern: ^chg-[a-zA-Z0-9]+$
      minLength: 1
      maxLength: 120
      readOnly: false
      example: chg-1e1dAHhgstYTUhlphPzZ
    schemas-transactionReference:
      type: string
      description: |
        Unique ID used to identify the transaction that is assigned by the merchant or payment service provider.
      pattern: ^[a-zA-Z0-9()+,\-.:=@;$_!*\/?|]+$
      minLength: 1
      maxLength: 120
      example: Dz3dIzE74EfH1HeTInyE
    schemas-fraudLiability:
      description: Identifies whether the acquirer or issuer has the liability of the dispute.
      type: string
      readOnly: false
      enum:
        - acquirer
        - issuer
    clearingDateTime:
      type: string
      description: Clearing datetime of the disputed authorization.
      format: date-time
      example: '2021-05-27T10:57:52Z'
    clearingReferenceNumber:
      description: Silverflow generated unique clearing identifier.  Only present for American Express since it has the same value as the ARN for Visa and Mastercard.
      type: string
    chargeInfo:
      description: Charge related information
      type: object
      required:
        - arn
        - amount
        - fraudLiability
      properties:
        networkReference:
          $ref: '#/components/schemas/networkReference'
        arn:
          $ref: '#/components/schemas/acquirerReferenceNumber'
        localTransactionDateTime:
          $ref: '#/components/schemas/schemas-localTransactionDateTime'
        amount:
          $ref: '#/components/schemas/openapi_components-schemas-Amount'
        chargeKey:
          $ref: '#/components/schemas/schemas-chargeKey'
        transactionReference:
          $ref: '#/components/schemas/schemas-transactionReference'
        fraudLiability:
          $ref: '#/components/schemas/schemas-fraudLiability'
        clearingDateTime:
          $ref: '#/components/schemas/clearingDateTime'
        crn:
          $ref: '#/components/schemas/clearingReferenceNumber'
    schemas-last4:
      type: string
      deprecated: true
      description: The last 4 digits of the card. **This property will be removed on 24 September 2025. Use `maskedNumber` instead.**
      readOnly: false
      pattern: ^\d+$
      minLength: 4
      maxLength: 4
      example: '0905'
    maskedNumber:
      type: string
      description: The card number used to create this charge, masked according to PCI standards. For card numbers with 16 or more digits, the first 8 and the last 4 digits are visible. For card numbers with 13-15 digits, the first 6 and the last 4 digits are visible. For cards numbers with less than 13 digits, the first 6 and last 2 digits are visible.
    cardInfo:
      description: Card related information
      type: object
      required:
        - last4
      properties:
        last4:
          $ref: '#/components/schemas/schemas-last4'
        maskedNumber:
          $ref: '#/components/schemas/maskedNumber'
        issuerName:
          type: string
          readOnly: false
    isPartial:
      description: Flag to indicate whether the Dispute was issued for the entire purchase amount.
      type: boolean
      readOnly: false
    schemas-mid:
      type: string
      description: |
        Merchant ID assigned to the merchant (or Payfac) by the acquirer.
        Acceptors that use the same BIN, Doing Business As name, and location must have the same `mid`.
        Acceptors that use the same BIN cannot share a `mid` if they have a different Doing Business As name or location.
      pattern: ^[a-zA-Z0-9-_\.]+$
      minLength: 1
      maxLength: 15
    schemas-acquirerBin:
      type: string
      description: Acquirer BIN. The BIN number as assigned by the card network. For Mastercard, this is also referred to as the Acquirer Reference ID.
      pattern: ^\d+$
      minLength: 6
      maxLength: 6
    actionDueDate:
      type: string
      description: Due date for the next action in "YYYY-MM-DD" format.
      format: date
      example: '2021-05-27'
    DisputeCategory:
      type: string
      enum:
        - Fraud
        - Authorization
        - Processing Error
        - Cardholder Disputes
        - PreChargeback
        - Retrieval Chargeback
      readOnly: false
    schemas-FreeTextField:
      type: string
      pattern: ^[\w +-=.,:;!?$@()]+$
      minLength: 1
      maxLength: 160
    Reason:
      description: Object containing dispute reason category, code and description.
      type: object
      required:
        - code
        - category
      properties:
        category:
          $ref: '#/components/schemas/DisputeCategory'
        code:
          description: Dispute reason code
          type: string
          readOnly: false
        description:
          type: string
          readOnly: false
          $ref: '#/components/schemas/schemas-FreeTextField'
    disputeDate:
      type: string
      description: Datetime of Dispute submission in [date time string format](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date#date_time_string_format).
      format: date-time
      example: '2021-05-27T10:57:52Z'
    openapi_components-schemas-created-3:
      type: string
      description: The date and time this object was created
      format: date-time
      readOnly: false
    openapi_components-schemas-lastModified-3:
      type: string
      description: The date and time this object was last modified
      format: date-time
      readOnly: false
    openapi_components-schemas-version-2:
      type: integer
      description: The version of this object
      format: int64
      minimum: 1
      maximum: 1000
      example: 1
      readOnly: false
    components-schemas-agentKey:
      description: Uniquely identifies an Agent
      type: string
      pattern: ^cgt-[a-zA-Z0-9]+|current$
      minLength: 1
      maxLength: 120
      readOnly: false
      example: cgt-1UF2NafdfrdPMf2XrS2
    disputeStatusReason:
      type: string
    schemas-status:
      description: The status of a Dispute.
      type: string
      enum:
        - active
        - archived
    networkDisputeId:
      description: Uniquely identifies a Dispute within a card network.
      type: string
    lastEventDate:
      description: The datetime of the last event in card network.
      type: string
      format: date
      example: '2019-08-24T14:15:11'
    disputeResponseReason:
      description: Represents the reason a Dispute is being defended.
      type: object
      required:
        - description
        - id
      properties:
        description:
          description: Description of the reason
          type: string
          $ref: '#/components/schemas/schemas-FreeTextField'
        id:
          description: unique code
          type: string
    disputeSubResponseReason:
      description: Represents the reason a Dispute is claimed invalid.
      type: object
      required:
        - description
        - id
      properties:
        description:
          description: Description of the invalid dispute reason
          type: string
        id:
          description: unique code
          type: string
    defenseOption:
      type: object
      additionalProperties: false
      properties:
        disputeResponseReason:
          $ref: '#/components/schemas/disputeResponseReason'
        disputeSubResponseReason:
          type: array
          additionalProperties: false
          items:
            $ref: '#/components/schemas/disputeSubResponseReason'
    defenseOptions:
      description: Represents the possible defense options when the Dispute is in a defendable status.
      type: array
      additionalProperties: false
      items:
        $ref: '#/components/schemas/defenseOption'
    disputeResponseReasonIdAmexRFI:
      description: Unique code of a `disputeResponseReason`.
      type: string
      enum:
        - '02'
        - '03'
        - '04'
        - '05'
        - '06'
        - '07'
        - '08'
        - '09'
        - '10'
        - '11'
        - '12'
        - '13'
        - '14'
        - '15'
        - '16'
        - '17'
        - '18'
        - '19'
        - '20'
        - '21'
        - '22'
        - '23'
        - '24'
        - '25'
        - '40'
        - '41'
        - '42'
        - '43'
        - '44'
        - '45'
        - '46'
        - '47'
        - '48'
        - '49'
        - '50'
        - '51'
        - '52'
        - '53'
        - '70'
        - '71'
        - '72'
        - '73'
        - '74'
    disputeResponseReasonIdMastercard:
      description: Unique code of a `disputeResponseReason`
      type: string
      enum:
        - '2700'
        - '2011'
        - '2001'
        - '2002'
        - '2004'
        - '2701'
        - '2702'
        - '2704'
        - '2709'
        - '2710'
        - '2713'
        - '2008'
        - '2870'
        - '2871'
        - '2003'
        - '2707'
    disputeResponseReasonIdMastercardCollaboration:
      description: Unique code of a `disputeResponseReason`
      type: string
      enum:
        - E
    disputeResponseReasonIdVisa:
      description: Unique code of a `disputeResponseReason`.
      type: string
      enum:
        - CNLD
        - CP
        - NL
        - ID
        - CE
        - ND
    disputeResponseReasonId:
      allOf:
        - $ref: '#/components/schemas/disputeResponseReasonIdAmexRFI'
        - $ref: '#/components/schemas/disputeResponseReasonIdMastercard'
        - $ref: '#/components/schemas/disputeResponseReasonIdMastercardCollaboration'
        - $ref: '#/components/schemas/disputeResponseReasonIdVisa'
    disputeSubResponseReasonId:
      description: Unique code of a `disputeSubResponseReason`.
      type: string
      enum:
        - CE01
        - CE02
        - CE03
        - CE05
        - CE06
        - CE07
        - CE08
        - CE11
        - CE12
        - CE14
        - CE15
        - CE17
        - CE18
        - IDRA1
        - IDRA2
        - IDRA3
        - IDRA4
        - IDRA5
        - IDRA6
        - IDRA7
        - IDRP1
        - IDRP2
        - IDRP3
        - IDRP4
        - IDRC1
        - IDRC2
        - IDRC3
        - IDRC4
        - IDRC5
        - IDRC6
        - IDRC7
        - IDRC8
        - IDRC9
        - IDRC10
        - IDRC11
        - IDRC12
        - IDRC13
        - IDRC14
        - IDRC15
        - IDRC16
        - IDRC17
        - IDRC18
        - IDRC19
        - IDRC20
        - IDRC21
        - IDRC22
        - IDRC23
        - IDRC24
        - IDRC25
    creditOrReversalDetail:
      description: Mandatory for Visa Disputes when defense response reason is `Credit or reversal processed`. Represents the credit or reversal details.
      type: object
      required:
        - creditAmount
        - creditDate
        - creditARN
      properties:
        creditDate:
          type: string
          format: date
          example: '2021-12-01'
        creditAmount:
          $ref: '#/components/schemas/openapi_components-schemas-Amount'
        creditARN:
          type: string
          pattern: ^\d+$
          minLength: 23
          maxLength: 23
    isPartialDefense:
      description: Flag to indicate whether the Dispute was partially defended (should be set to true if the defense amount is lower than the dispute amount).
      type: boolean
    amexResponseText:
      type: string
      description: |
        Free text field which can be used to provide extra guidance with the Dispute.
      pattern: ^[\w +-=.,:;!?$@()]+$
      minLength: 1
      maxLength: 1500
    contentType:
      description: |
        Accepted Content-Types
      type: string
      enum:
        - image/jpeg
        - application/pdf
        - image/tiff
    filename:
      description: UUID formatted file name.
      type: string
      readOnly: false
    originalFilename:
      description: Name of the file. Allows letters, numbers, whitespaces and characters _()
      type: string
      pattern: ^([\w() ])+(.jpg|.jpeg|.pdf|.tiff|.tif)$
      readOnly: false
    documentKey:
      description: Uniquely identifies a document
      type: string
      pattern: ^dok-[a-zA-Z0-9]+$
      minLength: 1
      maxLength: 120
      readOnly: false
      example: dok-1UF2NafdfrdPMf2XrS2
    owner:
      description: The owner of a Dispute Document
      type: string
      enum:
        - issuer
        - acquirer
        - merchant
        - card-network
    EventFile:
      type: object
      required:
        - contentLength
        - contentType
        - filename
        - originalFilename
        - disputeStage
        - owner
        - key
      description: |
        Object containing summarized information of a document
      properties:
        contentLength:
          type: number
        contentType:
          $ref: '#/components/schemas/contentType'
        filename:
          $ref: '#/components/schemas/filename'
        originalFilename:
          $ref: '#/components/schemas/originalFilename'
        key:
          $ref: '#/components/schemas/documentKey'
        disputeStage:
          $ref: '#/components/schemas/disputeStage'
        owner:
          $ref: '#/components/schemas/owner'
        description:
          type: string
    submittedDefense:
      description: Represents the most recent defense evidence, submitted by an Acquirer or a Merchant. `submittedEvidence` is filled when defense is initiated (dispute status = `defenseInitiated`) and removed when it is in `awaitingResponse` status.
      type: object
      additionalProperties: false
      properties:
        messageText:
          type: string
        elaboration:
          type: string
        disputeResponseReasonId:
          $ref: '#/components/schemas/disputeResponseReasonId'
        disputeSubResponseReasonId:
          $ref: '#/components/schemas/disputeSubResponseReasonId'
        creditOrReversalDetail:
          $ref: '#/components/schemas/creditOrReversalDetail'
        partialDefenseAmount:
          $ref: '#/components/schemas/openapi_components-schemas-Amount'
        isPartialDefense:
          $ref: '#/components/schemas/isPartialDefense'
        responseText:
          $ref: '#/components/schemas/amexResponseText'
        refundAmount:
          $ref: '#/components/schemas/openapi_components-schemas-Amount'
        files:
          type: array
          additionalProperties: false
          items:
            $ref: '#/components/schemas/EventFile'
    disputeHandling:
      description: Represents the disputesHandling options set on the merchant acceptor by the time dispute has been received.
      type: object
      additionalProperties: false
      properties:
        autoDefense:
          type: boolean
    Dispute:
      type: object
      required:
        - key
        - agentKey
        - merchantKey
        - merchantAcceptorKey
        - chargeInfo
        - cardInfo
        - isPartial
        - disputeReference
        - disputeStatus
        - disputeStage
        - mid
        - acquirerBin
        - reason
        - disputeAmount
        - disputeDate
        - network
        - status
        - created
        - lastEventDate
        - version
        - networkDisputeId
        - closed
        - actionRequired
      description: |
        A Dispute
      properties:
        key:
          $ref: '#/components/schemas/disputeKey'
        disputeReference:
          $ref: '#/components/schemas/disputeReference'
        chargeInfo:
          $ref: '#/components/schemas/chargeInfo'
        cardInfo:
          $ref: '#/components/schemas/cardInfo'
        isPartial:
          $ref: '#/components/schemas/isPartial'
        merchantAcceptorKey:
          $ref: '#/components/schemas/openapi_components-schemas-acceptorKey'
        merchantKey:
          $ref: '#/components/schemas/components-schemas-merchantKey'
        mid:
          $ref: '#/components/schemas/schemas-mid'
        acquirerBin:
          $ref: '#/components/schemas/schemas-acquirerBin'
        actionDueDate:
          $ref: '#/components/schemas/actionDueDate'
        reason:
          $ref: '#/components/schemas/Reason'
        disputeAmount:
          $ref: '#/components/schemas/openapi_components-schemas-Amount'
        reconciliationAmount:
          $ref: '#/components/schemas/openapi_components-schemas-Amount'
        disputeDate:
          $ref: '#/components/schemas/disputeDate'
        network:
          $ref: '#/components/schemas/schemas-cardNetwork'
        created:
          $ref: '#/components/schemas/openapi_components-schemas-created-3'
        lastModified:
          $ref: '#/components/schemas/openapi_components-schemas-lastModified-3'
        version:
          $ref: '#/components/schemas/openapi_components-schemas-version-2'
        agentKey:
          $ref: '#/components/schemas/components-schemas-agentKey'
        disputeStatus:
          $ref: '#/components/schemas/disputeStatus'
        disputeStatusReason:
          $ref: '#/components/schemas/disputeStatusReason'
        disputeStage:
          $ref: '#/components/schemas/disputeStage'
        status:
          $ref: '#/components/schemas/schemas-status'
        networkDisputeId:
          $ref: '#/components/schemas/networkDisputeId'
        lastEventDate:
          $ref: '#/components/schemas/lastEventDate'
        actionRequired:
          $ref: '#/components/schemas/actionRequired'
        closed:
          $ref: '#/components/schemas/closed'
        defenseOptions:
          $ref: '#/components/schemas/defenseOptions'
        submittedDefense:
          $ref: '#/components/schemas/submittedDefense'
        disputeHandling:
          $ref: '#/components/schemas/disputeHandling'
    DisputesPage:
      allOf:
        - $ref: '#/components/schemas/PageWithMoreAndTotalItems'
        - type: object
          required:
            - disputes
          properties:
            disputes:
              type: array
              items:
                $ref: '#/components/schemas/Dispute'
    TooManyRequestsProblemDetail:
      type: object
      required:
        - type
        - title
        - status
        - detail
        - instance
      properties:
        type:
          type: string
          enum:
            - /silverflow/problems/too-many-requests
        title:
          type: string
          enum:
            - Too Many Requests
        status:
          type: integer
          enum:
            - 429
        detail:
          type: string
          description: |
            A human readable explanation specific to this occurrence of the
            problem.
          example: Too many requests, please retry after a moment.
        instance:
          type: string
          description: |
            An absolute URI that identifies the specific occurrence of the problem.
            It may or may not yield further information if dereferenced.
      additionalProperties: false
    components-schemas-PageWithMoreItems:
      type: object
      properties:
        moreItems:
          $ref: '#/components/schemas/moreItems'
        offsetToken:
          $ref: '#/components/schemas/components-schemas-offsetToken'
    documents_status:
      description: The current status of the document.
      type: string
      enum:
        - pending
        - active
        - archived
    Document:
      type: object
      required:
        - key
        - agentKey
        - originalFilename
        - owner
        - status
        - created
        - version
      description: |
        A Document
      properties:
        key:
          $ref: '#/components/schemas/documentKey'
        agentKey:
          $ref: '#/components/schemas/components-schemas-agentKey'
        merchantKey:
          $ref: '#/components/schemas/components-schemas-merchantKey'
        disputeKey:
          $ref: '#/components/schemas/disputeKey'
        disputeStage:
          $ref: '#/components/schemas/disputeStage'
        originalFilename:
          $ref: '#/components/schemas/originalFilename'
        filename:
          type: string
        contentLength:
          type: number
        contentType:
          $ref: '#/components/schemas/contentType'
        owner:
          $ref: '#/components/schemas/owner'
        description:
          $ref: '#/components/schemas/schemas-FreeTextField'
        status:
          $ref: '#/components/schemas/documents_status'
        created:
          $ref: '#/components/schemas/openapi_components-schemas-created-3'
        lastModified:
          $ref: '#/components/schemas/openapi_components-schemas-lastModified-3'
        version:
          $ref: '#/components/schemas/openapi_components-schemas-version-2'
    DisputeDocument:
      allOf:
        - $ref: '#/components/schemas/Document'
        - type: object
          required:
            - disputeKey
            - disputeStage
          properties:
            disputeKey:
              $ref: '#/components/schemas/disputeKey'
            disputeStage:
              $ref: '#/components/schemas/disputeStage'
    DisputeDocumentsPage:
      allOf:
        - $ref: '#/components/schemas/components-schemas-PageWithMoreItems'
        - type: object
          required:
            - documents
          properties:
            documents:
              type: array
              items:
                $ref: '#/components/schemas/DisputeDocument'
    originalFilenameInput:
      description: Name of the file. Allows letters, numbers, whitespaces and characters _()
      type: string
      pattern: ^([\w() ])+(.jpg|.jpeg|.pdf|.tiff|.tif)$
      readOnly: false
      minLength: 1
      maxLength: 32
    DocumentCreate:
      type: object
      required:
        - originalFilename
      description: |
        A Document
      properties:
        originalFilename:
          $ref: '#/components/schemas/originalFilenameInput'
        description:
          $ref: '#/components/schemas/schemas-FreeTextField'
    DocumentWithoutFile:
      type: object
      required:
        - key
        - agentKey
        - originalFilename
        - owner
        - status
        - created
        - version
      properties:
        key:
          $ref: '#/components/schemas/documentKey'
        agentKey:
          $ref: '#/components/schemas/components-schemas-agentKey'
        merchantKey:
          $ref: '#/components/schemas/components-schemas-merchantKey'
        disputeKey:
          $ref: '#/components/schemas/disputeKey'
        disputeStage:
          $ref: '#/components/schemas/disputeStage'
        originalFilename:
          $ref: '#/components/schemas/originalFilename'
        owner:
          $ref: '#/components/schemas/owner'
        description:
          $ref: '#/components/schemas/schemas-FreeTextField'
        status:
          type: string
          enum:
            - pending
        created:
          $ref: '#/components/schemas/openapi_components-schemas-created-3'
        version:
          $ref: '#/components/schemas/openapi_components-schemas-version-2'
    DisputeDocumentWithoutFile:
      allOf:
        - $ref: '#/components/schemas/DocumentWithoutFile'
        - type: object
          required:
            - disputeKey
            - disputeStage
          properties:
            disputeKey:
              $ref: '#/components/schemas/disputeKey'
            disputeStage:
              $ref: '#/components/schemas/disputeStage'
    elaborationVisa:
      description: Free text field which can be used to provide extra guidance with the Dispute.
      type: string
      pattern: ^[\w +-=.,:;!?$@()]+$
      minLength: 1
      maxLength: 5000
    partialDefenseAmountValue:
      type: integer
      format: int64
      minimum: 1
      description: |
        The partial defense amount in minor units. Must be at least 1 and less than the total dispute amount. 
        For example, `$12.34` should be represented as `1234`.
      example: 1234
    SubmitEvidenceVisaChargeback:
      type: object
      additionalProperties: false
      properties:
        elaboration:
          $ref: '#/components/schemas/elaborationVisa'
        disputeResponseReasonId:
          $ref: '#/components/schemas/disputeResponseReasonIdVisa'
        disputeSubResponseReasonId:
          $ref: '#/components/schemas/disputeSubResponseReasonId'
        creditOrReversalDetail:
          $ref: '#/components/schemas/creditOrReversalDetail'
        partialDefenseAmount:
          $ref: '#/components/schemas/partialDefenseAmountValue'
    messageText:
      type: string
      description: |
        This field is passed on to element DE72 (Data Record) in the second presentment
        clearing file. Mastercard chargeback rules prescribe how to fill this field depending on the type of representment.
        Please refer to the Mastercard chargeback manual for more information.
      pattern: ^[\w +-=.,:;!?$@()]+$
      minLength: 1
      maxLength: 100
    SubmitEvidenceMastercardChargeback:
      type: object
      additionalProperties: false
      properties:
        messageText:
          $ref: '#/components/schemas/messageText'
        disputeResponseReasonId:
          $ref: '#/components/schemas/disputeResponseReasonIdMastercard'
        partialDefenseAmount:
          $ref: '#/components/schemas/partialDefenseAmountValue'
    SubmitEvidenceMastercardPreArbitration:
      type: object
      additionalProperties: false
      not:
        $ref: '#/components/schemas/SubmitEvidenceMastercardChargeback'
      properties:
        messageText:
          $ref: '#/components/schemas/messageText'
    SubmitEvidenceVisaPreArbitration:
      type: object
      additionalProperties: false
      not:
        $ref: '#/components/schemas/SubmitEvidenceVisaChargeback'
      properties:
        elaboration:
          $ref: '#/components/schemas/elaborationVisa'
    refundAmountValue:
      type: integer
      format: int64
      minimum: 0
      maximum: 900000000
      description: |
        Optional amount that was or will be refunded to the customer (AMEX RFI only).
        The amount should be provided in minor units. For example `$12.34` should be encoded as `1234`. Note that not all
        currencies have 2 minor units. Some have three or zero.
      example: 2599
    DefendAmexRFI:
      type: object
      additionalProperties: false
      required:
        - disputeResponseReasonId
        - responseText
      properties:
        disputeResponseReasonId:
          $ref: '#/components/schemas/disputeResponseReasonIdAmexRFI'
        responseText:
          $ref: '#/components/schemas/amexResponseText'
        refundAmount:
          $ref: '#/components/schemas/refundAmountValue'
    SubmitEvidenceAmexRFI:
      allOf:
        - $ref: '#/components/schemas/DefendAmexRFI'
    DefendAmexChargeback:
      type: object
      additionalProperties: false
      required:
        - responseText
      properties:
        responseText:
          $ref: '#/components/schemas/amexResponseText'
    SubmitEvidenceAmexChargeback:
      allOf:
        - $ref: '#/components/schemas/DefendAmexChargeback'
    SubmitEvidence:
      oneOf:
        - $ref: '#/components/schemas/SubmitEvidenceVisaChargeback'
        - $ref: '#/components/schemas/SubmitEvidenceMastercardChargeback'
        - $ref: '#/components/schemas/SubmitEvidenceMastercardPreArbitration'
        - $ref: '#/components/schemas/SubmitEvidenceVisaPreArbitration'
        - $ref: '#/components/schemas/SubmitEvidenceAmexRFI'
        - $ref: '#/components/schemas/SubmitEvidenceAmexChargeback'
    RejectDispute:
      type: object
      additionalProperties: false
      required:
        - rejectReason
      properties:
        rejectReason:
          $ref: '#/components/schemas/schemas-FreeTextField'
    DefendMastercardCollaboration:
      type: object
      additionalProperties: false
      required:
        - messageText
        - disputeResponseReasonId
      properties:
        messageText:
          $ref: '#/components/schemas/messageText'
        disputeResponseReasonId:
          $ref: '#/components/schemas/disputeResponseReasonIdMastercardCollaboration'
    DefendVisaChargeback:
      type: object
      additionalProperties: false
      required:
        - disputeResponseReasonId
      properties:
        elaboration:
          $ref: '#/components/schemas/elaborationVisa'
        disputeResponseReasonId:
          $ref: '#/components/schemas/disputeResponseReasonIdVisa'
        disputeSubResponseReasonId:
          $ref: '#/components/schemas/disputeSubResponseReasonId'
        creditOrReversalDetail:
          $ref: '#/components/schemas/creditOrReversalDetail'
        partialDefenseAmount:
          $ref: '#/components/schemas/partialDefenseAmountValue'
    DefendMastercardChargeback:
      type: object
      additionalProperties: false
      required:
        - disputeResponseReasonId
      properties:
        messageText:
          $ref: '#/components/schemas/messageText'
        disputeResponseReasonId:
          $ref: '#/components/schemas/disputeResponseReasonIdMastercard'
        partialDefenseAmount:
          $ref: '#/components/schemas/partialDefenseAmountValue'
    DefendMastercardPreArbitration:
      type: object
      additionalProperties: false
      properties:
        messageText:
          $ref: '#/components/schemas/messageText'
    DefendVisaPreArbitration:
      type: object
      additionalProperties: false
      properties:
        elaboration:
          $ref: '#/components/schemas/elaborationVisa'
    DefendVisaArbitration:
      description: |
        Escalates a Visa Fraud (10.x) or Authorization (11.x) Dispute in the `preArbitrationResponse` stage to arbitration.
        The body has the same shape as `DefendVisaPreArbitration`; Silverflow decides which one applies from the stage of the Dispute.
        At least one document must have been uploaded to the Dispute in this stage.
      type: object
      additionalProperties: false
      required:
        - elaboration
      properties:
        elaboration:
          $ref: '#/components/schemas/elaborationVisa'
    DisputeDefense:
      oneOf:
        - $ref: '#/components/schemas/DefendMastercardCollaboration'
        - $ref: '#/components/schemas/DefendVisaChargeback'
        - $ref: '#/components/schemas/DefendMastercardChargeback'
        - $ref: '#/components/schemas/DefendMastercardPreArbitration'
        - title: Visa pre-arbitration / arbitration
          anyOf:
            - $ref: '#/components/schemas/DefendVisaPreArbitration'
            - $ref: '#/components/schemas/DefendVisaArbitration'
        - $ref: '#/components/schemas/DefendAmexRFI'
        - $ref: '#/components/schemas/DefendAmexChargeback'
    DisputeEventHistoryKey:
      description: Uniquely identifies a dispute history event
      type: string
      pattern: ^deh-[a-zA-Z0-9]+$
      minLength: 1
      maxLength: 120
      readOnly: false
      example: deh-1UF2NafdfrdPMf2XrS2
    eventDate:
      description: Datetime of an action mentioned in the history record. (e.g. dispute acceptance date)
      format: date-time
      readOnly: false
      example: '2021-05-27T10:57:52Z'
    EventFiles:
      type: array
      items:
        $ref: '#/components/schemas/EventFile'
    schema:
      type: string
      enum:
        - issuer
        - acquirer
        - card-network
        - merchant
        - auto-defender
    common_status:
      type: string
      description: The status of the object
      enum:
        - active
        - archived
    EventDetails:
      type: object
      description: Most fields are network-specific and are only returned in events for specific stage/status combinations.
      properties:
        messageText:
          type: string
          description: Mastercard-specific. This field is passed on to element DE72 (Data Record) in the second presentment clearing file. Mastercard chargeback rules prescribe how to fill this field depending on the type of representment. Please refer to the Mastercard chargeback manual for more information.
        elaboration:
          type: string
          description: Free text field that is used to provide extra guidance with the dispute.
        issuerQuestionnaire:
          type: object
          description: Visa-specific field for a dispute in 'chargeback' stage and 'received' status.
          additionalProperties: true
        responseReason:
          type: string
          description: Scheme-specific response reason code for the defense
        subResponseReason:
          type: string
          description: Visa-specific sub-response reason code
        creditOrReversalDetails:
          type: object
          $ref: '#/components/schemas/creditOrReversalDetail'
        rejectReason:
          type: string
          $ref: '#/components/schemas/schemas-FreeTextField'
        intendedDisputeReason:
          type: string
          description: American-Express specific intended dispute reason
        partialDefenseAmount:
          $ref: '#/components/schemas/openapi_components-schemas-Amount'
        isPartialDefense:
          $ref: '#/components/schemas/isPartialDefense'
        reversalReason:
          type: string
          description: Free text field to provide reversal reason
        responseText:
          $ref: '#/components/schemas/amexResponseText'
        refundAmount:
          $ref: '#/components/schemas/openapi_components-schemas-Amount'
      additionalProperties: true
    DisputeEventHistory:
      type: object
      required:
        - key
        - agentKey
        - merchantKey
        - merchantAcceptorKey
        - disputeStatus
        - disputeStage
        - disputeAmount
        - created
        - eventDate
        - disputeKey
        - initiator
        - disputeVersion
        - status
      description: |
        A Dispute
      properties:
        key:
          $ref: '#/components/schemas/DisputeEventHistoryKey'
        agentKey:
          $ref: '#/components/schemas/components-schemas-agentKey'
        merchantAcceptorKey:
          $ref: '#/components/schemas/openapi_components-schemas-acceptorKey'
        merchantKey:
          $ref: '#/components/schemas/components-schemas-merchantKey'
        disputeStatus:
          $ref: '#/components/schemas/disputeStatus'
        disputeStage:
          $ref: '#/components/schemas/disputeStage'
        disputeAmount:
          $ref: '#/components/schemas/openapi_components-schemas-Amount'
        disputeReason:
          $ref: '#/components/schemas/Reason'
        created:
          $ref: '#/components/schemas/openapi_components-schemas-created-3'
        eventDate:
          $ref: '#/components/schemas/eventDate'
        comment:
          description: Comment from initiator
          type: string
        files:
          $ref: '#/components/schemas/EventFiles'
        disputeKey:
          $ref: '#/components/schemas/disputeKey'
        initiator:
          $ref: '#/components/schemas/schema'
        status:
          $ref: '#/components/schemas/common_status'
        disputeVersion:
          $ref: '#/components/schemas/openapi_components-schemas-version-2'
        submittedDefense:
          $ref: '#/components/schemas/submittedDefense'
        eventDetails:
          $ref: '#/components/schemas/EventDetails'
    DisputeEventHistoryPage:
      allOf:
        - $ref: '#/components/schemas/components-schemas-PageWithMoreItems'
        - type: object
          required:
            - events
          properties:
            events:
              type: array
              items:
                $ref: '#/components/schemas/DisputeEventHistory'
    fraudNotificationKey:
      description: Uniquely identifies a Fraud Notification
      type: string
      pattern: ^frn-[a-zA-Z0-9]+$
      minLength: 1
      maxLength: 120
      readOnly: false
      example: frn-1JRadf2ffdfrdPMf2XrS2
    merchantAcceptorRef:
      description: Charge related information
      type: object
      required:
        - key
        - version
      properties:
        key:
          $ref: '#/components/schemas/openapi_components-schemas-acceptorKey'
        version:
          $ref: '#/components/schemas/openapi_components-schemas-version-2'
    fraud-notifications_fraudLiability:
      description: Indicates the entity responsible for covering the losses incurred due to fraudulent activities.
      type: string
      enum:
        - acquirer
        - issuer
    fraud-notifications_transactionReference:
      type: string
      description: |
        Unique ID assigned by the merchant or payment service provider for the transaction. Used to identify the transaction.
      pattern: ^[a-zA-Z0-9()+,\-.:=@;$_!*\/?|]+$
      minLength: 1
      maxLength: 120
      example: Dz3dIzE74EfH1HeTInyE
    fraud-notifications_chargeInfo:
      description: Charge related information
      type: object
      required:
        - arn
        - amount
        - fraudLiability
      properties:
        arn:
          $ref: '#/components/schemas/acquirerReferenceNumber'
        localTransactionDateTime:
          $ref: '#/components/schemas/schemas-localTransactionDateTime'
        amount:
          $ref: '#/components/schemas/openapi_components-schemas-Amount'
        chargeKey:
          $ref: '#/components/schemas/schemas-chargeKey'
        fraudLiability:
          $ref: '#/components/schemas/fraud-notifications_fraudLiability'
        transactionReference:
          $ref: '#/components/schemas/fraud-notifications_transactionReference'
        clearingDateTime:
          $ref: '#/components/schemas/clearingDateTime'
    fraudType:
      description: The type of the Fraud reported by the network
      type: object
      required:
        - code
      properties:
        typeCode:
          type: string
          example: '01'
        subTypeCode:
          type: string
          example: 'N'
    purchaseDate:
      description: Date when the purchase was done
      type: string
      format: date
      example: '2021-05-27'
    fraudReportingDate:
      description: Date when the Fraud Notification was received by the Card Network. This is specific for each network. For Mastercard this is the TLL8 "Fraud Posted Date". For VISA this is the TC90 "Processing Date".
      type: string
      format: date
      example: '2021-05-28'
    fraud-notifications_status:
      description: The status of a Fraud Notification.
      type: string
      enum:
        - active
        - archived
    FraudNotification:
      type: object
      required:
        - key
        - network
        - agentKey
        - merchantAcceptorRef
        - merchantKey
        - mcc
        - mid
        - chargeInfo
        - cardInfo
        - fraudAmount
        - fraudType
        - purchaseDate
        - fraudReportingDate
        - status
        - created
        - version
      description: |
        A Fraud Notification
      properties:
        key:
          $ref: '#/components/schemas/fraudNotificationKey'
        network:
          $ref: '#/components/schemas/schemas-cardNetwork'
        agentKey:
          $ref: '#/components/schemas/components-schemas-agentKey'
        merchantKey:
          $ref: '#/components/schemas/components-schemas-merchantKey'
        merchantAcceptorRef:
          $ref: '#/components/schemas/merchantAcceptorRef'
        chargeInfo:
          $ref: '#/components/schemas/fraud-notifications_chargeInfo'
        cardInfo:
          $ref: '#/components/schemas/cardInfo'
        fraudAmount:
          $ref: '#/components/schemas/openapi_components-schemas-Amount'
        fraudType:
          $ref: '#/components/schemas/fraudType'
        purchaseDate:
          $ref: '#/components/schemas/purchaseDate'
        fraudReportingDate:
          $ref: '#/components/schemas/fraudReportingDate'
        mid:
          $ref: '#/components/schemas/schemas-mid'
        created:
          $ref: '#/components/schemas/openapi_components-schemas-created-3'
        version:
          $ref: '#/components/schemas/openapi_components-schemas-version-2'
        status:
          $ref: '#/components/schemas/fraud-notifications_status'
    FraudNotificationsPage:
      allOf:
        - $ref: '#/components/schemas/PageWithMoreAndTotalItems'
        - type: object
          required:
            - fraudNotifications
          properties:
            fraudNotifications:
              type: array
              items:
                $ref: '#/components/schemas/FraudNotification'
    eventSubscriptionKey:
      type: string
      pattern: ^sub-[a-zA-Z0-9]+$
      minLength: 5
      maxLength: 120
      example: sub-NafdfrdPMf2XrS21r1d
    eventSubscriptionStatus:
      type: string
      description: The status of the Event Subscription
      enum:
        - active
        - archived
    EventSubscription:
      type: object
      required:
        - key
        - status
        - agentKey
        - eventSource
        - eventDataSchema
        - targetUrl
        - created
        - version
      properties:
        key:
          $ref: '#/components/schemas/eventSubscriptionKey'
        agentKey:
          $ref: '#/components/schemas/agentKey'
        status:
          $ref: '#/components/schemas/eventSubscriptionStatus'
        description:
          $ref: '#/components/schemas/FreeTextField'
        eventSource:
          $ref: '#/components/schemas/url'
        eventDataSchema:
          $ref: '#/components/schemas/url'
        targetUrl:
          $ref: '#/components/schemas/url'
        created:
          $ref: '#/components/schemas/created'
        lastModified:
          $ref: '#/components/schemas/lastModified'
        version:
          $ref: '#/components/schemas/version'
      example:
        key: sub-4JYVetlH0BhpW2bpHAAL
        status: active
        agentKey: cgt-24OJ9rv4u6x5jEu3MP91
        description: Disputes Data lake feed
        eventSource: https://silverflow.com/disputes
        eventDataSchema: https://silverflow.com/schemas/events/disputes/1.0
        targetUrl: https://my.server.com/events/disputes
        created: '2025-04-22T12:26:34.341Z'
        version: 1
    EventSubscriptionsPage:
      allOf:
        - $ref: '#/components/schemas/Page'
        - type: object
          required:
            - eventSubscriptions
          properties:
            eventSubscriptions:
              type: array
              items:
                $ref: '#/components/schemas/EventSubscription'
    eventSourceRequest:
      type: string
      enum:
        - https://silverflow.com/charges
        - https://silverflow.com/clearing
        - https://silverflow.com/complianceCases
        - https://silverflow.com/currencyRates
        - https://silverflow.com/disputes
        - https://silverflow.com/documents
        - https://silverflow.com/enrollments
        - https://silverflow.com/fraudNotifications
        - https://silverflow.com/networkTokens
        - https://silverflow.com/processorTokens
        - https://silverflow.com/reconciliation
        - https://silverflow.com/reports
        - https://silverflow.com/distributions
        - https://silverflow.com/ammfSubmissions
    EventSubscriptionCreate:
      type: object
      required:
        - eventSource
        - targetUrl
      additionalProperties: false
      properties:
        description:
          $ref: '#/components/schemas/FreeTextField'
        eventSource:
          $ref: '#/components/schemas/eventSourceRequest'
        targetUrl:
          $ref: '#/components/schemas/url'
    EventSubscriptionMergeUpdate:
      type: object
      additionalProperties: false
      properties:
        description:
          $ref: '#/components/schemas/FreeTextField'
        targetUrl:
          $ref: '#/components/schemas/url'
    openapi_components-schemas-pan-2:
      type: string
      description: Full digits of a card
      pattern: ^\d{12,19}$
      format: password
      example: 1234123412341234
    currencyCodeEnum:
      type: string
      enum:
        - AFN
        - EUR
        - ALL
        - DZD
        - USD
        - AOA
        - XCD
        - ARS
        - AMD
        - AWG
        - AUD
        - AZN
        - BSD
        - BHD
        - BDT
        - BBD
        - BYN
        - BZD
        - XOF
        - BMD
        - INR
        - BTN
        - BOB
        - BAM
        - BWP
        - NOK
        - BRL
        - BND
        - BGN
        - BIF
        - CVE
        - KHR
        - XAF
        - CAD
        - KYD
        - CLP
        - CNH
        - CNY
        - COP
        - KMF
        - CDF
        - NZD
        - CRC
        - HRK
        - CUP
        - CUC
        - ANG
        - CZK
        - DKK
        - DJF
        - DOP
        - EGP
        - SVC
        - ERN
        - ETB
        - FKP
        - FJD
        - XPF
        - GMD
        - GEL
        - GHS
        - GIP
        - GTQ
        - GBP
        - GNF
        - GYD
        - HTG
        - HNL
        - HKD
        - HUF
        - ISK
        - IDR
        - IRR
        - IQD
        - ILS
        - JMD
        - JPY
        - JOD
        - KZT
        - KES
        - KPW
        - KRW
        - KWD
        - KGS
        - LAK
        - LBP
        - LSL
        - ZAR
        - LRD
        - LYD
        - CHF
        - MOP
        - MKD
        - MGA
        - MWK
        - MYR
        - MVR
        - MRU
        - MUR
        - MXN
        - MDL
        - MNT
        - MAD
        - MZN
        - MMK
        - NAD
        - NPR
        - NIO
        - NGN
        - OMR
        - PKR
        - PAB
        - PGK
        - PYG
        - PEN
        - PHP
        - PLN
        - QAR
        - RON
        - RUB
        - RWF
        - SHP
        - WST
        - STN
        - SAR
        - RSD
        - SCR
        - SLL
        - SLE
        - SGD
        - SBD
        - SOS
        - SSP
        - LKR
        - SDG
        - SRD
        - SZL
        - SEK
        - SYP
        - TWD
        - TJS
        - TZS
        - THB
        - TOP
        - TTD
        - TND
        - TRY
        - TMT
        - UGX
        - UAH
        - AED
        - UYU
        - UYW
        - UZS
        - VUV
        - VES
        - VND
        - YER
        - ZMW
        - ZWL
      pattern: ^[A-Z]{3}$
      description: |-
        The three-letter ISO code of the currency.


        **European ISO Currency Codes**

        <details>

        | Country — Currency | Code | Numeric | Minor Units |
        | ------------------ | ---- | ------- | ----------- |
        | Åland Islands — Euro | EUR | 978 | 2 |
        | Andorra — Euro | EUR | 978 | 2 |
        | Austria — Euro | EUR | 978 | 2 |
        | Belgium — Euro | EUR | 978 | 2 |
        | Cyprus — Euro | EUR | 978 | 2 |
        | Estonia — Euro | EUR | 978 | 2 |
        | European Union — Euro | EUR | 978 | 2 |
        | Finland — Euro | EUR | 978 | 2 |
        | France — Euro | EUR | 978 | 2 |
        | French Guiana — Euro | EUR | 978 | 2 |
        | French Southern Territories (The) — Euro | EUR | 978 | 2 |
        | Germany — Euro | EUR | 978 | 2 |
        | Greece — Euro | EUR | 978 | 2 |
        | Guadeloupe — Euro | EUR | 978 | 2 |
        | Holy See (The) — Euro | EUR | 978 | 2 |
        | Ireland — Euro | EUR | 978 | 2 |
        | Italy — Euro | EUR | 978 | 2 |
        | Latvia — Euro | EUR | 978 | 2 |
        | Lithuania — Euro | EUR | 978 | 2 |
        | Luxembourg — Euro | EUR | 978 | 2 |
        | Malta — Euro | EUR | 978 | 2 |
        | Martinique — Euro | EUR | 978 | 2 |
        | Mayotte — Euro | EUR | 978 | 2 |
        | Monaco — Euro | EUR | 978 | 2 |
        | Montenegro — Euro | EUR | 978 | 2 |
        | Netherlands (The) — Euro | EUR | 978 | 2 |
        | Portugal — Euro | EUR | 978 | 2 |
        | Réunion — Euro | EUR | 978 | 2 |
        | Saint Barthélemy — Euro | EUR | 978 | 2 |
        | Saint Martin (French Part) — Euro | EUR | 978 | 2 |
        | Saint Pierre And Miquelon — Euro | EUR | 978 | 2 |
        | San Marino — Euro | EUR | 978 | 2 |
        | Slovakia — Euro | EUR | 978 | 2 |
        | Slovenia — Euro | EUR | 978 | 2 |
        | Spain — Euro | EUR | 978 | 2 |

        </details>

        **US ISO Currency Codes**

        <details>

        | Country — Currency | Code | Numeric | Minor Units |
        | ------------------ | ---- | ------- | ----------- |
        | American Samoa — US Dollar | USD | 840 | 2 |
        | Bonaire, Sint Eustatius And Saba — US Dollar | USD | 840 | 2 |
        | British Indian Ocean Territory (The) — US Dollar | USD | 840 | 2 |
        | Ecuador — US Dollar | USD | 840 | 2 |
        | El Salvador — US Dollar | USD | 840 | 2 |
        | Guam — US Dollar | USD | 840 | 2 |
        | Haiti — US Dollar | USD | 840 | 2 |
        | Marshall Islands (The) — US Dollar | USD | 840 | 2 |
        | Micronesia (Federated States Of) — US Dollar | USD | 840 | 2 |
        | Northern Mariana Islands (The) — US Dollar | USD | 840 | 2 |
        | Palau — US Dollar | USD | 840 | 2 |
        | Panama — US Dollar | USD | 840 | 2 |
        | Puerto Rico — US Dollar | USD | 840 | 2 |
        | Timor-leste — US Dollar | USD | 840 | 2 |
        | Turks And Caicos Islands (The) — US Dollar | USD | 840 | 2 |
        | United States Minor Outlying Islands (The) — US Dollar | USD | 840 | 2 |
        | United States Of America (The) — US Dollar | USD | 840 | 2 |
        | Virgin Islands (British) — US Dollar | USD | 840 | 2 |
        | Virgin Islands (U.s.) — US Dollar | USD | 840 | 2 |

        </details>

        **Other ISO Currency Codes**

        <details>

        | Country — Currency | Code | Numeric | Minor Units |
        | ------------------ | ---- | ------- | ----------- |
        | Afghanistan — Afghani | AFN | 971 | 2 |
        | Albania — Lek | ALL | 008 | 2 |
        | Algeria — Algerian Dinar | DZD | 012 | 2 |
        | Angola — Kwanza | AOA | 973 | 2 |
        | Anguilla — East Caribbean Dollar | XCD | 951 | 2 |
        | Antigua And Barbuda — East Caribbean Dollar | XCD | 951 | 2 |
        | Argentina — Argentine Peso | ARS | 032 | 2 |
        | Armenia — Armenian Dram | AMD | 051 | 2 |
        | Aruba — Aruban Florin | AWG | 533 | 2 |
        | Australia — Australian Dollar | AUD | 036 | 2 |
        | Azerbaijan — Azerbaijan Manat | AZN | 944 | 2 |
        | Bahamas (The) — Bahamian Dollar | BSD | 044 | 2 |
        | Bahrain — Bahraini Dinar | BHD | 048 | 3 |
        | Bangladesh — Taka | BDT | 050 | 2 |
        | Barbados — Barbados Dollar | BBD | 052 | 2 |
        | Belarus — Belarusian Ruble | BYN | 933 | 2 |
        | Belize — Belize Dollar | BZD | 084 | 2 |
        | Benin — CFA Franc BCEAO | XOF | 952 | 0 |
        | Bermuda — Bermudian Dollar | BMD | 060 | 2 |
        | Bhutan — Indian Rupee | INR | 356 | 2 |
        | Bhutan — Ngultrum | BTN | 064 | 2 |
        | Bolivia (Plurinational State Of) — Boliviano | BOB | 068 | 2 |
        | Bosnia And Herzegovina — Convertible Mark | BAM | 977 | 2 |
        | Botswana — Pula | BWP | 072 | 2 |
        | Bouvet Island — Norwegian Krone | NOK | 578 | 2 |
        | Brazil — Brazilian Real | BRL | 986 | 2 |
        | Brunei Darussalam — Brunei Dollar | BND | 096 | 2 |
        | Bulgaria — Bulgarian Lev | BGN | 975 | 2 |
        | Burkina Faso — CFA Franc BCEAO | XOF | 952 | 0 |
        | Burundi — Burundi Franc | BIF | 108 | 0 |
        | Cabo Verde — Cabo Verde Escudo | CVE | 132 | 2 |
        | Cambodia — Riel | KHR | 116 | 2 |
        | Cameroon — CFA Franc BEAC | XAF | 950 | 0 |
        | Canada — Canadian Dollar | CAD | 124 | 2 |
        | Cayman Islands (The) — Cayman Islands Dollar | KYD | 136 | 2 |
        | Central African Republic (The) — CFA Franc BEAC | XAF | 950 | 0 |
        | Chad — CFA Franc BEAC | XAF | 950 | 0 |
        | Chile — Chilean Peso | CLP | 152 | 0 |
        | China — Yuan Renminbi | CNY | 156 | 2 |
        | Christmas Island — Australian Dollar | AUD | 036 | 2 |
        | Cocos (Keeling) Islands (The) — Australian Dollar | AUD | 036 | 2 |
        | Colombia — Colombian Peso | COP | 170 | 2 |
        | Comoros (The) — Comorian Franc | KMF | 174 | 0 |
        | Congo (The Democratic Republic Of The) — Congolese Franc | CDF | 976 | 2 |
        | Congo (The) — CFA Franc BEAC | XAF | 950 | 0 |
        | Cook Islands (The) — New Zealand Dollar | NZD | 554 | 2 |
        | Costa Rica — Costa Rican Colon | CRC | 188 | 2 |
        | Côte D'ivoire — CFA Franc BCEAO | XOF | 952 | 0 |
        | Croatia — Kuna | HRK | 191 | 2 |
        | Cuba — Cuban Peso | CUP | 192 | 2 |
        | Cuba — Peso Convertible | CUC | 931 | 2 |
        | Curaçao — Netherlands Antillean Guilder | ANG | 532 | 2 |
        | Czechia — Czech Koruna | CZK | 203 | 2 |
        | Denmark — Danish Krone | DKK | 208 | 2 |
        | Djibouti — Djibouti Franc | DJF | 262 | 0 |
        | Dominica — East Caribbean Dollar | XCD | 951 | 2 |
        | Dominican Republic (The) — Dominican Peso | DOP | 214 | 2 |
        | Egypt — Egyptian Pound | EGP | 818 | 2 |
        | El Salvador — El Salvador Colon | SVC | 222 | 2 |
        | Equatorial Guinea — CFA Franc BEAC | XAF | 950 | 0 |
        | Eritrea — Nakfa | ERN | 232 | 2 |
        | Ethiopia — Ethiopian Birr | ETB | 230 | 2 |
        | Falkland Islands (The) [Malvinas] — Falkland Islands Pound | FKP | 238 | 2 |
        | Faroe Islands (The) — Danish Krone | DKK | 208 | 2 |
        | Fiji — Fiji Dollar | FJD | 242 | 2 |
        | French Polynesia — CFP Franc | XPF | 953 | 0 |
        | Gabon — CFA Franc BEAC | XAF | 950 | 0 |
        | Gambia (The) — Dalasi | GMD | 270 | 2 |
        | Georgia — Lari | GEL | 981 | 2 |
        | Ghana — Ghana Cedi | GHS | 936 | 2 |
        | Gibraltar — Gibraltar Pound | GIP | 292 | 2 |
        | Greenland — Danish Krone | DKK | 208 | 2 |
        | Grenada — East Caribbean Dollar | XCD | 951 | 2 |
        | Guatemala — Quetzal | GTQ | 320 | 2 |
        | Guernsey — Pound Sterling | GBP | 826 | 2 |
        | Guinea — Guinean Franc | GNF | 324 | 0 |
        | Guinea-bissau — CFA Franc BCEAO | XOF | 952 | 0 |
        | Guyana — Guyana Dollar | GYD | 328 | 2 |
        | Haiti — Gourde | HTG | 332 | 2 |
        | Heard Island And Mcdonald Islands — Australian Dollar | AUD | 036 | 2 |
        | Honduras — Lempira | HNL | 340 | 2 |
        | Hong Kong — Hong Kong Dollar | HKD | 344 | 2 |
        | Hungary — Forint | HUF | 348 | 2 |
        | Iceland — Iceland Krona | ISK | 352 | 0 |
        | India — Indian Rupee | INR | 356 | 2 |
        | Indonesia — Rupiah | IDR | 360 | 2 |
        | Iran (Islamic Republic Of) — Iranian Rial | IRR | 364 | 2 |
        | Iraq — Iraqi Dinar | IQD | 368 | 3 |
        | Isle Of Man — Pound Sterling | GBP | 826 | 2 |
        | Israel — New Israeli Sheqel | ILS | 376 | 2 |
        | Jamaica — Jamaican Dollar | JMD | 388 | 2 |
        | Japan — Yen | JPY | 392 | 0 |
        | Jersey — Pound Sterling | GBP | 826 | 2 |
        | Jordan — Jordanian Dinar | JOD | 400 | 3 |
        | Kazakhstan — Tenge | KZT | 398 | 2 |
        | Kenya — Kenyan Shilling | KES | 404 | 2 |
        | Kiribati — Australian Dollar | AUD | 036 | 2 |
        | Korea (The Democratic People’s Republic Of) — North Korean Won | KPW | 408 | 2 |
        | Korea (The Republic Of) — Won | KRW | 410 | 0 |
        | Kuwait — Kuwaiti Dinar | KWD | 414 | 3 |
        | Kyrgyzstan — Som | KGS | 417 | 2 |
        | Lao People’s Democratic Republic (The) — Lao Kip | LAK | 418 | 2 |
        | Lebanon — Lebanese Pound | LBP | 422 | 2 |
        | Lesotho — Loti | LSL | 426 | 2 |
        | Lesotho — Rand | ZAR | 710 | 2 |
        | Liberia — Liberian Dollar | LRD | 430 | 2 |
        | Libya — Libyan Dinar | LYD | 434 | 3 |
        | Liechtenstein — Swiss Franc | CHF | 756 | 2 |
        | Macao — Pataca | MOP | 446 | 2 |
        | Macedonia (The Former Yugoslav Republic Of) — Denar | MKD | 807 | 2 |
        | Madagascar — Malagasy Ariary | MGA | 969 | 2 |
        | Malawi — Malawi Kwacha | MWK | 454 | 2 |
        | Malaysia — Malaysian Ringgit | MYR | 458 | 2 |
        | Maldives — Rufiyaa | MVR | 462 | 2 |
        | Mali — CFA Franc BCEAO | XOF | 952 | 0 |
        | Mauritania — Ouguiya | MRU | 929 | 2 |
        | Mauritius — Mauritius Rupee | MUR | 480 | 2 |
        | Mexico — Mexican Peso | MXN | 484 | 2 |
        | Moldova (The Republic Of) — Moldovan Leu | MDL | 498 | 2 |
        | Mongolia — Tugrik | MNT | 496 | 2 |
        | Montserrat — East Caribbean Dollar | XCD | 951 | 2 |
        | Morocco — Moroccan Dirham | MAD | 504 | 2 |
        | Mozambique — Mozambique Metical | MZN | 943 | 2 |
        | Myanmar — Kyat | MMK | 104 | 2 |
        | Namibia — Namibia Dollar | NAD | 516 | 2 |
        | Namibia — Rand | ZAR | 710 | 2 |
        | Nauru — Australian Dollar | AUD | 036 | 2 |
        | Nepal — Nepalese Rupee | NPR | 524 | 2 |
        | New Caledonia — CFP Franc | XPF | 953 | 0 |
        | New Zealand — New Zealand Dollar | NZD | 554 | 2 |
        | Nicaragua — Cordoba Oro | NIO | 558 | 2 |
        | Niger (The) — CFA Franc BCEAO | XOF | 952 | 0 |
        | Nigeria — Naira | NGN | 566 | 2 |
        | Niue — New Zealand Dollar | NZD | 554 | 2 |
        | Norfolk Island — Australian Dollar | AUD | 036 | 2 |
        | Norway — Norwegian Krone | NOK | 578 | 2 |
        | Oman — Rial Omani | OMR | 512 | 3 |
        | Pakistan — Pakistan Rupee | PKR | 586 | 2 |
        | Panama — Balboa | PAB | 590 | 2 |
        | Papua New Guinea — Kina | PGK | 598 | 2 |
        | Paraguay — Guarani | PYG | 600 | 0 |
        | Peru — Sol | PEN | 604 | 2 |
        | Philippines (The) — Philippine Peso | PHP | 608 | 2 |
        | Pitcairn — New Zealand Dollar | NZD | 554 | 2 |
        | Poland — Zloty | PLN | 985 | 2 |
        | Qatar — Qatari Rial | QAR | 634 | 2 |
        | Romania — Romanian Leu | RON | 946 | 2 |
        | Russian Federation (The) — Russian Ruble | RUB | 643 | 2 |
        | Rwanda — Rwanda Franc | RWF | 646 | 0 |
        | Saint Helena, Ascension And Tristan Da Cunha — Saint Helena Pound | SHP | 654 | 2 |
        | Saint Kitts And Nevis — East Caribbean Dollar | XCD | 951 | 2 |
        | Saint Lucia — East Caribbean Dollar | XCD | 951 | 2 |
        | Saint Vincent And The Grenadines — East Caribbean Dollar | XCD | 951 | 2 |
        | Samoa — Tala | WST | 882 | 2 |
        | Sao Tome And Principe — Dobra | STN | 930 | 2 |
        | Saudi Arabia — Saudi Riyal | SAR | 682 | 2 |
        | Senegal — CFA Franc BCEAO | XOF | 952 | 0 |
        | Serbia — Serbian Dinar | RSD | 941 | 2 |
        | Seychelles — Seychelles Rupee | SCR | 690 | 2 |
        | Sierra Leone — Leone | SLL | 694 | 2 |
        | Singapore — Singapore Dollar | SGD | 702 | 2 |
        | Sint Maarten (Dutch Part) — Netherlands Antillean Guilder | ANG | 532 | 2 |
        | Solomon Islands — Solomon Islands Dollar | SBD | 090 | 2 |
        | Somalia — Somali Shilling | SOS | 706 | 2 |
        | South Africa — Rand | ZAR | 710 | 2 |
        | South Sudan — South Sudanese Pound | SSP | 728 | 2 |
        | Sri Lanka — Sri Lanka Rupee | LKR | 144 | 2 |
        | Sudan (The) — Sudanese Pound | SDG | 938 | 2 |
        | Suriname — Surinam Dollar | SRD | 968 | 2 |
        | Svalbard And Jan Mayen — Norwegian Krone | NOK | 578 | 2 |
        | Eswatini — Lilangeni | SZL | 748 | 2 |
        | Sweden — Swedish Krona | SEK | 752 | 2 |
        | Switzerland — Swiss Franc | CHF | 756 | 2 |
        | Syrian Arab Republic — Syrian Pound | SYP | 760 | 2 |
        | Taiwan (Province Of China) — New Taiwan Dollar | TWD | 901 | 2 |
        | Tajikistan — Somoni | TJS | 972 | 2 |
        | Tanzania, United Republic Of — Tanzanian Shilling | TZS | 834 | 2 |
        | Thailand — Baht | THB | 764 | 2 |
        | Togo — CFA Franc BCEAO | XOF | 952 | 0 |
        | Tokelau — New Zealand Dollar | NZD | 554 | 2 |
        | Tonga — Pa’anga | TOP | 776 | 2 |
        | Trinidad And Tobago — Trinidad and Tobago Dollar | TTD | 780 | 2 |
        | Tunisia — Tunisian Dinar | TND | 788 | 3 |
        | Turkey — Turkish Lira | TRY | 949 | 2 |
        | Turkmenistan — Turkmenistan New Manat | TMT | 934 | 2 |
        | Tuvalu — Australian Dollar | AUD | 036 | 2 |
        | Uganda — Uganda Shilling | UGX | 800 | 0 |
        | Ukraine — Hryvnia | UAH | 980 | 2 |
        | United Arab Emirates (The) — UAE Dirham | AED | 784 | 2 |
        | United Kingdom Of Great Britain And Northern Ireland (The) — Pound Sterling | GBP | 826 | 2 |
        | Uruguay — Peso Uruguayo | UYU | 858 | 2 |
        | Uruguay — Unidad Previsional | UYW | 927 | 4 |
        | Uzbekistan — Uzbekistan Sum | UZS | 860 | 2 |
        | Vanuatu — Vatu | VUV | 548 | 0 |
        | Venezuela (Bolivarian Republic Of) — Bolívar Soberano | VES | 928 | 2 |
        | Viet Nam — Dong | VND | 704 | 0 |
        | Wallis And Futuna — CFP Franc | XPF | 953 | 0 |
        | Western Sahara — Moroccan Dirham | MAD | 504 | 2 |
        | Yemen — Yemeni Rial | YER | 886 | 2 |
        | Zambia — Zambian Kwacha | ZMW | 967 | 2 |
        | Zimbabwe — Zimbabwe Dollar | ZWL | 932 | 2 |

        </details>
      externalDocs:
        description: Find more info here
        url: https://www.iso.org/iso-4217-currency-codes.html
      example: EUR
    IntegerAmount:
      type: object
      required:
        - value
        - currency
      additionalProperties: false
      description: |
        An amount encoded as an object with a `value` in minor units and a `currency` code.
      properties:
        value:
          $ref: '#/components/schemas/schemas-amountValue'
        currency:
          $ref: '#/components/schemas/currencyCodeEnum'
    openapi_components-schemas-acceptorKeyRef:
      description: Uniquely identifies a Merchant Acceptor.
      type: string
      pattern: ^mac-[a-zA-Z0-9]+$
    openapi_components-schemas-cardEntry:
      description: |
        The method used to capture the card details.
      type: string
      enum:
        - e-commerce
        - manual
        - card-on-file
        - token
        - token-on-file
        - terminal
    components-schemas-order:
      description: |
        The method used to place the order.
      type: string
      enum:
        - checkout
        - unspecified
        - mail
        - phone
        - one-click
        - recurring
        - ucof
        - installment
        - counter
    components-schemas-sequence:
      description: |
        Required for recurring charges. This field indicates whether a charge is part of a recurring sequence. The initial charge of a recurring sequence should be flagged as `initial`,
        all subsequent transactions should be flagged as `subsequent` and must be sent to the `/charges/{initialChargeKey}/mit` endpoint.
      type: string
      enum:
        - initial
        - subsequent
    schemas-terminalEntryMode:
      description: |
        Required when `cardEntry` is `terminal`. This field indicates the method used for PAN entry on the terminal to initiate the transaction.
      type: string
      enum:
        - contactless
        - manual-entry
        - chip
        - magstripe
        - magstripe-fallback
    baseTerminal:
      type: object
      required:
        - attended
      properties:
        attended:
          type: boolean
          description: Whether the terminal is attended or not.
    terminalCapability:
      type: string
      enum:
        - contactChip
        - contactlessChip
        - contactMagStripe
        - contactlessMagStripe
        - offlineEncipheredPin
        - offlinePlaintextPin
        - onlinePin
        - signature
        - keyEntry
        - noCvm
        - oneTap
    pos:
      allOf:
        - type: object
          required:
            - type
          properties:
            type:
              type: string
              enum:
                - pos
        - $ref: '#/components/schemas/baseTerminal'
        - type: object
          required:
            - capabilities
          properties:
            capabilities:
              type: array
              description: |
                The capabilities of the terminal. This can be one or multiple, and if more than one is specified it means that it is capable of all of those things.
              items:
                $ref: '#/components/schemas/terminalCapability'
              example:
                - contactChip
                - contactlessChip
                - contactMagStripe
                - oneTap
    mPos:
      allOf:
        - type: object
          required:
            - type
          properties:
            type:
              type: string
              enum:
                - mpos
        - $ref: '#/components/schemas/baseTerminal'
        - type: object
          required:
            - attended
            - capabilities
          properties:
            attended:
              type: boolean
              enum:
                - true
            capabilities:
              type: array
              description: |
                The capabilities of the terminal. This can be one or multiple, and if more than one is specified it means that it is capable of all of those things.
              items:
                $ref: '#/components/schemas/terminalCapability'
              example:
                - contactChip
                - contactlessChip
                - contactMagStripe
                - oneTap
    softPos:
      allOf:
        - type: object
          required:
            - type
          properties:
            type:
              type: string
              enum:
                - softpos
        - $ref: '#/components/schemas/baseTerminal'
        - type: object
          required:
            - attended
            - capabilities
          properties:
            attended:
              type: boolean
              enum:
                - true
            capabilities:
              type: array
              description: |
                The capabilities of the terminal. This can be one or multiple, and if more than one is specified it means that it is capable of all of those things.
              items:
                $ref: '#/components/schemas/softPosTerminalCapability'
              example:
                - onlinePin
                - contactlessChip
                - noCvm
                - oneTap
    terminal:
      type: object
      description: Details about the terminal.
      oneOf:
        - $ref: '#/components/schemas/pos'
        - $ref: '#/components/schemas/mPos'
        - $ref: '#/components/schemas/softPos'
    components-schemas-ChargeType:
      description: |
        Describes the kind of charge the merchant wants to submit.
      type: object
      additionalProperties: false
      required:
        - intent
        - cardEntry
        - order
      properties:
        intent:
          $ref: '#/components/schemas/intent'
        cardEntry:
          $ref: '#/components/schemas/openapi_components-schemas-cardEntry'
        order:
          $ref: '#/components/schemas/components-schemas-order'
        sequence:
          $ref: '#/components/schemas/components-schemas-sequence'
        terminalEntryMode:
          $ref: '#/components/schemas/schemas-terminalEntryMode'
        terminal:
          $ref: '#/components/schemas/terminal'
        pinUsed:
          type: boolean
    BancontactAdditionalNetworkProperties:
      type: object
      additionalProperties: false
      properties:
        transactionRoutingMeans:
          description: |
            Required for Bancontact fee estimate. Fee is based on the flow used.
          type: string
          enum:
            - qr
            - url
            - wip
            - man
    InterchangeFeeEstimateRequest:
      type: object
      description: Elements required to construct an authorization request
      additionalProperties: false
      required:
        - cardNumber
        - amount
        - merchantAcceptorKey
        - chargeType
        - threeDsAuthentication
        - isRefund
      properties:
        cardNumber:
          $ref: '#/components/schemas/openapi_components-schemas-pan-2'
        amount:
          description: The transaction amount
          $ref: '#/components/schemas/IntegerAmount'
        merchantAcceptorKey:
          $ref: '#/components/schemas/openapi_components-schemas-acceptorKeyRef'
        chargeType:
          $ref: '#/components/schemas/components-schemas-ChargeType'
        threeDsAuthentication:
          description: 3DS settings
          type: string
          enum:
            - none
            - attempt
            - success
        isRefund:
          description: Whether the transaction is a refund.
          type: boolean
        additionalNetworkProperties:
          type: object
          oneOf:
            - $ref: '#/components/schemas/BancontactAdditionalNetworkProperties'
    openapi_components-schemas-currencyCode-4:
      type: string
      pattern: ^[A-Z]{3}$
      description: |-
        The three-letter ISO code of the currency.


        **European ISO Currency Codes**

        <details>

        | Country — Currency | Code | Numeric | Minor Units |
        | ------------------ | ---- | ------- | ----------- |
        | Åland Islands — Euro | EUR | 978 | 2 |
        | Andorra — Euro | EUR | 978 | 2 |
        | Austria — Euro | EUR | 978 | 2 |
        | Belgium — Euro | EUR | 978 | 2 |
        | Cyprus — Euro | EUR | 978 | 2 |
        | Estonia — Euro | EUR | 978 | 2 |
        | European Union — Euro | EUR | 978 | 2 |
        | Finland — Euro | EUR | 978 | 2 |
        | France — Euro | EUR | 978 | 2 |
        | French Guiana — Euro | EUR | 978 | 2 |
        | French Southern Territories (The) — Euro | EUR | 978 | 2 |
        | Germany — Euro | EUR | 978 | 2 |
        | Greece — Euro | EUR | 978 | 2 |
        | Guadeloupe — Euro | EUR | 978 | 2 |
        | Holy See (The) — Euro | EUR | 978 | 2 |
        | Ireland — Euro | EUR | 978 | 2 |
        | Italy — Euro | EUR | 978 | 2 |
        | Latvia — Euro | EUR | 978 | 2 |
        | Lithuania — Euro | EUR | 978 | 2 |
        | Luxembourg — Euro | EUR | 978 | 2 |
        | Malta — Euro | EUR | 978 | 2 |
        | Martinique — Euro | EUR | 978 | 2 |
        | Mayotte — Euro | EUR | 978 | 2 |
        | Monaco — Euro | EUR | 978 | 2 |
        | Montenegro — Euro | EUR | 978 | 2 |
        | Netherlands (The) — Euro | EUR | 978 | 2 |
        | Portugal — Euro | EUR | 978 | 2 |
        | Réunion — Euro | EUR | 978 | 2 |
        | Saint Barthélemy — Euro | EUR | 978 | 2 |
        | Saint Martin (French Part) — Euro | EUR | 978 | 2 |
        | Saint Pierre And Miquelon — Euro | EUR | 978 | 2 |
        | San Marino — Euro | EUR | 978 | 2 |
        | Slovakia — Euro | EUR | 978 | 2 |
        | Slovenia — Euro | EUR | 978 | 2 |
        | Spain — Euro | EUR | 978 | 2 |

        </details>

        **US ISO Currency Codes**

        <details>

        | Country — Currency | Code | Numeric | Minor Units |
        | ------------------ | ---- | ------- | ----------- |
        | American Samoa — US Dollar | USD | 840 | 2 |
        | Bonaire, Sint Eustatius And Saba — US Dollar | USD | 840 | 2 |
        | British Indian Ocean Territory (The) — US Dollar | USD | 840 | 2 |
        | Ecuador — US Dollar | USD | 840 | 2 |
        | El Salvador — US Dollar | USD | 840 | 2 |
        | Guam — US Dollar | USD | 840 | 2 |
        | Haiti — US Dollar | USD | 840 | 2 |
        | Marshall Islands (The) — US Dollar | USD | 840 | 2 |
        | Micronesia (Federated States Of) — US Dollar | USD | 840 | 2 |
        | Northern Mariana Islands (The) — US Dollar | USD | 840 | 2 |
        | Palau — US Dollar | USD | 840 | 2 |
        | Panama — US Dollar | USD | 840 | 2 |
        | Puerto Rico — US Dollar | USD | 840 | 2 |
        | Timor-leste — US Dollar | USD | 840 | 2 |
        | Turks And Caicos Islands (The) — US Dollar | USD | 840 | 2 |
        | United States Minor Outlying Islands (The) — US Dollar | USD | 840 | 2 |
        | United States Of America (The) — US Dollar | USD | 840 | 2 |
        | Virgin Islands (British) — US Dollar | USD | 840 | 2 |
        | Virgin Islands (U.s.) — US Dollar | USD | 840 | 2 |

        </details>

        **Other ISO Currency Codes**

        <details>

        | Country — Currency | Code | Numeric | Minor Units |
        | ------------------ | ---- | ------- | ----------- |
        | Afghanistan — Afghani | AFN | 971 | 2 |
        | Albania — Lek | ALL | 008 | 2 |
        | Algeria — Algerian Dinar | DZD | 012 | 2 |
        | Angola — Kwanza | AOA | 973 | 2 |
        | Anguilla — East Caribbean Dollar | XCD | 951 | 2 |
        | Antigua And Barbuda — East Caribbean Dollar | XCD | 951 | 2 |
        | Argentina — Argentine Peso | ARS | 032 | 2 |
        | Armenia — Armenian Dram | AMD | 051 | 2 |
        | Aruba — Aruban Florin | AWG | 533 | 2 |
        | Australia — Australian Dollar | AUD | 036 | 2 |
        | Azerbaijan — Azerbaijan Manat | AZN | 944 | 2 |
        | Bahamas (The) — Bahamian Dollar | BSD | 044 | 2 |
        | Bahrain — Bahraini Dinar | BHD | 048 | 3 |
        | Bangladesh — Taka | BDT | 050 | 2 |
        | Barbados — Barbados Dollar | BBD | 052 | 2 |
        | Belarus — Belarusian Ruble | BYN | 933 | 2 |
        | Belize — Belize Dollar | BZD | 084 | 2 |
        | Benin — CFA Franc BCEAO | XOF | 952 | 0 |
        | Bermuda — Bermudian Dollar | BMD | 060 | 2 |
        | Bhutan — Indian Rupee | INR | 356 | 2 |
        | Bhutan — Ngultrum | BTN | 064 | 2 |
        | Bolivia (Plurinational State Of) — Boliviano | BOB | 068 | 2 |
        | Bosnia And Herzegovina — Convertible Mark | BAM | 977 | 2 |
        | Botswana — Pula | BWP | 072 | 2 |
        | Bouvet Island — Norwegian Krone | NOK | 578 | 2 |
        | Brazil — Brazilian Real | BRL | 986 | 2 |
        | Brunei Darussalam — Brunei Dollar | BND | 096 | 2 |
        | Bulgaria — Bulgarian Lev | BGN | 975 | 2 |
        | Burkina Faso — CFA Franc BCEAO | XOF | 952 | 0 |
        | Burundi — Burundi Franc | BIF | 108 | 0 |
        | Cabo Verde — Cabo Verde Escudo | CVE | 132 | 2 |
        | Cambodia — Riel | KHR | 116 | 2 |
        | Cameroon — CFA Franc BEAC | XAF | 950 | 0 |
        | Canada — Canadian Dollar | CAD | 124 | 2 |
        | Cayman Islands (The) — Cayman Islands Dollar | KYD | 136 | 2 |
        | Central African Republic (The) — CFA Franc BEAC | XAF | 950 | 0 |
        | Chad — CFA Franc BEAC | XAF | 950 | 0 |
        | Chile — Chilean Peso | CLP | 152 | 0 |
        | China — Yuan Renminbi | CNY | 156 | 2 |
        | Christmas Island — Australian Dollar | AUD | 036 | 2 |
        | Cocos (Keeling) Islands (The) — Australian Dollar | AUD | 036 | 2 |
        | Colombia — Colombian Peso | COP | 170 | 2 |
        | Comoros (The) — Comorian Franc | KMF | 174 | 0 |
        | Congo (The Democratic Republic Of The) — Congolese Franc | CDF | 976 | 2 |
        | Congo (The) — CFA Franc BEAC | XAF | 950 | 0 |
        | Cook Islands (The) — New Zealand Dollar | NZD | 554 | 2 |
        | Costa Rica — Costa Rican Colon | CRC | 188 | 2 |
        | Côte D'ivoire — CFA Franc BCEAO | XOF | 952 | 0 |
        | Croatia — Kuna | HRK | 191 | 2 |
        | Cuba — Cuban Peso | CUP | 192 | 2 |
        | Cuba — Peso Convertible | CUC | 931 | 2 |
        | Curaçao — Netherlands Antillean Guilder | ANG | 532 | 2 |
        | Czechia — Czech Koruna | CZK | 203 | 2 |
        | Denmark — Danish Krone | DKK | 208 | 2 |
        | Djibouti — Djibouti Franc | DJF | 262 | 0 |
        | Dominica — East Caribbean Dollar | XCD | 951 | 2 |
        | Dominican Republic (The) — Dominican Peso | DOP | 214 | 2 |
        | Egypt — Egyptian Pound | EGP | 818 | 2 |
        | El Salvador — El Salvador Colon | SVC | 222 | 2 |
        | Equatorial Guinea — CFA Franc BEAC | XAF | 950 | 0 |
        | Eritrea — Nakfa | ERN | 232 | 2 |
        | Ethiopia — Ethiopian Birr | ETB | 230 | 2 |
        | Falkland Islands (The) [Malvinas] — Falkland Islands Pound | FKP | 238 | 2 |
        | Faroe Islands (The) — Danish Krone | DKK | 208 | 2 |
        | Fiji — Fiji Dollar | FJD | 242 | 2 |
        | French Polynesia — CFP Franc | XPF | 953 | 0 |
        | Gabon — CFA Franc BEAC | XAF | 950 | 0 |
        | Gambia (The) — Dalasi | GMD | 270 | 2 |
        | Georgia — Lari | GEL | 981 | 2 |
        | Ghana — Ghana Cedi | GHS | 936 | 2 |
        | Gibraltar — Gibraltar Pound | GIP | 292 | 2 |
        | Greenland — Danish Krone | DKK | 208 | 2 |
        | Grenada — East Caribbean Dollar | XCD | 951 | 2 |
        | Guatemala — Quetzal | GTQ | 320 | 2 |
        | Guernsey — Pound Sterling | GBP | 826 | 2 |
        | Guinea — Guinean Franc | GNF | 324 | 0 |
        | Guinea-bissau — CFA Franc BCEAO | XOF | 952 | 0 |
        | Guyana — Guyana Dollar | GYD | 328 | 2 |
        | Haiti — Gourde | HTG | 332 | 2 |
        | Heard Island And Mcdonald Islands — Australian Dollar | AUD | 036 | 2 |
        | Honduras — Lempira | HNL | 340 | 2 |
        | Hong Kong — Hong Kong Dollar | HKD | 344 | 2 |
        | Hungary — Forint | HUF | 348 | 2 |
        | Iceland — Iceland Krona | ISK | 352 | 0 |
        | India — Indian Rupee | INR | 356 | 2 |
        | Indonesia — Rupiah | IDR | 360 | 2 |
        | Iran (Islamic Republic Of) — Iranian Rial | IRR | 364 | 2 |
        | Iraq — Iraqi Dinar | IQD | 368 | 3 |
        | Isle Of Man — Pound Sterling | GBP | 826 | 2 |
        | Israel — New Israeli Sheqel | ILS | 376 | 2 |
        | Jamaica — Jamaican Dollar | JMD | 388 | 2 |
        | Japan — Yen | JPY | 392 | 0 |
        | Jersey — Pound Sterling | GBP | 826 | 2 |
        | Jordan — Jordanian Dinar | JOD | 400 | 3 |
        | Kazakhstan — Tenge | KZT | 398 | 2 |
        | Kenya — Kenyan Shilling | KES | 404 | 2 |
        | Kiribati — Australian Dollar | AUD | 036 | 2 |
        | Korea (The Democratic People’s Republic Of) — North Korean Won | KPW | 408 | 2 |
        | Korea (The Republic Of) — Won | KRW | 410 | 0 |
        | Kuwait — Kuwaiti Dinar | KWD | 414 | 3 |
        | Kyrgyzstan — Som | KGS | 417 | 2 |
        | Lao People’s Democratic Republic (The) — Lao Kip | LAK | 418 | 2 |
        | Lebanon — Lebanese Pound | LBP | 422 | 2 |
        | Lesotho — Loti | LSL | 426 | 2 |
        | Lesotho — Rand | ZAR | 710 | 2 |
        | Liberia — Liberian Dollar | LRD | 430 | 2 |
        | Libya — Libyan Dinar | LYD | 434 | 3 |
        | Liechtenstein — Swiss Franc | CHF | 756 | 2 |
        | Macao — Pataca | MOP | 446 | 2 |
        | Macedonia (The Former Yugoslav Republic Of) — Denar | MKD | 807 | 2 |
        | Madagascar — Malagasy Ariary | MGA | 969 | 2 |
        | Malawi — Malawi Kwacha | MWK | 454 | 2 |
        | Malaysia — Malaysian Ringgit | MYR | 458 | 2 |
        | Maldives — Rufiyaa | MVR | 462 | 2 |
        | Mali — CFA Franc BCEAO | XOF | 952 | 0 |
        | Mauritania — Ouguiya | MRU | 929 | 2 |
        | Mauritius — Mauritius Rupee | MUR | 480 | 2 |
        | Mexico — Mexican Peso | MXN | 484 | 2 |
        | Moldova (The Republic Of) — Moldovan Leu | MDL | 498 | 2 |
        | Mongolia — Tugrik | MNT | 496 | 2 |
        | Montserrat — East Caribbean Dollar | XCD | 951 | 2 |
        | Morocco — Moroccan Dirham | MAD | 504 | 2 |
        | Mozambique — Mozambique Metical | MZN | 943 | 2 |
        | Myanmar — Kyat | MMK | 104 | 2 |
        | Namibia — Namibia Dollar | NAD | 516 | 2 |
        | Namibia — Rand | ZAR | 710 | 2 |
        | Nauru — Australian Dollar | AUD | 036 | 2 |
        | Nepal — Nepalese Rupee | NPR | 524 | 2 |
        | New Caledonia — CFP Franc | XPF | 953 | 0 |
        | New Zealand — New Zealand Dollar | NZD | 554 | 2 |
        | Nicaragua — Cordoba Oro | NIO | 558 | 2 |
        | Niger (The) — CFA Franc BCEAO | XOF | 952 | 0 |
        | Nigeria — Naira | NGN | 566 | 2 |
        | Niue — New Zealand Dollar | NZD | 554 | 2 |
        | Norfolk Island — Australian Dollar | AUD | 036 | 2 |
        | Norway — Norwegian Krone | NOK | 578 | 2 |
        | Oman — Rial Omani | OMR | 512 | 3 |
        | Pakistan — Pakistan Rupee | PKR | 586 | 2 |
        | Panama — Balboa | PAB | 590 | 2 |
        | Papua New Guinea — Kina | PGK | 598 | 2 |
        | Paraguay — Guarani | PYG | 600 | 0 |
        | Peru — Sol | PEN | 604 | 2 |
        | Philippines (The) — Philippine Peso | PHP | 608 | 2 |
        | Pitcairn — New Zealand Dollar | NZD | 554 | 2 |
        | Poland — Zloty | PLN | 985 | 2 |
        | Qatar — Qatari Rial | QAR | 634 | 2 |
        | Romania — Romanian Leu | RON | 946 | 2 |
        | Russian Federation (The) — Russian Ruble | RUB | 643 | 2 |
        | Rwanda — Rwanda Franc | RWF | 646 | 0 |
        | Saint Helena, Ascension And Tristan Da Cunha — Saint Helena Pound | SHP | 654 | 2 |
        | Saint Kitts And Nevis — East Caribbean Dollar | XCD | 951 | 2 |
        | Saint Lucia — East Caribbean Dollar | XCD | 951 | 2 |
        | Saint Vincent And The Grenadines — East Caribbean Dollar | XCD | 951 | 2 |
        | Samoa — Tala | WST | 882 | 2 |
        | Sao Tome And Principe — Dobra | STN | 930 | 2 |
        | Saudi Arabia — Saudi Riyal | SAR | 682 | 2 |
        | Senegal — CFA Franc BCEAO | XOF | 952 | 0 |
        | Serbia — Serbian Dinar | RSD | 941 | 2 |
        | Seychelles — Seychelles Rupee | SCR | 690 | 2 |
        | Sierra Leone — Leone | SLL | 694 | 2 |
        | Singapore — Singapore Dollar | SGD | 702 | 2 |
        | Sint Maarten (Dutch Part) — Netherlands Antillean Guilder | ANG | 532 | 2 |
        | Solomon Islands — Solomon Islands Dollar | SBD | 090 | 2 |
        | Somalia — Somali Shilling | SOS | 706 | 2 |
        | South Africa — Rand | ZAR | 710 | 2 |
        | South Sudan — South Sudanese Pound | SSP | 728 | 2 |
        | Sri Lanka — Sri Lanka Rupee | LKR | 144 | 2 |
        | Sudan (The) — Sudanese Pound | SDG | 938 | 2 |
        | Suriname — Surinam Dollar | SRD | 968 | 2 |
        | Svalbard And Jan Mayen — Norwegian Krone | NOK | 578 | 2 |
        | Eswatini — Lilangeni | SZL | 748 | 2 |
        | Sweden — Swedish Krona | SEK | 752 | 2 |
        | Switzerland — Swiss Franc | CHF | 756 | 2 |
        | Syrian Arab Republic — Syrian Pound | SYP | 760 | 2 |
        | Taiwan (Province Of China) — New Taiwan Dollar | TWD | 901 | 2 |
        | Tajikistan — Somoni | TJS | 972 | 2 |
        | Tanzania, United Republic Of — Tanzanian Shilling | TZS | 834 | 2 |
        | Thailand — Baht | THB | 764 | 2 |
        | Togo — CFA Franc BCEAO | XOF | 952 | 0 |
        | Tokelau — New Zealand Dollar | NZD | 554 | 2 |
        | Tonga — Pa’anga | TOP | 776 | 2 |
        | Trinidad And Tobago — Trinidad and Tobago Dollar | TTD | 780 | 2 |
        | Tunisia — Tunisian Dinar | TND | 788 | 3 |
        | Turkey — Turkish Lira | TRY | 949 | 2 |
        | Turkmenistan — Turkmenistan New Manat | TMT | 934 | 2 |
        | Tuvalu — Australian Dollar | AUD | 036 | 2 |
        | Uganda — Uganda Shilling | UGX | 800 | 0 |
        | Ukraine — Hryvnia | UAH | 980 | 2 |
        | United Arab Emirates (The) — UAE Dirham | AED | 784 | 2 |
        | United Kingdom Of Great Britain And Northern Ireland (The) — Pound Sterling | GBP | 826 | 2 |
        | Uruguay — Peso Uruguayo | UYU | 858 | 2 |
        | Uruguay — Unidad Previsional | UYW | 927 | 4 |
        | Uzbekistan — Uzbekistan Sum | UZS | 860 | 2 |
        | Vanuatu — Vatu | VUV | 548 | 0 |
        | Venezuela (Bolivarian Republic Of) — Bolívar Soberano | VES | 928 | 2 |
        | Viet Nam — Dong | VND | 704 | 0 |
        | Wallis And Futuna — CFP Franc | XPF | 953 | 0 |
        | Western Sahara — Moroccan Dirham | MAD | 504 | 2 |
        | Yemen — Yemeni Rial | YER | 886 | 2 |
        | Zambia — Zambian Kwacha | ZMW | 967 | 2 |
        | Zimbabwe — Zimbabwe Dollar | ZWL | 932 | 2 |

        </details>
      externalDocs:
        description: Find more info here
        url: https://www.iso.org/iso-4217-currency-codes.html
      example: EUR
    FeeSegments:
      type: object
      description: Segments of which the total interchange fee is made up
      properties:
        currency:
          description: Currency the fee is calculated in
          $ref: '#/components/schemas/openapi_components-schemas-currencyCode-4'
        fixed:
          description: Fixed fee in minor units
          type: number
          format: float
        basisPoints:
          description: Basis points of transaction amount fee
          type: number
          format: float
        max:
          description: Maximum fee in minor units
          type: number
          format: float
        min:
          description: Minimum fee in minor units
          type: number
          format: float
    floatAmountValue:
      type: number
      format: float
      description: |
        The amount in minor units with decimal precision. For example `$0.345` should be encoded as `34.5`. Note that not all
        currencies have 2 minor units. Some have three or zero.
    FloatAmount:
      type: object
      required:
        - value
        - currency
      additionalProperties: false
      description: |
        An amount encoded as an object with a `value` in minor units and a `currency` code.
      properties:
        value:
          $ref: '#/components/schemas/floatAmountValue'
        currency:
          $ref: '#/components/schemas/openapi_components-schemas-currencyCode-4'
    rate:
      type: object
      properties:
        date:
          description: The date of currency rate
          type: string
          format: date
        source:
          $ref: '#/components/schemas/openapi_components-schemas-currencyCode-4'
        target:
          $ref: '#/components/schemas/openapi_components-schemas-currencyCode-4'
        rate:
          description: Rate used to convert from source to target
          type: integer
          format: int32
        exponent:
          description: Indicates precision of the rate
          type: integer
          format: int32
        operation:
          type: string
          enum:
            - multiply
            - divide
        type:
          type: string
          enum:
            - buy
            - mid
            - sell
    VisaFeeDesignator:
      type: object
      required:
        - feeDescriptor
      properties:
        feeDescriptor:
          type: string
        feeProgramIndicator:
          type: string
    BusinessServiceArrangement:
      type: object
      required:
        - cardProgramIdentifier
        - type
        - idCode
      properties:
        cardProgramIdentifier:
          type: string
        type:
          type: string
        idCode:
          type: string
        priority:
          type: string
        selectionEnforcementIndicator:
          type: string
    MastercardFeeDesignator:
      type: object
      required:
        - ird
        - businessServiceArrangement
      properties:
        ird:
          type: string
        businessServiceArrangement:
          $ref: '#/components/schemas/BusinessServiceArrangement'
    BancontactFeeDesignator:
      type: object
      properties:
        description:
          type: string
        feeCode:
          type: string
    InterchangeFeeEstimateResponse:
      type: object
      description: Estimated value under conditions of dates
      required:
        - segments
        - feeDate
        - amount
        - rates
        - designator
      properties:
        segments:
          $ref: '#/components/schemas/FeeSegments'
        feeDate:
          type: string
          format: date
          description: The date of network references files used to calculate the fee
        amount:
          description: The converted total interchange fee amount
          $ref: '#/components/schemas/FloatAmount'
        rates:
          type: array
          items:
            $ref: '#/components/schemas/rate'
            minItems: 0
        designator:
          oneOf:
            - $ref: '#/components/schemas/VisaFeeDesignator'
            - $ref: '#/components/schemas/MastercardFeeDesignator'
            - $ref: '#/components/schemas/BancontactFeeDesignator'
    amountValueInteger:
      type: number
      format: int64
      minimum: 0
      description: |
        The amount in minor units. For example `$12.34` should be encoded as `1234`. Note that not all
        currencies have 2 minor units. Some have three or zero.
    openapi_components-schemas-currencyCode-5:
      type: string
      enum:
        - EUR
        - USD
        - AFN
        - ALL
        - DZD
        - AOA
        - XCD
        - ARS
        - AMD
        - AWG
        - AUD
        - AZN
        - BSD
        - BHD
        - BDT
        - BBD
        - BYN
        - BZD
        - XOF
        - BMD
        - INR
        - BTN
        - BOB
        - BAM
        - BWP
        - NOK
        - BRL
        - BND
        - BGN
        - BIF
        - CVE
        - KHR
        - XAF
        - CAD
        - KYD
        - CLP
        - CNY
        - COP
        - KMF
        - CDF
        - NZD
        - CRC
        - HRK
        - CUP
        - CUC
        - ANG
        - CZK
        - DKK
        - DJF
        - DOP
        - EGP
        - SVC
        - ERN
        - ETB
        - FKP
        - FJD
        - XPF
        - GMD
        - GEL
        - GHS
        - GIP
        - GTQ
        - GBP
        - GNF
        - GYD
        - HTG
        - HNL
        - HKD
        - HUF
        - ISK
        - IDR
        - IRR
        - IQD
        - ILS
        - JMD
        - JPY
        - JOD
        - KZT
        - KES
        - KPW
        - KRW
        - KWD
        - KGS
        - LAK
        - LBP
        - LSL
        - ZAR
        - LRD
        - LYD
        - CHF
        - MOP
        - MKD
        - MGA
        - MWK
        - MYR
        - MVR
        - MRU
        - MUR
        - MXN
        - MDL
        - MNT
        - MAD
        - MZN
        - MMK
        - NAD
        - NPR
        - NIO
        - NGN
        - OMR
        - PKR
        - PAB
        - PGK
        - PYG
        - PEN
        - PHP
        - PLN
        - QAR
        - RON
        - RUB
        - RWF
        - SHP
        - WST
        - STN
        - SAR
        - RSD
        - SCR
        - SLL
        - SGD
        - SBD
        - SOS
        - SSP
        - LKR
        - SDG
        - SRD
        - SZL
        - SEK
        - SYP
        - TWD
        - TJS
        - TZS
        - THB
        - TOP
        - TTD
        - TND
        - TRY
        - TMT
        - UGX
        - UAH
        - AED
        - UYU
        - UYW
        - UZS
        - VUV
        - VES
        - VND
        - YER
        - ZMW
        - ZWL
      description: |-
        The three-letter ISO code of the currency.


        **European ISO Currency Codes**

        <details>

        | Country — Currency | Code | Numeric | Minor Units |
        | ------------------ | ---- | ------- | ----------- |
        | Åland Islands — Euro | EUR | 978 | 2 |
        | Andorra — Euro | EUR | 978 | 2 |
        | Austria — Euro | EUR | 978 | 2 |
        | Belgium — Euro | EUR | 978 | 2 |
        | Cyprus — Euro | EUR | 978 | 2 |
        | Estonia — Euro | EUR | 978 | 2 |
        | European Union — Euro | EUR | 978 | 2 |
        | Finland — Euro | EUR | 978 | 2 |
        | France — Euro | EUR | 978 | 2 |
        | French Guiana — Euro | EUR | 978 | 2 |
        | French Southern Territories (The) — Euro | EUR | 978 | 2 |
        | Germany — Euro | EUR | 978 | 2 |
        | Greece — Euro | EUR | 978 | 2 |
        | Guadeloupe — Euro | EUR | 978 | 2 |
        | Holy See (The) — Euro | EUR | 978 | 2 |
        | Ireland — Euro | EUR | 978 | 2 |
        | Italy — Euro | EUR | 978 | 2 |
        | Latvia — Euro | EUR | 978 | 2 |
        | Lithuania — Euro | EUR | 978 | 2 |
        | Luxembourg — Euro | EUR | 978 | 2 |
        | Malta — Euro | EUR | 978 | 2 |
        | Martinique — Euro | EUR | 978 | 2 |
        | Mayotte — Euro | EUR | 978 | 2 |
        | Monaco — Euro | EUR | 978 | 2 |
        | Montenegro — Euro | EUR | 978 | 2 |
        | Netherlands (The) — Euro | EUR | 978 | 2 |
        | Portugal — Euro | EUR | 978 | 2 |
        | Réunion — Euro | EUR | 978 | 2 |
        | Saint Barthélemy — Euro | EUR | 978 | 2 |
        | Saint Martin (French Part) — Euro | EUR | 978 | 2 |
        | Saint Pierre And Miquelon — Euro | EUR | 978 | 2 |
        | San Marino — Euro | EUR | 978 | 2 |
        | Slovakia — Euro | EUR | 978 | 2 |
        | Slovenia — Euro | EUR | 978 | 2 |
        | Spain — Euro | EUR | 978 | 2 |

        </details>

        **US ISO Currency Codes**

        <details>

        | Country — Currency | Code | Numeric | Minor Units |
        | ------------------ | ---- | ------- | ----------- |
        | American Samoa — US Dollar | USD | 840 | 2 |
        | Bonaire, Sint Eustatius And Saba — US Dollar | USD | 840 | 2 |
        | British Indian Ocean Territory (The) — US Dollar | USD | 840 | 2 |
        | Ecuador — US Dollar | USD | 840 | 2 |
        | El Salvador — US Dollar | USD | 840 | 2 |
        | Guam — US Dollar | USD | 840 | 2 |
        | Haiti — US Dollar | USD | 840 | 2 |
        | Marshall Islands (The) — US Dollar | USD | 840 | 2 |
        | Micronesia (Federated States Of) — US Dollar | USD | 840 | 2 |
        | Northern Mariana Islands (The) — US Dollar | USD | 840 | 2 |
        | Palau — US Dollar | USD | 840 | 2 |
        | Panama — US Dollar | USD | 840 | 2 |
        | Puerto Rico — US Dollar | USD | 840 | 2 |
        | Timor-leste — US Dollar | USD | 840 | 2 |
        | Turks And Caicos Islands (The) — US Dollar | USD | 840 | 2 |
        | United States Minor Outlying Islands (The) — US Dollar | USD | 840 | 2 |
        | United States Of America (The) — US Dollar | USD | 840 | 2 |
        | Virgin Islands (British) — US Dollar | USD | 840 | 2 |
        | Virgin Islands (U.s.) — US Dollar | USD | 840 | 2 |

        </details>

        **Other ISO Currency Codes**

        <details>

        | Country — Currency | Code | Numeric | Minor Units |
        | ------------------ | ---- | ------- | ----------- |
        | Afghanistan — Afghani | AFN | 971 | 2 |
        | Albania — Lek | ALL | 008 | 2 |
        | Algeria — Algerian Dinar | DZD | 012 | 2 |
        | Angola — Kwanza | AOA | 973 | 2 |
        | Anguilla — East Caribbean Dollar | XCD | 951 | 2 |
        | Antigua And Barbuda — East Caribbean Dollar | XCD | 951 | 2 |
        | Argentina — Argentine Peso | ARS | 032 | 2 |
        | Armenia — Armenian Dram | AMD | 051 | 2 |
        | Aruba — Aruban Florin | AWG | 533 | 2 |
        | Australia — Australian Dollar | AUD | 036 | 2 |
        | Azerbaijan — Azerbaijan Manat | AZN | 944 | 2 |
        | Bahamas (The) — Bahamian Dollar | BSD | 044 | 2 |
        | Bahrain — Bahraini Dinar | BHD | 048 | 3 |
        | Bangladesh — Taka | BDT | 050 | 2 |
        | Barbados — Barbados Dollar | BBD | 052 | 2 |
        | Belarus — Belarusian Ruble | BYN | 933 | 2 |
        | Belize — Belize Dollar | BZD | 084 | 2 |
        | Benin — CFA Franc BCEAO | XOF | 952 | 0 |
        | Bermuda — Bermudian Dollar | BMD | 060 | 2 |
        | Bhutan — Indian Rupee | INR | 356 | 2 |
        | Bhutan — Ngultrum | BTN | 064 | 2 |
        | Bolivia (Plurinational State Of) — Boliviano | BOB | 068 | 2 |
        | Bosnia And Herzegovina — Convertible Mark | BAM | 977 | 2 |
        | Botswana — Pula | BWP | 072 | 2 |
        | Bouvet Island — Norwegian Krone | NOK | 578 | 2 |
        | Brazil — Brazilian Real | BRL | 986 | 2 |
        | Brunei Darussalam — Brunei Dollar | BND | 096 | 2 |
        | Bulgaria — Bulgarian Lev | BGN | 975 | 2 |
        | Burkina Faso — CFA Franc BCEAO | XOF | 952 | 0 |
        | Burundi — Burundi Franc | BIF | 108 | 0 |
        | Cabo Verde — Cabo Verde Escudo | CVE | 132 | 2 |
        | Cambodia — Riel | KHR | 116 | 2 |
        | Cameroon — CFA Franc BEAC | XAF | 950 | 0 |
        | Canada — Canadian Dollar | CAD | 124 | 2 |
        | Cayman Islands (The) — Cayman Islands Dollar | KYD | 136 | 2 |
        | Central African Republic (The) — CFA Franc BEAC | XAF | 950 | 0 |
        | Chad — CFA Franc BEAC | XAF | 950 | 0 |
        | Chile — Chilean Peso | CLP | 152 | 0 |
        | China — Yuan Renminbi | CNY | 156 | 2 |
        | Christmas Island — Australian Dollar | AUD | 036 | 2 |
        | Cocos (Keeling) Islands (The) — Australian Dollar | AUD | 036 | 2 |
        | Colombia — Colombian Peso | COP | 170 | 2 |
        | Comoros (The) — Comorian Franc | KMF | 174 | 0 |
        | Congo (The Democratic Republic Of The) — Congolese Franc | CDF | 976 | 2 |
        | Congo (The) — CFA Franc BEAC | XAF | 950 | 0 |
        | Cook Islands (The) — New Zealand Dollar | NZD | 554 | 2 |
        | Costa Rica — Costa Rican Colon | CRC | 188 | 2 |
        | Côte D'ivoire — CFA Franc BCEAO | XOF | 952 | 0 |
        | Croatia — Kuna | HRK | 191 | 2 |
        | Cuba — Cuban Peso | CUP | 192 | 2 |
        | Cuba — Peso Convertible | CUC | 931 | 2 |
        | Curaçao — Netherlands Antillean Guilder | ANG | 532 | 2 |
        | Czechia — Czech Koruna | CZK | 203 | 2 |
        | Denmark — Danish Krone | DKK | 208 | 2 |
        | Djibouti — Djibouti Franc | DJF | 262 | 0 |
        | Dominica — East Caribbean Dollar | XCD | 951 | 2 |
        | Dominican Republic (The) — Dominican Peso | DOP | 214 | 2 |
        | Egypt — Egyptian Pound | EGP | 818 | 2 |
        | El Salvador — El Salvador Colon | SVC | 222 | 2 |
        | Equatorial Guinea — CFA Franc BEAC | XAF | 950 | 0 |
        | Eritrea — Nakfa | ERN | 232 | 2 |
        | Ethiopia — Ethiopian Birr | ETB | 230 | 2 |
        | Falkland Islands (The) [Malvinas] — Falkland Islands Pound | FKP | 238 | 2 |
        | Faroe Islands (The) — Danish Krone | DKK | 208 | 2 |
        | Fiji — Fiji Dollar | FJD | 242 | 2 |
        | French Polynesia — CFP Franc | XPF | 953 | 0 |
        | Gabon — CFA Franc BEAC | XAF | 950 | 0 |
        | Gambia (The) — Dalasi | GMD | 270 | 2 |
        | Georgia — Lari | GEL | 981 | 2 |
        | Ghana — Ghana Cedi | GHS | 936 | 2 |
        | Gibraltar — Gibraltar Pound | GIP | 292 | 2 |
        | Greenland — Danish Krone | DKK | 208 | 2 |
        | Grenada — East Caribbean Dollar | XCD | 951 | 2 |
        | Guatemala — Quetzal | GTQ | 320 | 2 |
        | Guernsey — Pound Sterling | GBP | 826 | 2 |
        | Guinea — Guinean Franc | GNF | 324 | 0 |
        | Guinea-bissau — CFA Franc BCEAO | XOF | 952 | 0 |
        | Guyana — Guyana Dollar | GYD | 328 | 2 |
        | Haiti — Gourde | HTG | 332 | 2 |
        | Heard Island And Mcdonald Islands — Australian Dollar | AUD | 036 | 2 |
        | Honduras — Lempira | HNL | 340 | 2 |
        | Hong Kong — Hong Kong Dollar | HKD | 344 | 2 |
        | Hungary — Forint | HUF | 348 | 2 |
        | Iceland — Iceland Krona | ISK | 352 | 0 |
        | India — Indian Rupee | INR | 356 | 2 |
        | Indonesia — Rupiah | IDR | 360 | 2 |
        | Iran (Islamic Republic Of) — Iranian Rial | IRR | 364 | 2 |
        | Iraq — Iraqi Dinar | IQD | 368 | 3 |
        | Isle Of Man — Pound Sterling | GBP | 826 | 2 |
        | Israel — New Israeli Sheqel | ILS | 376 | 2 |
        | Jamaica — Jamaican Dollar | JMD | 388 | 2 |
        | Japan — Yen | JPY | 392 | 0 |
        | Jersey — Pound Sterling | GBP | 826 | 2 |
        | Jordan — Jordanian Dinar | JOD | 400 | 3 |
        | Kazakhstan — Tenge | KZT | 398 | 2 |
        | Kenya — Kenyan Shilling | KES | 404 | 2 |
        | Kiribati — Australian Dollar | AUD | 036 | 2 |
        | Korea (The Democratic People’s Republic Of) — North Korean Won | KPW | 408 | 2 |
        | Korea (The Republic Of) — Won | KRW | 410 | 0 |
        | Kuwait — Kuwaiti Dinar | KWD | 414 | 3 |
        | Kyrgyzstan — Som | KGS | 417 | 2 |
        | Lao People’s Democratic Republic (The) — Lao Kip | LAK | 418 | 2 |
        | Lebanon — Lebanese Pound | LBP | 422 | 2 |
        | Lesotho — Loti | LSL | 426 | 2 |
        | Lesotho — Rand | ZAR | 710 | 2 |
        | Liberia — Liberian Dollar | LRD | 430 | 2 |
        | Libya — Libyan Dinar | LYD | 434 | 3 |
        | Liechtenstein — Swiss Franc | CHF | 756 | 2 |
        | Macao — Pataca | MOP | 446 | 2 |
        | Macedonia (The Former Yugoslav Republic Of) — Denar | MKD | 807 | 2 |
        | Madagascar — Malagasy Ariary | MGA | 969 | 2 |
        | Malawi — Malawi Kwacha | MWK | 454 | 2 |
        | Malaysia — Malaysian Ringgit | MYR | 458 | 2 |
        | Maldives — Rufiyaa | MVR | 462 | 2 |
        | Mali — CFA Franc BCEAO | XOF | 952 | 0 |
        | Mauritania — Ouguiya | MRU | 929 | 2 |
        | Mauritius — Mauritius Rupee | MUR | 480 | 2 |
        | Mexico — Mexican Peso | MXN | 484 | 2 |
        | Moldova (The Republic Of) — Moldovan Leu | MDL | 498 | 2 |
        | Mongolia — Tugrik | MNT | 496 | 2 |
        | Montserrat — East Caribbean Dollar | XCD | 951 | 2 |
        | Morocco — Moroccan Dirham | MAD | 504 | 2 |
        | Mozambique — Mozambique Metical | MZN | 943 | 2 |
        | Myanmar — Kyat | MMK | 104 | 2 |
        | Namibia — Namibia Dollar | NAD | 516 | 2 |
        | Namibia — Rand | ZAR | 710 | 2 |
        | Nauru — Australian Dollar | AUD | 036 | 2 |
        | Nepal — Nepalese Rupee | NPR | 524 | 2 |
        | New Caledonia — CFP Franc | XPF | 953 | 0 |
        | New Zealand — New Zealand Dollar | NZD | 554 | 2 |
        | Nicaragua — Cordoba Oro | NIO | 558 | 2 |
        | Niger (The) — CFA Franc BCEAO | XOF | 952 | 0 |
        | Nigeria — Naira | NGN | 566 | 2 |
        | Niue — New Zealand Dollar | NZD | 554 | 2 |
        | Norfolk Island — Australian Dollar | AUD | 036 | 2 |
        | Norway — Norwegian Krone | NOK | 578 | 2 |
        | Oman — Rial Omani | OMR | 512 | 3 |
        | Pakistan — Pakistan Rupee | PKR | 586 | 2 |
        | Panama — Balboa | PAB | 590 | 2 |
        | Papua New Guinea — Kina | PGK | 598 | 2 |
        | Paraguay — Guarani | PYG | 600 | 0 |
        | Peru — Sol | PEN | 604 | 2 |
        | Philippines (The) — Philippine Peso | PHP | 608 | 2 |
        | Pitcairn — New Zealand Dollar | NZD | 554 | 2 |
        | Poland — Zloty | PLN | 985 | 2 |
        | Qatar — Qatari Rial | QAR | 634 | 2 |
        | Romania — Romanian Leu | RON | 946 | 2 |
        | Russian Federation (The) — Russian Ruble | RUB | 643 | 2 |
        | Rwanda — Rwanda Franc | RWF | 646 | 0 |
        | Saint Helena, Ascension And Tristan Da Cunha — Saint Helena Pound | SHP | 654 | 2 |
        | Saint Kitts And Nevis — East Caribbean Dollar | XCD | 951 | 2 |
        | Saint Lucia — East Caribbean Dollar | XCD | 951 | 2 |
        | Saint Vincent And The Grenadines — East Caribbean Dollar | XCD | 951 | 2 |
        | Samoa — Tala | WST | 882 | 2 |
        | Sao Tome And Principe — Dobra | STN | 930 | 2 |
        | Saudi Arabia — Saudi Riyal | SAR | 682 | 2 |
        | Senegal — CFA Franc BCEAO | XOF | 952 | 0 |
        | Serbia — Serbian Dinar | RSD | 941 | 2 |
        | Seychelles — Seychelles Rupee | SCR | 690 | 2 |
        | Sierra Leone — Leone | SLL | 694 | 2 |
        | Singapore — Singapore Dollar | SGD | 702 | 2 |
        | Sint Maarten (Dutch Part) — Netherlands Antillean Guilder | ANG | 532 | 2 |
        | Solomon Islands — Solomon Islands Dollar | SBD | 090 | 2 |
        | Somalia — Somali Shilling | SOS | 706 | 2 |
        | South Africa — Rand | ZAR | 710 | 2 |
        | South Sudan — South Sudanese Pound | SSP | 728 | 2 |
        | Sri Lanka — Sri Lanka Rupee | LKR | 144 | 2 |
        | Sudan (The) — Sudanese Pound | SDG | 938 | 2 |
        | Suriname — Surinam Dollar | SRD | 968 | 2 |
        | Svalbard And Jan Mayen — Norwegian Krone | NOK | 578 | 2 |
        | Eswatini — Lilangeni | SZL | 748 | 2 |
        | Sweden — Swedish Krona | SEK | 752 | 2 |
        | Switzerland — Swiss Franc | CHF | 756 | 2 |
        | Syrian Arab Republic — Syrian Pound | SYP | 760 | 2 |
        | Taiwan (Province Of China) — New Taiwan Dollar | TWD | 901 | 2 |
        | Tajikistan — Somoni | TJS | 972 | 2 |
        | Tanzania, United Republic Of — Tanzanian Shilling | TZS | 834 | 2 |
        | Thailand — Baht | THB | 764 | 2 |
        | Togo — CFA Franc BCEAO | XOF | 952 | 0 |
        | Tokelau — New Zealand Dollar | NZD | 554 | 2 |
        | Tonga — Pa’anga | TOP | 776 | 2 |
        | Trinidad And Tobago — Trinidad and Tobago Dollar | TTD | 780 | 2 |
        | Tunisia — Tunisian Dinar | TND | 788 | 3 |
        | Turkey — Turkish Lira | TRY | 949 | 2 |
        | Turkmenistan — Turkmenistan New Manat | TMT | 934 | 2 |
        | Tuvalu — Australian Dollar | AUD | 036 | 2 |
        | Uganda — Uganda Shilling | UGX | 800 | 0 |
        | Ukraine — Hryvnia | UAH | 980 | 2 |
        | United Arab Emirates (The) — UAE Dirham | AED | 784 | 2 |
        | United Kingdom Of Great Britain And Northern Ireland (The) — Pound Sterling | GBP | 826 | 2 |
        | Uruguay — Peso Uruguayo | UYU | 858 | 2 |
        | Uruguay — Unidad Previsional | UYW | 927 | 4 |
        | Uzbekistan — Uzbekistan Sum | UZS | 860 | 2 |
        | Vanuatu — Vatu | VUV | 548 | 0 |
        | Venezuela (Bolivarian Republic Of) — Bolívar Soberano | VES | 928 | 2 |
        | Viet Nam — Dong | VND | 704 | 0 |
        | Wallis And Futuna — CFP Franc | XPF | 953 | 0 |
        | Western Sahara — Moroccan Dirham | MAD | 504 | 2 |
        | Yemen — Yemeni Rial | YER | 886 | 2 |
        | Zambia — Zambian Kwacha | ZMW | 967 | 2 |
        | Zimbabwe — Zimbabwe Dollar | ZWL | 932 | 2 |

        </details>
      externalDocs:
        description: Find more info here
        url: https://www.iso.org/iso-4217-currency-codes.html
      example: EUR
    AmountRequest:
      type: object
      required:
        - value
        - currency
      additionalProperties: false
      description: |
        An amount encoded as an object with a `value` in minor units and a `currency` code.
      properties:
        value:
          $ref: '#/components/schemas/amountValueInteger'
        currency:
          $ref: '#/components/schemas/openapi_components-schemas-currencyCode-5'
    AcceptorKey:
      description: Uniquely identifies a Merchant Acceptor.
      type: string
      pattern: ^mac-[a-zA-Z0-9]+$
      example: mac-1JRadf2ffdfrdPMf2XrS2
    openapi_components-schemas-cardEntry-2:
      description: |
        The method used to capture the card details.
      type: string
      enum:
        - e-commerce
        - manual
        - card-on-file
        - token
        - token-on-file
        - terminal
      example: e-commerce
    payoutType:
      description: |
        - `online-gambling` - payouts of online casino winnings
        - `general-funds-disbursement` - generic funds disbursement transaction used to push funds from a business to an individual cardholder for various purposes. **Currently not supported for Mastercard.**
      type: string
      enum:
        - general-funds-disbursement
        - online-gambling
    fundingType:
      type: string
      enum:
        - account-to-account
        - wallet-transfer
    openapi_components-schemas-ChargeType:
      description: |
        Describes the kind of charge the merchant wants to submit.
      type: object
      required:
        - intent
        - cardEntry
      additionalProperties: true
      properties:
        intent:
          $ref: '#/components/schemas/intent'
        cardEntry:
          $ref: '#/components/schemas/openapi_components-schemas-cardEntry-2'
        payoutType:
          $ref: '#/components/schemas/payoutType'
        fundingType:
          $ref: '#/components/schemas/fundingType'
    schemas-ThreeDsAuthentication:
      description: 3DS settings
      type: string
      enum:
        - none
        - attempt
        - success
    SchemeFeeRequest:
      type: object
      additionalProperties: false
      required:
        - cardNumber
        - amount
        - merchantAcceptorKey
        - chargeType
        - threeDsAuthentication
      description: The request body format for a scheme fee estimation
      properties:
        cardNumber:
          $ref: '#/components/schemas/openapi_components-schemas-pan-2'
        amount:
          $ref: '#/components/schemas/AmountRequest'
        merchantAcceptorKey:
          $ref: '#/components/schemas/AcceptorKey'
        chargeType:
          $ref: '#/components/schemas/openapi_components-schemas-ChargeType'
        threeDsAuthentication:
          $ref: '#/components/schemas/schemas-ThreeDsAuthentication'
    components-schemas-cardNetwork:
      type: string
      description: The card network
      enum:
        - mastercard
        - visa
        - discover
        - bancontact
      example: mastercard
    conversionRateDate:
      type: string
      format: date
      description: |
        The date of the conversion rate. Conversion rates are published (daily) by the _card schemes_. 
        The method of publication introduces certain delays. Hence, this date may lie before the `feeDate`.
    currencyRateValue:
      type: string
      pattern: ^\d+(\.\d+)?$
      minLength: 1
      description: |
        The currency rate (decimal) value, encoded as string. If this value holds a fraction,
        it will use a `.` "dot" as _decimal separator_. Note that it may hold up to 11 decimals.
        Use a _platform specific number parser_ to convert this string into a numeric value
        without loosing precision.
    operation:
      type: string
      enum:
        - divide
        - multiply
    ConversionRate:
      title: Conversion Rate
      type: object
      required:
        - date
        - source
        - target
        - rate
        - operation
      additionalProperties: false
      properties:
        date:
          $ref: '#/components/schemas/conversionRateDate'
        source:
          $ref: '#/components/schemas/openapi_components-schemas-currencyCode-5'
        target:
          $ref: '#/components/schemas/openapi_components-schemas-currencyCode-5'
        rate:
          $ref: '#/components/schemas/currencyRateValue'
        operation:
          $ref: '#/components/schemas/operation'
    BaseSchemeFeeEstimate:
      type: object
      description: The scheme fee estimation.
      required:
        - cardNetwork
      properties:
        cardNetwork:
          $ref: '#/components/schemas/components-schemas-cardNetwork'
        conversionRates:
          type: array
          description: |
            A list of conversion rates, used to convert the `sourceAmount` into the `convertedSourceAmount`.
            This list is only present if currency conversion was applied. Currency conversion is only applied
            if the `feeRate` currency is different from the `sourceAmount` currency. Note that for certain
            currency conversions there is no single rate available. In such a case, multiple conversions are
            applied to convert the source amount into the fee rate currency.
          items:
            $ref: '#/components/schemas/ConversionRate'
          minItems: 1
    billingFrequency:
      type: string
      enum:
        - daily
        - weekly
        - monthly
        - quarterly
      description: |
        The _frequency_ or _interval_ at which this fee is witheld from settlement (or
        invoiced separately). This frequency also defines the _aggregation period_ for _tiered fees_.
    feeId:
      type: string
      pattern: ^[A-Z0-9]+$
      minLength: 1
      maxLength: 120
      description: |
        The Mastercard _"Event ID"_ or the Visa _"Billing line"_, as they appear on the corresponding
        invoices.
    feeDescription:
      type: string
      pattern: ^[a-zA-Z0-9-\/ \.—&()]+$
      minLength: 1
      maxLength: 120
      description: |
        The Mastercard _"Event description"_ or the Visa _"Description"_, as they appear on the corresponding
        invoices.
    sourceAmountImpact:
      type: string
      enum:
        - debit
        - credit
      description: |
        The impact of the source amount. This value has no relation to the the _direction_ of the funds
        of the transaction. By default every amount will have the impact set to `debit`. Only _corrections_ 
        will have a value set to `credit`. Note that corrections are not yet supported.
    sourceAmountValue:
      type: string
      pattern: ^\d+(\.\d+)?$
      minLength: 1
      description: |
        The source amount value, encoded as string. If this value holds a fraction,
        it will use a `.` "dot" as _decimal separator_. Note that it may hold up to 11 decimals.
        Use a _platform specific number parser_ to convert this string into a numeric value
        without loosing precision.
    sourceAmount:
      title: Amount
      description: The _source_ amount of the transaction event, in either the original (transaction) currency or the settlement currency. This amount is the amount to which the fee applies.
      type: object
      required:
        - impact
        - currency
        - value
      properties:
        impact:
          $ref: '#/components/schemas/sourceAmountImpact'
        currency:
          $ref: '#/components/schemas/openapi_components-schemas-currencyCode-5'
        value:
          $ref: '#/components/schemas/sourceAmountValue'
    convertedSourceAmount:
      title: Amount
      description: |
        The _source_ amount denominated in the `feeRate` currency. This field is only present when currency
        conversion has been applied. Currency conversion is only applied if the `feeRate` currency is
        different from the `sourceAmount` currency.
      type: object
      required:
        - impact
        - currency
        - value
      properties:
        impact:
          $ref: '#/components/schemas/sourceAmountImpact'
        currency:
          $ref: '#/components/schemas/openapi_components-schemas-currencyCode-5'
        value:
          $ref: '#/components/schemas/sourceAmountValue'
    tierId:
      type: string
      description: |
        The (optional) Mastercard _"Tier ID"_ for this fee, as it appears on the Mastercard invoice.
        Note that the presence of this field does not indicate if this fee has multiple _tiers_.
        See the `tiering` field.
      pattern: ^[A-Z0-9-]+$
      default: '-'
      minLength: 1
      maxLength: 120
    BaseFee:
      type: object
      required:
        - billingFrequency
        - feeId
        - feeDescription
        - sourceAmount
      properties:
        billingFrequency:
          $ref: '#/components/schemas/billingFrequency'
        feeId:
          $ref: '#/components/schemas/feeId'
        feeDescription:
          $ref: '#/components/schemas/feeDescription'
        sourceAmount:
          $ref: '#/components/schemas/sourceAmount'
        convertedSourceAmount:
          $ref: '#/components/schemas/convertedSourceAmount'
        tierId:
          $ref: '#/components/schemas/tierId'
    TieredEnum:
      type: string
      description: |
        The type of tiering. The value `volume` indicates that the applicable fee _tier_ is determined
        using the total `sourceAmount` for a given period. The value `count` indicates that the
        applicable _tier_ is determined using the total number of fees (transactions). The value `none`
        indicates that this fee is not tiered.
      enum:
        - count
        - volume
    numberOfTiers:
      type: integer
      description: |
        The number of tiers defined for this fee.
      minimum: 2
      maximum: 6
    feeRateType:
      type: string
      enum:
        - fixed
        - basisPoints
      description: |
        The type of fee. The value `fixed` indicates that the `value` field holds a _fixed_ fee amount,
        denominated in the specified `currency`. The value `basisPoints` indicates that the `value`
        fields holds the (decimal) number of basis points of the fee, applied to the `sourceAmount`
        or `convertedSourceAmount` in case the `currency` does not match the `sourceAmount` currency.
    BaseFeeRate:
      title: Base Fee Rate
      type: object
      required:
        - type
      properties:
        type:
          $ref: '#/components/schemas/feeRateType'
        currency:
          $ref: '#/components/schemas/openapi_components-schemas-currencyCode-5'
    impact:
      type: string
      enum:
        - debit
        - credit
    value:
      type: string
      description: |
        The value of the fee rate, encoded as string. If this value holds a fraction,
        it will use a `.` "dot" as _decimal separator_. Note that it may hold up to 11 decimals.
        Use a _platform specific number parser_ to convert this string into a numeric value
        without loosing precision. If the fee rate `type` is set to `fixed` then this value
        indicates the _fixed amount_ of the fee, denominated in the specified `currency`.
        When the fee rate `type` is set to `basisPoints`, then this value holds the (decimal)
        number of basis points of the fee, applied to the `sourceAmount` (or `convertedSourceAmount`
        in case the `feeRate` currency does not match the `sourceAmount` currency).
      pattern: ^\d+(\.\d+)?$
      minLength: 1
    BaseFeeRateTier:
      title: Base Fee Rate Tier
      type: object
      required:
        - impact
        - value
      properties:
        impact:
          $ref: '#/components/schemas/impact'
        value:
          $ref: '#/components/schemas/value'
    tierNumber:
      type: integer
      description: The _logical_ (1-based) tier number.
      minimum: 1
      maximum: 6
    upToIncluding:
      type: integer
      minimum: 0
      description: |
        This field indicates the value up to (including) which this _tier_ applies.
        If `tiering` is set to `volume`, this value indicates the total `sourceAmount`
        (in `feeRate` currency). If `tiering` is set to `count`, this value indicates the
        total number of fees.
    above:
      type: integer
      minimum: 0
      description: |
        This field indicates the value above which this _tier_ applies.
        If `tiering` is set to `volume`, this value indicates the total `sourceAmount`
        (in `feeRate` currency). If `tiering` is set to `count`, this value indicates the
        total number of fees.
    TieredFeeRateTierProperties:
      type: object
      required:
        - tierNumber
      properties:
        tierNumber:
          $ref: '#/components/schemas/tierNumber'
        upToIncluding:
          $ref: '#/components/schemas/upToIncluding'
        above:
          $ref: '#/components/schemas/above'
    TieredFeeRateTier:
      title: Tiered Fee Rate Tier
      allOf:
        - $ref: '#/components/schemas/BaseFeeRateTier'
        - $ref: '#/components/schemas/TieredFeeRateTierProperties'
    TieredFeeRate:
      title: Tiered Fee Rate
      description: |
        A _tiered_ fee rate defines multiple fee rates or _tiers_. Tier applicability is determined by the `upToIncluding`
        and `above` values. For a fee with `tiering` set to `count`, these properties hold the thresholds for the
        total number of fees in the defined period. Conversely, for a fee with `tiering` set to `volume` these
        properties define the threshold for the total source amount (denominated in the `feeRate` currency). The
        aggregation period is defined by the `billingFrequency` field.
      type: object
      required:
        - tiers
      properties:
        tiers:
          type: array
          items:
            $ref: '#/components/schemas/TieredFeeRateTier'
          minItems: 2
          maxItems: 6
    BaseBillingAmount:
      type: object
      description: |
        The actual billing amount for this fee, denominated in the `feeRate` currency (if defined) or
        the `sourceAmount` currency.
      required:
        - currency
      properties:
        currency:
          $ref: '#/components/schemas/openapi_components-schemas-currencyCode-5'
    BaseBillingAmountTier:
      title: Base Billing Amount Tier
      type: object
      required:
        - impact
        - value
      properties:
        impact:
          $ref: '#/components/schemas/impact'
        value:
          $ref: '#/components/schemas/value'
    TieredBillingAmountTierProperties:
      type: object
      required:
        - tierNumber
      properties:
        tierNumber:
          $ref: '#/components/schemas/tierNumber'
        upToIncluding:
          $ref: '#/components/schemas/upToIncluding'
        above:
          $ref: '#/components/schemas/above'
    TieredBillingAmountTier:
      title: Tiered Billing Amount Tier
      allOf:
        - $ref: '#/components/schemas/BaseBillingAmountTier'
        - $ref: '#/components/schemas/TieredBillingAmountTierProperties'
    TieredBillingAmount:
      title: Tiered Billing Amount
      type: object
      required:
        - amounts
      properties:
        amounts:
          type: array
          description: |
            A list of amounts. Each amount defines a billing amount value for the given tier, and a
            threshold value (`upToIncluding` or `above`) to which it applies.
          items:
            $ref: '#/components/schemas/TieredBillingAmountTier'
          minItems: 2
          maxItems: 6
    TieredFeeBillingAmount:
      allOf:
        - $ref: '#/components/schemas/BaseBillingAmount'
        - $ref: '#/components/schemas/TieredBillingAmount'
    TieredFeeProperties:
      type: object
      required:
        - tiering
        - numberOfTiers
        - feeRate
        - billingAmount
      properties:
        tiering:
          $ref: '#/components/schemas/TieredEnum'
        numberOfTiers:
          $ref: '#/components/schemas/numberOfTiers'
        feeRate:
          allOf:
            - $ref: '#/components/schemas/BaseFeeRate'
            - $ref: '#/components/schemas/TieredFeeRate'
        billingAmount:
          $ref: '#/components/schemas/TieredFeeBillingAmount'
    TieredFee:
      title: Tiered Fee
      description: A tiered scheme fee estimate. A _tiered_ fee defines multiple fee rates. When `tiering` is set to `count` the applicable tier is selected based on the total number of fees in a given period. When `tiering` is set to `volume` the applicable tier is selected based on the total source amount (denominated in the `feeRate` currency) of the fees in a given period. Tier applicability is determined by the `upToIncluding` and `above` values. For a fee with `tiering` set to `count`, these properties hold the thresholds for the total number of fees in the defined period. Conversely, for a fee with `tiering` set to `volume` these properties define the threshold for the total source amount (denominated in the `feeRate` currency). The aggregation period is defined by the `billingFrequency` field.
      allOf:
        - $ref: '#/components/schemas/BaseFee'
        - $ref: '#/components/schemas/TieredFeeProperties'
    NonTieredEnum:
      type: string
      description: |
        The type of tiering. The value `none` indicates that this fee is not tiered.
      enum:
        - none
    NonTieredFeeRateTier:
      title: Non-Tiered Fee Rate Tier
      allOf:
        - $ref: '#/components/schemas/BaseFeeRateTier'
    NonTieredFeeRate:
      title: Non Tiered Fee Rate
      description: |
        A _(non-tiered)_ fee rate.
      type: object
      required:
        - tiers
      properties:
        tiers:
          type: array
          items:
            $ref: '#/components/schemas/NonTieredFeeRateTier'
          minItems: 1
          maxItems: 1
    NonTieredBillingAmountTier:
      title: Non-Tiered Billing Amount Tier
      allOf:
        - $ref: '#/components/schemas/BaseBillingAmountTier'
    NonTieredBillingAmount:
      type: object
      required:
        - amounts
      properties:
        amounts:
          type: array
          items:
            $ref: '#/components/schemas/NonTieredBillingAmountTier'
          minItems: 1
          maxItems: 1
    NonTieredFeeBillingAmount:
      allOf:
        - $ref: '#/components/schemas/BaseBillingAmount'
        - $ref: '#/components/schemas/NonTieredBillingAmount'
    NonTieredFeeProperties:
      type: object
      required:
        - tiering
        - feeRate
        - billingAmount
      properties:
        tiering:
          $ref: '#/components/schemas/NonTieredEnum'
        feeRate:
          allOf:
            - $ref: '#/components/schemas/BaseFeeRate'
            - $ref: '#/components/schemas/NonTieredFeeRate'
        billingAmount:
          $ref: '#/components/schemas/NonTieredFeeBillingAmount'
    NonTieredFee:
      title: Non-Tiered Fee
      description: A non-tiered scheme fee estimate.
      allOf:
        - $ref: '#/components/schemas/BaseFee'
        - $ref: '#/components/schemas/NonTieredFeeProperties'
    PublicFee:
      type: object
      required:
        - tiering
      oneOf:
        - $ref: '#/components/schemas/TieredFee'
        - $ref: '#/components/schemas/NonTieredFee'
    PublicSchemeFeeEstimateFees:
      type: object
      required:
        - fees
      properties:
        fees:
          type: array
          description: List of scheme fees hit.
          items:
            $ref: '#/components/schemas/PublicFee'
    PublicSchemeFeeEstimate:
      description: The scheme fee estimation.
      allOf:
        - $ref: '#/components/schemas/BaseSchemeFeeEstimate'
        - $ref: '#/components/schemas/PublicSchemeFeeEstimateFees'
    schemas-errorType:
      type: string
      description: |
        A relative URI reference, this property can be used to perform automated error handling.
      enum:
        - /silverflow/problems/schemeFees/not-found
        - /silverflow/problems/schemeFees/card-network-mismatch
        - /silverflow/problems/schemeFees/card-network-not-supported
        - /silverflow/problems/bad-request
        - /silverflow/problems/internal-server-error
    CardNetworkMismatchErrorDetails:
      type: object
      required:
        - type
        - title
        - status
        - detail
        - instance
      properties:
        type:
          allOf:
            - $ref: '#/components/schemas/schemas-errorType'
            - enum:
                - /silverflow/problems/schemeFees/card-network-mismatch
        title:
          allOf:
            - $ref: '#/components/schemas/errorTitle'
            - enum:
                - Card network mismatch
        status:
          allOf:
            - $ref: '#/components/schemas/errorStatus'
            - enum:
                - 400
        detail:
          $ref: '#/components/schemas/errorDetail'
        instance:
          $ref: '#/components/schemas/errorInstance'
    NotFoundErrorDetails:
      type: object
      required:
        - type
        - title
        - status
        - detail
        - instance
      properties:
        type:
          allOf:
            - $ref: '#/components/schemas/schemas-errorType'
            - enum:
                - /silverflow/problems/schemeFees/not-found
        title:
          allOf:
            - $ref: '#/components/schemas/errorTitle'
            - enum:
                - Not found
        status:
          allOf:
            - $ref: '#/components/schemas/errorStatus'
            - enum:
                - 404
        detail:
          $ref: '#/components/schemas/errorDetail'
        instance:
          $ref: '#/components/schemas/errorInstance'
    MerchantsPage:
      allOf:
        - $ref: '#/components/schemas/Page'
        - type: object
          required:
            - merchants
          properties:
            merchants:
              type: array
              items:
                $ref: '#/components/schemas/Merchant'
    MerchantAcceptorTemplate:
      type: object
      description: |
        A template object used to bulk create merchant acceptors. <a class="experimental-tag-link" href="https://docs.silverflow.com/guides/api-lifecycle#tag/EXPERIMENTAL-Tag"><span class="tag experimental-tag">EXPERIMENTAL</span></a>
      required:
        - mid
        - mcc
        - description
        - doingBusinessAsName
        - binKeys
      additionalProperties: false
      properties:
        mid:
          $ref: '#/components/schemas/mid'
        mcc:
          $ref: '#/components/schemas/mcc'
        description:
          $ref: '#/components/schemas/ExtendedFreeTextField'
        doingBusinessAsName:
          $ref: '#/components/schemas/doingBusinessAsName'
        binKeys:
          type: array
          minItems: 1
          maxItems: 30
          items:
            $ref: '#/components/schemas/binKey'
        webshopUrl:
          $ref: '#/components/schemas/webshopUrl'
        pointOfSaleAddress:
          allOf:
            - description: Required for Point of Sale (POS) acceptors. For certain card network/country combinations the `stateOrProvince` value needs to be a recognised 2-letter uppercase state/province code. For `e-commerce` acceptors the `pointOfSaleAddress` can be omitted and the `registeredAddress` on the Merchant will be used instead.
            - $ref: '#/components/schemas/AddressCreate'
        tags:
          $ref: '#/components/schemas/Tags'
        reference:
          $ref: '#/components/schemas/reference'
        routes:
          type: array
          minItems: 1
          items:
            type: object
            additionalProperties: false
            required:
              - binKey
            properties:
              binKey:
                $ref: '#/components/schemas/binKey'
              route:
                $ref: '#/components/schemas/acceptorRoute'
    MerchantCreate:
      type: object
      required:
        - name
        - legalName
        - registeredAddress
        - customerInquiry
        - websiteUrl
      additionalProperties: false
      properties:
        name:
          allOf:
            - $ref: '#/components/schemas/ExtendedNameOfPeopleAndPlaces'
            - description: The display name of the Merchant. Clients not enrolled in the "extended character set beta" are still subject to the `^[\w ,\.\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u00FF-\/]+$` pattern for field input.
        legalName:
          allOf:
            - $ref: '#/components/schemas/ExtendedNameOfPeopleAndPlaces'
            - description: The legal name of the Merchant. Clients not enrolled in the "extended character set beta" are still subject to the `^[\w ,\.\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u00FF-\/]+$` pattern for field input.
        registeredAddress:
          allOf:
            - description: For eCommerce merchants certain card networks and countries (USA, Canada) the `stateOrProvince` field needs to be a recognised 2-letter uppercase state/province code.
            - $ref: '#/components/schemas/AddressCreate'
        customerInquiry:
          $ref: '#/components/schemas/phoneNumber'
        websiteUrl:
          $ref: '#/components/schemas/url'
        description:
          $ref: '#/components/schemas/ExtendedFreeTextField'
          description: The description of the Merchant. Clients not enrolled in the "extended character set beta" are still subject to the `[\w +=.,:;!?$@()-]+` pattern for field input.
        merchantReference:
          $ref: '#/components/schemas/merchantReference'
        tags:
          $ref: '#/components/schemas/Tags'
        merchantAcceptorTemplate:
          $ref: '#/components/schemas/MerchantAcceptorTemplate'
        taxRegistrationId:
          $ref: '#/components/schemas/taxRegistrationId'
        sellerEmail:
          description: A valid email address. Required for merchants to process Amex transactions
          allOf:
            - $ref: '#/components/schemas/email'
        businessType:
          $ref: '#/components/schemas/businessType'
    MerchantWithAcceptors:
      allOf:
        - $ref: '#/components/schemas/Merchant'
        - type: object
          properties:
            merchantAcceptors:
              type: array
              items:
                $ref: '#/components/schemas/Acceptor'
    MerchantMergeUpdate:
      type: object
      additionalProperties: false
      properties:
        name:
          allOf:
            - $ref: '#/components/schemas/ExtendedNameOfPeopleAndPlaces'
            - description: The display name of the Merchant. Clients not enrolled in the "extended character set beta" are still subject to the `^[\w ,\.\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u00FF-\/]+$` pattern for field input.
        description:
          allOf:
            - $ref: '#/components/schemas/ExtendedFreeTextField'
            - description: The description of the Merchant. Clients not enrolled in the "extended character set beta" are still subject to the `[\w +=.,:;!?$@()-]+` pattern for field input.
        legalName:
          allOf:
            - $ref: '#/components/schemas/ExtendedNameOfPeopleAndPlaces'
            - description: The legal name of the Merchant. Clients not enrolled in the "extended character set beta" are still subject to the `^[\w ,\.\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u00FF-\/]+$` pattern for field input.
        registeredAddress:
          allOf:
            - description: For eCommerce merchants residing in USA and Canada, certain card networks mandate the `stateOrProvince` field to be a recognised 2-letter uppercase state/province code.
            - $ref: '#/components/schemas/AddressCreate'
        customerInquiry:
          $ref: '#/components/schemas/phoneNumber'
        websiteUrl:
          $ref: '#/components/schemas/url'
        merchantReference:
          $ref: '#/components/schemas/merchantReference'
        tags:
          $ref: '#/components/schemas/Tags'
        taxRegistrationId:
          $ref: '#/components/schemas/taxRegistrationId'
        sellerEmail:
          description: A valid email address. Required for merchants to process Amex transactions
          allOf:
            - $ref: '#/components/schemas/email'
        businessType:
          $ref: '#/components/schemas/businessType'
    binPageOffsetToken:
      type: string
      pattern: ^[_a-zA-Z0-9-]+$
    components-schemas-acquirerBin:
      type: string
      description: Acquirer BIN. The BIN number as assigned by the card network. For Mastercard, this is also referred to as the Acquirer Reference ID.
      pattern: ^\d{6}$
    americanExpressAquirerBin:
      type: string
      description: AMEX Acquirer BIN, this field corresponds to the Submitter Id.
      pattern: ^\d{10}$
    components-schemas-binKey:
      description: A key assigned by Silverflow to uniquely identify a BIN.
      type: string
      pattern: ^bin-[a-zA-Z0-9]+$
      readOnly: true
      example: '{{binKeyVisa}}'
    bin:
      type: object
      required:
        - description
        - acquirerBin
        - key
      properties:
        description:
          description: Description of the BIN. Combination of acquirer, region and scheme.
          type: string
          example: Example Acquirer - Mastercard
        acquirerBin:
          oneOf:
            - $ref: '#/components/schemas/components-schemas-acquirerBin'
            - $ref: '#/components/schemas/americanExpressAquirerBin'
        key:
          $ref: '#/components/schemas/components-schemas-binKey'
    components-schemas-doingBusinessAsName:
      type: string
      description: Assumed, trade or fictitious name of the merchant, value will be trimmed if greater than 25 (Visa) or 22 (Mastercard) characters by the scheme.
      minLength: 1
    components-schemas-mid:
      type: string
      description: Merchant ID assigned to the merchant (or Payfac) by the acquirer, must be unique for each merchant dba name/location for the BIN
      pattern: ^[a-zA-Z0-9-_\.]{1,15}$
    americanExpressMid:
      type: string
      pattern: ^[a-zA-Z0-9-_\.]{20}$
    merchantAcceptor:
      type: object
      required:
        - legalName
        - doingBusinessAsName
        - description
        - key
        - mid
      properties:
        legalName:
          type: string
          minLength: 1
          description: The legal name of the Merchant
        doingBusinessAsName:
          $ref: '#/components/schemas/components-schemas-doingBusinessAsName'
        description:
          type: string
          minLength: 1
          description: Merchant acceptor description
        key:
          $ref: '#/components/schemas/acceptorKey'
        mid:
          oneOf:
            - $ref: '#/components/schemas/components-schemas-mid'
            - $ref: '#/components/schemas/americanExpressMid'
    components-schemas-chargeKey:
      description: Uniquely identifies a charge
      type: string
      pattern: ^chg-[a-zA-Z0-9]+$
      readOnly: true
      example: '{{chargeKey}}'
    openapi_components-schemas-amountValue-3:
      type: integer
      format: int64
      minimum: 0
      maximum: 900000000
      description: |
        The amount in minor units. For example `$12.34` should be encoded as `1234`. Note that not all
        currencies have 2 minor units; some have three or zero.
    settlementAmountInteger:
      type: object
      required:
        - currency
        - value
        - impact
      properties:
        currency:
          $ref: '#/components/schemas/openapi_components-schemas-currencyCode-5'
        value:
          $ref: '#/components/schemas/openapi_components-schemas-amountValue-3'
        impact:
          enum:
            - credit
            - debit
    Rate:
      type: object
      properties:
        date:
          type: string
          format: date
        sourceCurrency:
          $ref: '#/components/schemas/openapi_components-schemas-currencyCode-5'
        targetCurrency:
          $ref: '#/components/schemas/openapi_components-schemas-currencyCode-5'
        rate:
          type: number
        exponent:
          type: number
        operation:
          type: string
          enum:
            - multiply
            - divide
        type:
          enum:
            - buy
            - sell
            - mid
    CurrencyConversionRates:
      type: array
      description: Currency rates which are used to convert between amounts in case settlement currency is different than authorization currency. Empty array indicates no conversions applied.
      items:
        $ref: '#/components/schemas/Rate'
    settlementAmountFloatWithRate:
      type: object
      required:
        - currency
        - value
        - impact
      properties:
        currency:
          $ref: '#/components/schemas/openapi_components-schemas-currencyCode-5'
        value:
          $ref: '#/components/schemas/floatAmountValue'
        impact:
          enum:
            - credit
            - debit
        currencyConversionRates:
          $ref: '#/components/schemas/CurrencyConversionRates'
    components-schemas-transactionReference:
      type: string
      description: |
        Unique ID assigned by the agent to the transaction. Used to identify the transaction.
      minLength: 1
      maxLength: 120
    components-schemas-actionKey:
      description: The key of the action corresponding to this reconciliation detail.
      type: string
      pattern: ^act-[a-zA-Z0-9]+$
      minLength: 5
      maxLength: 120
      readOnly: true
      example: act-1e1dA2fgs1YTUhlhyPOp
    components-schemas-actionReference:
      description: Action reference assigned by the agent to the action corresponding to this reconciliation detail. Must not start with "act-".
      type: string
      pattern: ^(?!act-)[a-zA-Z0-9-_\.]+$
      minLength: 1
      maxLength: 120
      example: MyRef
    components-schemas-acquirerIdCode:
      type: string
      description: Identifier of the Acquirer as defined by the Card Network (Visa CIB, Mastercard ICA).
    transactionType:
      type: string
      enum:
        - purchase
        - refund
        - payout
        - funding
    schemas-Tags:
      type: object
      description: |
        Optional tags provided by the agent to tag the object for maintainability. Tags can be used filtering and sorting on the list views of Disputes. A valid tag-key must:
        - contain only a-z, 0-9, "_" characters
        - first character should be a letter
        - be at least 1 character long
        - be no longer than 24 characters
        - not start with "sf_"
      additionalProperties:
        type: string
        description: Value of the key. A valid value should match with /^.{1,100}$/
        pattern: ^.{1,100}$
      example:
        IamAKey: ThisIsaValue!
    openapi_components-schemas-countryCodeAlpha3:
      type: string
      pattern: ^[A-Z]{3}$
      description: |-
        The ISO code of the country.

        **European ISO Country Codes**

        <details>

        | Country | Alpha-2 code | Numeric |
        | ------- | ------------ | ------- |
        | Åland Islands | AX | 248 |
        | Andorra | AD | 020 |
        | Austria | AT | 040 |
        | Belgium | BE | 056 |
        | Cyprus | CY | 196 |
        | Estonia | EE | 233 |  |
        | Finland | FI | 246 |
        | France | FR | 250 |
        | French Guiana | GF | 254 |
        | French Southern Territories | TF | 260 |
        | Germany | DE | 280 |
        | Greece | GR | 300 |
        | Guadeloupe | GP | 312 |
        | Ireland | IE | 372 |
        | Italy | IT | 380 |
        | Kosovo, United Nations Mission in Kosovo (UNMIK) | QZ | 900 |
        | Latvia | LV | 428 |
        | Lithuania | LT | 440 |
        | Luxembourg | LU | 442 |
        | Malta | MT | 470 |
        | Martinique | MQ | 474 |
        | Mayotte | YT | 175 |
        | Monaco | MC | 492 |
        | Montenegro | ME | 499 |
        | Netherlands | NL | 528 |
        | Portugal | PT | 620 |
        | Reunion | RE | 638 |
        | Saint Barthélemy | BL | 652 |
        | Saint Martin (French Part) | MF | 663 |
        | San Marino | SM | 674 |
        | Slovakia | SK | 703 |
        | Slovenia | SI | 705 |
        | Spain | ES | 724 |
        | St. Pierre and Miquelon | PM | 666 |
        | Vatican City State (Holy See) | VA | 336 |

        </details>

        **US ISO Country Codes**

        <details>

        | Country | Alpha-2 code | Numeric |
        | ------- | ------------ | ------- |
        | American Samoa | AS | 016 |
        | Bonaire, St. Eusasius and Saba | BQ | 535 |
        | British Indian Ocean Territory | IO | 086 |
        | Ecuador | EC | 218 |
        | Guam | GU | 316 |
        | Marshall Islands | MH | 584 |
        | Micronesia, Federated States of | FM | 583 |
        | Northern Mariana Islands | MP | 580 |
        | Palau | PW | 585 |
        | Palestine, State of | PS | 275 |
        | Puerto Rico | PR | 630 |
        | Timor-Leste | TP | 626 |
        | Turks and Caicos Islands | TC | 796 |
        | U.S. Minor Outlying Islands | UM | 581 |
        | United States | US | 840 |
        | Virgin Islands, British | VG | 092 |
        | Virgin Islands, U.S. | VI | 850 |

        </details>

        **Other ISO Country Codes**

        <details>

        | Country | Alpha-2 code | Numeric |
        | ------- | ------------ | ------- |
        | Afghanistan | AF | 004 |
        | Albania | AL | 008 |
        | Algeria | DZ | 012 |
        | Angola | AO | 024 |
        | Anguilla | AI | 660 |
        | Antarctica | AQ | 010 |
        | Antigua and Barbuda | AG | 028 |
        | Argentina | AR | 032 |
        | Armenia | AM | 051 |
        | Aruba | AW | 533 |
        | Australia | AU | 036 |
        | Azerbaijan | AZ | 031 |
        | Bahamas | BS | 044 |
        | Bahrain | BH | 048 |
        | Bangladesh | BD | 050 |
        | Barbados | BB | 052 |
        | Belarus | BR | 112 |
        | Belize | BZ | 084 |
        | Benin | BJ | 204 |
        | Bermuda | BM | 060 |
        | Bhutan | BT | 064 |
        | Bolivia, Plurinational State of | BO | 068 |
        | Bosnia and Herzegovina | BA | 070 |
        | Botswana | BW | 072 |
        | Bouvet Island | BV | 074 |
        | Brazil | BR | 076 |
        | Brunei Darussalam | BN | 096 |
        | Bulgaria | BG | 100 |
        | Burkina Faso | BF | 854 |
        | Burundi | BI | 108 |
        | Cambodia | KH | 116 |
        | Cameroon | CM | 120 |
        | Canada | CA | 124 |
        | Cape Verde | CV | 132 |
        | Cayman Islands | KY | 136 |
        | Central African Republic | CF | 140 |
        | Chad | TD | 148 |
        | Chile | CL | 152 |
        | China | CN | 156 |
        | Christmas Island | CX | 162 |
        | Cocos (Keeling) Islands | CC | 166 |
        | Colombia | CO | 170 |
        | Comoros | KM | 174 |
        | Congo | CG | 178 |
        | Cook Islands | CK | 184 |
        | Costa Rica | CR | 188 |
        | Côte D'Ivoire | CI | 384 |
        | Croatia | HR | 191 |
        | Cuba | CU | 192 |
        | Curacao | CW | 531 |
        | Czech Republic | CZ | 203 |
        | Democratic Republic of the Congo | CD | 180 |
        | Denmark | DK | 208 |
        | Djibouti | DJ | 262 |
        | Dominica | DM | 212 |
        | Dominican Republic | DO | 214 |
        | Egypt | EG | 818 |
        | El Salvador | SV | 222 |
        | Equatorial Guinea | GQ | 226 |
        | Eritrea | ER | 232 |
        | Ethiopia | ET | 230 |
        | Falkland Islands (Malvinas) | FK | 238 |
        | Faroe Islands | FO | 234 |
        | Fiji | FJ | 242 |
        | French Polynesia | PF | 258 |
        | Gabon | GA | 266 |
        | Gambia | GM | 270 |
        | Georgia | GE | 268 |
        | Ghana | GH | 288 |
        | Gibraltar | GI | 292 |
        | Greenland | GL | 304 |
        | Grenada | GD | 308 |
        | Guatemala | GT | 320 |
        | Guernsey | GG | 831 |
        | Guinea | GN | 324 |
        | Guinea-Bissau | GW | 624 |
        | Guyana | GY | 328 |
        | Haiti | HT | 332 |
        | Heard and McDonald Islands | HM | 334 |
        | Honduras | HN | 340 |
        | Hong Kong | HK | 344 |
        | Hungary | HU | 348 |
        | Iceland | IS | 352 |
        | India | IN | 356 |
        | Indonesia | ID | 360 |
        | Iraq | IQ | 368 |
        | Isle of Man | IM | 833 |
        | Israel | IL | 376 |
        | Jamaica | JM | 388 |
        | Japan | JP | 392 |
        | Jersey | JE | 832 |
        | Jordan | JO | 400 |
        | Kazakhstan | KZ | 398 |
        | Kenya | KE | 404 |
        | Kiribati | KI | 296 |
        | Korea, Republic of | KR | 410 |
        | Kuwait | KW | 414 |
        | Kyrgyzstan | KG | 417 |
        | Lao People's Democratic Republic | LA | 418 |
        | Lebanon | LB | 422 |
        | Lesotho | LS | 426 |
        | Liberia | LR | 430 |
        | Libyan Arab Jamahiriya | LY | 434 |
        | Liechtenstein | LI | 438 |
        | Macao | MO | 446 |
        | Macedonia | MK | 807 |
        | Madagascar | MG | 450 |
        | Malawi | MW | 454 |
        | Malaysia | MY | 458 |
        | Maldives | MV | 462 |
        | Mali | ML | 466 |
        | Mauritania | MR | 478 |
        | Mauritius | MU | 480 |
        | Mexico | MX | 484 |
        | Moldova, Republic of | MD | 498 |
        | Mongolia | MN | 496 |
        | Montserrat | MS | 500 |
        | Morocco | MA | 504 |
        | Mozambique | MZ | 508 |
        | Myanmar (effective 1 November 2012) | MM | 104 |
        | Namibia | NA | 516 |
        | Nauru | NR | 520 |
        | Nepal | NP | 524 |
        | Netherlands Antilles | AN | 530 |
        | New Caledonia | NC | 540 |
        | New Zealand | NZ | 554 |
        | Nicaragua | NI | 558 |
        | Niger | NE | 562 |
        | Nigeria | NG | 566 |
        | Niue | NU | 570 |
        | Norfolk Island | NF | 574 |
        | Norway | NO | 578 |
        | Oman | OM | 512 |
        | Pakistan | PK | 586 |
        | Panama | PA | 591 |
        | Papua New Guinea | PG | 598 |
        | Paraguay | PY | 600 |
        | Peru | PE | 604 |
        | Philippines | PH | 608 |
        | Pitcairn | PN | 612 |
        | Poland | PL | 616 |
        | Qatar | QA | 634 |
        | Republic of South Sudan | SS | 728 |
        | Romania | RO | 642 |
        | Russian Federation | RU | 643 |
        | Rwanda | RW | 646 |
        | Samoa | WS | 882 |
        | Sao Tome and Principe | ST | 678 |
        | Saudi Arabia | SA | 682 |
        | Senegal | SN | 686 |
        | Serbia | RS | 688 |
        | Seychelles | SC | 690 |
        | Sierra Leone | SL | 694 |
        | Singapore | SG | 702 |
        | Sint Maarten (Dutch Part) | SX | 534 |
        | Solomon Islands | SB | 090 |
        | Somalia | SO | 706 |
        | South Africa | ZA | 710 |
        | South Georgia and the South Sandwich Islands | GS | 239 |
        | Sri Lanka | LK | 144 |
        | Saint Helena, Ascension and Tristan Da Cunha | SH | 654 |
        | St. Kitts and Nevis | KN | 659 |
        | St. Lucia | LC | 662 |
        | St. Vincent and the Grenadines | VC | 670 |
        | Suriname | SR | 740 |
        | Svalbard and Jan Mayen | SJ | 744 |
        | Swaziland | SZ | 748 |
        | Sweden | SE | 752 |
        | Switzerland | CH | 756 |
        | Taiwan | TW | 158 |
        | Tajikistan | TJ | 762 |
        | Tanzania, United Republic of | TZ | 834 |
        | Thailand | TH | 764 |
        | Togo | TG | 768 |
        | Tokelau | TK | 772 |
        | Tonga | TO | 776 |
        | Trinidad and Tobago | TT | 780 |
        | Tunisia | TN | 788 |
        | Turkey | TR | 792 |
        | Turkmenistan | TM | 795 |
        | Tuvalu | TV | 798 |
        | Uganda | UG | 800 |
        | Ukraine | UA | 804 |
        | United Arab Emirates | AE | 784 |
        | United Kingdom | GB | 826 |
        | Uruguay | UY | 858 |
        | Uzbekistan | UZ | 860 |
        | Vanuatu | VU | 548 |
        | Venezuela, Bolivarian Republic of | VE | 862 |
        | Vietnam | VN | 704 |
        | Wallis and Futuna | WF | 876 |
        | Western Sahara | EH | 732 |
        | Yemen | YE | 886 |
        | Zambia | ZM | 894 |
        | Zimbabwe | ZW | 716 |

        </details>
      externalDocs:
        description: Find more info here
        url: https://www.iso.org/iso-3166-country-codes.html
      example: NLD
    openapi_components-schemas-countryCodeAlpha2:
      type: string
      pattern: ^[A-Z]{2}$
      description: |-
        The ISO code of the country.

        **European ISO Country Codes**

        <details>

        | Country | Alpha-2 code | Numeric |
        | ------- | ------------ | ------- |
        | Åland Islands | AX | 248 |
        | Andorra | AD | 020 |
        | Austria | AT | 040 |
        | Belgium | BE | 056 |
        | Cyprus | CY | 196 |
        | Estonia | EE | 233 |  |
        | Finland | FI | 246 |
        | France | FR | 250 |
        | French Guiana | GF | 254 |
        | French Southern Territories | TF | 260 |
        | Germany | DE | 280 |
        | Greece | GR | 300 |
        | Guadeloupe | GP | 312 |
        | Ireland | IE | 372 |
        | Italy | IT | 380 |
        | Kosovo, United Nations Mission in Kosovo (UNMIK) | QZ | 900 |
        | Latvia | LV | 428 |
        | Lithuania | LT | 440 |
        | Luxembourg | LU | 442 |
        | Malta | MT | 470 |
        | Martinique | MQ | 474 |
        | Mayotte | YT | 175 |
        | Monaco | MC | 492 |
        | Montenegro | ME | 499 |
        | Netherlands | NL | 528 |
        | Portugal | PT | 620 |
        | Reunion | RE | 638 |
        | Saint Barthélemy | BL | 652 |
        | Saint Martin (French Part) | MF | 663 |
        | San Marino | SM | 674 |
        | Slovakia | SK | 703 |
        | Slovenia | SI | 705 |
        | Spain | ES | 724 |
        | St. Pierre and Miquelon | PM | 666 |
        | Vatican City State (Holy See) | VA | 336 |

        </details>

        **US ISO Country Codes**

        <details>

        | Country | Alpha-2 code | Numeric |
        | ------- | ------------ | ------- |
        | American Samoa | AS | 016 |
        | Bonaire, St. Eusasius and Saba | BQ | 535 |
        | British Indian Ocean Territory | IO | 086 |
        | Ecuador | EC | 218 |
        | Guam | GU | 316 |
        | Marshall Islands | MH | 584 |
        | Micronesia, Federated States of | FM | 583 |
        | Northern Mariana Islands | MP | 580 |
        | Palau | PW | 585 |
        | Palestine, State of | PS | 275 |
        | Puerto Rico | PR | 630 |
        | Timor-Leste | TP | 626 |
        | Turks and Caicos Islands | TC | 796 |
        | U.S. Minor Outlying Islands | UM | 581 |
        | United States | US | 840 |
        | Virgin Islands, British | VG | 092 |
        | Virgin Islands, U.S. | VI | 850 |

        </details>

        **Other ISO Country Codes**

        <details>

        | Country | Alpha-2 code | Numeric |
        | ------- | ------------ | ------- |
        | Afghanistan | AF | 004 |
        | Albania | AL | 008 |
        | Algeria | DZ | 012 |
        | Angola | AO | 024 |
        | Anguilla | AI | 660 |
        | Antarctica | AQ | 010 |
        | Antigua and Barbuda | AG | 028 |
        | Argentina | AR | 032 |
        | Armenia | AM | 051 |
        | Aruba | AW | 533 |
        | Australia | AU | 036 |
        | Azerbaijan | AZ | 031 |
        | Bahamas | BS | 044 |
        | Bahrain | BH | 048 |
        | Bangladesh | BD | 050 |
        | Barbados | BB | 052 |
        | Belarus | BR | 112 |
        | Belize | BZ | 084 |
        | Benin | BJ | 204 |
        | Bermuda | BM | 060 |
        | Bhutan | BT | 064 |
        | Bolivia, Plurinational State of | BO | 068 |
        | Bosnia and Herzegovina | BA | 070 |
        | Botswana | BW | 072 |
        | Bouvet Island | BV | 074 |
        | Brazil | BR | 076 |
        | Brunei Darussalam | BN | 096 |
        | Bulgaria | BG | 100 |
        | Burkina Faso | BF | 854 |
        | Burundi | BI | 108 |
        | Cambodia | KH | 116 |
        | Cameroon | CM | 120 |
        | Canada | CA | 124 |
        | Cape Verde | CV | 132 |
        | Cayman Islands | KY | 136 |
        | Central African Republic | CF | 140 |
        | Chad | TD | 148 |
        | Chile | CL | 152 |
        | China | CN | 156 |
        | Christmas Island | CX | 162 |
        | Cocos (Keeling) Islands | CC | 166 |
        | Colombia | CO | 170 |
        | Comoros | KM | 174 |
        | Congo | CG | 178 |
        | Cook Islands | CK | 184 |
        | Costa Rica | CR | 188 |
        | Côte D'Ivoire | CI | 384 |
        | Croatia | HR | 191 |
        | Cuba | CU | 192 |
        | Curacao | CW | 531 |
        | Czech Republic | CZ | 203 |
        | Democratic Republic of the Congo | CD | 180 |
        | Denmark | DK | 208 |
        | Djibouti | DJ | 262 |
        | Dominica | DM | 212 |
        | Dominican Republic | DO | 214 |
        | Egypt | EG | 818 |
        | El Salvador | SV | 222 |
        | Equatorial Guinea | GQ | 226 |
        | Eritrea | ER | 232 |
        | Ethiopia | ET | 230 |
        | Falkland Islands (Malvinas) | FK | 238 |
        | Faroe Islands | FO | 234 |
        | Fiji | FJ | 242 |
        | French Polynesia | PF | 258 |
        | Gabon | GA | 266 |
        | Gambia | GM | 270 |
        | Georgia | GE | 268 |
        | Ghana | GH | 288 |
        | Gibraltar | GI | 292 |
        | Greenland | GL | 304 |
        | Grenada | GD | 308 |
        | Guatemala | GT | 320 |
        | Guernsey | GG | 831 |
        | Guinea | GN | 324 |
        | Guinea-Bissau | GW | 624 |
        | Guyana | GY | 328 |
        | Haiti | HT | 332 |
        | Heard and McDonald Islands | HM | 334 |
        | Honduras | HN | 340 |
        | Hong Kong | HK | 344 |
        | Hungary | HU | 348 |
        | Iceland | IS | 352 |
        | India | IN | 356 |
        | Indonesia | ID | 360 |
        | Iraq | IQ | 368 |
        | Isle of Man | IM | 833 |
        | Israel | IL | 376 |
        | Jamaica | JM | 388 |
        | Japan | JP | 392 |
        | Jersey | JE | 832 |
        | Jordan | JO | 400 |
        | Kazakhstan | KZ | 398 |
        | Kenya | KE | 404 |
        | Kiribati | KI | 296 |
        | Korea, Republic of | KR | 410 |
        | Kuwait | KW | 414 |
        | Kyrgyzstan | KG | 417 |
        | Lao People's Democratic Republic | LA | 418 |
        | Lebanon | LB | 422 |
        | Lesotho | LS | 426 |
        | Liberia | LR | 430 |
        | Libyan Arab Jamahiriya | LY | 434 |
        | Liechtenstein | LI | 438 |
        | Macao | MO | 446 |
        | Macedonia | MK | 807 |
        | Madagascar | MG | 450 |
        | Malawi | MW | 454 |
        | Malaysia | MY | 458 |
        | Maldives | MV | 462 |
        | Mali | ML | 466 |
        | Mauritania | MR | 478 |
        | Mauritius | MU | 480 |
        | Mexico | MX | 484 |
        | Moldova, Republic of | MD | 498 |
        | Mongolia | MN | 496 |
        | Montserrat | MS | 500 |
        | Morocco | MA | 504 |
        | Mozambique | MZ | 508 |
        | Myanmar (effective 1 November 2012) | MM | 104 |
        | Namibia | NA | 516 |
        | Nauru | NR | 520 |
        | Nepal | NP | 524 |
        | Netherlands Antilles | AN | 530 |
        | New Caledonia | NC | 540 |
        | New Zealand | NZ | 554 |
        | Nicaragua | NI | 558 |
        | Niger | NE | 562 |
        | Nigeria | NG | 566 |
        | Niue | NU | 570 |
        | Norfolk Island | NF | 574 |
        | Norway | NO | 578 |
        | Oman | OM | 512 |
        | Pakistan | PK | 586 |
        | Panama | PA | 591 |
        | Papua New Guinea | PG | 598 |
        | Paraguay | PY | 600 |
        | Peru | PE | 604 |
        | Philippines | PH | 608 |
        | Pitcairn | PN | 612 |
        | Poland | PL | 616 |
        | Qatar | QA | 634 |
        | Republic of South Sudan | SS | 728 |
        | Romania | RO | 642 |
        | Russian Federation | RU | 643 |
        | Rwanda | RW | 646 |
        | Samoa | WS | 882 |
        | Sao Tome and Principe | ST | 678 |
        | Saudi Arabia | SA | 682 |
        | Senegal | SN | 686 |
        | Serbia | RS | 688 |
        | Seychelles | SC | 690 |
        | Sierra Leone | SL | 694 |
        | Singapore | SG | 702 |
        | Sint Maarten (Dutch Part) | SX | 534 |
        | Solomon Islands | SB | 090 |
        | Somalia | SO | 706 |
        | South Africa | ZA | 710 |
        | South Georgia and the South Sandwich Islands | GS | 239 |
        | Sri Lanka | LK | 144 |
        | Saint Helena, Ascension and Tristan Da Cunha | SH | 654 |
        | St. Kitts and Nevis | KN | 659 |
        | St. Lucia | LC | 662 |
        | St. Vincent and the Grenadines | VC | 670 |
        | Suriname | SR | 740 |
        | Svalbard and Jan Mayen | SJ | 744 |
        | Swaziland | SZ | 748 |
        | Sweden | SE | 752 |
        | Switzerland | CH | 756 |
        | Taiwan | TW | 158 |
        | Tajikistan | TJ | 762 |
        | Tanzania, United Republic of | TZ | 834 |
        | Thailand | TH | 764 |
        | Togo | TG | 768 |
        | Tokelau | TK | 772 |
        | Tonga | TO | 776 |
        | Trinidad and Tobago | TT | 780 |
        | Tunisia | TN | 788 |
        | Turkey | TR | 792 |
        | Turkmenistan | TM | 795 |
        | Tuvalu | TV | 798 |
        | Uganda | UG | 800 |
        | Ukraine | UA | 804 |
        | United Arab Emirates | AE | 784 |
        | United Kingdom | GB | 826 |
        | Uruguay | UY | 858 |
        | Uzbekistan | UZ | 860 |
        | Vanuatu | VU | 548 |
        | Venezuela, Bolivarian Republic of | VE | 862 |
        | Vietnam | VN | 704 |
        | Wallis and Futuna | WF | 876 |
        | Western Sahara | EH | 732 |
        | Yemen | YE | 886 |
        | Zambia | ZM | 894 |
        | Zimbabwe | ZW | 716 |

        </details>
      externalDocs:
        description: Find more info here
        url: https://www.iso.org/iso-3166-country-codes.html
      example: NL
    openapi_components-schemas-countryCodeNumeric:
      type: string
      pattern: ^[0-9]{3}$
      description: |-
        The ISO code of the country.

        **European ISO Country Codes**

        <details>

        | Country | Alpha-2 code | Numeric |
        | ------- | ------------ | ------- |
        | Åland Islands | AX | 248 |
        | Andorra | AD | 020 |
        | Austria | AT | 040 |
        | Belgium | BE | 056 |
        | Cyprus | CY | 196 |
        | Estonia | EE | 233 |  |
        | Finland | FI | 246 |
        | France | FR | 250 |
        | French Guiana | GF | 254 |
        | French Southern Territories | TF | 260 |
        | Germany | DE | 280 |
        | Greece | GR | 300 |
        | Guadeloupe | GP | 312 |
        | Ireland | IE | 372 |
        | Italy | IT | 380 |
        | Kosovo, United Nations Mission in Kosovo (UNMIK) | QZ | 900 |
        | Latvia | LV | 428 |
        | Lithuania | LT | 440 |
        | Luxembourg | LU | 442 |
        | Malta | MT | 470 |
        | Martinique | MQ | 474 |
        | Mayotte | YT | 175 |
        | Monaco | MC | 492 |
        | Montenegro | ME | 499 |
        | Netherlands | NL | 528 |
        | Portugal | PT | 620 |
        | Reunion | RE | 638 |
        | Saint Barthélemy | BL | 652 |
        | Saint Martin (French Part) | MF | 663 |
        | San Marino | SM | 674 |
        | Slovakia | SK | 703 |
        | Slovenia | SI | 705 |
        | Spain | ES | 724 |
        | St. Pierre and Miquelon | PM | 666 |
        | Vatican City State (Holy See) | VA | 336 |

        </details>

        **US ISO Country Codes**

        <details>

        | Country | Alpha-2 code | Numeric |
        | ------- | ------------ | ------- |
        | American Samoa | AS | 016 |
        | Bonaire, St. Eusasius and Saba | BQ | 535 |
        | British Indian Ocean Territory | IO | 086 |
        | Ecuador | EC | 218 |
        | Guam | GU | 316 |
        | Marshall Islands | MH | 584 |
        | Micronesia, Federated States of | FM | 583 |
        | Northern Mariana Islands | MP | 580 |
        | Palau | PW | 585 |
        | Palestine, State of | PS | 275 |
        | Puerto Rico | PR | 630 |
        | Timor-Leste | TP | 626 |
        | Turks and Caicos Islands | TC | 796 |
        | U.S. Minor Outlying Islands | UM | 581 |
        | United States | US | 840 |
        | Virgin Islands, British | VG | 092 |
        | Virgin Islands, U.S. | VI | 850 |

        </details>

        **Other ISO Country Codes**

        <details>

        | Country | Alpha-2 code | Numeric |
        | ------- | ------------ | ------- |
        | Afghanistan | AF | 004 |
        | Albania | AL | 008 |
        | Algeria | DZ | 012 |
        | Angola | AO | 024 |
        | Anguilla | AI | 660 |
        | Antarctica | AQ | 010 |
        | Antigua and Barbuda | AG | 028 |
        | Argentina | AR | 032 |
        | Armenia | AM | 051 |
        | Aruba | AW | 533 |
        | Australia | AU | 036 |
        | Azerbaijan | AZ | 031 |
        | Bahamas | BS | 044 |
        | Bahrain | BH | 048 |
        | Bangladesh | BD | 050 |
        | Barbados | BB | 052 |
        | Belarus | BR | 112 |
        | Belize | BZ | 084 |
        | Benin | BJ | 204 |
        | Bermuda | BM | 060 |
        | Bhutan | BT | 064 |
        | Bolivia, Plurinational State of | BO | 068 |
        | Bosnia and Herzegovina | BA | 070 |
        | Botswana | BW | 072 |
        | Bouvet Island | BV | 074 |
        | Brazil | BR | 076 |
        | Brunei Darussalam | BN | 096 |
        | Bulgaria | BG | 100 |
        | Burkina Faso | BF | 854 |
        | Burundi | BI | 108 |
        | Cambodia | KH | 116 |
        | Cameroon | CM | 120 |
        | Canada | CA | 124 |
        | Cape Verde | CV | 132 |
        | Cayman Islands | KY | 136 |
        | Central African Republic | CF | 140 |
        | Chad | TD | 148 |
        | Chile | CL | 152 |
        | China | CN | 156 |
        | Christmas Island | CX | 162 |
        | Cocos (Keeling) Islands | CC | 166 |
        | Colombia | CO | 170 |
        | Comoros | KM | 174 |
        | Congo | CG | 178 |
        | Cook Islands | CK | 184 |
        | Costa Rica | CR | 188 |
        | Côte D'Ivoire | CI | 384 |
        | Croatia | HR | 191 |
        | Cuba | CU | 192 |
        | Curacao | CW | 531 |
        | Czech Republic | CZ | 203 |
        | Democratic Republic of the Congo | CD | 180 |
        | Denmark | DK | 208 |
        | Djibouti | DJ | 262 |
        | Dominica | DM | 212 |
        | Dominican Republic | DO | 214 |
        | Egypt | EG | 818 |
        | El Salvador | SV | 222 |
        | Equatorial Guinea | GQ | 226 |
        | Eritrea | ER | 232 |
        | Ethiopia | ET | 230 |
        | Falkland Islands (Malvinas) | FK | 238 |
        | Faroe Islands | FO | 234 |
        | Fiji | FJ | 242 |
        | French Polynesia | PF | 258 |
        | Gabon | GA | 266 |
        | Gambia | GM | 270 |
        | Georgia | GE | 268 |
        | Ghana | GH | 288 |
        | Gibraltar | GI | 292 |
        | Greenland | GL | 304 |
        | Grenada | GD | 308 |
        | Guatemala | GT | 320 |
        | Guernsey | GG | 831 |
        | Guinea | GN | 324 |
        | Guinea-Bissau | GW | 624 |
        | Guyana | GY | 328 |
        | Haiti | HT | 332 |
        | Heard and McDonald Islands | HM | 334 |
        | Honduras | HN | 340 |
        | Hong Kong | HK | 344 |
        | Hungary | HU | 348 |
        | Iceland | IS | 352 |
        | India | IN | 356 |
        | Indonesia | ID | 360 |
        | Iraq | IQ | 368 |
        | Isle of Man | IM | 833 |
        | Israel | IL | 376 |
        | Jamaica | JM | 388 |
        | Japan | JP | 392 |
        | Jersey | JE | 832 |
        | Jordan | JO | 400 |
        | Kazakhstan | KZ | 398 |
        | Kenya | KE | 404 |
        | Kiribati | KI | 296 |
        | Korea, Republic of | KR | 410 |
        | Kuwait | KW | 414 |
        | Kyrgyzstan | KG | 417 |
        | Lao People's Democratic Republic | LA | 418 |
        | Lebanon | LB | 422 |
        | Lesotho | LS | 426 |
        | Liberia | LR | 430 |
        | Libyan Arab Jamahiriya | LY | 434 |
        | Liechtenstein | LI | 438 |
        | Macao | MO | 446 |
        | Macedonia | MK | 807 |
        | Madagascar | MG | 450 |
        | Malawi | MW | 454 |
        | Malaysia | MY | 458 |
        | Maldives | MV | 462 |
        | Mali | ML | 466 |
        | Mauritania | MR | 478 |
        | Mauritius | MU | 480 |
        | Mexico | MX | 484 |
        | Moldova, Republic of | MD | 498 |
        | Mongolia | MN | 496 |
        | Montserrat | MS | 500 |
        | Morocco | MA | 504 |
        | Mozambique | MZ | 508 |
        | Myanmar (effective 1 November 2012) | MM | 104 |
        | Namibia | NA | 516 |
        | Nauru | NR | 520 |
        | Nepal | NP | 524 |
        | Netherlands Antilles | AN | 530 |
        | New Caledonia | NC | 540 |
        | New Zealand | NZ | 554 |
        | Nicaragua | NI | 558 |
        | Niger | NE | 562 |
        | Nigeria | NG | 566 |
        | Niue | NU | 570 |
        | Norfolk Island | NF | 574 |
        | Norway | NO | 578 |
        | Oman | OM | 512 |
        | Pakistan | PK | 586 |
        | Panama | PA | 591 |
        | Papua New Guinea | PG | 598 |
        | Paraguay | PY | 600 |
        | Peru | PE | 604 |
        | Philippines | PH | 608 |
        | Pitcairn | PN | 612 |
        | Poland | PL | 616 |
        | Qatar | QA | 634 |
        | Republic of South Sudan | SS | 728 |
        | Romania | RO | 642 |
        | Russian Federation | RU | 643 |
        | Rwanda | RW | 646 |
        | Samoa | WS | 882 |
        | Sao Tome and Principe | ST | 678 |
        | Saudi Arabia | SA | 682 |
        | Senegal | SN | 686 |
        | Serbia | RS | 688 |
        | Seychelles | SC | 690 |
        | Sierra Leone | SL | 694 |
        | Singapore | SG | 702 |
        | Sint Maarten (Dutch Part) | SX | 534 |
        | Solomon Islands | SB | 090 |
        | Somalia | SO | 706 |
        | South Africa | ZA | 710 |
        | South Georgia and the South Sandwich Islands | GS | 239 |
        | Sri Lanka | LK | 144 |
        | Saint Helena, Ascension and Tristan Da Cunha | SH | 654 |
        | St. Kitts and Nevis | KN | 659 |
        | St. Lucia | LC | 662 |
        | St. Vincent and the Grenadines | VC | 670 |
        | Suriname | SR | 740 |
        | Svalbard and Jan Mayen | SJ | 744 |
        | Swaziland | SZ | 748 |
        | Sweden | SE | 752 |
        | Switzerland | CH | 756 |
        | Taiwan | TW | 158 |
        | Tajikistan | TJ | 762 |
        | Tanzania, United Republic of | TZ | 834 |
        | Thailand | TH | 764 |
        | Togo | TG | 768 |
        | Tokelau | TK | 772 |
        | Tonga | TO | 776 |
        | Trinidad and Tobago | TT | 780 |
        | Tunisia | TN | 788 |
        | Turkey | TR | 792 |
        | Turkmenistan | TM | 795 |
        | Tuvalu | TV | 798 |
        | Uganda | UG | 800 |
        | Ukraine | UA | 804 |
        | United Arab Emirates | AE | 784 |
        | United Kingdom | GB | 826 |
        | Uruguay | UY | 858 |
        | Uzbekistan | UZ | 860 |
        | Vanuatu | VU | 548 |
        | Venezuela, Bolivarian Republic of | VE | 862 |
        | Vietnam | VN | 704 |
        | Wallis and Futuna | WF | 876 |
        | Western Sahara | EH | 732 |
        | Yemen | YE | 886 |
        | Zambia | ZM | 894 |
        | Zimbabwe | ZW | 716 |

        </details>
      externalDocs:
        description: Find more info here
        url: https://www.iso.org/iso-3166-country-codes.html
      example: '528'
    openapi_components-schemas-CountryCode:
      type: object
      properties:
        alpha3:
          $ref: '#/components/schemas/openapi_components-schemas-countryCodeAlpha3'
        alpha2:
          $ref: '#/components/schemas/openapi_components-schemas-countryCodeAlpha2'
        numeric:
          $ref: '#/components/schemas/openapi_components-schemas-countryCodeNumeric'
    schemas-CardCountry:
      type: object
      required:
        - code
      properties:
        code:
          $ref: '#/components/schemas/openapi_components-schemas-CountryCode'
    AccountFundingSource:
      type: string
      enum:
        - Credit
        - Debit
        - Prepaid
        - Charge
        - Deferred Debit
        - Unknown
      description: The Account Funding Source of the card used in the transaction.
    ProductType:
      type: string
      enum:
        - Consumer
        - Commercial
        - Business
        - Government
        - Unknown
      description: The Product Type of the card used in the transaction.
    CardInfoSummary:
      type: object
      required:
        - cardCountry
        - accountFundingSource
        - productType
      properties:
        cardCountry:
          $ref: '#/components/schemas/schemas-CardCountry'
        accountFundingSource:
          $ref: '#/components/schemas/AccountFundingSource'
        productType:
          $ref: '#/components/schemas/ProductType'
    VisaPublicDesignator:
      type: object
      description: |
        Visa Public Designator
      additionalProperties: false
      required:
        - network
      properties:
        network:
          type: string
          enum:
            - visa
        feeProgramIndicator:
          description: Fee Program Indicator as defined by Visa. This is a 3 character code indicating the Fee Program used. Fee Program Indicators are generally not used for Intra-European transactions.
          type: string
        feeDescriptor:
          description: Fee Descriptor as defined by Visa. This is a short alpha-numeric code indicating the Fee Program used.
          type: string
        feeProgramName:
          description: Human-readable description of the Fee Program.
          type: string
        cpsProgram:
          description: Short name (as defined by Silverflow) of the CPS Program. Custom Payment Service (CPS) Programs are mostly commonly used for US transactions.
          type: string
    MastercardPublicDesignator:
      type: object
      description: |
        Mastercard Public Designator
      additionalProperties: false
      required:
        - network
      properties:
        network:
          type: string
          enum:
            - mastercard
        ird:
          description: Interchange Rate Designator as defined by Mastercard. This is a 2 character code.
          type: string
        businessServiceArrangement:
          description: Business Service Agreement (BSA) as defined by Mastercard.
          type: object
          properties:
            cardProgramIdentifier:
              description: Card Program Identifier as defined by Mastercard. This is a 3 character code.
              type: string
            type:
              description: Type of the Business Service Arrangement (BSA) as defined by Mastercard.
              type: string
            idCode:
              description: ID Code of the Business Service Arrangement (BSA) as defined by Mastercard.
              type: string
        feeProgramName:
          description: Human-readable description of the Fee Program.
          type: string
    BancontactPublicDesignator:
      type: object
      description: |
        Bancontact Public Designator
      additionalProperties: false
      required:
        - network
      properties:
        network:
          type: string
          enum:
            - bancontact
        feeCode:
          description: Fee Code as defined by Bancontact. This is a short alpha-numeric code indicating the Fee Program used.
          type: string
        feeProgramName:
          description: Human-readable description of the Fee Program.
          type: string
    PublicInterchangeFeeProgram:
      type: object
      description: |
        Public Fee Program
      additionalProperties: false
      properties:
        segments:
          type: object
          properties:
            currency:
              type: string
            fixed:
              type: number
            basisPoints:
              type: number
            max:
              type: number
            min:
              type: number
        designator:
          type: object
          oneOf:
            - $ref: '#/components/schemas/VisaPublicDesignator'
            - $ref: '#/components/schemas/MastercardPublicDesignator'
            - $ref: '#/components/schemas/BancontactPublicDesignator'
    openapi_components-schemas-Amount-2:
      type: object
      required:
        - value
        - currency
      additionalProperties: false
      description: |
        An amount encoded as an object with a `value` in minor units and a `currency` code.
      properties:
        value:
          $ref: '#/components/schemas/openapi_components-schemas-amountValue-3'
        currency:
          $ref: '#/components/schemas/openapi_components-schemas-currencyCode-5'
    SilverflowRegionality:
      readOnly: true
      type: string
      enum:
        - domestic
        - intraregional_eea
        - intraregional_europe
        - intraregional_asia_pacific
        - intraregional_middle_east_and_africa
        - intraregional_latin_america
        - interregional
    SilverflowRegion:
      readOnly: true
      type: string
      enum:
        - eea
        - europe
        - united_states
        - canada
        - asia_pacific
        - middle_east_and_africa
        - latin_america
    TransactionRegionalitySummary:
      type: object
      description: A summary of the regionality of the transaction per Silverflow's definition <a class="experimental-tag-link" href="https://docs.silverflow.com/guides/api-lifecycle#tag/EXPERIMENTAL-Tag"><span class="tag experimental-tag">EXPERIMENTAL</span></a>
      required:
        - transactionRegionality
        - cardRegion
        - merchantRegion
      properties:
        transactionRegionality:
          allOf:
            - $ref: '#/components/schemas/SilverflowRegionality'
            - description: The regionality of the transaction
        cardRegion:
          allOf:
            - $ref: '#/components/schemas/SilverflowRegion'
            - description: The region of card's country
        merchantRegion:
          allOf:
            - $ref: '#/components/schemas/SilverflowRegion'
            - description: The region of merchant's country
    FirstPresentmentDMSSpecific:
      type: object
      required:
        - processingDate
        - bin
        - arn
        - clearableTime
        - merchantAcceptor
        - chargeKey
        - authorizationAmount
        - clearingAmount
        - grossSettlementAmount
        - interchangeFeeAmount
        - acquirerIdCode
        - transactionType
        - filename
      properties:
        arn:
          description: The Acquirer Reference Number; Unique identifier assigned by the Silverflow at clearing used to identify the transaction with the card networks.
          type: string
          readOnly: true
        processingDate:
          type: string
          format: date
          description: The processing date
        bin:
          $ref: '#/components/schemas/bin'
        clearableTime:
          type: string
          format: date-time
          description: The DateTime after which a transaction should be cleared.
        merchantAcceptor:
          $ref: '#/components/schemas/merchantAcceptor'
        chargeKey:
          $ref: '#/components/schemas/components-schemas-chargeKey'
        authorizationAmount:
          $ref: '#/components/schemas/settlementAmountInteger'
        clearingAmount:
          $ref: '#/components/schemas/settlementAmountInteger'
        grossSettlementAmount:
          $ref: '#/components/schemas/settlementAmountFloatWithRate'
        interchangeFeeAmount:
          $ref: '#/components/schemas/settlementAmountFloatWithRate'
        transactionReference:
          $ref: '#/components/schemas/components-schemas-transactionReference'
        actionKey:
          $ref: '#/components/schemas/components-schemas-actionKey'
        actionReference:
          $ref: '#/components/schemas/components-schemas-actionReference'
        filename:
          type: string
        acquirerIdCode:
          $ref: '#/components/schemas/components-schemas-acquirerIdCode'
        transactionType:
          $ref: '#/components/schemas/transactionType'
        tags:
          $ref: '#/components/schemas/schemas-Tags'
        cardInfoSummary:
          $ref: '#/components/schemas/CardInfoSummary'
        interchangeFeeProgram:
          $ref: '#/components/schemas/PublicInterchangeFeeProgram'
        cashbackAmount:
          allOf:
            - description: |
                The cashback amount, in minor units, included in the `netSettlementAmount`.
                For example `$12.34` is encoded as `1234`. Currently only potentially present for Visa and Mastercard.
            - $ref: '#/components/schemas/openapi_components-schemas-Amount-2'
        transactionRegionalitySummary:
          $ref: '#/components/schemas/TransactionRegionalitySummary'
    reconciliationDetailKey:
      description: Uniquely identifies a Reconciliation Detail
      type: string
      pattern: ^rcl-[a-zA-Z0-9]{20}$
      readOnly: true
      example: '{{reconciliationDetail}}'
    correctedReconciliationDetailKey:
      description: The key of the reconciliation detail that is being corrected (nullified). This field is only present if `isCorrection` is set to `true`.
      type: string
      pattern: ^rcl-[a-zA-Z0-9]{20}$
      readOnly: true
      example: '{{reconciliationDetail}}'
    openapi_components-schemas-cardNetwork:
      type: string
      description: The card network
      enum:
        - mastercard
        - visa
        - bancontact
        - american-express
        - discover
      example: mastercard
    settlementAmountFloat:
      type: object
      required:
        - currency
        - value
        - impact
      properties:
        currency:
          $ref: '#/components/schemas/openapi_components-schemas-currencyCode-5'
        value:
          $ref: '#/components/schemas/floatAmountValue'
        impact:
          enum:
            - credit
            - debit
    fundsTransferDate:
      format: date
      type: string
      description: The (value) date of the funds transfer.
    fundsTransferBookDate:
      format: date
      type: string
      description: The book date of the funds transfer.
    SettlementService:
      type: object
      required:
        - code
        - id
        - name
      properties:
        code:
          type: string
          description: Identifier of the Settlement Service as defined by the Card Network.
        name:
          type: string
          description: The name of the Settlement Service used
        id:
          type: string
          description: This field contains the code which identifies the Settlement Service used.
    reconciliationDetailNetworkFundsTransferKey:
      description: Uniquely identifies the networkFundsTransfer object that is going to contain the funds corresponding to this reconciliation detail
      type: string
      pattern: ^nft-[a-zA-Z0-9]+$
      readOnly: true
    BaseReconciliationDetail:
      type: object
      required:
        - key
        - groupReference
        - entry
        - isCorrection
        - created
        - reportingFor
        - network
        - netSettlementAmount
        - fundsTransferDate
        - fundsTransferBookDate
        - settlementService
      properties:
        key:
          $ref: '#/components/schemas/reconciliationDetailKey'
        groupReference:
          type: string
          description: Identifies a group of related Reconciliation Details, possibly of different types. For example, a `firstPresentment-dms` has the same `groupReference` as the corresponding `firstChargeback-dms`.
        entry:
          type: integer
          description: The sequence number of a Reconciliation Detail within a series of Reconciliation Details with the same `groupReference` and `type`. Reconciliation Details that are corrections will have the same sequence number as the Detail they are correcting.
        isCorrection:
          type: boolean
          description: Has the value `true` when the Reconciliation Detail is part of a Correction Procedure and serves to nullify a Reconciliation Detail.
        correctedDetailKey:
          $ref: '#/components/schemas/correctedReconciliationDetailKey'
        created:
          $ref: '#/components/schemas/openapi_components-schemas-created-2'
        reportingFor:
          type: string
          description: This field contains fund transfer level SREs for Visa details and the acquirer ICA for Mastercard details.
        network:
          $ref: '#/components/schemas/openapi_components-schemas-cardNetwork'
        netSettlementAmount:
          $ref: '#/components/schemas/settlementAmountFloat'
        fundsTransferDate:
          $ref: '#/components/schemas/fundsTransferDate'
        fundsTransferBookDate:
          $ref: '#/components/schemas/fundsTransferBookDate'
        settlementService:
          $ref: '#/components/schemas/SettlementService'
        networkFundsTransferKey:
          $ref: '#/components/schemas/reconciliationDetailNetworkFundsTransferKey'
    FirstPresentmentDMSReconciliationDetail:
      allOf:
        - type: object
          required:
            - type
            - typeSpecific
          properties:
            type:
              type: string
              enum:
                - firstPresentment-dms
            typeSpecific:
              $ref: '#/components/schemas/FirstPresentmentDMSSpecific'
        - $ref: '#/components/schemas/BaseReconciliationDetail'
    rrn:
      description: The Retrieval Reference Number; Unique identifier used to identify transactions.
      type: string
      readOnly: true
    FirstPresentmentSMSSpecific:
      type: object
      required:
        - rrn
        - processingDate
        - bin
        - merchantAcceptor
        - chargeKey
        - authorizationAmount
        - grossSettlementAmount
        - interchangeFeeAmount
        - acquirerIdCode
        - transactionType
      properties:
        rrn:
          $ref: '#/components/schemas/rrn'
        processingDate:
          type: string
          format: date
          description: The processing date
        bin:
          $ref: '#/components/schemas/bin'
        transactionReference:
          $ref: '#/components/schemas/components-schemas-transactionReference'
        actionKey:
          $ref: '#/components/schemas/components-schemas-actionKey'
        actionReference:
          $ref: '#/components/schemas/components-schemas-actionReference'
        merchantAcceptor:
          $ref: '#/components/schemas/merchantAcceptor'
        chargeKey:
          $ref: '#/components/schemas/components-schemas-chargeKey'
        authorizationAmount:
          $ref: '#/components/schemas/settlementAmountInteger'
        grossSettlementAmount:
          $ref: '#/components/schemas/settlementAmountFloatWithRate'
        interchangeFeeAmount:
          $ref: '#/components/schemas/settlementAmountFloatWithRate'
        acquirerIdCode:
          $ref: '#/components/schemas/components-schemas-acquirerIdCode'
        transactionType:
          $ref: '#/components/schemas/transactionType'
        tags:
          $ref: '#/components/schemas/schemas-Tags'
        cardInfoSummary:
          $ref: '#/components/schemas/CardInfoSummary'
        interchangeFeeProgram:
          $ref: '#/components/schemas/PublicInterchangeFeeProgram'
        transactionRegionalitySummary:
          $ref: '#/components/schemas/TransactionRegionalitySummary'
    FirstPresentmentSMSReconciliationDetail:
      allOf:
        - type: object
          required:
            - type
            - typeSpecific
          properties:
            type:
              type: string
              enum:
                - firstPresentment-sms
            typeSpecific:
              $ref: '#/components/schemas/FirstPresentmentSMSSpecific'
        - $ref: '#/components/schemas/BaseReconciliationDetail'
    FirstPresentmentRTCSpecific:
      type: object
      required:
        - processingDate
        - bin
        - merchantAcceptor
        - chargeKey
        - authorizationAmount
        - grossSettlementAmount
        - interchangeFeeAmount
        - acquirerIdCode
        - transactionType
        - switchPeriodNumber
        - switchPeriodDate
      properties:
        rrn:
          $ref: '#/components/schemas/rrn'
        processingDate:
          type: string
          format: date
          description: The processing date
        bin:
          $ref: '#/components/schemas/bin'
        transactionReference:
          $ref: '#/components/schemas/components-schemas-transactionReference'
        merchantAcceptor:
          $ref: '#/components/schemas/merchantAcceptor'
        chargeKey:
          $ref: '#/components/schemas/components-schemas-chargeKey'
        authorizationAmount:
          $ref: '#/components/schemas/settlementAmountInteger'
        grossSettlementAmount:
          $ref: '#/components/schemas/settlementAmountFloatWithRate'
        interchangeFeeAmount:
          $ref: '#/components/schemas/settlementAmountFloatWithRate'
        acquirerIdCode:
          $ref: '#/components/schemas/components-schemas-acquirerIdCode'
        transactionType:
          $ref: '#/components/schemas/transactionType'
        interchangeFeeProgram:
          $ref: '#/components/schemas/PublicInterchangeFeeProgram'
        switchPeriodNumber:
          type: string
        switchPeriodDate:
          type: string
          format: date
    FirstPresentmentRTCReconciliationDetail:
      allOf:
        - type: object
          required:
            - type
            - typeSpecific
          properties:
            type:
              type: string
              enum:
                - firstPresentment-rtc
            typeSpecific:
              $ref: '#/components/schemas/FirstPresentmentRTCSpecific'
        - $ref: '#/components/schemas/BaseReconciliationDetail'
    processingDate:
      type: string
      format: date
      description: The processing date
    CardNetworkFeeSpecific:
      type: object
      required:
        - acquirerIdCode
        - processingDate
        - type
        - subType
        - description
      properties:
        acquirerIdCode:
          $ref: '#/components/schemas/components-schemas-acquirerIdCode'
        processingDate:
          $ref: '#/components/schemas/processingDate'
        type:
          type: string
          description: This field contains the type of the Fee.
        subType:
          type: string
          description: This field contains the subType of the Fee.
        description:
          type: string
          description: This field contains a description of the Fee.
    CardNetworkFeeReconciliationDetail:
      allOf:
        - type: object
          required:
            - type
            - typeSpecific
          properties:
            type:
              type: string
              enum:
                - cardNetworkFee-dms
            typeSpecific:
              $ref: '#/components/schemas/CardNetworkFeeSpecific'
        - $ref: '#/components/schemas/BaseReconciliationDetail'
    arn:
      description: The Acquirer Reference Number; Unique identifier assigned by the Silverflow at clearing used to identify the transaction with the card networks.
      type: string
      readOnly: true
    preDisputeType:
      type: string
      description: The type of pre-dispute resolution used for this transaction.
      enum:
        - rapidDisputeResolution
        - collaborationRefund
    FirstChargebackDMSSpecific:
      type: object
      required:
        - arn
        - processingDate
        - bin
        - grossSettlementAmount
        - acquirerIdCode
        - transactionType
        - interchangeFeeAmount
      properties:
        arn:
          $ref: '#/components/schemas/arn'
        processingDate:
          $ref: '#/components/schemas/processingDate'
        bin:
          $ref: '#/components/schemas/bin'
        transactionReference:
          $ref: '#/components/schemas/components-schemas-transactionReference'
        merchantAcceptor:
          $ref: '#/components/schemas/merchantAcceptor'
        chargeKey:
          $ref: '#/components/schemas/components-schemas-chargeKey'
        acquirerIdCode:
          $ref: '#/components/schemas/components-schemas-acquirerIdCode'
        authorizationAmount:
          $ref: '#/components/schemas/settlementAmountInteger'
        grossSettlementAmount:
          $ref: '#/components/schemas/settlementAmountFloat'
        interchangeFeeAmount:
          $ref: '#/components/schemas/settlementAmountFloat'
        transactionType:
          $ref: '#/components/schemas/transactionType'
        preDispute:
          $ref: '#/components/schemas/preDisputeType'
        reversal:
          type: boolean
        tags:
          $ref: '#/components/schemas/schemas-Tags'
    FirstChargebackDMSReconciliationDetail:
      allOf:
        - type: object
          required:
            - type
            - typeSpecific
          properties:
            type:
              type: string
              enum:
                - firstChargeback-dms
            typeSpecific:
              $ref: '#/components/schemas/FirstChargebackDMSSpecific'
        - $ref: '#/components/schemas/BaseReconciliationDetail'
    SecondPresentmentDMSSpecific:
      type: object
      required:
        - processingDate
        - bin
        - arn
        - grossSettlementAmount
        - interchangeFeeAmount
        - acquirerIdCode
        - transactionType
      properties:
        arn:
          $ref: '#/components/schemas/arn'
        processingDate:
          $ref: '#/components/schemas/processingDate'
        bin:
          $ref: '#/components/schemas/bin'
        transactionReference:
          $ref: '#/components/schemas/components-schemas-transactionReference'
        merchantAcceptor:
          $ref: '#/components/schemas/merchantAcceptor'
        chargeKey:
          $ref: '#/components/schemas/components-schemas-chargeKey'
        acquirerIdCode:
          $ref: '#/components/schemas/components-schemas-acquirerIdCode'
        authorizationAmount:
          $ref: '#/components/schemas/settlementAmountInteger'
        grossSettlementAmount:
          $ref: '#/components/schemas/settlementAmountFloat'
        interchangeFeeAmount:
          $ref: '#/components/schemas/settlementAmountFloat'
        transactionType:
          $ref: '#/components/schemas/transactionType'
        tags:
          $ref: '#/components/schemas/schemas-Tags'
    SecondPresentmentDMSReconciliationDetail:
      allOf:
        - type: object
          required:
            - type
            - typeSpecific
          properties:
            type:
              type: string
              enum:
                - secondPresentment-dms
            typeSpecific:
              $ref: '#/components/schemas/SecondPresentmentDMSSpecific'
        - $ref: '#/components/schemas/BaseReconciliationDetail'
    SecondPresentmentSMSSpecific:
      type: object
      required:
        - processingDate
        - bin
        - rrn
        - grossSettlementAmount
        - interchangeFeeAmount
        - acquirerIdCode
        - transactionType
      properties:
        rrn:
          $ref: '#/components/schemas/rrn'
        processingDate:
          $ref: '#/components/schemas/processingDate'
        bin:
          $ref: '#/components/schemas/bin'
        transactionReference:
          $ref: '#/components/schemas/components-schemas-transactionReference'
        merchantAcceptor:
          $ref: '#/components/schemas/merchantAcceptor'
        chargeKey:
          $ref: '#/components/schemas/components-schemas-chargeKey'
        acquirerIdCode:
          $ref: '#/components/schemas/components-schemas-acquirerIdCode'
        authorizationAmount:
          $ref: '#/components/schemas/settlementAmountInteger'
        grossSettlementAmount:
          $ref: '#/components/schemas/settlementAmountFloat'
        interchangeFeeAmount:
          $ref: '#/components/schemas/settlementAmountFloat'
        transactionType:
          $ref: '#/components/schemas/transactionType'
        tags:
          $ref: '#/components/schemas/schemas-Tags'
    SecondPresentmentSMSReconciliationDetail:
      allOf:
        - type: object
          required:
            - type
            - typeSpecific
          properties:
            type:
              type: string
              enum:
                - secondPresentment-sms
            typeSpecific:
              $ref: '#/components/schemas/SecondPresentmentSMSSpecific'
        - $ref: '#/components/schemas/BaseReconciliationDetail'
    PreArbitrationDMSSpecific:
      type: object
      required:
        - arn
        - processingDate
        - bin
        - grossSettlementAmount
        - acquirerIdCode
        - transactionType
        - interchangeFeeAmount
        - reversal
      properties:
        arn:
          $ref: '#/components/schemas/arn'
        processingDate:
          $ref: '#/components/schemas/processingDate'
        bin:
          $ref: '#/components/schemas/bin'
        transactionReference:
          $ref: '#/components/schemas/components-schemas-transactionReference'
        merchantAcceptor:
          $ref: '#/components/schemas/merchantAcceptor'
        chargeKey:
          $ref: '#/components/schemas/components-schemas-chargeKey'
        acquirerIdCode:
          $ref: '#/components/schemas/components-schemas-acquirerIdCode'
        authorizationAmount:
          $ref: '#/components/schemas/settlementAmountInteger'
        grossSettlementAmount:
          $ref: '#/components/schemas/settlementAmountFloat'
        interchangeFeeAmount:
          $ref: '#/components/schemas/settlementAmountFloat'
        transactionType:
          $ref: '#/components/schemas/transactionType'
        reversal:
          type: boolean
        disputeOutcome:
          type: string
          enum:
            - closedLost
            - closedWon
        tags:
          $ref: '#/components/schemas/schemas-Tags'
    PreArbitrationDMSReconciliationDetail:
      allOf:
        - type: object
          required:
            - type
            - typeSpecific
          properties:
            type:
              type: string
              enum:
                - preArbitration-dms
            typeSpecific:
              $ref: '#/components/schemas/PreArbitrationDMSSpecific'
        - $ref: '#/components/schemas/BaseReconciliationDetail'
    ArbitrationDMSSpecific:
      type: object
      required:
        - arn
        - processingDate
        - bin
        - grossSettlementAmount
        - acquirerIdCode
        - transactionType
        - interchangeFeeAmount
        - reversal
      properties:
        arn:
          $ref: '#/components/schemas/arn'
        processingDate:
          $ref: '#/components/schemas/processingDate'
        bin:
          $ref: '#/components/schemas/bin'
        transactionReference:
          $ref: '#/components/schemas/components-schemas-transactionReference'
        merchantAcceptor:
          $ref: '#/components/schemas/merchantAcceptor'
        chargeKey:
          $ref: '#/components/schemas/components-schemas-chargeKey'
        acquirerIdCode:
          $ref: '#/components/schemas/components-schemas-acquirerIdCode'
        authorizationAmount:
          $ref: '#/components/schemas/settlementAmountInteger'
        grossSettlementAmount:
          $ref: '#/components/schemas/settlementAmountFloat'
        interchangeFeeAmount:
          $ref: '#/components/schemas/settlementAmountFloat'
        transactionType:
          $ref: '#/components/schemas/transactionType'
        reversal:
          type: boolean
        disputeOutcome:
          type: string
          enum:
            - closedLost
            - closedWon
        tags:
          $ref: '#/components/schemas/schemas-Tags'
    ArbitrationDMSReconciliationDetail:
      allOf:
        - type: object
          required:
            - type
            - typeSpecific
          properties:
            type:
              type: string
              enum:
                - arbitration-dms
            typeSpecific:
              $ref: '#/components/schemas/ArbitrationDMSSpecific'
        - $ref: '#/components/schemas/BaseReconciliationDetail'
    FirstChargebackSMSSpecific:
      type: object
      required:
        - rrn
        - processingDate
        - bin
        - merchantAcceptor
        - chargeKey
        - grossSettlementAmount
        - interchangeFeeAmount
        - acquirerIdCode
        - transactionType
        - reversal
      properties:
        rrn:
          $ref: '#/components/schemas/rrn'
        processingDate:
          $ref: '#/components/schemas/processingDate'
        bin:
          $ref: '#/components/schemas/bin'
        transactionReference:
          $ref: '#/components/schemas/components-schemas-transactionReference'
        actionKey:
          $ref: '#/components/schemas/components-schemas-actionKey'
        actionReference:
          $ref: '#/components/schemas/components-schemas-actionReference'
        merchantAcceptor:
          $ref: '#/components/schemas/merchantAcceptor'
        chargeKey:
          $ref: '#/components/schemas/components-schemas-chargeKey'
        grossSettlementAmount:
          $ref: '#/components/schemas/settlementAmountFloatWithRate'
        interchangeFeeAmount:
          $ref: '#/components/schemas/settlementAmountFloatWithRate'
        acquirerIdCode:
          $ref: '#/components/schemas/components-schemas-acquirerIdCode'
        transactionType:
          $ref: '#/components/schemas/transactionType'
        preDispute:
          $ref: '#/components/schemas/preDisputeType'
        reversal:
          type: boolean
        tags:
          $ref: '#/components/schemas/schemas-Tags'
    FirstChargebackSMSReconciliationDetail:
      allOf:
        - type: object
          required:
            - type
            - typeSpecific
          properties:
            type:
              type: string
              enum:
                - firstChargeback-sms
            typeSpecific:
              $ref: '#/components/schemas/FirstChargebackSMSSpecific'
        - $ref: '#/components/schemas/BaseReconciliationDetail'
    ReconciliationDetail:
      discriminator:
        propertyName: type
        mapping:
          firstPresentment-dms: '#/components/schemas/FirstPresentmentDMSReconciliationDetail'
          firstPresentment-sms: '#/components/schemas/FirstPresentmentSMSReconciliationDetail'
          firstPresentment-rtc: '#/components/schemas/FirstPresentmentRTCReconciliationDetail'
          cardNetworkFee-dms: '#/components/schemas/CardNetworkFeeReconciliationDetail'
          firstChargeback-dms: '#/components/schemas/FirstChargebackDMSReconciliationDetail'
          secondPresentment-dms: '#/components/schemas/SecondPresentmentDMSReconciliationDetail'
          secondPresentment-sms: '#/components/schemas/SecondPresentmentSMSReconciliationDetail'
          preArbitration-dms: '#/components/schemas/PreArbitrationDMSReconciliationDetail'
          arbitration-dms: '#/components/schemas/ArbitrationDMSReconciliationDetail'
          firstChargeback-sms: '#/components/schemas/FirstChargebackSMSReconciliationDetail'
      oneOf:
        - $ref: '#/components/schemas/FirstPresentmentDMSReconciliationDetail'
        - $ref: '#/components/schemas/FirstPresentmentSMSReconciliationDetail'
        - $ref: '#/components/schemas/FirstPresentmentRTCReconciliationDetail'
        - $ref: '#/components/schemas/CardNetworkFeeReconciliationDetail'
        - $ref: '#/components/schemas/FirstChargebackDMSReconciliationDetail'
        - $ref: '#/components/schemas/SecondPresentmentDMSReconciliationDetail'
        - $ref: '#/components/schemas/SecondPresentmentSMSReconciliationDetail'
        - $ref: '#/components/schemas/PreArbitrationDMSReconciliationDetail'
        - $ref: '#/components/schemas/ArbitrationDMSReconciliationDetail'
        - $ref: '#/components/schemas/FirstChargebackSMSReconciliationDetail'
    responseOffsetToken:
      type: string
      pattern: ^[a-zA-Z0-9%]+$
      description: The offset token. Can be used to continue paginating in the next request.
    ReconciliationDetailsPage:
      type: object
      required:
        - items
        - moreItems
      properties:
        items:
          type: array
          items:
            $ref: '#/components/schemas/ReconciliationDetail'
        moreItems:
          type: boolean
        offsetToken:
          $ref: '#/components/schemas/responseOffsetToken'
    openapi_components-schemas-ProblemDetail:
      type: object
      description: |
        The 'problem detail' object relays detailed information about the error that occurred. It is defined
        by [RFC 7807 - Problem Details for HTTP APIs](https://tools.ietf.org/html/rfc7807).

        Note that additional properties may be used to relay error specific information. For instance,
        A Bad Request error may hold information about the individual validation errors found in the request.
      properties:
        type:
          type: string
          description: |
            An absolute URI that identifies the problem type.
          example: https://api.silverflow.co/problem/constraint-violation
        title:
          type: string
          description: |
            A short, summary of the problem type. Written in english and readable
            for engineers (usually not suited for non technical stakeholders and
            not localized);
          example: Service Unavailable
        status:
          type: integer
          format: int32
          description: |
            The HTTP status code generated by the origin server for this occurrence
            of the problem.
          minimum: 100
          maximum: 599
          example: 403
        detail:
          type: string
          description: |
            A human readable explanation specific to this occurrence of the
            problem.
          example: Connection to database timed out
        instance:
          type: string
          description: |
            An absolute URI that identifies the specific occurrence of the problem.
            It may or may not yield further information if dereferenced.
      additionalProperties: true
    GenericBadRequestError:
      allOf:
        - $ref: '#/components/schemas/openapi_components-schemas-ProblemDetail'
        - type: object
          properties:
            type:
              enum:
                - /silverflow/problems/bad-request
            title:
              enum:
                - Bad Request
    InvalidOffsetTokenError:
      allOf:
        - $ref: '#/components/schemas/openapi_components-schemas-ProblemDetail'
        - type: object
          properties:
            type:
              enum:
                - /silverflow/problems/invalid-offset-token
            title:
              enum:
                - Invalid Offset Token
    NetworkFundsTransferKey:
      description: Uniquely identifies a networkFundsTransfer object
      type: string
      pattern: ^nft-[a-zA-Z0-9]+$
      readOnly: true
    requestOffsetToken:
      type: string
      pattern: ^[a-zA-Z0-9%]+$
      description: The offset token. This token is returned in the response of previous request.
    reportingFor:
      type: string
      description: Identifier for which Settlement Information is reported by the Card Networks (Visa SRE, Mastercard ICA).
    networkFundsTransfer_SettlementService:
      type: object
      description: The Settlement Service concerned
      required:
        - code
        - name
        - currency
      properties:
        code:
          description: Unique code of settlement service
          type: string
        name:
          description: Name of settlement service
          type: string
        currency:
          $ref: '#/components/schemas/openapi_components-schemas-currencyCode-5'
    fundsTransferAmountValue:
      type: integer
      format: int64
      minimum: 0
      description: |
        The amount in minor units. For example `$12.34` should be encoded as `1234`. Note that not all
        currencies have 2 minor units; some have three or zero.
    ReportedAmount:
      type: object
      description: The Net Settlement Amount of the Funds Transfer as reported by the Card Network
      required:
        - value
        - impact
        - currency
      properties:
        value:
          $ref: '#/components/schemas/fundsTransferAmountValue'
        impact:
          enum:
            - credit
            - debit
        currency:
          $ref: '#/components/schemas/openapi_components-schemas-currencyCode-5'
    Reported:
      type: object
      description: The properties of the Funds Transfer as reported by the Card Network
      required:
        - amount
      properties:
        amount:
          $ref: '#/components/schemas/ReportedAmount'
    networkfundsTransferStatus:
      type: string
      description: The status of the networkFundsTransfer. When flagged as `pending` the networkFundsTransfer is expected to change in the future as a result of new reports coming in from the card scheme. When flagged as `completed` the networkFundsTransfer is final.
      enum:
        - completed
        - pending
    OpeningDebitBalance:
      type: object
      description: The opening debit balance of the account at the time of funds transfer.
      required:
        - value
        - impact
        - currency
      properties:
        value:
          $ref: '#/components/schemas/openapi_components-schemas-amountValue-3'
        impact:
          enum:
            - debit
        currency:
          $ref: '#/components/schemas/openapi_components-schemas-currencyCode-5'
    NetworkFundsTransfer:
      type: object
      required:
        - key
        - cardNetwork
        - reportingFor
        - settlementService
        - reported
        - fundsTransferBookDate
        - fundsTransferDate
        - status
        - created
        - lastModified
      description: The expected Funds Transfer as a result of net settlement.
      properties:
        key:
          $ref: '#/components/schemas/NetworkFundsTransferKey'
        cardNetwork:
          $ref: '#/components/schemas/openapi_components-schemas-cardNetwork'
        reportingFor:
          $ref: '#/components/schemas/reportingFor'
        settlementService:
          $ref: '#/components/schemas/networkFundsTransfer_SettlementService'
        reported:
          $ref: '#/components/schemas/Reported'
        fundsTransferBookDate:
          description: The book date of the funds transfer.
          type: string
          format: date
        fundsTransferDate:
          description: The (value) date of the funds transfer.
          type: string
          format: date
        created:
          $ref: '#/components/schemas/openapi_components-schemas-created-2'
        lastModified:
          $ref: '#/components/schemas/openapi_components-schemas-lastModified-2'
        status:
          $ref: '#/components/schemas/networkfundsTransferStatus'
        openingDebitBalance:
          $ref: '#/components/schemas/OpeningDebitBalance'
    NetworkFundsTransfersPage:
      type: object
      required:
        - networkFundsTransfers
        - moreItems
      properties:
        networkFundsTransfers:
          type: array
          items:
            $ref: '#/components/schemas/NetworkFundsTransfer'
        moreItems:
          type: boolean
        offsetToken:
          $ref: '#/components/schemas/responseOffsetToken'
    reconciliationDetailsReportByCreatedTimeParameters:
      type: object
      required:
        - createdFrom
        - createdTo
      description: The query parameters used for a report.
      additionalProperties: false
      properties:
        createdFrom:
          type: string
          format: date-time
          description: Include only items that have a created date greater than or equal to the specified date.
        createdTo:
          type: string
          format: date-time
          description: Include only items that have a created date less than or equal to the specified date.
    reconciliationDetailsReportByNftKeyParameters:
      type: object
      description: The query parameters used for a report.
      required:
        - nftKey
      additionalProperties: false
      properties:
        nftKey:
          type: string
          description: The Network Funds Transfer Key
    reconciliationDetailsReportParameters:
      oneOf:
        - $ref: '#/components/schemas/reconciliationDetailsReportByCreatedTimeParameters'
        - $ref: '#/components/schemas/reconciliationDetailsReportByNftKeyParameters'
    reconciliationDetailsReportMimeType:
      type: string
      description: The mime-type in which the reconciliation details report is available.
      enum:
        - text/csv
        - application/json
        - application/x-ndjson
    components-schemas-reference:
      type: string
      description: Unique ID used to identify a report.
      maxLength: 120
    distributionKey:
      description: Uniquely identifies a distribution object
      type: string
      pattern: ^dst-[a-zA-Z0-9]+$
      minLength: 10
      maxLength: 120
      example: dst-1e1dAHhgstYTUhlphPzZ
    distributions:
      description: |
        The distribution objects' keys.

        If passed, the report will be distributed when generation is completed.
      type: array
      items:
        $ref: '#/components/schemas/distributionKey'
    ReconciliationDetailsReportRequest:
      type: object
      required:
        - parameters
        - mimeType
      description: Create Reconciliation Details Report
      additionalProperties: false
      properties:
        parameters:
          $ref: '#/components/schemas/reconciliationDetailsReportParameters'
        mimeType:
          $ref: '#/components/schemas/reconciliationDetailsReportMimeType'
        reference:
          $ref: '#/components/schemas/components-schemas-reference'
        distributions:
          $ref: '#/components/schemas/distributions'
    ReconciliationDetailsReportName:
      type: string
      description: The name of the report.
      enum:
        - ReconciliationDetails
    reportKey:
      description: Uniquely identifies a report object
      type: string
      pattern: ^rep-[a-zA-Z0-9]+$
      minLength: 10
      maxLength: 120
      example: rep-1e1dAHhgstYTUhlphPzZ
    AgentKey:
      description: Uniquely identifies an Agent
      type: string
      pattern: ^cgt-[a-zA-Z0-9]+|current$
      readOnly: true
      example: cgt-1UF2NafdfrdPMf2XrS2
    createReportStatus:
      description: The status of the report.
      type: string
      enum:
        - scheduled
    CreateReconciliationDetailsReportResponse:
      type: object
      required:
        - reportName
        - parameters
        - mimeType
        - key
        - agentKey
        - status
        - created
      properties:
        reportName:
          $ref: '#/components/schemas/ReconciliationDetailsReportName'
        parameters:
          $ref: '#/components/schemas/reconciliationDetailsReportParameters'
        mimeType:
          $ref: '#/components/schemas/reconciliationDetailsReportMimeType'
        key:
          $ref: '#/components/schemas/reportKey'
        agentKey:
          $ref: '#/components/schemas/AgentKey'
        reference:
          $ref: '#/components/schemas/components-schemas-reference'
        status:
          $ref: '#/components/schemas/createReportStatus'
        created:
          $ref: '#/components/schemas/openapi_components-schemas-created-2'
        distributions:
          type: array
          items:
            $ref: '#/components/schemas/distributionKey'
    InvalidDateRangeErrorDetails:
      type: object
      required:
        - type
        - title
        - status
        - detail
        - instance
      properties:
        type:
          allOf:
            - $ref: '#/components/schemas/errorType'
            - enum:
                - /silverflow/problems/report/invalid-date-range
        title:
          allOf:
            - $ref: '#/components/schemas/errorTitle'
            - enum:
                - Invalid date range
        status:
          allOf:
            - $ref: '#/components/schemas/errorStatus'
            - enum:
                - 400
        detail:
          $ref: '#/components/schemas/errorDetail'
        instance:
          $ref: '#/components/schemas/errorInstance'
    InvalidReportNameErrorDetails:
      type: object
      required:
        - type
        - title
        - status
        - detail
        - instance
      properties:
        type:
          allOf:
            - $ref: '#/components/schemas/errorType'
            - enum:
                - /silverflow/problems/report/invalid-report-name
        title:
          allOf:
            - $ref: '#/components/schemas/errorTitle'
            - enum:
                - Invalid report name
        status:
          allOf:
            - $ref: '#/components/schemas/errorStatus'
            - enum:
                - 400
        detail:
          $ref: '#/components/schemas/errorDetail'
        instance:
          $ref: '#/components/schemas/errorInstance'
    openapi_components-schemas-ValidationError:
      type: object
      required:
        - path
        - errorCode
        - message
      properties:
        path:
          type: string
          description: The path to the error location in the request params or body.
        errorCode:
          type: string
          description: The error code identifying the error type.
        message:
          type: string
          description: The error message.
    InputValidationError:
      type: object
      required:
        - type
        - title
        - status
        - detail
        - instance
        - validationErrors
      properties:
        type:
          allOf:
            - $ref: '#/components/schemas/errorType'
            - enum:
                - /silverflow/problems/invalid-input
        title:
          allOf:
            - $ref: '#/components/schemas/errorTitle'
            - enum:
                - Invalid Input
        status:
          allOf:
            - $ref: '#/components/schemas/errorStatus'
            - enum:
                - 400
        detail:
          allOf:
            - $ref: '#/components/schemas/errorDetail'
            - enum:
                - The request does not adhere to the defined API schema.
        instance:
          $ref: '#/components/schemas/errorInstance'
        validationErrors:
          type: array
          items:
            $ref: '#/components/schemas/openapi_components-schemas-ValidationError'
          description: A list of validation errors.
    NotAuthorizedErrorDetails:
      type: object
      required:
        - type
        - title
        - status
        - detail
        - instance
      properties:
        type:
          allOf:
            - $ref: '#/components/schemas/errorType'
            - enum:
                - /silverflow/problems/report/not-authorized
        title:
          allOf:
            - $ref: '#/components/schemas/errorTitle'
            - enum:
                - Not authorized
        status:
          allOf:
            - $ref: '#/components/schemas/errorStatus'
            - enum:
                - 401
        detail:
          $ref: '#/components/schemas/errorDetail'
        instance:
          $ref: '#/components/schemas/errorInstance'
    openapi_components-schemas-ProblemDetail-2:
      type: object
      description: |
        The 'problem detail' object relays detailed information about the error that occurred. It is defined
        by [RFC 7807 - Problem Details for HTTP APIs](https://tools.ietf.org/html/rfc7807).

        Note that additional properties may be used to relay error specific information. For instance,
        A Bad Request error may hold information about the individual validation errors found in the request.
      properties:
        type:
          type: string
          description: |
            An absolute URI that identifies the problem type.
          default: about:blank
          example: https://api.silverflow.co/problem/constraint-violation
        title:
          type: string
          description: |
            A short, summary of the problem type. Written in english and readable
            for engineers (usually not suited for non technical stakeholders and
            not localized);
          example: Service Unavailable
        status:
          type: integer
          format: int32
          description: |
            The HTTP status code generated by the origin server for this occurrence
            of the problem.
          minimum: 100
          maximum: 599
          example: 503
        detail:
          type: string
          description: |
            A human readable explanation specific to this occurrence of the
            problem.
          example: Connection to database timed out
        instance:
          type: string
          description: |
            An absolute URI that identifies the specific occurrence of the problem.
            It may or may not yield further information if dereferenced.
      additionalProperties: true
      example:
        type: https://api.silverflow.co/problem/bad-request
        title: Bad Request
        status: 400
        detail: The request could not be processed as it contained an invalid request entity
        instance: https://api.silverflow.co/v1/reports/rep-1hPdFqhgstYTUhlphPDp
        validationErrors:
          - The value of property 'status' should be one of 'idle', 'active' or 'archived'
          - The value of property 'tags.0.businessId' must not be longer than 255 characters
    disputeHistoryEventsReportParameters:
      type: object
      description: The query parameters used for a report.
      required:
        - createdFrom
        - createdTo
      additionalProperties: false
      properties:
        createdFrom:
          anyOf:
            - type: string
              format: date
            - type: string
              format: date-time
          description: Include items that have a created date greater than or equal to the specified date/date-time. Accepts both date (YYYY-MM-DD) and ISO 8601 datetime formats. Use date format for queries before 2026-04-01T00:00:00Z. `date` type support is deprecated (April 1st, 2026).
          example: '2025-04-24'
        createdTo:
          anyOf:
            - type: string
              format: date
            - type: string
              format: date-time
          description: Include items that have a created date less than or equal to the specified date/date-time. Accepts both date (YYYY-MM-DD) and ISO 8601 datetime formats. Use date format for queries before 2026-04-01T00:00:00Z. `date` type support is deprecated (April 1st, 2026).
          example: '2025-04-25'
    disputeHistoryEventsReportMimeType:
      type: string
      description: The mime-type in which the disputes report is available.
      enum:
        - text/csv
        - application/json
        - application/x-ndjson
    DisputeHistoryEventsReportRequest:
      type: object
      required:
        - parameters
        - mimeType
      description: Create Disputes History Events Report
      additionalProperties: false
      properties:
        parameters:
          $ref: '#/components/schemas/disputeHistoryEventsReportParameters'
        mimeType:
          $ref: '#/components/schemas/disputeHistoryEventsReportMimeType'
        reference:
          $ref: '#/components/schemas/components-schemas-reference'
        distributions:
          $ref: '#/components/schemas/distributions'
    DisputeHistoryEventsReportName:
      type: string
      description: The name of the report.
      enum:
        - DisputeHistoryEvents
    CreateDisputeHistoryEventsReportResponse:
      type: object
      required:
        - reportName
        - parameters
        - mimeType
        - key
        - agentKey
        - status
        - created
      properties:
        reportName:
          $ref: '#/components/schemas/DisputeHistoryEventsReportName'
        parameters:
          $ref: '#/components/schemas/disputeHistoryEventsReportParameters'
        mimeType:
          $ref: '#/components/schemas/disputeHistoryEventsReportMimeType'
        key:
          $ref: '#/components/schemas/reportKey'
        agentKey:
          $ref: '#/components/schemas/AgentKey'
        reference:
          $ref: '#/components/schemas/components-schemas-reference'
        status:
          $ref: '#/components/schemas/createReportStatus'
        created:
          $ref: '#/components/schemas/openapi_components-schemas-created-2'
        distributions:
          $ref: '#/components/schemas/distributions'
    BinNotFoundErrorDetails:
      type: object
      required:
        - type
        - title
        - status
        - detail
        - instance
      properties:
        type:
          allOf:
            - $ref: '#/components/schemas/errorType'
            - enum:
                - /silverflow/problems/report/bin-not-found
        title:
          allOf:
            - $ref: '#/components/schemas/errorTitle'
            - enum:
                - Bin not found
        status:
          allOf:
            - $ref: '#/components/schemas/errorStatus'
            - enum:
                - 404
        detail:
          $ref: '#/components/schemas/errorDetail'
        instance:
          $ref: '#/components/schemas/errorInstance'
    fraudNotificationsReportParameters:
      type: object
      description: The query parameters used for a report.
      additionalProperties: false
      properties:
        createdFrom:
          type: string
          format: date-time
          description: Include only items that have a created date greater than or equal to the specified date
        createdTo:
          type: string
          format: date-time
          description: Include only items that have a created date less than or equal to the specified date
    fraudNotificationsReportMimeType:
      type: string
      description: The mime-type in which the fraud notifications report is available.
      enum:
        - text/csv
        - application/json
        - application/x-ndjson
    FraudNotificationsReportRequest:
      type: object
      required:
        - parameters
        - mimeType
      description: Create Fraud Notifications Report
      additionalProperties: false
      properties:
        parameters:
          $ref: '#/components/schemas/fraudNotificationsReportParameters'
        mimeType:
          $ref: '#/components/schemas/fraudNotificationsReportMimeType'
        reference:
          $ref: '#/components/schemas/components-schemas-reference'
        distributions:
          $ref: '#/components/schemas/distributions'
    FraudNotificationsReportName:
      type: string
      description: The name of the report.
      enum:
        - FraudNotifications
    CreateFraudNotificationsReportResponse:
      type: object
      required:
        - reportName
        - parameters
        - mimeType
        - key
        - agentKey
        - status
        - created
      properties:
        reportName:
          $ref: '#/components/schemas/FraudNotificationsReportName'
        parameters:
          $ref: '#/components/schemas/fraudNotificationsReportParameters'
        mimeType:
          $ref: '#/components/schemas/fraudNotificationsReportMimeType'
        key:
          $ref: '#/components/schemas/reportKey'
        agentKey:
          $ref: '#/components/schemas/AgentKey'
        reference:
          $ref: '#/components/schemas/components-schemas-reference'
        status:
          $ref: '#/components/schemas/createReportStatus'
        created:
          $ref: '#/components/schemas/openapi_components-schemas-created-2'
        distributions:
          $ref: '#/components/schemas/distributions'
    SettlementDetailsReportByCreatedTimeParameters:
      type: object
      description: The query parameters used for a report.
      additionalProperties: false
      required:
        - createdFrom
      properties:
        createdFrom:
          type: string
          format: date-time
          description: Include only items that have a created date greater than or equal to the specified date
        createdTo:
          type: string
          format: date-time
          description: Include only items that have a created date less than or equal to the specified date
    networkFundsTransferKey:
      description: Uniquely identifies a Networks Funds Transfer
      type: string
      pattern: ^nft-[a-zA-Z0-9]+$
      minLength: 10
      maxLength: 120
      example: nft-1e1dAHhgstYTUhlphPzZ
    SettlementDetailsReportByNftKeyParameters:
      type: object
      description: The query parameters used for a report.
      additionalProperties: false
      required:
        - networkFundsTransferKey
      properties:
        networkFundsTransferKey:
          $ref: '#/components/schemas/networkFundsTransferKey'
    SettlementDetailsReportParameters:
      oneOf:
        - $ref: '#/components/schemas/SettlementDetailsReportByCreatedTimeParameters'
        - $ref: '#/components/schemas/SettlementDetailsReportByNftKeyParameters'
    SettlementDetailsReportMimeType:
      type: string
      description: The mime-type in which the SettlementDetails report is available.
      enum:
        - text/csv
        - application/x-ndjson
    CreateSettlementDetailsReportRequest:
      type: object
      required:
        - parameters
        - mimeType
      description: Create SettlementDetails Report
      additionalProperties: false
      properties:
        parameters:
          $ref: '#/components/schemas/SettlementDetailsReportParameters'
        mimeType:
          $ref: '#/components/schemas/SettlementDetailsReportMimeType'
        reference:
          $ref: '#/components/schemas/components-schemas-reference'
        distributions:
          $ref: '#/components/schemas/distributions'
    SettlementDetailsReportName:
      type: string
      description: The name of the report.
      enum:
        - SettlementDetails
    CreateSettlementDetailsReportResponse:
      type: object
      required:
        - reportName
        - parameters
        - mimeType
        - key
        - agentKey
        - status
        - created
      properties:
        reportName:
          $ref: '#/components/schemas/SettlementDetailsReportName'
        parameters:
          $ref: '#/components/schemas/SettlementDetailsReportParameters'
        mimeType:
          $ref: '#/components/schemas/SettlementDetailsReportMimeType'
        key:
          $ref: '#/components/schemas/reportKey'
        agentKey:
          $ref: '#/components/schemas/AgentKey'
        reference:
          $ref: '#/components/schemas/components-schemas-reference'
        status:
          $ref: '#/components/schemas/createReportStatus'
        created:
          $ref: '#/components/schemas/openapi_components-schemas-created-2'
        distributions:
          $ref: '#/components/schemas/distributions'
    networkFundsTransfersReportParameters:
      type: object
      required:
        - fundsTransferDate
      description: The query parameters used for a report.
      additionalProperties: false
      properties:
        fundsTransferDate:
          type: string
          format: date
          description: Include only items that have a created date greater than or equal to the specified date
    networkFundsTransfersReportMimeType:
      type: string
      description: The mime-type in which the network funds transfers report is available.
      enum:
        - text/csv
        - application/json
        - application/x-ndjson
    CreateNetworkFundsTransfersReportRequest:
      type: object
      required:
        - parameters
        - mimeType
      description: Create Network Funds Transfers Report
      additionalProperties: false
      properties:
        parameters:
          $ref: '#/components/schemas/networkFundsTransfersReportParameters'
        mimeType:
          $ref: '#/components/schemas/networkFundsTransfersReportMimeType'
        reference:
          $ref: '#/components/schemas/components-schemas-reference'
        distributions:
          $ref: '#/components/schemas/distributions'
    NetworkFundsTransfersReportName:
      type: string
      description: The name of the report.
      enum:
        - NetworkFundsTransfers
    CreateNetworkFundsTransfersReportResponse:
      type: object
      required:
        - reportName
        - parameters
        - mimeType
        - key
        - agentKey
        - status
        - created
      properties:
        reportName:
          $ref: '#/components/schemas/NetworkFundsTransfersReportName'
        parameters:
          $ref: '#/components/schemas/networkFundsTransfersReportParameters'
        mimeType:
          $ref: '#/components/schemas/networkFundsTransfersReportMimeType'
        key:
          $ref: '#/components/schemas/reportKey'
        agentKey:
          $ref: '#/components/schemas/AgentKey'
        reference:
          $ref: '#/components/schemas/components-schemas-reference'
        status:
          $ref: '#/components/schemas/createReportStatus'
        created:
          $ref: '#/components/schemas/openapi_components-schemas-created-2'
        distributions:
          $ref: '#/components/schemas/distributions'
    bookDateFrom:
      type: string
      format: date-time
      description: |
        Include all scheme fees that have been created later than and including from the date specified.
        Required when querying with book dates.
    bookDateTo:
      type: string
      format: date-time
      description: Include all scheme fees that have been created earlier than and including from the date specified.
    schemeFeeDetailsReportParameters:
      type: object
      description: The query parameters used for a report.
      required:
        - bookDateFrom
      additionalProperties: false
      properties:
        bookDateFrom:
          $ref: '#/components/schemas/bookDateFrom'
        bookDateTo:
          $ref: '#/components/schemas/bookDateTo'
    schemeFeeDetailsReportMimeType:
      type: string
      description: The mime-type in which the scheme fee details report is available.
      enum:
        - application/json
        - application/x-ndjson
        - text/csv
    CreateSchemeFeeDetailsReportRequest:
      type: object
      required:
        - parameters
        - mimeType
      description: Create Scheme Fee Details Report
      additionalProperties: false
      properties:
        parameters:
          $ref: '#/components/schemas/schemeFeeDetailsReportParameters'
        reference:
          $ref: '#/components/schemas/components-schemas-reference'
        mimeType:
          $ref: '#/components/schemas/schemeFeeDetailsReportMimeType'
        distributions:
          $ref: '#/components/schemas/distributions'
    SchemeFeeDetailsReportName:
      type: string
      description: The name of the report.
      enum:
        - SchemeFeeDetails
    CreateSchemeFeeDetailsReportResponse:
      type: object
      required:
        - reportName
        - parameters
        - mimeType
        - key
        - agentKey
        - status
        - created
      properties:
        reportName:
          $ref: '#/components/schemas/SchemeFeeDetailsReportName'
        parameters:
          $ref: '#/components/schemas/schemeFeeDetailsReportParameters'
        mimeType:
          $ref: '#/components/schemas/schemeFeeDetailsReportMimeType'
        key:
          $ref: '#/components/schemas/reportKey'
        agentKey:
          $ref: '#/components/schemas/AgentKey'
        reference:
          $ref: '#/components/schemas/components-schemas-reference'
        status:
          $ref: '#/components/schemas/createReportStatus'
        created:
          $ref: '#/components/schemas/openapi_components-schemas-created-2'
        distributions:
          $ref: '#/components/schemas/distributions'
    MissingBookDateFromErrorDetails:
      type: object
      required:
        - type
        - title
        - status
        - detail
        - instance
      properties:
        type:
          allOf:
            - $ref: '#/components/schemas/errorType'
            - enum:
                - /silverflow/problems/invalid-input
        title:
          allOf:
            - $ref: '#/components/schemas/errorTitle'
            - enum:
                - Missing bookDateFrom
        status:
          allOf:
            - $ref: '#/components/schemas/errorStatus'
            - enum:
                - 400
        detail:
          allOf:
            - $ref: '#/components/schemas/errorDetail'
            - enum:
                - Missing bookDateFrom parameter.
        instance:
          $ref: '#/components/schemas/errorInstance'
    InvalidBookDateRangeErrorDetails:
      type: object
      required:
        - type
        - title
        - status
        - detail
        - instance
      properties:
        type:
          allOf:
            - $ref: '#/components/schemas/errorType'
            - enum:
                - /silverflow/problems/invalid-input
        title:
          allOf:
            - $ref: '#/components/schemas/errorTitle'
            - enum:
                - Invalid Book Date Range
        status:
          allOf:
            - $ref: '#/components/schemas/errorStatus'
            - enum:
                - 400
        detail:
          allOf:
            - $ref: '#/components/schemas/errorDetail'
            - enum:
                - Book date range is greater than a week
        instance:
          $ref: '#/components/schemas/errorInstance'
    chargesReportParameters:
      type: object
      description: The query parameters used for a report.
      required:
        - createdFrom
        - createdTo
      additionalProperties: false
      properties:
        createdFrom:
          type: string
          format: date-time
          description: Include only items that have a created date greater than or equal to the specified date
        createdTo:
          type: string
          format: date-time
          description: Include only items that have a created date less than or equal to the specified date
    chargesReportMimeType:
      type: string
      description: The mime-type in which the Charges report is available.
      enum:
        - text/csv
    ChargesReportRequest:
      type: object
      required:
        - parameters
        - mimeType
      description: Create Charges Report
      additionalProperties: false
      properties:
        parameters:
          $ref: '#/components/schemas/chargesReportParameters'
        mimeType:
          $ref: '#/components/schemas/chargesReportMimeType'
        reference:
          $ref: '#/components/schemas/components-schemas-reference'
        distributions:
          $ref: '#/components/schemas/distributions'
    ChargesReportName:
      type: string
      description: The name of the report.
      enum:
        - Charges
    CreateChargesReportResponse:
      type: object
      required:
        - reportName
        - parameters
        - mimeType
        - key
        - agentKey
        - status
        - created
      properties:
        reportName:
          $ref: '#/components/schemas/ChargesReportName'
        parameters:
          $ref: '#/components/schemas/chargesReportParameters'
        mimeType:
          $ref: '#/components/schemas/chargesReportMimeType'
        key:
          $ref: '#/components/schemas/reportKey'
        agentKey:
          $ref: '#/components/schemas/AgentKey'
        reference:
          $ref: '#/components/schemas/components-schemas-reference'
        status:
          $ref: '#/components/schemas/createReportStatus'
        created:
          $ref: '#/components/schemas/openapi_components-schemas-created-2'
        distributions:
          $ref: '#/components/schemas/distributions'
    reportStatus:
      description: The status of the report.
      type: string
      enum:
        - completed
        - archived
        - failed
        - scheduled
    schemas-Result:
      type: object
      description: The result properties of generating the report.
      required:
        - size
      properties:
        size:
          type: number
          description: The file size, in bytes.
        lastToken:
          type: string
          description: This value can be used in the `sinceToken` field of a subsequent request to retrieve scheme fee records that have not been returned in a previous report.
        errorMessage:
          type: string
          description: The error message, if applicable.
    reportScheduleKey:
      description: Uniquely identifies a report schedule object
      type: string
      pattern: ^rsk-[a-zA-Z0-9]+$
      minLength: 10
      maxLength: 120
      example: rsk-1e1dAHhgstYTUhlphPzZ
    PublicReport:
      type: object
      required:
        - key
        - agentKey
        - status
        - created
        - version
      description: A report entity.
      properties:
        key:
          $ref: '#/components/schemas/reportKey'
        agentKey:
          $ref: '#/components/schemas/AgentKey'
        reference:
          $ref: '#/components/schemas/components-schemas-reference'
        status:
          $ref: '#/components/schemas/reportStatus'
        result:
          $ref: '#/components/schemas/schemas-Result'
        created:
          $ref: '#/components/schemas/openapi_components-schemas-created-2'
        lastModified:
          $ref: '#/components/schemas/openapi_components-schemas-lastModified-2'
        version:
          $ref: '#/components/schemas/openapi_components-schemas-version'
        distributions:
          type: array
          items:
            $ref: '#/components/schemas/distributionKey'
        reportScheduleKey:
          $ref: '#/components/schemas/reportScheduleKey'
    SchemeFeeDetailsReport:
      type: object
      required:
        - reportName
        - parameters
        - mimeType
      description: A scheme fee details report.
      allOf:
        - $ref: '#/components/schemas/PublicReport'
      properties:
        reportName:
          $ref: '#/components/schemas/SchemeFeeDetailsReportName'
        parameters:
          $ref: '#/components/schemas/schemeFeeDetailsReportParameters'
        mimeType:
          $ref: '#/components/schemas/schemeFeeDetailsReportMimeType'
    ReconciliationDetailsReport:
      type: object
      required:
        - reportName
        - parameters
        - mimeType
      description: A reconciliation details report.
      allOf:
        - $ref: '#/components/schemas/PublicReport'
      properties:
        reportName:
          $ref: '#/components/schemas/ReconciliationDetailsReportName'
        parameters:
          $ref: '#/components/schemas/reconciliationDetailsReportParameters'
        mimeType:
          $ref: '#/components/schemas/reconciliationDetailsReportMimeType'
        distributions:
          type: array
          items:
            $ref: '#/components/schemas/distributionKey'
    VisaQuarterlySchemeReportName:
      type: string
      enum:
        - VisaQuarterlySchemeReport
    MastercardQuarterlySchemeReportName:
      type: string
      enum:
        - MastercardQuarterlySchemeReport
    MerchantPayoutReportName:
      type: string
      description: The name of the report.
      enum:
        - MerchantPayout
    AMMFReportName:
      type: string
      description: The name of the report.
      enum:
        - AmmfReport
    reportName:
      type: string
      oneOf:
        - $ref: '#/components/schemas/SchemeFeeDetailsReportName'
        - $ref: '#/components/schemas/ReconciliationDetailsReportName'
        - $ref: '#/components/schemas/FraudNotificationsReportName'
        - $ref: '#/components/schemas/NetworkFundsTransfersReportName'
        - $ref: '#/components/schemas/DisputeHistoryEventsReportName'
        - $ref: '#/components/schemas/ChargesReportName'
        - $ref: '#/components/schemas/VisaQuarterlySchemeReportName'
        - $ref: '#/components/schemas/MastercardQuarterlySchemeReportName'
        - $ref: '#/components/schemas/MerchantPayoutReportName'
        - $ref: '#/components/schemas/SettlementDetailsReportName'
        - $ref: '#/components/schemas/AMMFReportName'
    FraudNotificationsReport:
      type: object
      required:
        - reportName
        - parameters
        - mimeType
      description: A fraud notifications report.
      allOf:
        - $ref: '#/components/schemas/PublicReport'
      properties:
        reportName:
          allOf:
            - $ref: '#/components/schemas/reportName'
            - enum:
                - FraudNotifications
        parameters:
          $ref: '#/components/schemas/fraudNotificationsReportParameters'
        mimeType:
          $ref: '#/components/schemas/fraudNotificationsReportMimeType'
    NetworkFundsTransfersReport:
      type: object
      required:
        - reportName
        - parameters
        - mimeType
      description: A network funds transfers report.
      allOf:
        - $ref: '#/components/schemas/PublicReport'
      properties:
        reportName:
          $ref: '#/components/schemas/NetworkFundsTransfersReportName'
        parameters:
          $ref: '#/components/schemas/networkFundsTransfersReportParameters'
        mimeType:
          $ref: '#/components/schemas/networkFundsTransfersReportMimeType'
        distributions:
          type: array
          items:
            $ref: '#/components/schemas/distributionKey'
    DisputeHistoryEventsReport:
      type: object
      required:
        - reportName
        - parameters
        - mimeType
      description: A disputes history events report.
      allOf:
        - $ref: '#/components/schemas/PublicReport'
      properties:
        reportName:
          $ref: '#/components/schemas/DisputeHistoryEventsReportName'
        parameters:
          $ref: '#/components/schemas/disputeHistoryEventsReportParameters'
        mimeType:
          $ref: '#/components/schemas/disputeHistoryEventsReportMimeType'
    ChargesReport:
      type: object
      required:
        - reportName
        - parameters
        - mimeType
      description: A Charges report.
      allOf:
        - $ref: '#/components/schemas/PublicReport'
      properties:
        reportName:
          $ref: '#/components/schemas/ChargesReportName'
        parameters:
          $ref: '#/components/schemas/chargesReportParameters'
        mimeType:
          $ref: '#/components/schemas/chargesReportMimeType'
    quarter:
      type: integer
      description: Specifies the quarter of the year for the report. Valid values are 1 (Q1), 2 (Q2), 3 (Q3), and 4 (Q4).
      enum:
        - 1
        - 2
        - 3
        - 4
    year:
      type: integer
      description: The year for which the report is being generated. It should be a four-digit number (e.g., 2023).
    currency:
      type: string
      description: Specifies the currency in which the report will be generated.
      enum:
        - USD
        - EUR
        - SGD
        - GBP
        - PLN
        - THB
        - MYR
        - SEK
    VisaQuarterlySchemeReportParameters:
      type: object
      description: The parameters used for the VisaQuarterlySchemeReport.
      required:
        - network
        - bid
        - year
        - quarter
        - currency
      additionalProperties: false
      properties:
        network:
          type: string
          description: The card network.
          enum:
            - visa
        bid:
          type: string
          description: The assigned Business Identifier of the acquirer.
          pattern: ^[a-zA-Z0-9]+$
          minLength: 1
          maxLength: 120
        quarter:
          $ref: '#/components/schemas/quarter'
        year:
          $ref: '#/components/schemas/year'
        currency:
          $ref: '#/components/schemas/currency'
    quarterlySchemeReportMimeType:
      type: string
      description: The mime-type in which the Quarterly Scheme Report is available.
      enum:
        - application/vnd.ms-excel
    VisaQuarterlySchemeReport:
      type: object
      required:
        - reportName
        - parameters
        - mimeType
      description: A Visa Quarterly Scheme report
      allOf:
        - $ref: '#/components/schemas/PublicReport'
      properties:
        reportName:
          $ref: '#/components/schemas/VisaQuarterlySchemeReportName'
        parameters:
          $ref: '#/components/schemas/VisaQuarterlySchemeReportParameters'
        mimeType:
          $ref: '#/components/schemas/quarterlySchemeReportMimeType'
    MastercardQuarterlySchemeReportParameters:
      type: object
      description: The parameters used for the MastercardQuarterlySchemeReport.
      required:
        - network
        - acquirerIdCode
        - year
        - quarter
        - currency
      additionalProperties: false
      properties:
        network:
          type: string
          description: The card network.
          enum:
            - mastercard
        acquirerIdCode:
          type: string
          description: The Acquirer Institution ID code. For Mastercard, this is the Acquirer ICA (Interbank Card Association) code, which is a unique identifier for the acquirer. It should be a 6-digit numeric value.
          pattern: ^\d{6}$
        quarter:
          $ref: '#/components/schemas/quarter'
        year:
          $ref: '#/components/schemas/year'
        currency:
          $ref: '#/components/schemas/currency'
    MastercardQuarterlySchemeReport:
      type: object
      required:
        - reportName
        - parameters
        - mimeType
      description: A Mastercard Quarterly Scheme report
      allOf:
        - $ref: '#/components/schemas/PublicReport'
      properties:
        reportName:
          $ref: '#/components/schemas/MastercardQuarterlySchemeReportName'
        parameters:
          $ref: '#/components/schemas/MastercardQuarterlySchemeReportParameters'
        mimeType:
          $ref: '#/components/schemas/quarterlySchemeReportMimeType'
    ammfAcquirerIdCode:
      type: string
      description: the Acquirer Institution ID. For Visa, this is the BIC. It should be a 6-digit numeric value.
      pattern: ^\d{6}$
    ammfDirectSubmission:
      type: boolean
      description: set to `true` to indicate that the AMMF report should be directly submitted to Visa's AMMF service
    AMMFReportParameters:
      type: object
      description: The parameters used for the AMMF Report.
      required:
        - date
        - acquirerIdCode
      additionalProperties: false
      properties:
        acquirerIdCode:
          $ref: '#/components/schemas/ammfAcquirerIdCode'
        date:
          type: string
          format: date
          description: |
            The end date of the AMMF reporting period. The report covers the one-month period ending on this date.
            We recommend using a date in the past to ensure all data for the period has been written.
        directSubmission:
          $ref: '#/components/schemas/ammfDirectSubmission'
    ammfReportMimeType:
      type: string
      description: The mime-type in which the AMMF Report is available.
      enum:
        - application/vnd.ms-excel
    AmmfReport:
      type: object
      required:
        - reportName
        - parameters
        - mimeType
      description: An AMMF report.
      allOf:
        - $ref: '#/components/schemas/PublicReport'
      properties:
        reportName:
          $ref: '#/components/schemas/AMMFReportName'
        parameters:
          $ref: '#/components/schemas/AMMFReportParameters'
        mimeType:
          $ref: '#/components/schemas/ammfReportMimeType'
    SettlementDetailsReport:
      type: object
      required:
        - reportName
        - parameters
        - mimeType
      description: A SettlementDetails report.
      allOf:
        - $ref: '#/components/schemas/PublicReport'
      properties:
        reportName:
          $ref: '#/components/schemas/SettlementDetailsReportName'
        parameters:
          $ref: '#/components/schemas/SettlementDetailsReportParameters'
        mimeType:
          $ref: '#/components/schemas/SettlementDetailsReportMimeType'
    MerchantPayoutReportType:
      type: string
      enum:
        - Standardized
    MerchantPayoutReportParameters:
      type: object
      description: The query parameters used for a report.
      required:
        - from
        - to
        - type
      additionalProperties: false
      properties:
        from:
          type: string
          format: date
          description: The from payout date (inclusive).
        to:
          type: string
          format: date
          description: The to payout date (inclusive).
        type:
          $ref: '#/components/schemas/MerchantPayoutReportType'
    MerchantPayoutReportMimeType:
      type: string
      description: The mime-type in which the MerchantPayout report is available.
      enum:
        - text/csv
    MerchantPayoutReport:
      type: object
      required:
        - reportName
        - parameters
        - mimeType
      description: A MerchantPayout report.
      allOf:
        - $ref: '#/components/schemas/PublicReport'
      properties:
        reportName:
          $ref: '#/components/schemas/MerchantPayoutReportName'
        parameters:
          $ref: '#/components/schemas/MerchantPayoutReportParameters'
        mimeType:
          $ref: '#/components/schemas/MerchantPayoutReportMimeType'
    Report:
      type: object
      oneOf:
        - $ref: '#/components/schemas/SchemeFeeDetailsReport'
        - $ref: '#/components/schemas/ReconciliationDetailsReport'
        - $ref: '#/components/schemas/FraudNotificationsReport'
        - $ref: '#/components/schemas/NetworkFundsTransfersReport'
        - $ref: '#/components/schemas/DisputeHistoryEventsReport'
        - $ref: '#/components/schemas/ChargesReport'
        - $ref: '#/components/schemas/VisaQuarterlySchemeReport'
        - $ref: '#/components/schemas/MastercardQuarterlySchemeReport'
        - $ref: '#/components/schemas/AmmfReport'
        - $ref: '#/components/schemas/SettlementDetailsReport'
        - $ref: '#/components/schemas/MerchantPayoutReport'
    schemas-moreItems:
      type: boolean
      description: Boolean indicating if there are more items to retrieve
    ListReportResponse:
      type: object
      required:
        - items
        - moreItems
      properties:
        items:
          type: array
          description: List of reports
          items:
            $ref: '#/components/schemas/Report'
        moreItems:
          $ref: '#/components/schemas/schemas-moreItems'
        offsetToken:
          $ref: '#/components/schemas/components-schemas-offsetToken'
    schemas-InvalidOffsetTokenError:
      type: object
      required:
        - type
        - title
        - status
        - detail
        - instance
      properties:
        type:
          allOf:
            - $ref: '#/components/schemas/errorType'
            - enum:
                - /silverflow/problems/report/invalid-offset-token
        title:
          allOf:
            - $ref: '#/components/schemas/errorTitle'
            - enum:
                - Invalid Offset Token
        status:
          allOf:
            - $ref: '#/components/schemas/errorStatus'
            - enum:
                - 400
        detail:
          $ref: '#/components/schemas/errorDetail'
        instance:
          $ref: '#/components/schemas/errorInstance'
    ReportNotFoundErrorDetails:
      type: object
      required:
        - type
        - title
        - status
        - detail
        - instance
      properties:
        type:
          allOf:
            - $ref: '#/components/schemas/errorType'
            - enum:
                - /silverflow/problems/report/report-not-found
        title:
          allOf:
            - $ref: '#/components/schemas/errorTitle'
            - enum:
                - Report not found
        status:
          allOf:
            - $ref: '#/components/schemas/errorStatus'
            - enum:
                - 404
        detail:
          $ref: '#/components/schemas/errorDetail'
        instance:
          $ref: '#/components/schemas/errorInstance'
    key:
      type: string
      pattern: ^sfb-[a-zA-Z0-9]+$
      minLength: 24
      maxLength: 120
      description: The unique ID of this scheme fee estimate.
    openapi_components-schemas-agentKey:
      type: string
      pattern: ^cgt-[a-zA-Z0-9]+$
      minLength: 24
      maxLength: 120
      description: |
        The unique ID of the _Agent_ (platform tenant) for which this fee has
        been calculated.
    openapi_components-schemas-cardNetwork-2:
      enum:
        - visa
        - mastercard
      description: The _card network_ imposing the fee.
    feeCategory:
      type: string
      enum:
        - authentication
        - authorization
        - clearing
        - dispute
      description: |
        The category of the fee.
    openapi_components-schemas-binKey:
      type: string
      pattern: ^bin-[a-zA-Z0-9]+$
      minLength: 24
      maxLength: 120
      description: The unique ID of the _BIN_ for which this fee has been calculated.
    schemas-bin:
      type: string
      pattern: ^\d+$
      minLength: 6
      maxLength: 6
      description: The value of the _BIN_ for which this fee has been calculated.
    openapi_components-schemas-acquirerIdCode:
      type: string
      pattern: ^\d+$
      minLength: 6
      maxLength: 6
      description: |
        The value of the _Acquirer ID Code_ for which this fee has been calculated. For Mastercard,
        this field corresponds to the _Acquirer ICA_. For Visa, this field corresponds to the _CIB_,
        which usually has the same value as the _BIN_.
    merchantAcceptorKey:
      type: string
      pattern: ^mac-[a-zA-Z0-9]+$
      minLength: 24
      maxLength: 120
      description: The unique ID of the _Merchant Acceptor_ for which this fee has been calculated.
    openapi_components-schemas-merchantKey:
      type: string
      pattern: ^mct-[a-zA-Z0-9]+$
      minLength: 24
      maxLength: 120
      description: The unique ID of the _Merchant_ for which this fee has been calculated.
    openapi_components-schemas-mid:
      type: string
      pattern: ^[a-zA-Z0-9-_\.]+$
      minLength: 1
      maxLength: 15
      description: The value of the _MID_ for which this fee has been calculated.
    threeDsKey:
      type: string
      pattern: ^tds-[a-zA-Z0-9]+$
      minLength: 24
      maxLength: 120
      description: |
        The unique ID of the _3DS_ for which this fee has been calculated. Only present if
        `category` is set to `authentication`.
    openapi_components-schemas-chargeKey:
      type: string
      pattern: ^chg-[a-zA-Z0-9]+$
      minLength: 24
      maxLength: 120
      description: |
        The unique ID of the _Charge_ for which this fee has been calculated. Only present if
        `category` is set to `authorization` or `clearing`.
    chargeActionKey:
      type: string
      pattern: ^act-[a-zA-Z0-9]+$
      minLength: 24
      maxLength: 120
      description: |
        The unique ID of the _Charge Action_ for which this fee has been calculated. Only present if
        `category` is set to `authorization` or `clearing`.
    clearingArn:
      type: string
      pattern: ^(visa|mastercard)-\d+$
      minLength: 27
      maxLength: 50
      description: |
        The unique (clearing) _ARN_ for which this fee has been calculated. Only present if
        `category` is set to `clearing`.
    openapi_components-schemas-transactionReference:
      type: string
      pattern: ^[a-zA-Z0-9()+,\-.:=@;$_!*\/?|]+$
      minLength: 1
      maxLength: 120
      description: |
        The _transaction reference_ of the transaction for which this fee has been calculated.
        Only present if a `transactionReference` field was specified on the _3DS_ or _Charge_ creation
        API call.
    openapi_components-schemas-actionReference:
      type: string
      pattern: ^[a-zA-Z0-9()+,\-.:=@;$_!*\/?|]+$
      minLength: 1
      maxLength: 120
      description: |
        The action reference of the action for which this fee has been calculated.
        Only present if a `reference` field was specified on the _Charge action_ API call.
    schemas-tierId:
      type: string
      pattern: ^[A-Z0-9-]+$
      minLength: 1
      maxLength: 120
      description: |
        The (optional) Mastercard _"Tier ID"_ for this fee, as it appears on the Mastercard invoice.
        Note that the presence of this field does not indicate if this fee has multiple _tiers_.
        See the `tiering` field.
    serviceCode:
      type: string
      pattern: ^[A-Z0-9]+$
      minLength: 2
      description: |
        The (optional) Mastercard _"Service code"_ for this fee, as it appears on the Mastercard invoice.
    feeDate:
      type: string
      format: date-time
      description: |
        The fee date. This is the date (and time) of the event for which this fee was _incurred_.
        Formatted as [ISO 8601 Date](https://en.wikipedia.org/wiki/ISO_8601) and time in UTC.
    scheme-fee-details_currency:
      type: string
      enum:
        - EUR
        - USD
        - AFN
        - ALL
        - DZD
        - AOA
        - XCD
        - ARS
        - AMD
        - AWG
        - AUD
        - AZN
        - BSD
        - BHD
        - BDT
        - BBD
        - BYN
        - BZD
        - XOF
        - BMD
        - INR
        - BTN
        - BOB
        - BAM
        - BWP
        - NOK
        - BRL
        - BND
        - BGN
        - BIF
        - CVE
        - KHR
        - XAF
        - CAD
        - KYD
        - CLP
        - CNY
        - COP
        - KMF
        - CDF
        - NZD
        - CRC
        - HRK
        - CUP
        - CUC
        - ANG
        - CZK
        - DKK
        - DJF
        - DOP
        - EGP
        - SVC
        - ERN
        - ETB
        - FKP
        - FJD
        - XPF
        - GMD
        - GEL
        - GHS
        - GIP
        - GTQ
        - GBP
        - GNF
        - GYD
        - HTG
        - HNL
        - HKD
        - HUF
        - ISK
        - IDR
        - IRR
        - IQD
        - ILS
        - JMD
        - JPY
        - JOD
        - KZT
        - KES
        - KPW
        - KRW
        - KWD
        - KGS
        - LAK
        - LBP
        - LSL
        - ZAR
        - LRD
        - LYD
        - CHF
        - MOP
        - MKD
        - MGA
        - MWK
        - MYR
        - MVR
        - MRU
        - MUR
        - MXN
        - MDL
        - MNT
        - MAD
        - MZN
        - MMK
        - NAD
        - NPR
        - NIO
        - NGN
        - OMR
        - PKR
        - PAB
        - PGK
        - PYG
        - PEN
        - PHP
        - PLN
        - QAR
        - RON
        - RUB
        - RWF
        - SHP
        - WST
        - STN
        - SAR
        - RSD
        - SCR
        - SLL
        - SGD
        - SBD
        - SOS
        - SSP
        - LKR
        - SDG
        - SRD
        - SZL
        - SEK
        - SYP
        - TWD
        - TJS
        - TZS
        - THB
        - TOP
        - TTD
        - TND
        - TRY
        - TMT
        - UGX
        - UAH
        - AED
        - UYU
        - UYW
        - UZS
        - VUV
        - VES
        - VND
        - YER
        - ZMW
        - ZWL
      description: The currency.
    SourceAmount:
      title: Amount
      description: The _source_ amount of the transaction event, in either the original (transaction) currency or the settlement currency. This amount is the amount to which the fee applies.
      type: object
      required:
        - impact
        - currency
        - value
      properties:
        impact:
          $ref: '#/components/schemas/sourceAmountImpact'
        currency:
          $ref: '#/components/schemas/scheme-fee-details_currency'
        value:
          $ref: '#/components/schemas/sourceAmountValue'
    schemas-ConversionRate:
      title: Conversion Rate
      type: object
      required:
        - date
        - source
        - target
        - rate
        - operation
      properties:
        date:
          $ref: '#/components/schemas/conversionRateDate'
        source:
          $ref: '#/components/schemas/scheme-fee-details_currency'
        target:
          $ref: '#/components/schemas/scheme-fee-details_currency'
        rate:
          $ref: '#/components/schemas/currencyRateValue'
        operation:
          $ref: '#/components/schemas/operation'
    ConversionRates:
      title: Conversion Rates
      description: |
        A list of conversion rates, used to convert the `sourceAmount` into the `convertedSourceAmount`.
        This list is only present if currency conversion was applied. Currency conversion is only applied
        if the `feeRate` currency is different from the `sourceAmount` currency. Note that for certain
        currency conversions there is no single rate available. In such a case, multiple conversions are
        applied to convert the source amount into the fee rate currency.
      type: array
      items:
        $ref: '#/components/schemas/schemas-ConversionRate'
      minItems: 1
    ConvertedSourceAmount:
      title: Amount
      description: |
        The _source_ amount denominated in the `feeRate` currency. This field is only present when currency
        conversion has been applied. Currency conversion is only applied if the `feeRate` currency is
        different from the `sourceAmount` currency.
      type: object
      required:
        - impact
        - currency
        - value
      properties:
        impact:
          $ref: '#/components/schemas/sourceAmountImpact'
        currency:
          $ref: '#/components/schemas/scheme-fee-details_currency'
        value:
          $ref: '#/components/schemas/sourceAmountValue'
    bookDate:
      type: string
      format: date-time
      description: |
        The timestamp of which the scheme fee estimate was booked.
    reconciliationKey:
      type: string
      pattern: ^rcl-[a-zA-Z0-9]{20}$
      minLength: 24
      maxLength: 24
      description: |
        The unique ID of the _Reconciliation Detail_ for which this fee has been calculated.
        Only present if this fee originates from a reconciliation.
    schemas-BaseFee:
      title: Base Fee
      type: object
      required:
        - key
        - agentKey
        - cardNetwork
        - feeCategory
        - binKey
        - bin
        - acquirerIdCode
        - merchantAcceptorKey
        - merchantKey
        - mid
        - billingFrequency
        - feeId
        - feeDescription
        - feeDate
        - sourceAmount
        - bookDate
      properties:
        key:
          $ref: '#/components/schemas/key'
        agentKey:
          $ref: '#/components/schemas/openapi_components-schemas-agentKey'
        cardNetwork:
          $ref: '#/components/schemas/openapi_components-schemas-cardNetwork-2'
        feeCategory:
          $ref: '#/components/schemas/feeCategory'
        binKey:
          $ref: '#/components/schemas/openapi_components-schemas-binKey'
        bin:
          $ref: '#/components/schemas/schemas-bin'
        acquirerIdCode:
          $ref: '#/components/schemas/openapi_components-schemas-acquirerIdCode'
        merchantAcceptorKey:
          $ref: '#/components/schemas/merchantAcceptorKey'
        merchantKey:
          $ref: '#/components/schemas/openapi_components-schemas-merchantKey'
        mid:
          $ref: '#/components/schemas/openapi_components-schemas-mid'
        threeDsKey:
          $ref: '#/components/schemas/threeDsKey'
        chargeKey:
          $ref: '#/components/schemas/openapi_components-schemas-chargeKey'
        chargeActionKey:
          $ref: '#/components/schemas/chargeActionKey'
        clearingArn:
          $ref: '#/components/schemas/clearingArn'
        transactionReference:
          $ref: '#/components/schemas/openapi_components-schemas-transactionReference'
        actionReference:
          $ref: '#/components/schemas/openapi_components-schemas-actionReference'
        billingFrequency:
          $ref: '#/components/schemas/billingFrequency'
        tierId:
          $ref: '#/components/schemas/schemas-tierId'
        feeId:
          $ref: '#/components/schemas/feeId'
        feeDescription:
          $ref: '#/components/schemas/feeDescription'
        serviceCode:
          $ref: '#/components/schemas/serviceCode'
        feeDate:
          $ref: '#/components/schemas/feeDate'
        sourceAmount:
          $ref: '#/components/schemas/SourceAmount'
        conversionRates:
          $ref: '#/components/schemas/ConversionRates'
        convertedSourceAmount:
          $ref: '#/components/schemas/ConvertedSourceAmount'
        bookDate:
          $ref: '#/components/schemas/bookDate'
        reconciliationKey:
          $ref: '#/components/schemas/reconciliationKey'
    volumeCountTiering:
      type: string
      enum:
        - volume
        - count
      description: |
        The type of tiering. The value `volume` indicates that the applicable fee _tier_ is determined
        using the total `sourceAmount` for a given period. The value `count` indicates that the
        applicable _tier_ is determined using the total number of fees (transactions).
    schemas-numberOfTiers:
      type: integer
      minimum: 2
      description: |
        The number of tiers defined for this fee.
    schemas-BaseFeeRate:
      title: Base Fee Rate
      type: object
      required:
        - type
      properties:
        type:
          $ref: '#/components/schemas/feeRateType'
        currency:
          $ref: '#/components/schemas/scheme-fee-details_currency'
    feeRateImpact:
      type: string
      enum:
        - debit
        - credit
      description: The impact of the fee.
    feeRateValue:
      type: string
      pattern: ^\d+(\.\d+)?$
      minLength: 1
      description: |
        The value of the fee rate, encoded as string. If this value holds a fraction,
        it will use a `.` "dot" as _decimal separator_. Note that it may hold up to 11 decimals.
        Use a _platform specific number parser_ to convert this string into a numeric value
        without loosing precision. If the fee rate `type` is set to `fixed` then this value
        indicates the _fixed amount_ of the fee, denominated in the specified `currency`.
        When the fee rate `type` is set to `basisPoints`, then this value holds the (decimal)
        number of basis points of the fee, applied to the `sourceAmount` (or `convertedSourceAmount`
        in case the `feeRate` currency does not match the `sourceAmount` currency).
    schemas-BaseFeeRateTier:
      title: Base Fee Rate Tier
      type: object
      required:
        - impact
        - value
      properties:
        impact:
          $ref: '#/components/schemas/feeRateImpact'
        value:
          $ref: '#/components/schemas/feeRateValue'
    schemas-tierNumber:
      type: integer
      minimum: 1
      description: The _logical_ (1-based) tier number.
    schemas-TieredFeeRateTier:
      title: Tiered Fee Rate Tier
      type: object
      required:
        - tierNumber
      properties:
        tierNumber:
          $ref: '#/components/schemas/schemas-tierNumber'
        upToIncluding:
          $ref: '#/components/schemas/upToIncluding'
        above:
          $ref: '#/components/schemas/above'
      allOf:
        - $ref: '#/components/schemas/schemas-BaseFeeRateTier'
    schemas-TieredFeeRate:
      title: Tiered Fee Rate
      description: |
        A _tiered_ fee rate defines multiple fee rates or _tiers_. Tier applicability is determined by the `upToIncluding`
        and `above` values. For a fee with `tiering` set to `count`, these properties hold the thresholds for the
        total number of fees in the defined period. Conversely, for a fee with `tiering` set to `volume` these
        properties define the threshold for the total source amount (denominated in the `feeRate` currency). The
        aggregation period is defined by the `billingFrequency` field.
      type: object
      required:
        - tiers
      properties:
        tiers:
          description: |
            A list of tiers. Each _tier_ defines a fee rate `value` and a threshold value (`upToIncluding` or
            `above`) to which it applies.
          type: array
          items:
            $ref: '#/components/schemas/schemas-TieredFeeRateTier'
          minItems: 2
      allOf:
        - $ref: '#/components/schemas/schemas-BaseFeeRate'
    schemas-BaseBillingAmount:
      type: object
      required:
        - currency
      properties:
        currency:
          $ref: '#/components/schemas/scheme-fee-details_currency'
    billingAmountImpact:
      type: string
      enum:
        - debit
        - credit
      description: The impact of the billing amount.
    billingAmountValue:
      type: string
      pattern: ^\d+(\.\d+)?$
      minLength: 1
      description: |
        The billing amount (decimal) value, encoded as string. If this value holds a fraction,
        it will use a `.` "dot" as _decimal separator_. Note that it may hold up to 11 decimals.
        Use a _platform specific number parser_ to convert this string into a numeric value
        without loosing precision.
    schemas-BaseBillingAmountTier:
      title: Base Billing Amount Tier
      type: object
      required:
        - impact
        - value
      properties:
        impact:
          $ref: '#/components/schemas/billingAmountImpact'
        value:
          $ref: '#/components/schemas/billingAmountValue'
    schemas-TieredBillingAmountTier:
      title: Tiered Billing Amount Tier
      type: object
      required:
        - tierNumber
      properties:
        tierNumber:
          $ref: '#/components/schemas/schemas-tierNumber'
        upToIncluding:
          $ref: '#/components/schemas/upToIncluding'
        above:
          $ref: '#/components/schemas/above'
      allOf:
        - $ref: '#/components/schemas/schemas-BaseBillingAmountTier'
    schemas-TieredBillingAmount:
      title: Tiered Billing Amount
      description: |
        The actual billing amount for this fee, denominated in the `feeRate` currency (if defined) or
        the `sourceAmount` currency.
      type: object
      required:
        - amounts
      properties:
        amounts:
          description: |
            A list of amounts. Each amount defines a billing amount value for the given tier, and a
            threshold value (`upToIncluding` or `above`) to which it applies.
          type: array
          items:
            $ref: '#/components/schemas/schemas-TieredBillingAmountTier'
          minItems: 2
      allOf:
        - $ref: '#/components/schemas/schemas-BaseBillingAmount'
    schemas-TieredFee:
      title: Tiered Fee
      description: A tiered scheme fee estimate. A _tiered_ fee defines multiple fee rates. When `tiering` is set to `count` the applicable tier is selected based on the total number of fees in a given period. When `tiering` is set to `volume` the applicable tier is selected based on the total source amount (denominated in the `feeRate` currency) of the fees in a given period. Tier applicability is determined by the `upToIncluding` and `above` values. For a fee with `tiering` set to `count`, these properties hold the thresholds for the total number of fees in the defined period. Conversely, for a fee with `tiering` set to `volume` these properties define the threshold for the total source amount (denominated in the `feeRate` currency). The aggregation period is defined by the `billingFrequency` field.
      type: object
      required:
        - tiering
        - numberOfTiers
      properties:
        tiering:
          $ref: '#/components/schemas/volumeCountTiering'
        numberOfTiers:
          $ref: '#/components/schemas/schemas-numberOfTiers'
        feeRate:
          $ref: '#/components/schemas/schemas-TieredFeeRate'
        billingAmount:
          $ref: '#/components/schemas/schemas-TieredBillingAmount'
      allOf:
        - $ref: '#/components/schemas/schemas-BaseFee'
    noTiering:
      type: string
      enum:
        - none
      description: |
        The type of tiering. The value `none` indicates that this fee is not tiered.
    schemas-NonTieredFeeRateTier:
      title: Non-Tiered Fee Rate Tier
      type: object
      allOf:
        - $ref: '#/components/schemas/schemas-BaseFeeRateTier'
    schemas-NonTieredFeeRate:
      title: Non Tiered Fee Rate
      description: |
        A _(non-tiered)_ fee rate.
      type: object
      required:
        - tiers
      properties:
        tiers:
          type: array
          items:
            $ref: '#/components/schemas/schemas-NonTieredFeeRateTier'
          minItems: 1
          maxItems: 1
      allOf:
        - $ref: '#/components/schemas/schemas-BaseFeeRate'
    schemas-NonTieredBillingAmountTier:
      title: Non-Tiered Billing Amount Tier
      type: object
      allOf:
        - $ref: '#/components/schemas/schemas-BaseBillingAmountTier'
    schemas-NonTieredBillingAmount:
      title: Non Tiered Billing Amount
      description: |
        The actual billing amount for this fee, denominated in the `feeRate` currency (if defined) or
        the `sourceAmount` currency.
      type: object
      required:
        - amounts
      properties:
        amounts:
          type: array
          items:
            $ref: '#/components/schemas/schemas-NonTieredBillingAmountTier'
          minItems: 1
          maxItems: 1
      allOf:
        - $ref: '#/components/schemas/schemas-BaseBillingAmount'
    schemas-NonTieredFee:
      title: Non-tiered Fee
      description: A non-tiered scheme fee estimate.
      type: object
      required:
        - tiering
      properties:
        tiering:
          $ref: '#/components/schemas/noTiering'
        feeRate:
          $ref: '#/components/schemas/schemas-NonTieredFeeRate'
        billingAmount:
          $ref: '#/components/schemas/schemas-NonTieredBillingAmount'
      allOf:
        - $ref: '#/components/schemas/schemas-BaseFee'
    Fee:
      title: Fee
      description: |
        A scheme fee estimate.
      type: object
      required:
        - tiering
      oneOf:
        - $ref: '#/components/schemas/schemas-TieredFee'
        - $ref: '#/components/schemas/schemas-NonTieredFee'
    SchemeFeeDetailsReportFile:
      type: array
      description: The JSON format of the scheme fee details report.
      items:
        $ref: '#/components/schemas/Fee'
    SettlementDetailsAmount:
      type: object
      required:
        - value
        - currency
        - impact
      properties:
        value:
          type: number
          description: The amount.
        currency:
          type: string
          description: Three-letter ISO currency code.
          example: EUR
        impact:
          type: string
          description: Direction of the amount.
          enum:
            - debit
            - credit
    SettlementDetailsRecordBase:
      type: object
      required:
        - key
        - bookDate
        - network
        - networkFundsTransferKey
        - agentKey
        - detailType
        - settlementService
        - fundsTransferDate
        - netSettlementAmount
      properties:
        key:
          type: string
          description: The unique primary Silverflow identifier of a settlement detail.
        bookDate:
          type: string
          format: date-time
          description: The date and time that the settlement detail was available for reporting.
        network:
          type: string
          description: The card network associated with the financial transaction.
        networkFundsTransferKey:
          type: string
          description: Identifies the bank transfer to which this settlement detail belongs.
        agentKey:
          $ref: '#/components/schemas/AgentKey'
        detailType:
          type: string
          description: Type of settlement detail.
        settlementService:
          type: string
          description: Identifier of the Settlement Service as defined by the card network.
        fundsTransferDate:
          type: string
          format: date
          description: Settlement date on which `netSettlementAmount` is included.
        netSettlementAmount:
          allOf:
            - $ref: '#/components/schemas/SettlementDetailsAmount'
          description: Amount, net of interchange fees, settled to the acquirer.
    SettlementDetailsAuthorizationAmount:
      type: object
      required:
        - value
        - currency
      properties:
        value:
          type: number
          description: Original authorization amount of the capture.
        currency:
          type: string
          description: Three-letter ISO currency code.
    SettlementDetailsAlpha3Country:
      type: object
      required:
        - alpha3
      properties:
        alpha3:
          type: string
          description: Three-letter ISO country code.
    SettlementDetailsCardInfo:
      type: object
      required:
        - product
        - member
        - cardCountry
        - cardholderBillingCurrency
      properties:
        product:
          type: object
          required:
            - code
          properties:
            code:
              type: string
              description: Code assigned by the card network identifying the card product.
            name:
              type: string
              description: Human-readable name of the card product.
            accountFundingSource:
              type: string
              description: Manner in which the account is funded, for example `Credit`, `Debit`, `Prepaid` or `Deferred Debit`.
        member:
          type: object
          required:
            - id
            - name
            - countryCode
          properties:
            id:
              type: string
              description: Member code assigned by the card network.
            name:
              type: string
              description: Human-readable name of the member.
            countryCode:
              $ref: '#/components/schemas/SettlementDetailsAlpha3Country'
        cardCountry:
          type: object
          required:
            - code
          properties:
            code:
              $ref: '#/components/schemas/SettlementDetailsAlpha3Country'
        cardholderBillingCurrency:
          type: string
          description: Three-letter ISO currency code.
    SettlementDetailsChargeEnrichmentBase:
      description: Fields that link a record to a charge. Only records that can relate to a charge include them.
      allOf:
        - $ref: '#/components/schemas/SettlementDetailsRecordBase'
        - type: object
          properties:
            chargeKey:
              type: string
              description: Charge key assigned by Silverflow when creating a charge.
            actionKey:
              type: string
              description: Action key assigned by Silverflow.
            actionReference:
              type: string
              description: Action reference assigned by the agent.
            authorizationAmount:
              $ref: '#/components/schemas/SettlementDetailsAuthorizationAmount'
            transactionReference:
              type: string
              description: Transaction reference provided by the acquirer during charge creation.
            cardInfo:
              $ref: '#/components/schemas/SettlementDetailsCardInfo'
    SettlementDetailsMerchant:
      type: object
      description: Both properties are empty strings when the record is not linked to a charge.
      properties:
        acceptorKey:
          type: string
          description: Silverflow key identifying the merchant acceptor used in the transaction.
        mid:
          type: string
          description: Merchant identifier.
    SettlementDetailsTransactionMerchant:
      allOf:
        - $ref: '#/components/schemas/SettlementDetailsMerchant'
        - type: object
          required:
            - acceptorKey
            - mid
    SettlementDetailsTransactionBase:
      description: Fields shared by `capture` and `dispute` records.
      allOf:
        - $ref: '#/components/schemas/SettlementDetailsChargeEnrichmentBase'
        - type: object
          required:
            - messageSystem
            - grossSettlementAmount
            - interchangeFeeAmount
            - merchant
          properties:
            messageSystem:
              type: string
              description: Whether the transaction originated from the dual-message or single-message system.
            grossSettlementAmount:
              allOf:
                - $ref: '#/components/schemas/SettlementDetailsAmount'
              description: Amount settled before interchange fees, in the settlement currency.
            interchangeFeeAmount:
              allOf:
                - $ref: '#/components/schemas/SettlementDetailsAmount'
              description: Interchange fee amount applied to the transaction.
            merchant:
              $ref: '#/components/schemas/SettlementDetailsTransactionMerchant'
    SettlementDetailsCharge:
      type: object
      properties:
        intent:
          type: string
          description: Cardholder intention, for example purchase, reservation, refund, payout, or funding.
        cardEntry:
          type: string
          description: Method used to capture card details.
        order:
          type: string
          description: Method used to place the order.
    SettlementDetailsChargeWithFunding:
      allOf:
        - $ref: '#/components/schemas/SettlementDetailsCharge'
        - type: object
          properties:
            fundingType:
              type: string
              description: Type of funding transaction.
    SettlementDetailsClearing:
      type: object
      required:
        - amount
        - submittedTime
      properties:
        amount:
          type: object
          required:
            - value
            - currency
          properties:
            value:
              type: number
              description: Amount submitted for capture.
            currency:
              type: string
              description: Three-letter ISO currency code.
        submittedTime:
          type: string
          format: date-time
          description: Time the clearing record was submitted to the card network.
    SettlementDetailsRefundedChargeKey:
      type: string
      description: The charge key that was refunded.
    SettlementDetailsVisaDmsInterchangeFeeDesignator:
      type: object
      description: Identifies the interchange fee that applied.
      required:
        - feeDescriptor
      properties:
        feeDescriptor:
          type: string
          description: Fee Descriptor per Visa manuals.
    SettlementDetailsVisaDmsCapture:
      title: DMS Capture
      allOf:
        - $ref: '#/components/schemas/SettlementDetailsTransactionBase'
        - type: object
          required:
            - arn
            - interchangeFeeDesignator
            - reclassified
          properties:
            charge:
              $ref: '#/components/schemas/SettlementDetailsChargeWithFunding'
            clearing:
              $ref: '#/components/schemas/SettlementDetailsClearing'
            refundedChargeKey:
              $ref: '#/components/schemas/SettlementDetailsRefundedChargeKey'
            arn:
              type: string
              description: Acquirer Reference Number.
            interchangeFeeDesignator:
              $ref: '#/components/schemas/SettlementDetailsVisaDmsInterchangeFeeDesignator'
            network:
              enum:
                - visa
            detailType:
              enum:
                - capture
            messageSystem:
              enum:
                - dms
            reclassified:
              type: string
              description: Indicates whether the transaction was reclassified. The value is a string, not a boolean.
              enum:
                - 'true'
                - 'false'
    SettlementDetailsChargeWithFundingAndPayout:
      allOf:
        - $ref: '#/components/schemas/SettlementDetailsChargeWithFunding'
        - type: object
          properties:
            payoutType:
              type: string
              description: Type of payout transaction.
    SettlementDetailsVisaSmsInterchangeFeeDesignator:
      type: object
      description: Identifies the interchange fee that applied.
      properties:
        feeProgramIndicator:
          type: string
          description: Fee Program Indicator per Visa manuals.
    SettlementDetailsVisaSmsCapture:
      title: SMS Capture
      allOf:
        - $ref: '#/components/schemas/SettlementDetailsTransactionBase'
        - type: object
          required:
            - rrn
            - interchangeFeeDesignator
          properties:
            charge:
              $ref: '#/components/schemas/SettlementDetailsChargeWithFundingAndPayout'
            refundedChargeKey:
              $ref: '#/components/schemas/SettlementDetailsRefundedChargeKey'
            interchangeFeeDesignator:
              $ref: '#/components/schemas/SettlementDetailsVisaSmsInterchangeFeeDesignator'
            network:
              enum:
                - visa
            detailType:
              enum:
                - capture
            messageSystem:
              enum:
                - sms
            rrn:
              type: string
              description: Retrieval Reference Number for single-message system transactions.
    SettlementDetailsVisaDmsDispute:
      title: DMS Dispute
      allOf:
        - $ref: '#/components/schemas/SettlementDetailsTransactionBase'
        - type: object
          required:
            - arn
            - interchangeFeeDesignator
          properties:
            charge:
              $ref: '#/components/schemas/SettlementDetailsCharge'
            clearing:
              $ref: '#/components/schemas/SettlementDetailsClearing'
            refundedChargeKey:
              $ref: '#/components/schemas/SettlementDetailsRefundedChargeKey'
            arn:
              type: string
              description: Acquirer Reference Number.
            interchangeFeeDesignator:
              $ref: '#/components/schemas/SettlementDetailsVisaDmsInterchangeFeeDesignator'
            network:
              enum:
                - visa
            detailType:
              enum:
                - dispute
            messageSystem:
              enum:
                - dms
    SettlementDetailsVisaSmsDispute:
      title: SMS Dispute
      allOf:
        - $ref: '#/components/schemas/SettlementDetailsTransactionBase'
        - type: object
          required:
            - rrn
            - interchangeFeeDesignator
          properties:
            charge:
              $ref: '#/components/schemas/SettlementDetailsChargeWithFundingAndPayout'
            interchangeFeeDesignator:
              $ref: '#/components/schemas/SettlementDetailsVisaSmsInterchangeFeeDesignator'
            network:
              enum:
                - visa
            detailType:
              enum:
                - dispute
            messageSystem:
              enum:
                - sms
            rrn:
              type: string
              description: Retrieval Reference Number for single-message system transactions.
    SettlementDetailsVisaIntegratedBillingData:
      title: Integrated Billing System
      type: object
      required:
        - billingType
      properties:
        billingType:
          type: string
          description: Type of billing data.
          enum:
            - visa_integrated_billing_system
        cycleDate:
          type: string
          description: Billing cycle to which the card network fee belongs.
        invoiceId:
          type: string
          description: Invoice ID for Visa integrated billing system fees.
        subInvoiceId:
          type: string
          description: Subinvoice ID for Visa integrated billing system fees.
        acquirerBin:
          type: string
          description: BIN on which the fee was billed.
        entityId:
          type: string
          description: Entity ID on which the fee was billed.
    SettlementDetailsVisaChargesBillingData:
      title: Charges
      type: object
      required:
        - billingType
        - chargeTypeCode
        - chargeTypeName
        - jurisdictionCode
        - jurisdictionName
        - acquirerBin
      properties:
        billingType:
          type: string
          description: Type of billing data.
          enum:
            - visa_charges
        chargeTypeCode:
          type: string
          description: Category code for the fee.
        chargeTypeName:
          type: string
          description: Description of the fee.
        jurisdictionCode:
          type: string
          description: Jurisdiction category code of the fee.
        jurisdictionName:
          type: string
          description: Jurisdiction name of the fee.
        acquirerBin:
          type: string
          description: BIN on which the fee was billed.
    SettlementDetailsVisaCardNetworkBilling:
      title: Card Network Billing
      allOf:
        - $ref: '#/components/schemas/SettlementDetailsRecordBase'
        - type: object
          required:
            - acquiringId
            - billingData
          properties:
            network:
              enum:
                - visa
            detailType:
              enum:
                - card_network_billing
            acquiringId:
              type: string
              description: Acquirer identifier as defined by Visa.
            billingData:
              oneOf:
                - $ref: '#/components/schemas/SettlementDetailsVisaIntegratedBillingData'
                - $ref: '#/components/schemas/SettlementDetailsVisaChargesBillingData'
    SettlementDetailsAdjustmentBase:
      description: Fields shared by Visa and Mastercard `adjustment` records.
      allOf:
        - $ref: '#/components/schemas/SettlementDetailsChargeEnrichmentBase'
        - type: object
          required:
            - merchant
          properties:
            merchant:
              $ref: '#/components/schemas/SettlementDetailsMerchant'
            charge:
              $ref: '#/components/schemas/SettlementDetailsChargeWithFundingAndPayout'
    SettlementDetailsMessageAdjustmentData:
      type: object
      required:
        - adjustmentType
        - reasonCode
        - messageText
      properties:
        adjustmentType:
          type: string
          description: Type of adjustment.
        reasonCode:
          type: string
          description: Four-digit reason code for fee collection or disbursement.
        messageText:
          type: string
          description: Free format text provided by the card network.
    SettlementDetailsGenericAdjustmentData:
      title: Generic
      allOf:
        - $ref: '#/components/schemas/SettlementDetailsMessageAdjustmentData'
        - type: object
          properties:
            adjustmentType:
              enum:
                - generic
    SettlementDetailsCedpAdjustmentData:
      title: Commercial Enhanced Data Program
      type: object
      required:
        - adjustmentType
        - reasonCode
      properties:
        adjustmentType:
          type: string
          description: Type of adjustment.
          enum:
            - commercial_enhanced_data_program
        reasonCode:
          type: string
          description: Four-digit reason code for fee collection or disbursement.
        originalFpi:
          type: string
          description: Original fee program indicator.
        adjustedFpi:
          type: string
          description: Adjusted fee program indicator.
    SettlementDetailsArbitrationCaseAdjustmentData:
      title: Arbitration Case Decision
      allOf:
        - $ref: '#/components/schemas/SettlementDetailsMessageAdjustmentData'
        - type: object
          properties:
            adjustmentType:
              enum:
                - arbitration_case_decision_or_request_fee
    SettlementDetailsPreArbitrationAdjustmentData:
      title: Pre-Arbitration
      allOf:
        - $ref: '#/components/schemas/SettlementDetailsMessageAdjustmentData'
        - type: object
          properties:
            adjustmentType:
              enum:
                - pre_arbitration_settlement_funds_disbursement
    SettlementDetailsFundsDisbursementAdjustmentData:
      title: Funds Disbursement
      allOf:
        - $ref: '#/components/schemas/SettlementDetailsMessageAdjustmentData'
        - type: object
          properties:
            adjustmentType:
              enum:
                - funds_disbursement
    SettlementDetailsVisaAdjustment:
      title: Adjustment
      allOf:
        - $ref: '#/components/schemas/SettlementDetailsAdjustmentBase'
        - type: object
          required:
            - acquiringId
            - adjustmentData
          properties:
            network:
              enum:
                - visa
            detailType:
              enum:
                - adjustment
            acquiringId:
              type: string
              description: Acquirer identifier as defined by Visa.
            adjustmentData:
              oneOf:
                - $ref: '#/components/schemas/SettlementDetailsGenericAdjustmentData'
                - $ref: '#/components/schemas/SettlementDetailsCedpAdjustmentData'
                - $ref: '#/components/schemas/SettlementDetailsArbitrationCaseAdjustmentData'
                - $ref: '#/components/schemas/SettlementDetailsPreArbitrationAdjustmentData'
                - $ref: '#/components/schemas/SettlementDetailsFundsDisbursementAdjustmentData'
    SettlementDetailsVisaRecord:
      title: Visa
      oneOf:
        - $ref: '#/components/schemas/SettlementDetailsVisaDmsCapture'
        - $ref: '#/components/schemas/SettlementDetailsVisaSmsCapture'
        - $ref: '#/components/schemas/SettlementDetailsVisaDmsDispute'
        - $ref: '#/components/schemas/SettlementDetailsVisaSmsDispute'
        - $ref: '#/components/schemas/SettlementDetailsVisaCardNetworkBilling'
        - $ref: '#/components/schemas/SettlementDetailsVisaAdjustment'
    SettlementDetailsMastercardInterchangeFeeDesignator:
      type: object
      description: Identifies the interchange fee that applied.
      properties:
        ird:
          type: string
          description: Interchange Rate Designator per Mastercard manuals.
    SettlementDetailsMastercardCaptureInterchangeFeeDesignator:
      allOf:
        - $ref: '#/components/schemas/SettlementDetailsMastercardInterchangeFeeDesignator'
        - type: object
          required:
            - ird
    SettlementDetailsMastercardCapture:
      title: Capture
      allOf:
        - $ref: '#/components/schemas/SettlementDetailsTransactionBase'
        - type: object
          required:
            - arn
            - interchangeFeeDesignator
          properties:
            charge:
              $ref: '#/components/schemas/SettlementDetailsChargeWithFundingAndPayout'
            clearing:
              $ref: '#/components/schemas/SettlementDetailsClearing'
            refundedChargeKey:
              $ref: '#/components/schemas/SettlementDetailsRefundedChargeKey'
            arn:
              type: string
              description: Acquirer Reference Number.
            interchangeFeeDesignator:
              $ref: '#/components/schemas/SettlementDetailsMastercardCaptureInterchangeFeeDesignator'
            network:
              enum:
                - mastercard
            detailType:
              enum:
                - capture
            messageSystem:
              enum:
                - dms
    SettlementDetailsMastercardDispute:
      title: Dispute
      allOf:
        - $ref: '#/components/schemas/SettlementDetailsTransactionBase'
        - type: object
          required:
            - arn
            - interchangeFeeDesignator
          properties:
            charge:
              $ref: '#/components/schemas/SettlementDetailsChargeWithFundingAndPayout'
            clearing:
              $ref: '#/components/schemas/SettlementDetailsClearing'
            refundedChargeKey:
              $ref: '#/components/schemas/SettlementDetailsRefundedChargeKey'
            arn:
              type: string
              description: Acquirer Reference Number.
            interchangeFeeDesignator:
              $ref: '#/components/schemas/SettlementDetailsMastercardInterchangeFeeDesignator'
            network:
              enum:
                - mastercard
            detailType:
              enum:
                - dispute
            messageSystem:
              enum:
                - dms
    SettlementDetailsMastercardBillingData:
      title: Consolidated Billing System
      type: object
      required:
        - billingType
      properties:
        billingType:
          type: string
          description: Type of billing data.
          enum:
            - mastercard_consolidated_billing_system
        serviceCode:
          type: string
          description: Billing service code category for Mastercard fees.
        currency:
          type: string
          description: Three-letter ISO currency code for Mastercard billing.
        amount:
          type: number
          description: Fee billing amount in the billing currency.
        cycleDate:
          type: string
          description: Billing cycle to which the card network fee belongs.
    SettlementDetailsMastercardCardNetworkBilling:
      title: Card Network Billing
      allOf:
        - $ref: '#/components/schemas/SettlementDetailsRecordBase'
        - type: object
          required:
            - acquirerIca
          properties:
            network:
              enum:
                - mastercard
            detailType:
              enum:
                - card_network_billing
            acquirerIca:
              type: string
              description: Acquirer identifier as defined by Mastercard.
            billingData:
              $ref: '#/components/schemas/SettlementDetailsMastercardBillingData'
    SettlementDetailsDisputeAdministrationFeeAdjustmentData:
      title: Dispute Administration Fee
      allOf:
        - $ref: '#/components/schemas/SettlementDetailsMessageAdjustmentData'
        - type: object
          properties:
            adjustmentType:
              enum:
                - dispute_administration_fee
    SettlementDetailsMastercardAdjustment:
      title: Adjustment
      allOf:
        - $ref: '#/components/schemas/SettlementDetailsAdjustmentBase'
        - type: object
          required:
            - acquirerIca
            - adjustmentData
          properties:
            network:
              enum:
                - mastercard
            detailType:
              enum:
                - adjustment
            acquirerIca:
              type: string
              description: Acquirer identifier as defined by Mastercard.
            arn:
              type: string
              description: ARN of the original disputed transaction. Set for `dispute_administration_fee` adjustments.
            adjustmentData:
              oneOf:
                - $ref: '#/components/schemas/SettlementDetailsGenericAdjustmentData'
                - $ref: '#/components/schemas/SettlementDetailsDisputeAdministrationFeeAdjustmentData'
    SettlementDetailsMastercardRecord:
      title: Mastercard
      oneOf:
        - $ref: '#/components/schemas/SettlementDetailsMastercardCapture'
        - $ref: '#/components/schemas/SettlementDetailsMastercardDispute'
        - $ref: '#/components/schemas/SettlementDetailsMastercardCardNetworkBilling'
        - $ref: '#/components/schemas/SettlementDetailsMastercardAdjustment'
    SettlementDetailsAmericanExpressCapture:
      title: Capture
      allOf:
        - $ref: '#/components/schemas/SettlementDetailsTransactionBase'
        - type: object
          required:
            - arn
          properties:
            charge:
              $ref: '#/components/schemas/SettlementDetailsCharge'
            clearing:
              $ref: '#/components/schemas/SettlementDetailsClearing'
            refundedChargeKey:
              $ref: '#/components/schemas/SettlementDetailsRefundedChargeKey'
            arn:
              type: string
              description: Acquirer Reference Number.
            network:
              enum:
                - american-express
            detailType:
              enum:
                - capture
            messageSystem:
              enum:
                - dms
    SettlementDetailsAmericanExpressDispute:
      title: Dispute
      allOf:
        - $ref: '#/components/schemas/SettlementDetailsTransactionBase'
        - type: object
          required:
            - arn
          properties:
            charge:
              $ref: '#/components/schemas/SettlementDetailsCharge'
            clearing:
              $ref: '#/components/schemas/SettlementDetailsClearing'
            refundedChargeKey:
              $ref: '#/components/schemas/SettlementDetailsRefundedChargeKey'
            arn:
              type: string
              description: Acquirer Reference Number.
            network:
              enum:
                - american-express
            detailType:
              enum:
                - dispute
            messageSystem:
              enum:
                - dms
    SettlementDetailsAmericanExpressAdjustment:
      title: Adjustment
      allOf:
        - $ref: '#/components/schemas/SettlementDetailsRecordBase'
        - type: object
          properties:
            network:
              enum:
                - american-express
            detailType:
              enum:
                - adjustment
    SettlementDetailsAmericanExpressRecord:
      title: American Express
      oneOf:
        - $ref: '#/components/schemas/SettlementDetailsAmericanExpressCapture'
        - $ref: '#/components/schemas/SettlementDetailsAmericanExpressDispute'
        - $ref: '#/components/schemas/SettlementDetailsAmericanExpressAdjustment'
    SettlementDetailsDiscoverInterchangeFeeDesignator:
      type: object
      description: Identifies the interchange fee that applied.
      required:
        - program
      properties:
        program:
          type: string
          description: Fee program identifier per Discover.
    SettlementDetailsDiscoverCapture:
      title: Capture
      allOf:
        - $ref: '#/components/schemas/SettlementDetailsTransactionBase'
        - type: object
          required:
            - arn
            - interchangeFeeDesignator
          properties:
            charge:
              $ref: '#/components/schemas/SettlementDetailsCharge'
            clearing:
              $ref: '#/components/schemas/SettlementDetailsClearing'
            refundedChargeKey:
              $ref: '#/components/schemas/SettlementDetailsRefundedChargeKey'
            arn:
              type: string
              description: Acquirer Reference Number.
            interchangeFeeDesignator:
              $ref: '#/components/schemas/SettlementDetailsDiscoverInterchangeFeeDesignator'
            network:
              enum:
                - discover
            detailType:
              enum:
                - capture
            messageSystem:
              enum:
                - dms
    SettlementDetailsDiscoverDispute:
      title: Dispute
      allOf:
        - $ref: '#/components/schemas/SettlementDetailsTransactionBase'
        - type: object
          required:
            - arn
            - interchangeFeeDesignator
          properties:
            charge:
              $ref: '#/components/schemas/SettlementDetailsCharge'
            clearing:
              $ref: '#/components/schemas/SettlementDetailsClearing'
            refundedChargeKey:
              $ref: '#/components/schemas/SettlementDetailsRefundedChargeKey'
            arn:
              type: string
              description: Acquirer Reference Number.
            interchangeFeeDesignator:
              $ref: '#/components/schemas/SettlementDetailsDiscoverInterchangeFeeDesignator'
            network:
              enum:
                - discover
            detailType:
              enum:
                - dispute
            messageSystem:
              enum:
                - dms
    SettlementDetailsDiscoverFeeBillingData:
      type: object
      required:
        - billingType
        - feeClassCode
        - feeClassDescription
        - feeTypeCode
        - feeTypeDescription
      properties:
        billingType:
          type: string
          description: Type of billing data.
        feeClassCode:
          type: string
          description: Class code for Discover fees.
        feeClassDescription:
          type: string
          description: Class description for Discover fees.
        feeTypeCode:
          type: string
          description: Type code for Discover fees.
        feeTypeDescription:
          type: string
          description: Type description for Discover fees.
    SettlementDetailsDiscoverAcquirerFeeBillingData:
      title: Acquirer Fee
      allOf:
        - $ref: '#/components/schemas/SettlementDetailsDiscoverFeeBillingData'
        - type: object
          properties:
            billingType:
              enum:
                - discover_acquirer_fee
    SettlementDetailsDiscoverAcquirerAssessmentBillingData:
      title: Acquirer Assessment
      allOf:
        - $ref: '#/components/schemas/SettlementDetailsDiscoverFeeBillingData'
        - type: object
          properties:
            billingType:
              enum:
                - discover_acquirer_assessment
            assessmentVolume:
              type: number
              description: Assessment volume for Discover assessment fees.
    SettlementDetailsDiscoverCardNetworkBilling:
      title: Card Network Billing
      allOf:
        - $ref: '#/components/schemas/SettlementDetailsRecordBase'
        - type: object
          required:
            - acquirerInstitutionCode
          properties:
            network:
              enum:
                - discover
            detailType:
              enum:
                - card_network_billing
            acquirerInstitutionCode:
              type: string
              description: Acquirer identifier as defined by Discover.
            billingData:
              oneOf:
                - $ref: '#/components/schemas/SettlementDetailsDiscoverAcquirerFeeBillingData'
                - $ref: '#/components/schemas/SettlementDetailsDiscoverAcquirerAssessmentBillingData'
    SettlementDetailsDiscoverRecord:
      title: Discover
      oneOf:
        - $ref: '#/components/schemas/SettlementDetailsDiscoverCapture'
        - $ref: '#/components/schemas/SettlementDetailsDiscoverDispute'
        - $ref: '#/components/schemas/SettlementDetailsDiscoverCardNetworkBilling'
    SettlementDetailsDinersInterchangeFeeDesignator:
      type: object
      description: Identifies the interchange fee that applied.
      properties:
        pricingRuleName:
          type: string
          description: Pricing rule name per Diners.
        pricingRuleCode:
          type: string
          description: Pricing rule code per Diners.
        pricingRuleSerialNumber:
          type: string
          description: Pricing rule serial number per Diners.
    SettlementDetailsDinersCapture:
      title: Capture
      allOf:
        - $ref: '#/components/schemas/SettlementDetailsTransactionBase'
        - type: object
          required:
            - arn
            - interchangeFeeDesignator
          properties:
            charge:
              $ref: '#/components/schemas/SettlementDetailsCharge'
            clearing:
              $ref: '#/components/schemas/SettlementDetailsClearing'
            refundedChargeKey:
              $ref: '#/components/schemas/SettlementDetailsRefundedChargeKey'
            arn:
              type: string
              description: Acquirer Reference Number.
            interchangeFeeDesignator:
              $ref: '#/components/schemas/SettlementDetailsDinersInterchangeFeeDesignator'
            network:
              enum:
                - diners
            detailType:
              enum:
                - capture
            messageSystem:
              enum:
                - dms
    SettlementDetailsDisputeData:
      type: object
      properties:
        disputeStage:
          type: string
          description: Stage of the dispute, for example `chargeback`.
    SettlementDetailsDinersDispute:
      title: Dispute
      allOf:
        - $ref: '#/components/schemas/SettlementDetailsTransactionBase'
        - type: object
          required:
            - acquiringIsoIic
            - disputeData
            - arn
          properties:
            charge:
              $ref: '#/components/schemas/SettlementDetailsCharge'
            clearing:
              $ref: '#/components/schemas/SettlementDetailsClearing'
            refundedChargeKey:
              $ref: '#/components/schemas/SettlementDetailsRefundedChargeKey'
            arn:
              type: string
              description: Acquirer Reference Number.
            network:
              enum:
                - diners
            detailType:
              enum:
                - dispute
            messageSystem:
              enum:
                - dms
            acquiringIsoIic:
              type: string
              description: Acquirer identifier as defined by Diners.
            disputeData:
              $ref: '#/components/schemas/SettlementDetailsDisputeData'
    SettlementDetailsDinersBillingData:
      title: Diners Fee
      type: object
      required:
        - billingType
        - feeDescription
      properties:
        billingType:
          type: string
          description: Type of billing data.
          enum:
            - diners_fee
        feeDescription:
          type: string
          description: Description of the Diners fee.
        ruleSerialNumber:
          type: string
          description: Serial number of the pricing rule applied to the fee.
        ruleDescription:
          type: string
          description: Description of the pricing rule applied to the fee.
    SettlementDetailsDinersCardNetworkBilling:
      title: Card Network Billing
      allOf:
        - $ref: '#/components/schemas/SettlementDetailsRecordBase'
        - type: object
          required:
            - acquiringIsoIic
            - billingData
          properties:
            network:
              enum:
                - diners
            detailType:
              enum:
                - card_network_billing
            acquiringIsoIic:
              type: string
              description: Acquirer identifier as defined by Diners.
            billingData:
              $ref: '#/components/schemas/SettlementDetailsDinersBillingData'
    SettlementDetailsDinersRecord:
      title: Diners
      oneOf:
        - $ref: '#/components/schemas/SettlementDetailsDinersCapture'
        - $ref: '#/components/schemas/SettlementDetailsDinersDispute'
        - $ref: '#/components/schemas/SettlementDetailsDinersCardNetworkBilling'
    SettlementDetailsRecord:
      title: SettlementDetails
      description: |
        A single record of the Settlement Details report file (one line in the `application/x-ndjson` file).

        Records are distinguished by `network`, then by `detailType` (`capture`, `dispute`, `card_network_billing`, `adjustment`).
        Captures and disputes carry a `messageSystem` (`dms` or `sms`). Only Visa uses `sms`.
        Adjustments can carry an `adjustmentData.adjustmentType`, and card network billing records can carry a `billingData.billingType`.
        Both objects are absent when the card network data has no further detail.

        `interchangeFeeDesignator` documents only the properties that the card network can populate.
        The file can contain further designator properties with empty strings. Consumers should ignore them.
      oneOf:
        - $ref: '#/components/schemas/SettlementDetailsVisaRecord'
        - $ref: '#/components/schemas/SettlementDetailsMastercardRecord'
        - $ref: '#/components/schemas/SettlementDetailsAmericanExpressRecord'
        - $ref: '#/components/schemas/SettlementDetailsDiscoverRecord'
        - $ref: '#/components/schemas/SettlementDetailsDinersRecord'
    UnsupportedMimeTypeErrorDetails:
      type: object
      required:
        - type
        - title
        - status
        - detail
        - instance
      properties:
        type:
          allOf:
            - $ref: '#/components/schemas/errorType'
            - enum:
                - /silverflow/problems/report/unsupported-mime-type
        title:
          allOf:
            - $ref: '#/components/schemas/errorTitle'
            - enum:
                - Unsupported mimeType
        status:
          allOf:
            - $ref: '#/components/schemas/errorStatus'
            - enum:
                - 415
        detail:
          $ref: '#/components/schemas/errorDetail'
        instance:
          $ref: '#/components/schemas/errorInstance'
    CreateAmmfReportRequest:
      type: object
      required:
        - parameters
        - mimeType
      additionalProperties: false
      properties:
        parameters:
          $ref: '#/components/schemas/AMMFReportParameters'
        reference:
          $ref: '#/components/schemas/components-schemas-reference'
        mimeType:
          $ref: '#/components/schemas/ammfReportMimeType'
        distributions:
          $ref: '#/components/schemas/distributions'
    CreateAmmfReportResponse:
      type: object
      required:
        - reportName
        - parameters
        - mimeType
        - key
        - agentKey
        - status
        - created
      properties:
        reportName:
          type: string
          enum:
            - AmmfReport
        parameters:
          $ref: '#/components/schemas/AMMFReportParameters'
        mimeType:
          $ref: '#/components/schemas/ammfReportMimeType'
        key:
          $ref: '#/components/schemas/reportKey'
        agentKey:
          $ref: '#/components/schemas/AgentKey'
        reference:
          $ref: '#/components/schemas/components-schemas-reference'
        status:
          $ref: '#/components/schemas/createReportStatus'
        created:
          $ref: '#/components/schemas/openapi_components-schemas-created-2'
        distributions:
          $ref: '#/components/schemas/distributions'
    quarterly-scheme-report_reference:
      type: string
      description: Unique ID used to identify a quarterly scheme report.
      maxLength: 120
    VisaQuarterlySchemeReportRequest:
      type: object
      required:
        - parameters
        - mimeType
      additionalProperties: false
      properties:
        parameters:
          $ref: '#/components/schemas/VisaQuarterlySchemeReportParameters'
        reference:
          $ref: '#/components/schemas/quarterly-scheme-report_reference'
        mimeType:
          $ref: '#/components/schemas/quarterlySchemeReportMimeType'
        distributions:
          $ref: '#/components/schemas/distributions'
    MastercardQuarterlySchemeReportRequest:
      type: object
      required:
        - parameters
        - mimeType
      additionalProperties: false
      properties:
        parameters:
          $ref: '#/components/schemas/MastercardQuarterlySchemeReportParameters'
        reference:
          $ref: '#/components/schemas/quarterly-scheme-report_reference'
        mimeType:
          $ref: '#/components/schemas/quarterlySchemeReportMimeType'
        distributions:
          $ref: '#/components/schemas/distributions'
    VisaQuarterlySchemeReportResponse:
      type: object
      required:
        - reportName
        - parameters
        - mimeType
        - key
        - agentKey
        - status
        - created
      properties:
        reportName:
          type: string
          enum:
            - VisaQuarterlySchemeReport
        parameters:
          $ref: '#/components/schemas/VisaQuarterlySchemeReportParameters'
        mimeType:
          $ref: '#/components/schemas/quarterlySchemeReportMimeType'
        key:
          $ref: '#/components/schemas/reportKey'
        agentKey:
          $ref: '#/components/schemas/AgentKey'
        reference:
          $ref: '#/components/schemas/quarterly-scheme-report_reference'
        status:
          $ref: '#/components/schemas/createReportStatus'
        created:
          $ref: '#/components/schemas/openapi_components-schemas-created-2'
        distributions:
          $ref: '#/components/schemas/distributions'
    MastercardQuarterlySchemeReportResponse:
      type: object
      required:
        - reportName
        - parameters
        - mimeType
        - key
        - agentKey
        - status
        - created
      properties:
        reportName:
          type: string
          enum:
            - MastercardQuarterlySchemeReport
        parameters:
          $ref: '#/components/schemas/MastercardQuarterlySchemeReportParameters'
        mimeType:
          $ref: '#/components/schemas/quarterlySchemeReportMimeType'
        key:
          $ref: '#/components/schemas/reportKey'
        agentKey:
          $ref: '#/components/schemas/AgentKey'
        reference:
          $ref: '#/components/schemas/quarterly-scheme-report_reference'
        status:
          $ref: '#/components/schemas/createReportStatus'
        created:
          $ref: '#/components/schemas/openapi_components-schemas-created-2'
        distributions:
          $ref: '#/components/schemas/distributions'
    components-schemas-status:
      description: |
        Current state of the report schedule. 

        - **active**: Schedule is currently enabled and will trigger as per configuration.
        - **archived**: Schedule is disabled and will not trigger.
      type: string
      enum:
        - active
        - archived
    BaseReportSchedule:
      type: object
      required:
        - key
        - status
        - agentKey
        - created
        - version
        - trigger
        - mimeType
      properties:
        key:
          $ref: '#/components/schemas/reportScheduleKey'
        status:
          $ref: '#/components/schemas/components-schemas-status'
        agentKey:
          $ref: '#/components/schemas/AgentKey'
        created:
          $ref: '#/components/schemas/openapi_components-schemas-created-2'
        lastModified:
          $ref: '#/components/schemas/openapi_components-schemas-lastModified-2'
        version:
          $ref: '#/components/schemas/openapi_components-schemas-version'
        reference:
          $ref: '#/components/schemas/components-schemas-reference'
        distributions:
          $ref: '#/components/schemas/distributions'
    intervalTrigger:
      type: object
      required:
        - type
      properties:
        type:
          type: string
          description: A trigger type, which is based on a time-interval.
          enum:
            - interval
    hourlyCadence:
      allOf:
        - $ref: '#/components/schemas/intervalTrigger'
        - type: object
          required:
            - cadence
          description: Configuration for hourly-triggered reports.
          properties:
            cadence:
              type: string
              description: The cadence of this interval trigger.
              enum:
                - hourly
    hour:
      type: integer
      description: |
        The hour of the day (in 24-hour format) for the report trigger.
        - Must be between 0 and 23.
      format: int32
      minimum: 0
      maximum: 23
    dailyCadence:
      allOf:
        - $ref: '#/components/schemas/intervalTrigger'
        - type: object
          description: Configuration for daily-triggered reports, specifying the hour.
          required:
            - cadence
            - hour
          properties:
            cadence:
              type: string
              description: The cadence of this interval trigger.
              enum:
                - daily
            hour:
              $ref: '#/components/schemas/hour'
    SchemeFeeDetailsTrigger:
      type: object
      description: The trigger conditions for the scheme fee details report schedule.
      oneOf:
        - $ref: '#/components/schemas/hourlyCadence'
        - $ref: '#/components/schemas/dailyCadence'
    SchemeFeeDetailsReportSchedule:
      allOf:
        - type: object
          required:
            - reportName
          properties:
            reportName:
              $ref: '#/components/schemas/SchemeFeeDetailsReportName'
        - $ref: '#/components/schemas/BaseReportSchedule'
        - type: object
          required:
            - trigger
            - mimeType
          properties:
            mimeType:
              $ref: '#/components/schemas/schemeFeeDetailsReportMimeType'
            trigger:
              $ref: '#/components/schemas/SchemeFeeDetailsTrigger'
    NetworkFundsTransfersTrigger:
      type: object
      description: The trigger conditions for the network funds transfer report schedule.
      oneOf:
        - $ref: '#/components/schemas/dailyCadence'
    NetworkFundsTransferReportSchedule:
      allOf:
        - type: object
          required:
            - reportName
          properties:
            reportName:
              $ref: '#/components/schemas/NetworkFundsTransfersReportName'
        - $ref: '#/components/schemas/BaseReportSchedule'
        - type: object
          required:
            - trigger
            - mimeType
          properties:
            mimeType:
              $ref: '#/components/schemas/networkFundsTransfersReportMimeType'
            trigger:
              $ref: '#/components/schemas/NetworkFundsTransfersTrigger'
    MerchantPayoutScheduleTrigger:
      type: object
      description: The trigger conditions for the merchant payout schedule.
      oneOf:
        - $ref: '#/components/schemas/dailyCadence'
    MerchantPayoutReportScheduleParameters:
      type: object
      description: The parameters used for creating a merchant payout report schedule.
      required:
        - type
      properties:
        type:
          $ref: '#/components/schemas/MerchantPayoutReportType'
    MerchantPayoutReportSchedule:
      allOf:
        - type: object
          required:
            - reportName
          properties:
            reportName:
              $ref: '#/components/schemas/MerchantPayoutReportName'
        - $ref: '#/components/schemas/BaseReportSchedule'
        - type: object
          required:
            - reportName
            - trigger
            - mimeType
            - parameters
          properties:
            reportName:
              $ref: '#/components/schemas/MerchantPayoutReportName'
            mimeType:
              $ref: '#/components/schemas/MerchantPayoutReportMimeType'
            trigger:
              $ref: '#/components/schemas/MerchantPayoutScheduleTrigger'
            parameters:
              $ref: '#/components/schemas/MerchantPayoutReportScheduleParameters'
    reconciliationDetailsScheduleTrigger:
      type: object
      description: The trigger conditions for the reconciliation details schedule.
      oneOf:
        - $ref: '#/components/schemas/hourlyCadence'
        - $ref: '#/components/schemas/dailyCadence'
    ReconciliationDetailsReportSchedule:
      allOf:
        - type: object
          required:
            - reportName
          properties:
            reportName:
              $ref: '#/components/schemas/ReconciliationDetailsReportName'
        - $ref: '#/components/schemas/BaseReportSchedule'
        - type: object
          required:
            - trigger
            - mimeType
          properties:
            mimeType:
              $ref: '#/components/schemas/reconciliationDetailsReportMimeType'
            trigger:
              $ref: '#/components/schemas/reconciliationDetailsScheduleTrigger'
    chargesScheduleTrigger:
      type: object
      description: The trigger conditions for the Charges report schedule.
      oneOf:
        - $ref: '#/components/schemas/hourlyCadence'
        - $ref: '#/components/schemas/dailyCadence'
    ChargesReportSchedule:
      allOf:
        - type: object
          required:
            - reportName
          properties:
            reportName:
              $ref: '#/components/schemas/ChargesReportName'
        - $ref: '#/components/schemas/BaseReportSchedule'
        - type: object
          required:
            - trigger
            - mimeType
          properties:
            mimeType:
              $ref: '#/components/schemas/chargesReportMimeType'
            trigger:
              $ref: '#/components/schemas/chargesScheduleTrigger'
    disputeHistoryEventsScheduleTrigger:
      type: object
      description: The trigger conditions for the Dispute History Events report schedule.
      oneOf:
        - $ref: '#/components/schemas/hourlyCadence'
        - $ref: '#/components/schemas/dailyCadence'
    DisputeHistoryEventsReportSchedule:
      allOf:
        - type: object
          required:
            - reportName
          properties:
            reportName:
              $ref: '#/components/schemas/DisputeHistoryEventsReportName'
        - $ref: '#/components/schemas/BaseReportSchedule'
        - type: object
          required:
            - trigger
            - mimeType
          properties:
            mimeType:
              $ref: '#/components/schemas/disputeHistoryEventsReportMimeType'
            trigger:
              $ref: '#/components/schemas/disputeHistoryEventsScheduleTrigger'
    fraudNotificationsScheduleTrigger:
      type: object
      description: The trigger conditions for the Fraud Notifications report schedule.
      oneOf:
        - $ref: '#/components/schemas/hourlyCadence'
        - $ref: '#/components/schemas/dailyCadence'
    FraudNotificationsReportSchedule:
      allOf:
        - type: object
          required:
            - reportName
          properties:
            reportName:
              $ref: '#/components/schemas/FraudNotificationsReportName'
        - $ref: '#/components/schemas/BaseReportSchedule'
        - type: object
          required:
            - trigger
            - mimeType
          properties:
            mimeType:
              $ref: '#/components/schemas/fraudNotificationsReportMimeType'
            trigger:
              $ref: '#/components/schemas/fraudNotificationsScheduleTrigger'
    SettlementDetailsScheduleTrigger:
      type: object
      description: The trigger conditions for the SettlementDetails schedule.
      oneOf:
        - $ref: '#/components/schemas/hourlyCadence'
        - $ref: '#/components/schemas/dailyCadence'
    SettlementDetailsReportSchedule:
      allOf:
        - type: object
          required:
            - reportName
          properties:
            reportName:
              $ref: '#/components/schemas/SettlementDetailsReportName'
        - $ref: '#/components/schemas/BaseReportSchedule'
        - type: object
          required:
            - trigger
            - mimeType
          properties:
            mimeType:
              $ref: '#/components/schemas/SettlementDetailsReportMimeType'
            trigger:
              $ref: '#/components/schemas/SettlementDetailsScheduleTrigger'
    AMMFReportScheduleParameters:
      type: object
      description: The parameters used for creating a merchant payout report schedule.
      required:
        - acquirerIdCode
      additionalProperties: false
      properties:
        acquirerIdCode:
          $ref: '#/components/schemas/ammfAcquirerIdCode'
        directSubmission:
          $ref: '#/components/schemas/ammfDirectSubmission'
    dayOfMonth:
      type: integer
      description: |
        The day of the month for the report trigger.
        - Must be between 1 and 28.
      format: int32
      minimum: 1
      maximum: 28
    monthlyCadence:
      allOf:
        - $ref: '#/components/schemas/intervalTrigger'
        - type: object
          description: Configuration for monthly-triggered reports, specifying the day of the month and hour the report should be scheduled.
          required:
            - cadence
            - day
            - hour
          properties:
            cadence:
              type: string
              enum:
                - monthly
            day:
              $ref: '#/components/schemas/dayOfMonth'
            hour:
              $ref: '#/components/schemas/hour'
    AmmfReportScheduleTrigger:
      type: object
      description: The trigger conditions for the AMMF Report schedule.
      oneOf:
        - $ref: '#/components/schemas/monthlyCadence'
    AmmfReportSchedule:
      allOf:
        - type: object
          required:
            - reportName
          properties:
            reportName:
              $ref: '#/components/schemas/AMMFReportName'
        - $ref: '#/components/schemas/BaseReportSchedule'
        - type: object
          required:
            - trigger
            - parameters
            - mimeType
          properties:
            mimeType:
              $ref: '#/components/schemas/ammfReportMimeType'
            parameters:
              $ref: '#/components/schemas/AMMFReportScheduleParameters'
            trigger:
              $ref: '#/components/schemas/AmmfReportScheduleTrigger'
    ListReportSchedulesResponse:
      type: object
      required:
        - moreItems
        - items
      properties:
        moreItems:
          $ref: '#/components/schemas/schemas-moreItems'
        offsetToken:
          $ref: '#/components/schemas/components-schemas-offsetToken'
        items:
          type: array
          description: List of report schedules
          items:
            anyOf:
              - $ref: '#/components/schemas/SchemeFeeDetailsReportSchedule'
              - $ref: '#/components/schemas/NetworkFundsTransferReportSchedule'
              - $ref: '#/components/schemas/MerchantPayoutReportSchedule'
              - $ref: '#/components/schemas/ReconciliationDetailsReportSchedule'
              - $ref: '#/components/schemas/ChargesReportSchedule'
              - $ref: '#/components/schemas/DisputeHistoryEventsReportSchedule'
              - $ref: '#/components/schemas/FraudNotificationsReportSchedule'
              - $ref: '#/components/schemas/SettlementDetailsReportSchedule'
              - $ref: '#/components/schemas/AmmfReportSchedule'
    BaseCreateReportScheduleRequest:
      type: object
      description: The base report scheduling fields
      properties:
        reference:
          $ref: '#/components/schemas/components-schemas-reference'
        distributions:
          $ref: '#/components/schemas/distributions'
    CreateSchemeFeeDetailsScheduleRequest:
      allOf:
        - type: object
          description: A schedule for Scheme Fee Details reports
          required:
            - reportName
            - trigger
            - mimeType
          properties:
            reportName:
              $ref: '#/components/schemas/SchemeFeeDetailsReportName'
            mimeType:
              $ref: '#/components/schemas/schemeFeeDetailsReportMimeType'
            trigger:
              $ref: '#/components/schemas/SchemeFeeDetailsTrigger'
        - $ref: '#/components/schemas/BaseCreateReportScheduleRequest'
    CreateNetworkFundsTransfersScheduleRequest:
      allOf:
        - type: object
          description: A schedule for Network Funds Transfer reports
          required:
            - reportName
            - trigger
            - mimeType
          properties:
            reportName:
              $ref: '#/components/schemas/NetworkFundsTransfersReportName'
            mimeType:
              $ref: '#/components/schemas/networkFundsTransfersReportMimeType'
            trigger:
              $ref: '#/components/schemas/NetworkFundsTransfersTrigger'
        - $ref: '#/components/schemas/BaseCreateReportScheduleRequest'
    CreateMerchantPayoutScheduleRequest:
      allOf:
        - type: object
          description: A schedule for Merchant Payout reports
          required:
            - reportName
            - trigger
            - mimeType
            - parameters
          properties:
            reportName:
              $ref: '#/components/schemas/MerchantPayoutReportName'
            mimeType:
              $ref: '#/components/schemas/MerchantPayoutReportMimeType'
            trigger:
              $ref: '#/components/schemas/MerchantPayoutScheduleTrigger'
            parameters:
              $ref: '#/components/schemas/MerchantPayoutReportScheduleParameters'
        - $ref: '#/components/schemas/BaseCreateReportScheduleRequest'
    CreateReconciliationDetailScheduleRequest:
      allOf:
        - type: object
          description: A schedule for Reconciliation Details reports
          required:
            - reportName
            - trigger
            - mimeType
          properties:
            reportName:
              $ref: '#/components/schemas/ReconciliationDetailsReportName'
            mimeType:
              $ref: '#/components/schemas/reconciliationDetailsReportMimeType'
            trigger:
              $ref: '#/components/schemas/reconciliationDetailsScheduleTrigger'
        - $ref: '#/components/schemas/BaseCreateReportScheduleRequest'
    CreateChargesScheduleRequest:
      allOf:
        - type: object
          description: A schedule for Charges reports
          required:
            - reportName
            - trigger
            - mimeType
          properties:
            reportName:
              $ref: '#/components/schemas/ChargesReportName'
            mimeType:
              $ref: '#/components/schemas/chargesReportMimeType'
            trigger:
              $ref: '#/components/schemas/chargesScheduleTrigger'
        - $ref: '#/components/schemas/BaseCreateReportScheduleRequest'
    CreateDisputeHistoryEventsScheduleRequest:
      allOf:
        - type: object
          description: A schedule for Dispute History Events reports
          required:
            - reportName
            - trigger
            - mimeType
          properties:
            reportName:
              $ref: '#/components/schemas/DisputeHistoryEventsReportName'
            mimeType:
              $ref: '#/components/schemas/disputeHistoryEventsReportMimeType'
            trigger:
              $ref: '#/components/schemas/disputeHistoryEventsScheduleTrigger'
        - $ref: '#/components/schemas/BaseCreateReportScheduleRequest'
    CreateFraudNotificationsScheduleRequest:
      allOf:
        - type: object
          description: A schedule for Fraud Notifications reports
          required:
            - reportName
            - trigger
            - mimeType
          properties:
            reportName:
              $ref: '#/components/schemas/FraudNotificationsReportName'
            mimeType:
              $ref: '#/components/schemas/fraudNotificationsReportMimeType'
            trigger:
              $ref: '#/components/schemas/fraudNotificationsScheduleTrigger'
        - $ref: '#/components/schemas/BaseCreateReportScheduleRequest'
    CreateSettlementDetailsScheduleRequest:
      allOf:
        - type: object
          description: A schedule for SettlementDetails reports
          required:
            - reportName
            - trigger
            - mimeType
          properties:
            reportName:
              $ref: '#/components/schemas/SettlementDetailsReportName'
            mimeType:
              $ref: '#/components/schemas/SettlementDetailsReportMimeType'
            trigger:
              $ref: '#/components/schemas/SettlementDetailsScheduleTrigger'
        - $ref: '#/components/schemas/BaseCreateReportScheduleRequest'
    CreateAmmfReportScheduleRequest:
      allOf:
        - type: object
          required:
            - reportName
            - parameters
            - mimeType
            - trigger
          additionalProperties: false
          properties:
            reportName:
              $ref: '#/components/schemas/AMMFReportName'
            trigger:
              $ref: '#/components/schemas/AmmfReportScheduleTrigger'
            parameters:
              $ref: '#/components/schemas/AMMFReportScheduleParameters'
            reference:
              $ref: '#/components/schemas/components-schemas-reference'
            mimeType:
              $ref: '#/components/schemas/ammfReportMimeType'
            distributions:
              $ref: '#/components/schemas/distributions'
        - $ref: '#/components/schemas/BaseCreateReportScheduleRequest'
    CreateReportScheduleRequest:
      type: object
      discriminator:
        propertyName: reportName
        mapping:
          SchemeFeeDetails: '#/components/schemas/CreateSchemeFeeDetailsScheduleRequest'
          NetworkFundsTransfers: '#/components/schemas/CreateNetworkFundsTransfersScheduleRequest'
          MerchantPayout: '#/components/schemas/CreateMerchantPayoutScheduleRequest'
          ReconciliationDetails: '#/components/schemas/CreateReconciliationDetailScheduleRequest'
          Charges: '#/components/schemas/CreateChargesScheduleRequest'
          DisputeHistoryEvents: '#/components/schemas/CreateDisputeHistoryEventsScheduleRequest'
          FraudNotifications: '#/components/schemas/CreateFraudNotificationsScheduleRequest'
          SettlementDetails: '#/components/schemas/CreateSettlementDetailsScheduleRequest'
          AmmfReport: '#/components/schemas/CreateAmmfReportScheduleRequest'
      oneOf:
        - $ref: '#/components/schemas/CreateSchemeFeeDetailsScheduleRequest'
        - $ref: '#/components/schemas/CreateNetworkFundsTransfersScheduleRequest'
        - $ref: '#/components/schemas/CreateMerchantPayoutScheduleRequest'
        - $ref: '#/components/schemas/CreateReconciliationDetailScheduleRequest'
        - $ref: '#/components/schemas/CreateChargesScheduleRequest'
        - $ref: '#/components/schemas/CreateDisputeHistoryEventsScheduleRequest'
        - $ref: '#/components/schemas/CreateFraudNotificationsScheduleRequest'
        - $ref: '#/components/schemas/CreateSettlementDetailsScheduleRequest'
        - $ref: '#/components/schemas/CreateAmmfReportScheduleRequest'
    ReportScheduleResponse:
      type: object
      oneOf:
        - $ref: '#/components/schemas/SchemeFeeDetailsReportSchedule'
        - $ref: '#/components/schemas/NetworkFundsTransferReportSchedule'
        - $ref: '#/components/schemas/MerchantPayoutReportSchedule'
        - $ref: '#/components/schemas/ReconciliationDetailsReportSchedule'
        - $ref: '#/components/schemas/ChargesReportSchedule'
        - $ref: '#/components/schemas/DisputeHistoryEventsReportSchedule'
        - $ref: '#/components/schemas/FraudNotificationsReportSchedule'
        - $ref: '#/components/schemas/SettlementDetailsReportSchedule'
        - $ref: '#/components/schemas/AmmfReportSchedule'
    BaseConflictError:
      type: object
      required:
        - status
        - detail
        - instance
      properties:
        status:
          allOf:
            - $ref: '#/components/schemas/errorStatus'
            - enum:
                - 409
        detail:
          $ref: '#/components/schemas/errorDetail'
        instance:
          $ref: '#/components/schemas/errorInstance'
    EntityAlreadyExistsErrorDetails:
      allOf:
        - $ref: '#/components/schemas/BaseConflictError'
        - type: object
          required:
            - type
            - title
          properties:
            type:
              allOf:
                - $ref: '#/components/schemas/errorType'
                - enum:
                    - /silverflow/problems/report/entity-already-exists
            title:
              allOf:
                - $ref: '#/components/schemas/errorTitle'
                - enum:
                    - Entity Already Exists
    openapi_components-schemas-ReferencedEntityNotFoundErrorDetails:
      allOf:
        - $ref: '#/components/schemas/BaseConflictError'
        - type: object
          required:
            - type
            - title
          properties:
            type:
              allOf:
                - $ref: '#/components/schemas/errorType'
                - enum:
                    - /silverflow/problems/report/referenced-entity-not-found
            title:
              allOf:
                - $ref: '#/components/schemas/errorTitle'
                - enum:
                    - Referenced Entity Not Found
    ReferencedEntityArchivedErrorDetails:
      allOf:
        - $ref: '#/components/schemas/BaseConflictError'
        - type: object
          required:
            - type
            - title
          properties:
            type:
              allOf:
                - $ref: '#/components/schemas/errorType'
                - enum:
                    - /silverflow/problems/report/referenced-entity-archived
            title:
              allOf:
                - $ref: '#/components/schemas/errorTitle'
                - enum:
                    - Referenced Entity Archived
    ReportScheduleNotFoundErrorDetails:
      type: object
      required:
        - type
        - title
        - status
        - detail
        - instance
      properties:
        type:
          allOf:
            - $ref: '#/components/schemas/errorType'
            - enum:
                - /silverflow/problems/report/report-schedule-not-found
        title:
          allOf:
            - $ref: '#/components/schemas/errorTitle'
            - enum:
                - Report schedule not found
        status:
          allOf:
            - $ref: '#/components/schemas/errorStatus'
            - enum:
                - 404
        detail:
          $ref: '#/components/schemas/errorDetail'
        instance:
          $ref: '#/components/schemas/errorInstance'
    UpdateSchemeFeeDetailsScheduleRequest:
      type: object
      description: A schedule for Scheme Fee Details reports
      additionalProperties: false
      properties:
        mimeType:
          $ref: '#/components/schemas/schemeFeeDetailsReportMimeType'
        trigger:
          $ref: '#/components/schemas/SchemeFeeDetailsTrigger'
        reference:
          $ref: '#/components/schemas/components-schemas-reference'
        distributions:
          $ref: '#/components/schemas/distributions'
    UpdateNetworkFundsTransfersScheduleRequest:
      type: object
      description: A schedule for Network Funds Transfer reports
      additionalProperties: false
      properties:
        mimeType:
          $ref: '#/components/schemas/networkFundsTransfersReportMimeType'
        trigger:
          $ref: '#/components/schemas/NetworkFundsTransfersTrigger'
        reference:
          $ref: '#/components/schemas/components-schemas-reference'
        distributions:
          $ref: '#/components/schemas/distributions'
    UpdateMerchantPayoutScheduleRequest:
      type: object
      description: A schedule for Merchant Payout reports
      additionalProperties: false
      properties:
        mimeType:
          $ref: '#/components/schemas/MerchantPayoutReportMimeType'
        trigger:
          $ref: '#/components/schemas/MerchantPayoutScheduleTrigger'
        reference:
          $ref: '#/components/schemas/components-schemas-reference'
        distributions:
          $ref: '#/components/schemas/distributions'
    UpdateReconciliationDetailScheduleRequest:
      type: object
      description: A schedule for Reconciliation Details reports
      additionalProperties: false
      properties:
        mimeType:
          $ref: '#/components/schemas/reconciliationDetailsReportMimeType'
        trigger:
          $ref: '#/components/schemas/reconciliationDetailsScheduleTrigger'
        reference:
          $ref: '#/components/schemas/components-schemas-reference'
        distributions:
          $ref: '#/components/schemas/distributions'
    UpdateChargesScheduleRequest:
      type: object
      description: A schedule for Charges reports
      additionalProperties: false
      properties:
        mimeType:
          $ref: '#/components/schemas/chargesReportMimeType'
        trigger:
          $ref: '#/components/schemas/chargesScheduleTrigger'
        reference:
          $ref: '#/components/schemas/components-schemas-reference'
        distributions:
          $ref: '#/components/schemas/distributions'
    UpdateDisputeHistoryEventsScheduleRequest:
      type: object
      description: A schedule for Dispute History Events reports
      additionalProperties: false
      properties:
        mimeType:
          $ref: '#/components/schemas/disputeHistoryEventsReportMimeType'
        trigger:
          $ref: '#/components/schemas/disputeHistoryEventsScheduleTrigger'
        reference:
          $ref: '#/components/schemas/components-schemas-reference'
        distributions:
          $ref: '#/components/schemas/distributions'
    UpdateFraudNotificationsScheduleRequest:
      type: object
      description: A schedule for Fraud Notifications reports
      additionalProperties: false
      properties:
        mimeType:
          $ref: '#/components/schemas/fraudNotificationsReportMimeType'
        trigger:
          $ref: '#/components/schemas/fraudNotificationsScheduleTrigger'
        reference:
          $ref: '#/components/schemas/components-schemas-reference'
        distributions:
          $ref: '#/components/schemas/distributions'
    UpdateSettlementDetailsScheduleRequest:
      type: object
      description: A schedule for SettlementDetails reports
      additionalProperties: false
      properties:
        mimeType:
          $ref: '#/components/schemas/SettlementDetailsReportMimeType'
        trigger:
          $ref: '#/components/schemas/SettlementDetailsScheduleTrigger'
        reference:
          $ref: '#/components/schemas/components-schemas-reference'
        distributions:
          $ref: '#/components/schemas/distributions'
    UpdateAmmfReportScheduleRequest:
      type: object
      additionalProperties: false
      properties:
        trigger:
          $ref: '#/components/schemas/AmmfReportScheduleTrigger'
        reference:
          $ref: '#/components/schemas/components-schemas-reference'
        mimeType:
          $ref: '#/components/schemas/ammfReportMimeType'
        distributions:
          $ref: '#/components/schemas/distributions'
    UpdateReportScheduleRequest:
      type: object
      anyOf:
        - $ref: '#/components/schemas/UpdateSchemeFeeDetailsScheduleRequest'
        - $ref: '#/components/schemas/UpdateNetworkFundsTransfersScheduleRequest'
        - $ref: '#/components/schemas/UpdateMerchantPayoutScheduleRequest'
        - $ref: '#/components/schemas/UpdateReconciliationDetailScheduleRequest'
        - $ref: '#/components/schemas/UpdateChargesScheduleRequest'
        - $ref: '#/components/schemas/UpdateDisputeHistoryEventsScheduleRequest'
        - $ref: '#/components/schemas/UpdateFraudNotificationsScheduleRequest'
        - $ref: '#/components/schemas/UpdateSettlementDetailsScheduleRequest'
        - $ref: '#/components/schemas/UpdateAmmfReportScheduleRequest'
    EmailDistributionType:
      type: string
      description: Email distribution type.
      enum:
        - email
    SftpDistributionType:
      type: string
      description: SFTP distribution type.
      enum:
        - sftp
    S3DistributionType:
      type: string
      description: S3 distribution type.
      enum:
        - s3
    DistributionType:
      type: string
      description: The distribution type.
      oneOf:
        - $ref: '#/components/schemas/EmailDistributionType'
        - $ref: '#/components/schemas/SftpDistributionType'
        - $ref: '#/components/schemas/S3DistributionType'
    schemas-AgentKey:
      description: Uniquely identifies an Agent
      type: string
      pattern: ^cgt-[a-zA-Z0-9]+|current$
      example: cgt-1UF2NafdfrdPMf2XrS2
    DistributionReference:
      type: string
      description: A reference to the distribution
      pattern: ^[a-zA-Z0-9()+,\-.:=@;$_!*\/?|]+$
      minLength: 1
      maxLength: 120
    BaseDistribution:
      type: object
      required:
        - key
        - status
        - agentKey
        - created
        - version
      description: A distribution
      properties:
        key:
          $ref: '#/components/schemas/distributionKey'
        status:
          $ref: '#/components/schemas/status'
        agentKey:
          $ref: '#/components/schemas/schemas-AgentKey'
        created:
          $ref: '#/components/schemas/openapi_components-schemas-created-2'
        lastModified:
          $ref: '#/components/schemas/openapi_components-schemas-lastModified-2'
        version:
          $ref: '#/components/schemas/openapi_components-schemas-version'
        reference:
          $ref: '#/components/schemas/DistributionReference'
    schemas-email:
      type: string
      format: email
      description: A valid email address
      pattern: \w+([-+.']\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*
    EmailRecipient:
      type: string
      description: An email-address.
      allOf:
        - $ref: '#/components/schemas/schemas-email'
    EmailRecipients:
      type: object
      description: The Email recipients.
      required:
        - to
      properties:
        to:
          type: array
          description: The recipients that receive the email.
          items:
            $ref: '#/components/schemas/EmailRecipient'
        cc:
          type: array
          description: The CC recipients that receive the email.
          items:
            $ref: '#/components/schemas/EmailRecipient'
        bcc:
          type: array
          description: The BCC recipients that receive the email.
          items:
            $ref: '#/components/schemas/EmailRecipient'
    EmailDistributionTargets:
      type: object
      description: The targets of the email distribution.
      additionalProperties: false
      required:
        - recipients
      properties:
        recipients:
          type: array
          description: List of recipients
          items:
            $ref: '#/components/schemas/EmailRecipients'
    EmailDistribution:
      allOf:
        - $ref: '#/components/schemas/BaseDistribution'
        - type: object
          required:
            - type
            - targets
          properties:
            type:
              $ref: '#/components/schemas/EmailDistributionType'
            targets:
              $ref: '#/components/schemas/EmailDistributionTargets'
    host:
      type: string
      description: A valid hostname or IP
      pattern: (^([a-zA-Z0-9-]+\.)*[a-zA-Z0-9-]+\.[a-zA-Z]{2,})|(^((25[0-5]|(2[0-4]|1\d|[1-9]|)\d)\.?\b){4})$
      maxLength: 255
    SftpHost:
      type: string
      description: The SFTP Host name or IP address.
      allOf:
        - $ref: '#/components/schemas/host'
    SftpPort:
      type: integer
      description: The SFTP Host port.
      default: 22
      minimum: 1
      maximum: 65535
    sftpUsername:
      type: string
      description: The SFTP username.
    SftpDirPath:
      type: string
      description: The directory path in the SFTP server where the files will be uploaded.
    SftpDistributionTargets:
      type: object
      description: The targets of the SFTP distribution.
      additionalProperties: false
      required:
        - host
        - username
        - dirPath
      properties:
        host:
          $ref: '#/components/schemas/SftpHost'
        port:
          $ref: '#/components/schemas/SftpPort'
        username:
          $ref: '#/components/schemas/sftpUsername'
        dirPath:
          $ref: '#/components/schemas/SftpDirPath'
    SftpDistribution:
      type: object
      allOf:
        - $ref: '#/components/schemas/BaseDistribution'
        - type: object
          required:
            - type
            - targets
          properties:
            type:
              $ref: '#/components/schemas/SftpDistributionType'
            targets:
              $ref: '#/components/schemas/SftpDistributionTargets'
    bucketName:
      type: string
      description: Name of the AWS S3 bucket where the files will be delivered.
      minLength: 3
      maxLength: 63
      pattern: ^(?!(^(\d+\.){3}\d+$))(?!.*[-.]{2})[a-z0-9]([a-z0-9.-]{1,61})[a-z0-9]$
    accountId:
      type: string
      description: AWS account ID that owns the S3 bucket. For security reasons, the file is delivered only if the bucket is still owned by this account.
      minLength: 12
      maxLength: 12
      pattern: ^[0-9]{12}$
    directory:
      type: string
      description: Optional prefix (subdirectory) inside the bucket where the files will be delivered (e.g., `reports/daily/`).
      minLength: 1
    roleArn:
      type: string
      description: IAM role ARN that the Silverflow service will assume to access the bucket.
      pattern: ^arn:(aws|aws-us-gov|aws-cn):iam::[0-9]{12}:role\/.+$
    externalId:
      type: string
      description: External ID used when assuming the IAM role. Share it only with Silverflow; the role trust policy should require this value.
      minLength: 1
    S3DistributionTargets:
      type: object
      required:
        - bucketName
        - accountId
        - directory
        - roleArn
        - externalId
      properties:
        bucketName:
          $ref: '#/components/schemas/bucketName'
        accountId:
          $ref: '#/components/schemas/accountId'
        directory:
          $ref: '#/components/schemas/directory'
        roleArn:
          $ref: '#/components/schemas/roleArn'
        externalId:
          $ref: '#/components/schemas/externalId'
    S3Distribution:
      type: object
      allOf:
        - $ref: '#/components/schemas/BaseDistribution'
        - type: object
          required:
            - type
            - targets
          properties:
            type:
              $ref: '#/components/schemas/S3DistributionType'
            targets:
              $ref: '#/components/schemas/S3DistributionTargets'
    Distribution:
      oneOf:
        - $ref: '#/components/schemas/EmailDistribution'
        - $ref: '#/components/schemas/SftpDistribution'
        - $ref: '#/components/schemas/S3Distribution'
    ListDistributionResponse:
      allOf:
        - $ref: '#/components/schemas/schemas-PageWithMoreItems'
        - type: object
          required:
            - distributions
          properties:
            distributions:
              type: array
              items:
                $ref: '#/components/schemas/Distribution'
    schemas-errorStatus:
      type: integer
      description: |
        The HTTP status code generated by the origin server for this occurrence
        of the problem.
    schemas-InputValidationError:
      type: object
      required:
        - type
        - title
        - status
        - detail
        - instance
        - validationErrors
      properties:
        type:
          allOf:
            - $ref: '#/components/schemas/errorType'
            - enum:
                - /silverflow/problems/invalid-input
        title:
          allOf:
            - $ref: '#/components/schemas/errorTitle'
            - enum:
                - Invalid Input
        status:
          allOf:
            - $ref: '#/components/schemas/schemas-errorStatus'
            - enum:
                - 400
        detail:
          allOf:
            - $ref: '#/components/schemas/errorDetail'
            - enum:
                - The request does not adhere to the defined API schema.
        instance:
          $ref: '#/components/schemas/errorInstance'
        validationErrors:
          type: array
          items:
            $ref: '#/components/schemas/openapi_components-schemas-ValidationError'
          description: A list of validation errors.
    NotAuthorizedError:
      type: object
      required:
        - type
        - title
        - status
        - detail
        - instance
      properties:
        type:
          allOf:
            - $ref: '#/components/schemas/errorType'
            - enum:
                - /silverflow/problems/authentication-required
        title:
          allOf:
            - $ref: '#/components/schemas/errorTitle'
            - enum:
                - Authentication Required
        status:
          allOf:
            - $ref: '#/components/schemas/schemas-errorStatus'
            - enum:
                - 401
        detail:
          $ref: '#/components/schemas/errorDetail'
        instance:
          $ref: '#/components/schemas/errorInstance'
    schemas-ForbiddenError:
      type: object
      required:
        - type
        - title
        - status
        - detail
        - instance
      properties:
        type:
          allOf:
            - $ref: '#/components/schemas/errorType'
            - enum:
                - /silverflow/problems/forbidden
        title:
          allOf:
            - $ref: '#/components/schemas/errorTitle'
            - enum:
                - Forbidden
        status:
          allOf:
            - $ref: '#/components/schemas/schemas-errorStatus'
            - enum:
                - 403
        detail:
          $ref: '#/components/schemas/errorDetail'
        instance:
          $ref: '#/components/schemas/errorInstance'
    schemas-TooManyRequestsError:
      type: object
      required:
        - type
        - title
        - status
        - detail
        - instance
      properties:
        type:
          allOf:
            - $ref: '#/components/schemas/errorType'
            - enum:
                - /silverflow/problems/too-many-requests
        title:
          allOf:
            - $ref: '#/components/schemas/errorTitle'
            - enum:
                - Too Many Requests
        status:
          allOf:
            - $ref: '#/components/schemas/schemas-errorStatus'
            - enum:
                - 429
        detail:
          $ref: '#/components/schemas/errorDetail'
        instance:
          $ref: '#/components/schemas/errorInstance'
    CreateEmailDistributionRequest:
      type: object
      additionalProperties: false
      required:
        - type
        - targets
      properties:
        type:
          $ref: '#/components/schemas/EmailDistributionType'
        targets:
          $ref: '#/components/schemas/EmailDistributionTargets'
        reference:
          $ref: '#/components/schemas/DistributionReference'
    CreateSftpDistributionRequest:
      type: object
      additionalProperties: false
      required:
        - type
        - targets
      properties:
        type:
          $ref: '#/components/schemas/SftpDistributionType'
        targets:
          $ref: '#/components/schemas/SftpDistributionTargets'
        reference:
          $ref: '#/components/schemas/DistributionReference'
    CreateS3DistributionRequest:
      type: object
      additionalProperties: false
      required:
        - type
        - targets
      properties:
        type:
          $ref: '#/components/schemas/S3DistributionType'
        targets:
          $ref: '#/components/schemas/S3DistributionTargets'
        reference:
          $ref: '#/components/schemas/DistributionReference'
    CreateDistributionRequest:
      oneOf:
        - $ref: '#/components/schemas/CreateEmailDistributionRequest'
        - $ref: '#/components/schemas/CreateSftpDistributionRequest'
        - $ref: '#/components/schemas/CreateS3DistributionRequest'
    DistributionNotFoundError:
      type: object
      required:
        - type
        - title
        - status
        - detail
        - instance
      properties:
        type:
          allOf:
            - $ref: '#/components/schemas/errorType'
            - enum:
                - /silverflow/problems/distribution/not-found
        title:
          allOf:
            - $ref: '#/components/schemas/errorTitle'
            - enum:
                - Distribution not found
        status:
          allOf:
            - $ref: '#/components/schemas/schemas-errorStatus'
            - enum:
                - 404
        detail:
          $ref: '#/components/schemas/errorDetail'
        instance:
          $ref: '#/components/schemas/errorInstance'
    UpdateDistributionRequest:
      type: object
      additionalProperties: false
      properties:
        reference:
          $ref: '#/components/schemas/DistributionReference'
        targets:
          oneOf:
            - $ref: '#/components/schemas/EmailDistributionTargets'
            - $ref: '#/components/schemas/SftpDistributionTargets'
            - $ref: '#/components/schemas/S3DistributionTargets'
    SubscriptionKey:
      type: string
      pattern: ^rfs-[a-zA-Z0-9]+$
      minimum: 10
      maximum: 120
      description: The key of a subscription.
    components-schemas-AgentKey:
      type: string
      pattern: ^cgt-[a-zA-Z0-9]+$
      minimum: 10
      maximum: 120
      description: The key of an agent.
    AcquirerReferences:
      type: array
      description: |
        Network-specific references for file routing. The type of reference required depends on the card network:

        | Card Network      | Required Value | BIN Object Field     |
        |-------------------|----------------|----------------------|
        | American Express  | Submitter ID   | acquirerIdCode       |
        | Visa              | Acquirer BIN   | acquirerBin          |
        | Mastercard        | Acquirer BIN   | acquirerBin          |
        | Discover          | Acquirer BIN   | acquirerBin          |

        These references are used to match incoming card network files to subscriptions.
      minItems: 1
      uniqueItems: true
      items:
        type: string
    DistributionKey:
      type: string
      pattern: ^dst-[a-zA-Z0-9]+$
      minimum: 10
      maximum: 120
      description: Key of the distribution where files will be sent.
    FileTypes:
      type: array
      description: List of card network file types to subscribe to. Each file type represents a specific format of raw data files from different card networks.
      minItems: 1
      uniqueItems: true
      items:
        type: string
        enum:
          - american_express_grrcn
          - mastercard_ipm
          - mastercard_t140
          - mastercard_tll8
          - mastercard_tn70
          - visa_cas33
          - visa_dbraw
          - visa_dbrpt
          - visa_rdms
          - visa_t33is
          - visa_t33nn
          - visa_undif
    FileSubscription:
      type: object
      required:
        - subscriptionKey
        - agentKey
        - acquirerReferences
        - distributionKey
        - fileTypes
      properties:
        subscriptionKey:
          $ref: '#/components/schemas/SubscriptionKey'
        agentKey:
          $ref: '#/components/schemas/components-schemas-AgentKey'
        acquirerReferences:
          $ref: '#/components/schemas/AcquirerReferences'
        distributionKey:
          $ref: '#/components/schemas/DistributionKey'
        fileTypes:
          $ref: '#/components/schemas/FileTypes'
    ListFileSubscriptionsResponse:
      type: object
      required:
        - subscriptions
      properties:
        subscriptions:
          type: array
          items:
            $ref: '#/components/schemas/FileSubscription'
    components-schemas-errorStatus:
      type: integer
      description: |
        The HTTP status code generated by the origin server for this occurrence of the problem.
    validationError:
      type: object
      required:
        - path
        - errorCode
        - message
      properties:
        path:
          type: string
          description: A relative path to the error location within the request body.
        errorCode:
          type: string
          description: A code that identifies the error.
        message:
          type: string
          description: A brief description of the validation error
    validationErrors:
      type: array
      items:
        $ref: '#/components/schemas/validationError'
    schemas-InvalidInputError:
      type: object
      required:
        - type
        - title
        - status
        - detail
        - instance
        - validationErrors
      properties:
        type:
          allOf:
            - $ref: '#/components/schemas/errorType'
            - enum:
                - /silverflow/problems/invalid-input
        title:
          allOf:
            - $ref: '#/components/schemas/errorTitle'
            - enum:
                - Invalid Input
        status:
          allOf:
            - $ref: '#/components/schemas/components-schemas-errorStatus'
            - enum:
                - 400
        detail:
          $ref: '#/components/schemas/errorDetail'
        instance:
          $ref: '#/components/schemas/errorInstance'
        validationErrors:
          $ref: '#/components/schemas/validationErrors'
    schemas-UnauthorizedError:
      type: object
      required:
        - type
        - title
        - status
        - detail
        - instance
      properties:
        type:
          allOf:
            - $ref: '#/components/schemas/errorType'
            - enum:
                - /silverflow/problems/authentication-required
        title:
          allOf:
            - $ref: '#/components/schemas/errorTitle'
            - enum:
                - Authentication Required
        status:
          allOf:
            - $ref: '#/components/schemas/components-schemas-errorStatus'
            - enum:
                - 401
        detail:
          $ref: '#/components/schemas/errorDetail'
        instance:
          $ref: '#/components/schemas/errorInstance'
    components-schemas-ForbiddenError:
      type: object
      required:
        - type
        - title
        - status
        - detail
        - instance
      properties:
        type:
          allOf:
            - $ref: '#/components/schemas/errorType'
            - enum:
                - /silverflow/problems/forbidden
        title:
          allOf:
            - $ref: '#/components/schemas/errorTitle'
            - enum:
                - Forbidden
        status:
          allOf:
            - $ref: '#/components/schemas/components-schemas-errorStatus'
            - enum:
                - 403
        detail:
          $ref: '#/components/schemas/errorDetail'
        instance:
          $ref: '#/components/schemas/errorInstance'
    schemas-InternalServerError:
      type: object
      required:
        - type
        - title
        - status
        - detail
        - instance
      properties:
        type:
          allOf:
            - $ref: '#/components/schemas/errorType'
            - enum:
                - /silverflow/problems/internal-server-error
        title:
          allOf:
            - $ref: '#/components/schemas/errorTitle'
            - enum:
                - Internal Server Error
        status:
          allOf:
            - $ref: '#/components/schemas/components-schemas-errorStatus'
            - enum:
                - 500
        detail:
          $ref: '#/components/schemas/errorDetail'
        instance:
          $ref: '#/components/schemas/errorInstance'
    PublicKey:
      type: string
      pattern: |+
        ^-----BEGIN PGP PUBLIC KEY BLOCK-----

      description: |
        ASCII-armored PGP public key for file encryption.
        Supported algorithms: RSA (2048+ bits), Ed25519, ECDSA.
    CreateFileSubscriptionRequest:
      type: object
      additionalProperties: false
      required:
        - acquirerReferences
        - distributionKey
        - fileTypes
        - publicKey
      properties:
        acquirerReferences:
          $ref: '#/components/schemas/AcquirerReferences'
        distributionKey:
          $ref: '#/components/schemas/DistributionKey'
        fileTypes:
          $ref: '#/components/schemas/FileTypes'
        publicKey:
          $ref: '#/components/schemas/PublicKey'
      example:
        acquirerReferences:
          - '12345678'
        distributionKey: dst-abc123
        fileTypes:
          - visa_undif
        publicKey: |-
          -----BEGIN PGP PUBLIC KEY BLOCK-----

          mDMEaXoDqhYJKwYBBAHaRw8BAQdAAXC6iV1W+X99JGIDOnI5hMgw1VDzenarIZEG
          QYXyGnK0IlRlc3QgQ3VydmUyNTUxOSA8dGVzdEBleGFtcGxlLmNvbT6IkwQTFgoA
          OxYhBGZ+HE/2DHpE2YOgUMVV8LqjGPxvBQJpegOqAhsBBQsJCAcCAiICBhUKCQgL
          AgQWAgMBAh4HAheAAAoJEMVV8LqjGPxvWboBAO9BvHEW3HXyXInh5uMV+s94Y0+r
          vmnqUAvTbX5+DcK+AP9FnJLEhdNILIlxhAZTWEVOtR1dZ8CSVTj0XBrRpc2dArg4
          BGl6A6sSCisGAQQBl1UBBQEBB0BXhFyhSYpKx9OtXWSXOpZcoKMTFrKaiWJZqoly
          2GkHagMBCAeIeAQYFgoAIBYhBGZ+HE/2DHpE2YOgUMVV8LqjGPxvBQJpegOrAhsM
          AAoJEMVV8LqjGPxvzFUA+wZlIck8LzliQRE9TFiyuAFYepNuwy1NiJj8f77tWdPu
          AP9HhrHZHvcUgppsLpDOsFDQwUe4zJsB+PoNQ60W55zxCA==
          =Qe/m
          -----END PGP PUBLIC KEY BLOCK-----
    schemas-InvalidRequestError:
      type: object
      required:
        - type
        - title
        - status
        - detail
        - instance
      properties:
        type:
          allOf:
            - $ref: '#/components/schemas/errorType'
            - enum:
                - /silverflow/problems/invalid-request
        title:
          allOf:
            - $ref: '#/components/schemas/errorTitle'
            - enum:
                - Invalid Request
        status:
          allOf:
            - $ref: '#/components/schemas/components-schemas-errorStatus'
            - enum:
                - 400
        detail:
          $ref: '#/components/schemas/errorDetail'
        instance:
          $ref: '#/components/schemas/errorInstance'
    BadRequestError:
      type: object
      oneOf:
        - $ref: '#/components/schemas/schemas-InvalidInputError'
        - $ref: '#/components/schemas/schemas-InvalidRequestError'
      discriminator:
        propertyName: type
        mapping:
          /silverflow/problems/invalid-input: '#/components/schemas/schemas-InvalidInputError'
          /silverflow/problems/invalid-request: '#/components/schemas/schemas-InvalidRequestError'
    ConflictError:
      type: object
      required:
        - type
        - title
        - status
        - detail
        - instance
      properties:
        type:
          allOf:
            - $ref: '#/components/schemas/errorType'
            - enum:
                - /silverflow/problems/conflict
        title:
          allOf:
            - $ref: '#/components/schemas/errorTitle'
            - enum:
                - Conflict
        status:
          allOf:
            - $ref: '#/components/schemas/components-schemas-errorStatus'
            - enum:
                - 409
        detail:
          $ref: '#/components/schemas/errorDetail'
        instance:
          $ref: '#/components/schemas/errorInstance'
    UpdateFileSubscriptionRequest:
      type: object
      additionalProperties: false
      required:
        - acquirerReferences
        - distributionKey
        - fileTypes
      properties:
        acquirerReferences:
          $ref: '#/components/schemas/AcquirerReferences'
        distributionKey:
          $ref: '#/components/schemas/DistributionKey'
        fileTypes:
          $ref: '#/components/schemas/FileTypes'
    NotFoundError:
      type: object
      required:
        - type
        - title
        - status
        - detail
        - instance
      properties:
        type:
          allOf:
            - $ref: '#/components/schemas/errorType'
            - enum:
                - /silverflow/problems/not-found
        title:
          allOf:
            - $ref: '#/components/schemas/errorTitle'
            - enum:
                - Not Found
        status:
          allOf:
            - $ref: '#/components/schemas/components-schemas-errorStatus'
            - enum:
                - 404
        detail:
          $ref: '#/components/schemas/errorDetail'
        instance:
          $ref: '#/components/schemas/errorInstance'
    fraudioProvider:
      type: string
      description: Indicator that risk assessment has been done with Fraudio.
      enum:
        - fraudio
    openapi_components-schemas-pan-3:
      type: string
      writeOnly: true
      description: Full digits of a card
      pattern: ^\d{12,19}$
      format: password
      example: '1234123412341234'
    openapi_components-schemas-expiryYear-2:
      type: integer
      description: |
        The year the card expires including the century
      minimum: 2020
      maximum: 2050
    openapi_components-schemas-holderName:
      type: string
      description: |
        The name of the cardholder. In case of AVS, value will be trimmed by the scheme if greater than 26 characters (Visa) or 22 characters (Mastercard).

        For 3DS it will be trimmed if greater than 45 characters  . 

        More information here: [Cardholder name restrictions](#section/Cardholder-name-restrictions)
      pattern: ^[\x20-\x7E\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u00FF]+$
      minLength: 1
      maxLength: 120
      example: Joe Cardholder
    components-schemas-CardInput:
      type: object
      required:
        - number
        - expiryMonth
        - expiryYear
      additionalProperties: false
      description: |
        Card data
      properties:
        number:
          $ref: '#/components/schemas/openapi_components-schemas-pan-3'
        expiryMonth:
          $ref: '#/components/schemas/components-schemas-expiryMonth'
        expiryYear:
          $ref: '#/components/schemas/openapi_components-schemas-expiryYear-2'
        holderName:
          $ref: '#/components/schemas/openapi_components-schemas-holderName'
    openapi_components-schemas-currencyCode-6:
      type: string
      pattern: ^[A-Z]{3}$
      description: An alphabetic ISO-4217 currency code.
      externalDocs:
        description: Find more info here
        url: https://www.iso.org/iso-4217-currency-codes.html
      example: EUR
    openapi_components-schemas-Amount-3:
      type: object
      required:
        - value
        - currency
      additionalProperties: false
      description: |
        An amount encoded as an object with a `value` in minor units and a `currency` code.
      properties:
        value:
          $ref: '#/components/schemas/schemas-amountValue'
        currency:
          $ref: '#/components/schemas/openapi_components-schemas-currencyCode-6'
    openapi_components-schemas-sequence:
      description: |
        Required for recurring charges. This field indicates whether a charge is part of a recurring sequence. The initial charge of a recurring sequence should be flagged as `initial`,
        all subsequent transactions should be flagged as `subsequent` and must be sent to the `/charges/{initialChargeKey}/mit` endpoint.

        **From November 22, 2026 this field will be removed since it is not used.**
      type: string
      enum:
        - initial
        - subsequent
      deprecated: true
    components-schemas-terminalEntryMode:
      description: |
        Required when `cardEntry` is `terminal`. This field indicates the method used for PAN entry on the terminal to initiate the transaction.
      type: string
      enum:
        - contactless
        - chip
    openapi_components-schemas-ChargeType-2:
      description: |
        Describes the kind of charge the merchant wants to submit.
      type: object
      required:
        - intent
        - cardEntry
        - order
      properties:
        intent:
          $ref: '#/components/schemas/intent'
        cardEntry:
          $ref: '#/components/schemas/openapi_components-schemas-cardEntry-2'
        order:
          $ref: '#/components/schemas/components-schemas-order'
        sequence:
          $ref: '#/components/schemas/openapi_components-schemas-sequence'
        terminalEntryMode:
          $ref: '#/components/schemas/components-schemas-terminalEntryMode'
    components-schemas-NameOfPeopleAndPlaces:
      type: string
      pattern: ^[\w -,\.\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u00FF]+$
      minLength: 1
      maxLength: 120
      example: Name
    schemas-phoneNumber:
      type: string
      description: An international phone number
      pattern: ^\+\d{2}(\(0\))?\d{3,19}$
      example: +31(0)850609160
    FraudioCustomer:
      type: object
      additionalProperties: false
      description: Details of the customer carrying out the transaction
      properties:
        firstName:
          description: The first name of the customer.
          allOf:
            - $ref: '#/components/schemas/components-schemas-NameOfPeopleAndPlaces'
        lastName:
          description: The last name of the customer.
          allOf:
            - $ref: '#/components/schemas/components-schemas-NameOfPeopleAndPlaces'
        email:
          description: The email of the customer.
          allOf:
            - $ref: '#/components/schemas/email'
        phoneNumber:
          description: The phone number of the customer.
          allOf:
            - $ref: '#/components/schemas/schemas-phoneNumber'
    schemas-LocalTransactionDateTime:
      type: string
      format: date-time
      description: Date and time of the transaction in the local timezone.
    CvcResult:
      enum:
        - none
        - match
        - no-match
        - not-processed
      description: The result of cvc verification.
    AvsResult:
      enum:
        - none
        - match
        - partial-match
        - no-match
        - not-processed
      description: The result of the AVS verification.
    ThreeDsResult:
      type: string
      description: |
        The result of the 3DS authentication.
      enum:
        - authenticated
        - non-authenticated
        - attempt
      default: none
    Authentication:
      description: Details related to authentication of the transaction
      type: object
      properties:
        cvc:
          $ref: '#/components/schemas/CvcResult'
        avs:
          $ref: '#/components/schemas/AvsResult'
        threeDsResult:
          $ref: '#/components/schemas/ThreeDsResult'
    responseCode:
      type: string
      description: Contents of field 39
    components-schemas-eci:
      type: string
      description: E-commerce Indicator
    Authorization:
      description: The authorization fields received in the ISO response message.
      type: object
      properties:
        responseCode:
          $ref: '#/components/schemas/responseCode'
        eci:
          $ref: '#/components/schemas/components-schemas-eci'
    FraudioRequest:
      description: Fields used for a Fraudio request.
      required:
        - provider
        - merchantAcceptorKey
        - card
        - amount
        - chargeType
      type: object
      additionalProperties: false
      properties:
        provider:
          $ref: '#/components/schemas/fraudioProvider'
        merchantAcceptorKey:
          $ref: '#/components/schemas/AcceptorKey'
        card:
          $ref: '#/components/schemas/components-schemas-CardInput'
        amount:
          $ref: '#/components/schemas/openapi_components-schemas-Amount-3'
        chargeType:
          $ref: '#/components/schemas/openapi_components-schemas-ChargeType-2'
        customer:
          $ref: '#/components/schemas/FraudioCustomer'
        localTransactionDateTime:
          $ref: '#/components/schemas/schemas-LocalTransactionDateTime'
        authentication:
          $ref: '#/components/schemas/Authentication'
        authorizationFields:
          $ref: '#/components/schemas/Authorization'
    cybersourceProvider:
      type: string
      description: Indicator that risk assessment has been done with Cybersource.
      enum:
        - cybersource
    openapi_components-schemas-stateOrProvince-2:
      type: string
      minLength: 1
      description: |
        The state (US) or province (non-US) of the address.
    openapi_components-schemas-city-2:
      type: string
      minLength: 1
      description: |
        The city of the address.
    openapi_components-schemas-line1-2:
      type: string
      minLength: 1
      description: |
        Address line 1
    openapi_components-schemas-line2-2:
      type: string
      minLength: 1
      description: |
        Address line 2
    openapi_components-schemas-postalCode-2:
      type: string
      pattern: ^[A-Z0-9]+$
      description: |
        The postal code of the address without any spaces.
    AddressInputAlpha2:
      type: object
      required:
        - countryCode
        - city
        - line1
        - postalCode
      additionalProperties: false
      description: |
        A physical postal address
      properties:
        countryCode:
          $ref: '#/components/schemas/openapi_components-schemas-countryCodeAlpha2'
        stateOrProvince:
          $ref: '#/components/schemas/openapi_components-schemas-stateOrProvince-2'
        city:
          $ref: '#/components/schemas/openapi_components-schemas-city-2'
        line1:
          $ref: '#/components/schemas/openapi_components-schemas-line1-2'
        line2:
          $ref: '#/components/schemas/openapi_components-schemas-line2-2'
        postalCode:
          $ref: '#/components/schemas/openapi_components-schemas-postalCode-2'
    CybersourceCustomer:
      type: object
      additionalProperties: false
      description: Details of the customer carrying out the transaction
      required:
        - firstName
        - lastName
        - email
        - phoneNumber
        - billingAddress
      properties:
        firstName:
          description: The first name of the customer.
          allOf:
            - $ref: '#/components/schemas/components-schemas-NameOfPeopleAndPlaces'
        lastName:
          description: The last name of the customer.
          allOf:
            - $ref: '#/components/schemas/components-schemas-NameOfPeopleAndPlaces'
        email:
          description: The email of the customer.
          allOf:
            - $ref: '#/components/schemas/email'
        phoneNumber:
          description: The phone number of the customer.
          allOf:
            - $ref: '#/components/schemas/schemas-phoneNumber'
        billingAddress:
          description: The billing address of the customer.
          $ref: '#/components/schemas/AddressInputAlpha2'
    CybersourceRequest:
      type: object
      additionalProperties: false
      required:
        - provider
        - merchantAcceptorKey
        - card
        - amount
        - chargeType
        - customer
      properties:
        provider:
          $ref: '#/components/schemas/cybersourceProvider'
        merchantAcceptorKey:
          $ref: '#/components/schemas/AcceptorKey'
        card:
          $ref: '#/components/schemas/components-schemas-CardInput'
        amount:
          $ref: '#/components/schemas/openapi_components-schemas-Amount-3'
        chargeType:
          $ref: '#/components/schemas/openapi_components-schemas-ChargeType-2'
        customer:
          $ref: '#/components/schemas/CybersourceCustomer'
        localTransactionDateTime:
          $ref: '#/components/schemas/schemas-LocalTransactionDateTime'
        authentication:
          $ref: '#/components/schemas/Authentication'
        authorizationFields:
          $ref: '#/components/schemas/Authorization'
    RiskAssessmentRequest:
      oneOf:
        - $ref: '#/components/schemas/FraudioRequest'
        - $ref: '#/components/schemas/CybersourceRequest'
    RiskAssessmentKey:
      description: Uniquely identifies a risk assessment.
      type: string
      pattern: ^rak-[a-zA-Z0-9]+$
      minLength: 5
      maxLength: 120
      example: rak-1e1dAHhgstYTUhlphPzZ
    Provider:
      type: string
      description: The supported risk assessment providers.
      oneOf:
        - $ref: '#/components/schemas/fraudioProvider'
        - $ref: '#/components/schemas/cybersourceProvider'
    openapi_components-schemas-AcceptorRef:
      type: object
      description: Reference key and status of the acceptor
      required:
        - key
        - version
      properties:
        key:
          $ref: '#/components/schemas/AcceptorKey'
        version:
          $ref: '#/components/schemas/openapi_components-schemas-version'
    ChargeKey:
      description: Uniquely identifies a charge.
      type: string
      pattern: ^chg-[a-zA-Z0-9]+$
      minLength: 5
      maxLength: 120
      example: chg-1e1dAHhgstYTUhlphPzZ
    schemas-OutputCard:
      type: object
      required:
        - last4
      additionalProperties: false
      description: |
        Card data
      properties:
        last4:
          type: string
          pattern: ^[0-9]+$
          minLength: 4
          maxLength: 4
          example: '0905'
    score:
      type: number
      description: The score of the Fraudio risk assessment.
      example: 0.533506949459276
    recommendation:
      description: The recommendation of the Fraudio risk assessment.
      type: string
      enum:
        - green
        - amber
        - red
      example: green
    schemas-FraudioResult:
      type: object
      additionalProperties: false
      required:
        - score
        - recommendation
      description: A risk assessment result from Fraudio.
      properties:
        score:
          $ref: '#/components/schemas/score'
        recommendation:
          $ref: '#/components/schemas/recommendation'
    cybersourceId:
      type: string
      description: The id of the Cybersource risk assessment.
      example: '5526663169230178269497'
    cybersource_score:
      type: integer
      description: The score of the Cybersource risk assessment.
      example: 10
    openapi_components-schemas-status:
      type: string
      description: The status associated with the Cybersource risk assessment.
      enum:
        - ACCEPTED
        - REJECTED
        - PENDING_REVIEW
        - DECLINED
        - PENDING_AUTHENTICATION
        - INVALID_REQUEST
        - AUTHENTICATION_FAILED
        - CHALLENGE
    CybersourceResult:
      type: object
      additionalProperties: false
      required:
        - id
        - score
        - status
      description: A risk assessment result from Cybersource.
      properties:
        id:
          $ref: '#/components/schemas/cybersourceId'
        score:
          $ref: '#/components/schemas/cybersource_score'
        status:
          $ref: '#/components/schemas/openapi_components-schemas-status'
    RiskAssessmentResult:
      type: object
      additionalProperties: false
      required:
        - key
        - provider
        - merchantAcceptorRef
        - card
        - amount
        - chargeType
        - result
        - created
        - status
        - version
      description: The risk assessment response.
      properties:
        key:
          $ref: '#/components/schemas/RiskAssessmentKey'
        provider:
          $ref: '#/components/schemas/Provider'
        merchantAcceptorRef:
          $ref: '#/components/schemas/openapi_components-schemas-AcceptorRef'
        chargeKey:
          $ref: '#/components/schemas/ChargeKey'
        card:
          $ref: '#/components/schemas/schemas-OutputCard'
        amount:
          $ref: '#/components/schemas/openapi_components-schemas-Amount-3'
        chargeType:
          $ref: '#/components/schemas/openapi_components-schemas-ChargeType-2'
        localTransactionDateTime:
          $ref: '#/components/schemas/schemas-LocalTransactionDateTime'
        customer:
          oneOf:
            - $ref: '#/components/schemas/FraudioCustomer'
            - $ref: '#/components/schemas/CybersourceCustomer'
        authentication:
          $ref: '#/components/schemas/Authentication'
        authorizationFields:
          $ref: '#/components/schemas/Authorization'
        result:
          oneOf:
            - $ref: '#/components/schemas/schemas-FraudioResult'
            - $ref: '#/components/schemas/CybersourceResult'
        created:
          $ref: '#/components/schemas/openapi_components-schemas-created-2'
        lastModified:
          $ref: '#/components/schemas/openapi_components-schemas-lastModified-2'
        status:
          $ref: '#/components/schemas/common_status'
        version:
          $ref: '#/components/schemas/openapi_components-schemas-version'
    schemas-NotAuthorizedErrorDetails:
      type: object
      required:
        - type
        - title
        - status
        - detail
        - instance
      properties:
        type:
          allOf:
            - $ref: '#/components/schemas/errorType'
            - enum:
                - /silverflow/problems/riskAssessments/not-authorized
        title:
          allOf:
            - $ref: '#/components/schemas/errorTitle'
            - enum:
                - Not authorized
        status:
          allOf:
            - $ref: '#/components/schemas/errorStatus'
            - enum:
                - 401
        detail:
          $ref: '#/components/schemas/errorDetail'
        instance:
          $ref: '#/components/schemas/errorInstance'
    RiskProviderTimeoutError:
      type: object
      required:
        - type
        - title
        - status
        - detail
        - instance
      properties:
        type:
          allOf:
            - $ref: '#/components/schemas/errorType'
            - enum:
                - /silverflow/problems/riskAssessments/provider-timeout
        title:
          allOf:
            - $ref: '#/components/schemas/errorTitle'
            - enum:
                - Request timed out
        status:
          allOf:
            - $ref: '#/components/schemas/errorStatus'
            - enum:
                - 408
        detail:
          $ref: '#/components/schemas/errorDetail'
        instance:
          $ref: '#/components/schemas/errorInstance'
    RiskProviderNoCustomerTokenError:
      type: object
      required:
        - type
        - title
        - status
        - detail
        - instance
      properties:
        type:
          allOf:
            - $ref: '#/components/schemas/errorType'
            - enum:
                - /silverflow/problems/riskAssessments/no-customer-token
        title:
          allOf:
            - $ref: '#/components/schemas/errorTitle'
            - enum:
                - No risk provider token found for given agent key
        status:
          allOf:
            - $ref: '#/components/schemas/errorStatus'
            - enum:
                - 409
        detail:
          $ref: '#/components/schemas/errorDetail'
        instance:
          $ref: '#/components/schemas/errorInstance'
    MerchantAcceptorNotFoundError:
      type: object
      required:
        - type
        - title
        - status
        - detail
        - instance
      properties:
        type:
          allOf:
            - $ref: '#/components/schemas/errorType'
            - enum:
                - /silverflow/problems/riskAssessments/merchant-acceptor-not-found
        title:
          allOf:
            - $ref: '#/components/schemas/errorTitle'
            - enum:
                - The merchant acceptor was not found.
        status:
          allOf:
            - $ref: '#/components/schemas/errorStatus'
            - enum:
                - 422
        detail:
          $ref: '#/components/schemas/errorDetail'
        instance:
          $ref: '#/components/schemas/errorInstance'
    RiskProviderUnexpectedError:
      type: object
      required:
        - type
        - title
        - status
        - detail
        - instance
      properties:
        type:
          allOf:
            - $ref: '#/components/schemas/errorType'
            - enum:
                - /silverflow/problems/riskAssessments/provider-unexpected
        title:
          allOf:
            - $ref: '#/components/schemas/errorTitle'
            - enum:
                - Request to risk provider returned with unexpected error
        status:
          allOf:
            - $ref: '#/components/schemas/errorStatus'
            - enum:
                - 500
        detail:
          $ref: '#/components/schemas/errorDetail'
        instance:
          $ref: '#/components/schemas/errorInstance'
    schemas-enrollmentKey:
      type: string
      description: SCOF or VTS enrollment key
      pattern: ^enr-[a-zA-Z0-9]+$
      minLength: 10
      maxLength: 120
      example: enr-25os7SQOxkKeQwUKYXIG
    openapi_components-schemas-merchantKey-2:
      description: Uniquely identifies a merchant
      type: string
      pattern: ^mct-[a-zA-Z0-9]+$
      minLength: 5
      maxLength: 120
      example: mct-3Jrv9Sq4SBQhrsHJZgYK
    limit:
      type: integer
      format: int32
      minimum: 1
      maximum: 100
      default: 10
    sortOrder:
      type: string
      default: desc
      enum:
        - asc
        - desc
    components-schemas-moreItems:
      type: boolean
      description: |
        Indicates whether there are more items available.
    common_offsetToken:
      type: string
      pattern: ^[a-zA-Z0-9%]+$
      description: |
        An offset token that can be used to retrieve the next page of items.
    openapi_components-schemas-PageWithMoreItems:
      type: object
      properties:
        moreItems:
          $ref: '#/components/schemas/components-schemas-moreItems'
        offsetToken:
          $ref: '#/components/schemas/common_offsetToken'
    networkTokenKey:
      description: Uniquely identifies a network token managed by Silverflow.
      type: string
      pattern: ^ntk-[a-zA-Z0-9]+$
      minLength: 5
      maxLength: 120
      example: ntk-1e1dAHhgstYTUhlphPzZ
    tokenStatus:
      description: The status of the network token.
      type: string
      enum:
        - requested
        - active
        - suspended
        - failed
        - archivePending
        - archived
    tokenType:
      type: string
      description: The type of network token.
      enum:
        - merchant
    schemas-network:
      description: The card network of the network token.
      type: string
      enum:
        - mastercard
        - visa
    tokenProvider:
      description: The network token provider
      type: string
      enum:
        - scof
        - vts
    lastTokenRefresh:
      type: string
      description: The date and time this network token was last refreshed
      format: date-time
    TokenError:
      type: object
      description: The error when the network token request failed
      required:
        - code
        - detail
      properties:
        code:
          type: string
        detail:
          type: string
    openapi_components-schemas-version-3:
      type: integer
      description: The version of this object
      format: int64
      minimum: 0
    Token:
      type: object
      required:
        - key
        - status
        - type
        - network
        - provider
        - agentKey
        - merchantKey
        - enrollmentKey
        - created
        - version
      properties:
        key:
          $ref: '#/components/schemas/networkTokenKey'
        status:
          $ref: '#/components/schemas/tokenStatus'
        type:
          $ref: '#/components/schemas/tokenType'
        network:
          $ref: '#/components/schemas/schemas-network'
        provider:
          $ref: '#/components/schemas/tokenProvider'
        agentKey:
          $ref: '#/components/schemas/schemas-agentKey'
        merchantKey:
          $ref: '#/components/schemas/openapi_components-schemas-merchantKey-2'
        enrollmentKey:
          $ref: '#/components/schemas/schemas-enrollmentKey'
        lastTokenRefresh:
          $ref: '#/components/schemas/lastTokenRefresh'
        error:
          $ref: '#/components/schemas/TokenError'
        created:
          $ref: '#/components/schemas/created'
        lastModified:
          $ref: '#/components/schemas/lastModified'
        version:
          $ref: '#/components/schemas/openapi_components-schemas-version-3'
    TokensPage:
      allOf:
        - $ref: '#/components/schemas/openapi_components-schemas-PageWithMoreItems'
        - type: object
          required:
            - charges
          properties:
            tokens:
              type: array
              items:
                $ref: '#/components/schemas/Token'
    schemas-errorTitle:
      description: |
        A short, summary of the problem type. Written in english and readable
        for engineers (usually not suited for non technical stakeholders and
        not localized).
      type: string
    openapi_components-schemas-errorStatus:
      description: |
        The HTTP status code generated by the origin server for this occurrence
        of the problem.
      type: integer
      format: int32
      minimum: 100
      maximum: 599
    schemas-errorDetail:
      description: |
        A human readable explanation specific to this occurrence of the
        problem.
      type: string
      example: Connection to database timed out
    schemas-errorInstance:
      description: |
        An absolute URI that identifies the specific occurrence of the problem.
        It may or may not yield further information if dereferenced.
      type: string
    openapi_components-schemas-ProblemDetail-3:
      description: |
        The 'problem detail' object relays detailed information about the error that occurred. It is defined
        by [RFC 7807 - Problem Details for HTTP APIs](https://tools.ietf.org/html/rfc7807).

        Note that additional properties may be used to relay error specific information. For instance,
        A Invalid Input error may hold information about the individual validation errors found in the request.
      type: object
      additionalProperties: true
      properties:
        type:
          description: A relative URI that identifies the problem type.
          type: string
          example: /silverflow/problems/internal-server-error
        title:
          $ref: '#/components/schemas/schemas-errorTitle'
        status:
          $ref: '#/components/schemas/openapi_components-schemas-errorStatus'
        detail:
          $ref: '#/components/schemas/schemas-errorDetail'
        instance:
          $ref: '#/components/schemas/schemas-errorInstance'
    InternalServerErrorProblemDetail:
      type: object
      required:
        - type
        - title
        - status
        - detail
        - instance
      properties:
        type:
          type: string
          description: A relative URI that identifies the problem type.
          enum:
            - /silverflow/problems/internal-server-error
        title:
          $ref: '#/components/schemas/schemas-errorTitle'
        status:
          allOf:
            - $ref: '#/components/schemas/openapi_components-schemas-errorStatus'
            - enum:
                - 500
        detail:
          $ref: '#/components/schemas/schemas-errorDetail'
        instance:
          $ref: '#/components/schemas/schemas-errorInstance'
    openapi_components-schemas-pan-4:
      type: string
      description: Full digits of a card
      pattern: ^\d{12,19}$
      format: password
      example: '1234123412341234'
    openapi_components-schemas-cvc:
      type: string
      description: |
        The CVC of the card
      pattern: ^\d+$
      minLength: 3
      maxLength: 3
      example: '123'
    openapi_components-schemas-holderName-2:
      type: string
      description: |
        The name of the cardholder.
      pattern: ^[A-Za-z0-9 ]+$
      minLength: 1
      maxLength: 120
      example: Joe Cardholder
    openapi_components-schemas-CountryCodeAlpha3:
      type: object
      required:
        - alpha3
      additionalProperties: false
      properties:
        alpha3:
          $ref: '#/components/schemas/openapi_components-schemas-countryCodeAlpha3'
    openapi_components-schemas-CountryCodeAlpha2:
      type: object
      required:
        - alpha2
      additionalProperties: false
      properties:
        alpha2:
          $ref: '#/components/schemas/openapi_components-schemas-countryCodeAlpha2'
    openapi_components-schemas-CountryCodeNumeric:
      type: object
      required:
        - numeric
      additionalProperties: false
      properties:
        numeric:
          $ref: '#/components/schemas/openapi_components-schemas-countryCodeNumeric'
    schemas-CountryCodeInput:
      oneOf:
        - $ref: '#/components/schemas/openapi_components-schemas-CountryCodeAlpha3'
        - $ref: '#/components/schemas/openapi_components-schemas-CountryCodeAlpha2'
        - $ref: '#/components/schemas/openapi_components-schemas-CountryCodeNumeric'
    openapi_components-schemas-line1-3:
      type: string
      minLength: 1
      description: Address line 1
    openapi_components-schemas-line2-3:
      type: string
      minLength: 1
      description: Address line 2
    components-schemas-AddressInput:
      type: object
      required:
        - countryCode
        - city
        - line1
        - postalCode
      additionalProperties: false
      description: |
        A physical postal address
      properties:
        countryCode:
          $ref: '#/components/schemas/schemas-CountryCodeInput'
        stateOrProvince:
          $ref: '#/components/schemas/openapi_components-schemas-stateOrProvince-2'
        city:
          $ref: '#/components/schemas/openapi_components-schemas-city-2'
        line1:
          $ref: '#/components/schemas/openapi_components-schemas-line1-3'
        line2:
          $ref: '#/components/schemas/openapi_components-schemas-line2-3'
        postalCode:
          $ref: '#/components/schemas/openapi_components-schemas-postalCode-2'
    CardHolderInput:
      type: object
      description: |
        Information about the card holder.
      properties:
        name:
          $ref: '#/components/schemas/openapi_components-schemas-holderName-2'
        email:
          description: The email of the card holder.
          allOf:
            - $ref: '#/components/schemas/email'
        phoneNumber:
          description: The phone number of the card holder.
          allOf:
            - $ref: '#/components/schemas/schemas-phoneNumber'
        billingAddress:
          description: The billing address of the card holder.
          allOf:
            - $ref: '#/components/schemas/components-schemas-AddressInput'
    openapi_components-schemas-CardInput:
      type: object
      required:
        - number
        - expiryMonth
        - expiryYear
      additionalProperties: false
      description: |
        The PAN data required to create a network token
      properties:
        number:
          $ref: '#/components/schemas/openapi_components-schemas-pan-4'
        expiryMonth:
          $ref: '#/components/schemas/components-schemas-expiryMonth'
        expiryYear:
          $ref: '#/components/schemas/openapi_components-schemas-expiryYear-2'
        cvc:
          $ref: '#/components/schemas/openapi_components-schemas-cvc'
        holder:
          $ref: '#/components/schemas/CardHolderInput'
    TokenCreate:
      type: object
      description: Fields used to create a token.
      required:
        - enrollmentKey
        - type
        - cardData
      properties:
        enrollmentKey:
          $ref: '#/components/schemas/schemas-enrollmentKey'
        type:
          $ref: '#/components/schemas/tokenType'
        cardData:
          $ref: '#/components/schemas/openapi_components-schemas-CardInput'
    tokenNumber:
      type: string
      description: The digits of a network token.
      format: password
      example: 1234123412341234
    tokens_expiryMonth:
      type: integer
      description: |
        The month the network token expires. January is 1
      minimum: 1
      maximum: 12
    tokens_expiryYear:
      type: integer
      description: |
        The year the network token expires, including the century
      minimum: 2020
      maximum: 2050
    paymentAccountReference:
      type: string
      pattern: ^[0-9A-Za-z]+$
      description: |
        A unique identifier associated with a payment account.

        This field is optional and will only be returned when provided by the card network.
      maxLength: 29
      example: 500150F5DE22SND132Y6PR32AR5HB
    TokenData:
      type: object
      required:
        - number
        - expiryMonth
        - expiryYear
      description: Network token data
      properties:
        number:
          $ref: '#/components/schemas/tokenNumber'
        expiryMonth:
          $ref: '#/components/schemas/tokens_expiryMonth'
        expiryYear:
          $ref: '#/components/schemas/tokens_expiryYear'
        paymentAccountReference:
          $ref: '#/components/schemas/paymentAccountReference'
    panSequenceNumber:
      type: string
      description: The PAN sequence number for the network token.
      pattern: ^\d+$
      minLength: 2
      maxLength: 2
      example: '01'
    schemas-track2Data:
      type: string
      description: |
        The information encoded on track 2 of the card magnetic stripe as defined in the ISO 7813 specification, including data element separators but excluding beginning and ending sentinels.
      pattern: ^[A-Fa-f0-9]+$
      minLength: 1
      maxLength: 40
      example: 6799995700000004054D25122010875408456
    authenticationData:
      type: string
      description: |
        The authentication data, or cryptogram, which will be sent in an ISO authorization request for token transactions.
      pattern: ^.+$
      minLength: 1
      maxLength: 32
      example: AJ8IZ5aP8bHwAAzmZd4gAAADFA==
    TokenCryptogram:
      type: object
      description: All details related to a network token cryptogram.
      required:
        - authenticationData
        - created
      properties:
        panSequenceNumber:
          $ref: '#/components/schemas/panSequenceNumber'
        track2Equivalent:
          $ref: '#/components/schemas/schemas-track2Data'
        authenticationData:
          $ref: '#/components/schemas/authenticationData'
        created:
          $ref: '#/components/schemas/created'
    schemas-AuthenticationStatus:
      type: string
      description: The current state of the authentication.
      enum:
        - started
        - success
        - fail
        - finalized
    AuthenticationNotification:
      type: object
      description: The notification message emitted per each initiated BEP authentication.
      required:
        - bepKey
        - authenticationStatus
        - routing
      properties:
        bepKey:
          $ref: '#/components/schemas/bepKey'
        authenticationStatus:
          $ref: '#/components/schemas/schemas-AuthenticationStatus'
        routing:
          allOf:
            - deprecated: true
            - $ref: '#/components/schemas/AuthenticationMethod'
    eventId:
      type: string
      description: Uniquely identifies an event.
      pattern: ^evt-[a-zA-Z0-9]+$
      minLength: 5
      maxLength: 120
      example: evt-1e1dAHhgstYTUhlphPzZ
    openapi_components-schemas-version-4:
      type: string
      description: The version of the spec.
      pattern: ^[1-9]+.[0-9]+$
      example: '1.0'
    dataContentType:
      type: string
      description: The content type of the event.
      enum:
        - application/json
    dataschema:
      type: string
      description: The event schema with the data version of the event.
    time:
      type: string
      format: date-time
      description: Date and time when the event was sent.
    common_agentKey:
      description: Uniquely identifies an Agent.
      type: string
      pattern: ^cgt-[a-zA-Z0-9]+$
      readOnly: true
      example: cgt-EFG67b4yPre23ZDrLX
      title: agentKey
    PublicCloudEvent:
      type: object
      required:
        - id
        - source
        - specversion
        - type
        - datacontenttype
        - dataschema
        - subject
        - time
        - agent
        - data
      properties:
        id:
          $ref: '#/components/schemas/eventId'
        specversion:
          allOf:
            - description: The version of the current spec.
            - enum:
                - '1.0'
            - $ref: '#/components/schemas/openapi_components-schemas-version-4'
        datacontenttype:
          $ref: '#/components/schemas/dataContentType'
        dataschema:
          $ref: '#/components/schemas/dataschema'
        time:
          $ref: '#/components/schemas/time'
        agent:
          $ref: '#/components/schemas/common_agentKey'
    complianceCaseKey:
      description: Uniquely identifies a Compliance Case.
      type: string
      pattern: ^cmp-[a-zA-Z0-9]+$
      minLength: 1
      maxLength: 120
      readOnly: false
      example: cmp-1JRadf2ffdfrdPMf2XrS2
    complianceStageBase:
      description: The current stage of a Compliance Case.
      type: string
    openapi_components-schemas-cardNetwork-3:
      description: The card network associated with the Compliance Case.
      type: string
      enum:
        - visa
        - mastercard
    openapi_components-schemas-created-4:
      type: string
      description: The date and time this object was created.
      format: date-time
      readOnly: false
    ComplianceCaseEventDataVersion1_0:
      type: object
      description: The event data.
      required:
        - key
        - complianceReference
        - complianceStage
        - network
        - arn
        - networkEventDate
        - created
      properties:
        key:
          $ref: '#/components/schemas/complianceCaseKey'
        complianceReference:
          type: string
          description: The compliance reference number from the card network.
          example: testMasterRef-9876
        complianceStage:
          $ref: '#/components/schemas/complianceStageBase'
        network:
          $ref: '#/components/schemas/openapi_components-schemas-cardNetwork-3'
        arn:
          $ref: '#/components/schemas/acquirerReferenceNumber'
        networkEventDate:
          type: string
          description: The date the event occurred on the network.
          example: '2022-02-17'
        created:
          $ref: '#/components/schemas/openapi_components-schemas-created-4'
    source:
      type: string
      description: Source system of the event.
      pattern: ^https://silverflow.com/[a-zA-Z]+$
    complianceCaseEventType:
      type: string
      description: The event type.
      enum:
        - com.silverflow.complianceCases.received
      example: com.silverflow.complianceCases.received
    ComplianceCaseEventNotificationVersion1_0:
      type: object
      allOf:
        - $ref: '#/components/schemas/PublicCloudEvent'
      required:
        - data
      properties:
        data:
          $ref: '#/components/schemas/ComplianceCaseEventDataVersion1_0'
        source:
          allOf:
            - $ref: '#/components/schemas/source'
            - enum:
                - https://silverflow.com/complianceCases
        specversion:
          allOf:
            - $ref: '#/components/schemas/openapi_components-schemas-version-4'
            - enum:
                - '1.0'
        subject:
          allOf:
            - description: The subject key, which is a `key`.
            - $ref: '#/components/schemas/complianceCaseKey'
        type:
          $ref: '#/components/schemas/complianceCaseEventType'
        dataschema:
          allOf:
            - $ref: '#/components/schemas/dataschema'
            - example: https://silverflow.com/schemas/events/complianceCases/1.0
            - enum:
                - https://silverflow.com/schemas/events/complianceCases/1.0
    disputeStatusBase:
      description: The current status of a Dispute.
      type: string
    schemas-networkReference:
      type: string
      description: |
        Unique ID assigned by the network when authorizing. This ID is returned in the response of the authorization.
      pattern: ^[a-zA-Z0-9()+,\-.:=@;$_!*\/?#|]+$
      minLength: 1
      maxLength: 120
      example: '28543746470772988'
    openapi_components-schemas-lastModified-4:
      type: string
      description: The date and time this object was last modified.
      format: date-time
      readOnly: false
    common_version:
      type: integer
      description: The version of this object.
      format: int64
      minimum: 1
      maximum: 1000
      example: 1
      readOnly: false
    DisputeEventDataVersion1_0:
      type: object
      description: The event data.
      required:
        - key
        - disputeStatus
        - arn
        - created
        - version
      properties:
        key:
          $ref: '#/components/schemas/disputeKey'
        disputeStatus:
          $ref: '#/components/schemas/disputeStatusBase'
        networkReference:
          $ref: '#/components/schemas/schemas-networkReference'
        arn:
          $ref: '#/components/schemas/acquirerReferenceNumber'
        created:
          $ref: '#/components/schemas/openapi_components-schemas-created-4'
        lastModified:
          $ref: '#/components/schemas/openapi_components-schemas-lastModified-4'
        version:
          allOf:
            - $ref: '#/components/schemas/common_version'
            - example: 2
    disputeEventType:
      type: string
      description: The event type.
      pattern: ^com.silverflow.disputes.[a-zA-Z]+$
      example: com.silverflow.disputes.received
    DisputeEventNotificationVersion1_0:
      type: object
      allOf:
        - $ref: '#/components/schemas/PublicCloudEvent'
      required:
        - data
      properties:
        data:
          $ref: '#/components/schemas/DisputeEventDataVersion1_0'
        source:
          allOf:
            - $ref: '#/components/schemas/source'
            - enum:
                - https://silverflow.com/disputes
        specversion:
          allOf:
            - $ref: '#/components/schemas/openapi_components-schemas-version-4'
            - enum:
                - '1.0'
        subject:
          allOf:
            - description: The subject key, which is a `key`.
            - $ref: '#/components/schemas/disputeKey'
        type:
          $ref: '#/components/schemas/disputeEventType'
        dataschema:
          allOf:
            - $ref: '#/components/schemas/dataschema'
            - example: https://silverflow.com/schemas/events/disputes/1.0
            - enum:
                - https://silverflow.com/schemas/events/disputes/1.0
    DisputeEventNotificationVersion1_0Received:
      type: object
      allOf:
        - $ref: '#/components/schemas/DisputeEventNotificationVersion1_0'
      properties:
        type:
          allOf:
            - $ref: '#/components/schemas/disputeEventType'
            - enum:
                - com.silverflow.disputes.received
            - example:
                - com.silverflow.disputes.received
        data:
          allOf:
            - type: object
              required:
                - disputeStatus
              properties:
                disputeStatus:
                  allOf:
                    - $ref: '#/components/schemas/disputeStatusBase'
                    - enum:
                        - received
            - $ref: '#/components/schemas/DisputeEventDataVersion1_0'
    DisputeEventNotificationVersion1_0AcceptanceInitiated:
      type: object
      allOf:
        - $ref: '#/components/schemas/DisputeEventNotificationVersion1_0'
      properties:
        type:
          allOf:
            - enum:
                - com.silverflow.disputes.acceptanceInitiated
            - example: com.silverflow.disputes.acceptanceInitiated
            - $ref: '#/components/schemas/disputeEventType'
        data:
          allOf:
            - type: object
              required:
                - disputeStatus
                - lastModified
              properties:
                disputeStatus:
                  allOf:
                    - $ref: '#/components/schemas/disputeStatusBase'
                    - enum:
                        - acceptanceInitiated
            - $ref: '#/components/schemas/DisputeEventDataVersion1_0'
    DisputeEventNotificationVersion1_0AcceptanceFailed:
      type: object
      allOf:
        - $ref: '#/components/schemas/DisputeEventNotificationVersion1_0'
      properties:
        type:
          allOf:
            - $ref: '#/components/schemas/disputeEventType'
            - enum:
                - com.silverflow.disputes.acceptanceFailed
        data:
          allOf:
            - type: object
              required:
                - disputeStatus
                - lastModified
              properties:
                disputeStatus:
                  allOf:
                    - $ref: '#/components/schemas/disputeStatusBase'
                    - enum:
                        - acceptanceFailed
            - $ref: '#/components/schemas/DisputeEventDataVersion1_0'
    DisputeEventNotificationVersion1_0DefenseInitiated:
      type: object
      allOf:
        - $ref: '#/components/schemas/DisputeEventNotificationVersion1_0'
      properties:
        type:
          allOf:
            - $ref: '#/components/schemas/disputeEventType'
            - enum:
                - com.silverflow.disputes.defenseInitiated
        data:
          allOf:
            - type: object
              required:
                - disputeStatus
                - lastModified
              properties:
                disputeStatus:
                  allOf:
                    - $ref: '#/components/schemas/disputeStatusBase'
                    - enum:
                        - defenseInitiated
            - $ref: '#/components/schemas/DisputeEventDataVersion1_0'
    DisputeEventNotificationVersion1_0DefenseFailed:
      type: object
      allOf:
        - $ref: '#/components/schemas/DisputeEventNotificationVersion1_0'
      properties:
        type:
          allOf:
            - $ref: '#/components/schemas/disputeEventType'
            - enum:
                - com.silverflow.disputes.defenseFailed
        data:
          allOf:
            - type: object
              required:
                - disputeStatus
                - lastModified
              properties:
                disputeStatus:
                  allOf:
                    - $ref: '#/components/schemas/disputeStatusBase'
                    - enum:
                        - defenseFailed
            - $ref: '#/components/schemas/DisputeEventDataVersion1_0'
    DisputeEventNotificationVersion1_0EvidenceSubmitted:
      type: object
      allOf:
        - $ref: '#/components/schemas/DisputeEventNotificationVersion1_0'
      properties:
        type:
          allOf:
            - $ref: '#/components/schemas/disputeEventType'
            - enum:
                - com.silverflow.disputes.evidenceSubmitted
        data:
          allOf:
            - type: object
              required:
                - disputeStatus
                - lastModified
              properties:
                disputeStatus:
                  allOf:
                    - $ref: '#/components/schemas/disputeStatusBase'
                    - enum:
                        - evidenceSubmitted
            - $ref: '#/components/schemas/DisputeEventDataVersion1_0'
    DisputeEventNotificationVersion1_0EvidenceRejected:
      type: object
      allOf:
        - $ref: '#/components/schemas/DisputeEventNotificationVersion1_0'
      properties:
        type:
          allOf:
            - $ref: '#/components/schemas/disputeEventType'
            - enum:
                - com.silverflow.disputes.evidenceRejected
        data:
          allOf:
            - type: object
              required:
                - disputeStatus
                - lastModified
              properties:
                disputeStatus:
                  allOf:
                    - $ref: '#/components/schemas/disputeStatusBase'
                    - enum:
                        - evidenceRejected
            - $ref: '#/components/schemas/DisputeEventDataVersion1_0'
    DisputeEventNotificationVersion1_0AwaitingResponse:
      type: object
      allOf:
        - $ref: '#/components/schemas/DisputeEventNotificationVersion1_0'
      properties:
        type:
          allOf:
            - $ref: '#/components/schemas/disputeEventType'
            - enum:
                - com.silverflow.disputes.awaitingResponse
        data:
          allOf:
            - type: object
              required:
                - disputeStatus
                - lastModified
              properties:
                disputeStatus:
                  allOf:
                    - $ref: '#/components/schemas/disputeStatusBase'
                    - enum:
                        - awaitingResponse
            - $ref: '#/components/schemas/DisputeEventDataVersion1_0'
    DisputeEventNotificationVersion1_0ClosedAccepted:
      type: object
      allOf:
        - $ref: '#/components/schemas/DisputeEventNotificationVersion1_0'
      properties:
        type:
          allOf:
            - $ref: '#/components/schemas/disputeEventType'
            - enum:
                - com.silverflow.disputes.closedAccepted
        data:
          allOf:
            - type: object
              required:
                - disputeStatus
                - lastModified
              properties:
                disputeStatus:
                  allOf:
                    - $ref: '#/components/schemas/disputeStatusBase'
                    - enum:
                        - closedAccepted
            - $ref: '#/components/schemas/DisputeEventDataVersion1_0'
    DisputeEventNotificationVersion1_0ClosedWon:
      type: object
      allOf:
        - $ref: '#/components/schemas/DisputeEventNotificationVersion1_0'
      properties:
        type:
          allOf:
            - $ref: '#/components/schemas/disputeEventType'
            - enum:
                - com.silverflow.disputes.closedWon
        data:
          allOf:
            - type: object
              required:
                - disputeStatus
                - lastModified
              properties:
                disputeStatus:
                  allOf:
                    - $ref: '#/components/schemas/disputeStatusBase'
                    - enum:
                        - closedWon
            - $ref: '#/components/schemas/DisputeEventDataVersion1_0'
    DisputeEventNotificationVersion1_0ClosedLost:
      type: object
      allOf:
        - $ref: '#/components/schemas/DisputeEventNotificationVersion1_0'
      properties:
        type:
          allOf:
            - $ref: '#/components/schemas/disputeEventType'
            - enum:
                - com.silverflow.disputes.closedLost
        data:
          allOf:
            - type: object
              required:
                - disputeStatus
                - lastModified
              properties:
                disputeStatus:
                  allOf:
                    - $ref: '#/components/schemas/disputeStatusBase'
                    - enum:
                        - closedLost
            - $ref: '#/components/schemas/DisputeEventDataVersion1_0'
    DisputeEventNotificationVersion1_0Reversed:
      type: object
      allOf:
        - $ref: '#/components/schemas/DisputeEventNotificationVersion1_0'
      properties:
        type:
          allOf:
            - $ref: '#/components/schemas/disputeEventType'
            - enum:
                - com.silverflow.disputes.reversed
        data:
          allOf:
            - type: object
              required:
                - disputeStatus
                - lastModified
              properties:
                disputeStatus:
                  allOf:
                    - $ref: '#/components/schemas/disputeStatusBase'
                    - enum:
                        - reversed
            - $ref: '#/components/schemas/DisputeEventDataVersion1_0'
    DisputeEventNotificationVersion1_0Withdrawn:
      type: object
      allOf:
        - $ref: '#/components/schemas/DisputeEventNotificationVersion1_0'
      properties:
        type:
          allOf:
            - $ref: '#/components/schemas/disputeEventType'
            - enum:
                - com.silverflow.disputes.withdrawn
        data:
          allOf:
            - type: object
              required:
                - disputeStatus
                - lastModified
              properties:
                disputeStatus:
                  allOf:
                    - $ref: '#/components/schemas/disputeStatusBase'
                    - enum:
                        - withdrawn
            - $ref: '#/components/schemas/DisputeEventDataVersion1_0'
    schemas-fraudNotificationKey:
      description: Uniquely identifies a Fraud Notification.
      type: string
      pattern: ^frn-[a-zA-Z0-9]+$
      minLength: 1
      maxLength: 120
      readOnly: false
      example: frn-1JRadf2ffdfrdPMf2XrS2
    openapi_components-schemas-chargeKey-2:
      description: Uniquely identifies a Charge.
      type: string
      pattern: ^chg-[a-zA-Z0-9]+$
      minLength: 1
      maxLength: 120
      readOnly: false
      example: chg-1e1dAHhgstYTUhlphPzZ
    schema_cardNetwork:
      type: string
      description: The card network.
      enum:
        - mastercard
        - visa
        - american-express
    schemas-fraudReportingDate:
      description: Date when the Fraud Notification was received by the Card Network. This is specific for each network. For Mastercard this is the TLL8 "Fraud Posted Date". For VISA this is the TC90 "Processing Date".
      format: date
      example: '2021-05-28'
    FraudNotificationEventDataVersion1_0:
      type: object
      description: The event data.
      required:
        - key
        - arn
        - chargeKey
        - network
        - fraudTypeCode
        - fraudReportingDate
        - created
        - version
      properties:
        key:
          $ref: '#/components/schemas/schemas-fraudNotificationKey'
        arn:
          $ref: '#/components/schemas/acquirerReferenceNumber'
        chargeKey:
          $ref: '#/components/schemas/openapi_components-schemas-chargeKey-2'
        network:
          $ref: '#/components/schemas/schema_cardNetwork'
        fraudTypeCode:
          type: string
          example: '01'
        fraudSubTypeCode:
          type: string
          example: 'N'
        fraudReportingDate:
          $ref: '#/components/schemas/schemas-fraudReportingDate'
        created:
          $ref: '#/components/schemas/openapi_components-schemas-created-4'
        version:
          $ref: '#/components/schemas/common_version'
    fraudNotificationEventType:
      type: string
      description: The event type.
      pattern: ^com.silverflow.fraudNotifications.[a-zA-Z]+$
      example: com.silverflow.fraudNotifications.received
    FraudNotificationEventNotificationVersion1_0:
      type: object
      allOf:
        - $ref: '#/components/schemas/PublicCloudEvent'
      required:
        - data
      properties:
        data:
          $ref: '#/components/schemas/FraudNotificationEventDataVersion1_0'
        source:
          allOf:
            - $ref: '#/components/schemas/source'
            - enum:
                - https://silverflow.com/fraudNotifications
        specversion:
          allOf:
            - $ref: '#/components/schemas/openapi_components-schemas-version-4'
            - enum:
                - '1.0'
        subject:
          allOf:
            - description: The subject key, which is a `key`.
            - $ref: '#/components/schemas/schemas-fraudNotificationKey'
        type:
          $ref: '#/components/schemas/fraudNotificationEventType'
        dataschema:
          allOf:
            - $ref: '#/components/schemas/dataschema'
            - example: https://silverflow.com/schemas/events/fraudNotifications/1.0
            - enum:
                - https://silverflow.com/schemas/events/fraudNotifications/1.0
    FraudNotificationEventNotificationVersion1_0Received:
      type: object
      allOf:
        - $ref: '#/components/schemas/FraudNotificationEventNotificationVersion1_0'
      properties:
        type:
          allOf:
            - $ref: '#/components/schemas/fraudNotificationEventType'
            - enum:
                - com.silverflow.fraudNotifications.received
    schemas-distributionKey:
      description: A unique identifier for a distribution.
      type: string
      pattern: ^dst-[a-zA-Z0-9]+$
      minLength: 10
      maxLength: 120
      example: dst-1e1dAHhgstYTUhlphPzZ
    fileName:
      type: string
      description: The name of the distributed file.
    distributionType:
      type: string
      description: The distribution method.
      enum:
        - sftp
        - email
        - s3
    openapi_components-schemas-status-2:
      type: string
      description: Result of the distribution sent.
      enum:
        - delivered
        - failed
    schema_time:
      type: string
      description: The date and time the distribution was sent.
      format: date-time
    failureReason:
      type: object
      description: The distribution failure reason.
      required:
        - message
      properties:
        message:
          type: string
          description: The failure error message.
        detail:
          type: string
          description: Additional detail of the failure.
    DistributionsSentEventNotificationDataVersion1_1:
      type: object
      description: The event data.
      required:
        - distributionKey
        - fileName
        - type
        - status
        - time
      properties:
        distributionKey:
          $ref: '#/components/schemas/schemas-distributionKey'
        fileName:
          $ref: '#/components/schemas/fileName'
        type:
          $ref: '#/components/schemas/distributionType'
        status:
          $ref: '#/components/schemas/openapi_components-schemas-status-2'
        time:
          $ref: '#/components/schemas/schema_time'
        failureReason:
          $ref: '#/components/schemas/failureReason'
    DistributionsSentEventNotificationVersion1_0:
      type: object
      allOf:
        - $ref: '#/components/schemas/PublicCloudEvent'
      required:
        - data
      properties:
        data:
          $ref: '#/components/schemas/DistributionsSentEventNotificationDataVersion1_1'
        source:
          allOf:
            - $ref: '#/components/schemas/source'
            - enum:
                - https://silverflow.com/distributions
        specversion:
          allOf:
            - $ref: '#/components/schemas/openapi_components-schemas-version-4'
            - enum:
                - '1.0'
        subject:
          allOf:
            - description: The subject of the notification, which is a `distributionKey`.
            - $ref: '#/components/schemas/schemas-distributionKey'
        type:
          enum:
            - com.silverflow.distributions.sent
        dataschema:
          allOf:
            - $ref: '#/components/schemas/dataschema'
            - example: https://silverflow.com/schemas/events/distributions/1.0
            - enum:
                - https://silverflow.com/schemas/events/distributions/1.0
    ammfSubmissionKey:
      description: Uniquely identifies a Ammf Submission entity
      type: string
      pattern: ^asm-[a-zA-Z0-9]+$
      example: asm-9RxdinkqFqJxAq2fZadf
    schemas-reportKey:
      description: Uniquely identifies a report object
      type: string
      pattern: ^rep-[a-zA-Z0-9]+$
      example: rep-1e1dAHhgstYTUhlphPzZ
    AmmfSubmissionEventNotificationData1_0:
      type: object
      description: The event data.
      required:
        - key
        - reportKey
        - submittedFileName
      properties:
        key:
          $ref: '#/components/schemas/ammfSubmissionKey'
        reportKey:
          $ref: '#/components/schemas/schemas-reportKey'
        submittedFileName:
          type: string
          description: The name of the submitted file
          example: AMMF_A123456_D20250630_S001.xlsx
    AmmfSubmissionEventNotification1_0:
      type: object
      allOf:
        - $ref: '#/components/schemas/PublicCloudEvent'
      required:
        - data
      properties:
        data:
          $ref: '#/components/schemas/AmmfSubmissionEventNotificationData1_0'
        source:
          allOf:
            - $ref: '#/components/schemas/source'
            - enum:
                - https://silverflow.com/ammfSubmissions
        specversion:
          allOf:
            - $ref: '#/components/schemas/openapi_components-schemas-version-4'
            - enum:
                - '1.0'
        subject:
          allOf:
            - description: The subject of the notification, which is a AMMF Submission Key.
            - $ref: '#/components/schemas/ammfSubmissionKey'
        dataschema:
          allOf:
            - $ref: '#/components/schemas/dataschema'
            - example: https://silverflow.com/schemas/events/ammfSubmissions/1.0
            - enum:
                - https://silverflow.com/schemas/events/ammfSubmissions/1.0
    AmmfSubmissionSubmittedEventNotification1_0:
      allOf:
        - type: object
          properties:
            type:
              enum:
                - com.silverflow.ammfSubmissions.submitted
        - $ref: '#/components/schemas/AmmfSubmissionEventNotification1_0'
    AmmfSubmissionApprovedEventNotification1_0:
      allOf:
        - type: object
          properties:
            type:
              enum:
                - com.silverflow.ammfSubmissions.approved
        - $ref: '#/components/schemas/AmmfSubmissionEventNotification1_0'
    AmmfSubmissionRejectedEventNotification1_0:
      allOf:
        - type: object
          properties:
            type:
              enum:
                - com.silverflow.ammfSubmissions.rejected
        - $ref: '#/components/schemas/AmmfSubmissionEventNotification1_0'
    schema_reportKey:
      description: Uniquely identifies a report object
      type: string
      pattern: ^rep-[a-zA-Z0-9]+$
      minLength: 10
      maxLength: 120
      example: rep-1e1dAHhgstYTUhlphPzZ
    ReportEventNotificationData1_0:
      type: object
      required:
        - key
        - status
        - created
        - version
      properties:
        key:
          $ref: '#/components/schemas/schema_reportKey'
        status:
          description: The status of the report.
          type: string
          enum:
            - scheduled
            - completed
            - archived
            - failed
        reportName:
          description: The name of the report.
          type: string
          example: SchemeFeeDetails
        reference:
          type: string
          description: Unique ID used to identify a report.
          maxLength: 120
        mimeType:
          type: string
          description: The mime-type in which the report is created.
          enum:
            - text/csv
            - application/vnd.ms-excel
            - application/yaml
            - application/x-ndjson
            - application/json
        downloadUrl:
          description: URL to download the report file
          type: string
          minLength: 10
          maxLength: 120
          example: https://eu-west-1.api.silverflow.com/v1/reports/rep-1e1dAHhgstYTUhlphPzZ/file
        created:
          $ref: '#/components/schemas/openapi_components-schemas-created-4'
        lastModified:
          $ref: '#/components/schemas/openapi_components-schemas-lastModified-4'
        version:
          $ref: '#/components/schemas/common_version'
    ReportEventNotification1_0:
      type: object
      allOf:
        - $ref: '#/components/schemas/PublicCloudEvent'
      required:
        - data
      properties:
        type:
          enum:
            - com.silverflow.reports.updated
        data:
          $ref: '#/components/schemas/ReportEventNotificationData1_0'
        source:
          allOf:
            - $ref: '#/components/schemas/source'
            - enum:
                - https://silverflow.com/reports
        specversion:
          allOf:
            - $ref: '#/components/schemas/openapi_components-schemas-version-4'
            - enum:
                - '1.0'
        subject:
          allOf:
            - description: The subject of the notification, which is the report key.
            - $ref: '#/components/schemas/schema_reportKey'
        dataschema:
          allOf:
            - $ref: '#/components/schemas/dataschema'
            - example: https://silverflow.com/schemas/events/reports/1.0
            - enum:
                - https://silverflow.com/schemas/events/reports/1.0
    schemas-networkFundsTransferKey:
      description: Uniquely identifies a Network Funds Transfer
      type: string
      pattern: ^nft-[a-zA-Z0-9]+$
    NftCompletedNotificationDataVersion1_0:
      type: object
      required:
        - networkFundsTransferKey
        - fundsTransferDate
      properties:
        networkFundsTransferKey:
          $ref: '#/components/schemas/schemas-networkFundsTransferKey'
        fundsTransferDate:
          type: string
          format: date
          example: '2025-10-20'
    NftCompletedNotificationVersion1_0:
      type: object
      allOf:
        - $ref: '#/components/schemas/PublicCloudEvent'
      required:
        - data
      properties:
        data:
          $ref: '#/components/schemas/NftCompletedNotificationDataVersion1_0'
        source:
          allOf:
            - $ref: '#/components/schemas/source'
            - enum:
                - https://silverflow.com/reconciliation
        specversion:
          allOf:
            - $ref: '#/components/schemas/openapi_components-schemas-version-4'
            - enum:
                - '1.0'
        subject:
          allOf:
            - description: The subject of the notification, which is the Network Funds Transfer key.
            - $ref: '#/components/schemas/schemas-networkFundsTransferKey'
        type:
          type: string
          description: The event type.
          enum:
            - com.silverflow.reconciliation.networkFundsTransferCompleted
        dataschema:
          allOf:
            - $ref: '#/components/schemas/dataschema'
            - enum:
                - https://silverflow.com/schemas/events/reconciliation/1.0
    openapi_components-schemas-actionReference-2:
      description: Reference assigned by the agent to the clearing action.
      type: string
      minLength: 1
      maxLength: 120
    schema_actionKey:
      description: Uniquely identifies an Action.
      type: string
      pattern: ^act-[a-zA-Z0-9]+$
      minLength: 1
      maxLength: 120
      example: act-5vJNRKF4NDViSzkr8TQ5
    AbandonedClearingEventData1_0:
      type: object
      required:
        - chargeKey
        - actionKey
        - reason
      properties:
        actionReference:
          $ref: '#/components/schemas/openapi_components-schemas-actionReference-2'
        transactionReference:
          type: string
        chargeKey:
          $ref: '#/components/schemas/openapi_components-schemas-chargeKey-2'
        actionKey:
          $ref: '#/components/schemas/schema_actionKey'
        reason:
          type: string
          description: Human-readable reason why the clearing record was abandoned.
    crn:
      description: Unique identifier of the clearing
      type: string
      minLength: 23
      maxLength: 100
      example: visa-01234566082009717735284
    ClearingEventNotificationVersion1_0AbandonedClearingEvent:
      type: object
      allOf:
        - $ref: '#/components/schemas/PublicCloudEvent'
      required:
        - data
      properties:
        data:
          $ref: '#/components/schemas/AbandonedClearingEventData1_0'
        source:
          allOf:
            - $ref: '#/components/schemas/source'
            - enum:
                - https://silverflow.com/clearing
        specversion:
          allOf:
            - $ref: '#/components/schemas/openapi_components-schemas-version-4'
            - enum:
                - '1.0'
        subject:
          allOf:
            - description: The subject of the notification, which is the CRN, the unique identifier of the clearing
            - $ref: '#/components/schemas/crn'
        type:
          type: string
          description: The event type.
          enum:
            - com.silverflow.clearing.abandoned
        dataschema:
          allOf:
            - $ref: '#/components/schemas/dataschema'
            - enum:
                - https://silverflow.com/schemas/events/clearing/1.0
    OfflineRefundOutcomeEventData1_0:
      type: object
      required:
        - arn
        - chargeKey
        - actionKey
        - outcome
      properties:
        arn:
          $ref: '#/components/schemas/crn'
        actionReference:
          $ref: '#/components/schemas/openapi_components-schemas-actionReference-2'
        transactionReference:
          type: string
        chargeKey:
          $ref: '#/components/schemas/openapi_components-schemas-chargeKey-2'
        actionKey:
          $ref: '#/components/schemas/schema_actionKey'
        outcome:
          type: string
          description: The final state of the offline refund action.
          enum:
            - cleared
            - abandoned
    ClearingEventNotificationVersion1_0OfflineRefundOutcomeEvent:
      type: object
      allOf:
        - $ref: '#/components/schemas/PublicCloudEvent'
      required:
        - data
      properties:
        data:
          $ref: '#/components/schemas/OfflineRefundOutcomeEventData1_0'
        source:
          allOf:
            - $ref: '#/components/schemas/source'
            - enum:
                - https://silverflow.com/clearing
        specversion:
          allOf:
            - $ref: '#/components/schemas/openapi_components-schemas-version-4'
            - enum:
                - '1.0'
        subject:
          allOf:
            - description: The subject of the notification, which is the CRN, the unique identifier of the clearing
            - $ref: '#/components/schemas/crn'
        type:
          type: string
          description: The event type.
          enum:
            - com.silverflow.clearing.offlineRefundOutcome
        dataschema:
          allOf:
            - $ref: '#/components/schemas/dataschema'
            - enum:
                - https://silverflow.com/schemas/events/clearing/1.0
    processorTokenEventType:
      type: string
      description: The event type.
      pattern: ^com.silverflow.processorTokens.[a-zA-Z]+$
      example: com.silverflow.processorTokens.created
    openapi_components-schemas-processorTokenKey:
      description: Uniquely identifies a Processor Token.
      type: string
      pattern: ^ptk-[a-zA-Z0-9]+$
      minLength: 5
      maxLength: 120
      example: ptk-1e1dA2fgs1YTUhlhyPOp
    processorTokenReference:
      type: string
      description: Optional reference assigned by the agent to the processor token.
      minLength: 5
      maxLength: 120
      example: VEQNS4L35E6IU1TN
    ProcessorTokenEventDataVersion1_1Created:
      type: object
      description: The event data for processor token created notifications.
      required:
        - key
        - status
        - created
        - version
      properties:
        key:
          $ref: '#/components/schemas/openapi_components-schemas-processorTokenKey'
        status:
          type: string
          description: The current status of a Processor Token.
          enum:
            - active
          example: active
        reference:
          $ref: '#/components/schemas/processorTokenReference'
        created:
          $ref: '#/components/schemas/openapi_components-schemas-created-4'
        lastModified:
          $ref: '#/components/schemas/openapi_components-schemas-lastModified-4'
        version:
          $ref: '#/components/schemas/common_version'
    ProcessorTokenEventNotification1_0Created:
      type: object
      allOf:
        - $ref: '#/components/schemas/PublicCloudEvent'
      required:
        - data
      properties:
        type:
          allOf:
            - $ref: '#/components/schemas/processorTokenEventType'
            - enum:
                - com.silverflow.processorTokens.created
            - example: com.silverflow.processorTokens.created
        data:
          $ref: '#/components/schemas/ProcessorTokenEventDataVersion1_1Created'
        source:
          allOf:
            - $ref: '#/components/schemas/source'
            - enum:
                - https://silverflow.com/processorTokens
        specversion:
          allOf:
            - $ref: '#/components/schemas/openapi_components-schemas-version-4'
            - enum:
                - '1.0'
        subject:
          allOf:
            - description: The subject of the notification, which is the processor token key.
            - $ref: '#/components/schemas/openapi_components-schemas-processorTokenKey'
        dataschema:
          allOf:
            - $ref: '#/components/schemas/dataschema'
            - example: https://silverflow.com/schemas/events/processorTokens/1.0
            - enum:
                - https://silverflow.com/schemas/events/processorTokens/1.0
    ProcessorTokenEventDataVersion1_1Archived:
      type: object
      description: The event data for processor token archived notifications.
      required:
        - key
        - status
        - created
        - version
      properties:
        key:
          $ref: '#/components/schemas/openapi_components-schemas-processorTokenKey'
        status:
          type: string
          description: The current status of a Processor Token.
          enum:
            - archived
          example: archived
        reference:
          $ref: '#/components/schemas/processorTokenReference'
        created:
          $ref: '#/components/schemas/openapi_components-schemas-created-4'
        lastModified:
          $ref: '#/components/schemas/openapi_components-schemas-lastModified-4'
        version:
          $ref: '#/components/schemas/common_version'
    ProcessorTokenEventNotification1_0Archived:
      type: object
      allOf:
        - $ref: '#/components/schemas/PublicCloudEvent'
      required:
        - data
      properties:
        type:
          allOf:
            - $ref: '#/components/schemas/processorTokenEventType'
            - enum:
                - com.silverflow.processorTokens.archived
            - example: com.silverflow.processorTokens.archived
        data:
          $ref: '#/components/schemas/ProcessorTokenEventDataVersion1_1Archived'
        source:
          allOf:
            - $ref: '#/components/schemas/source'
            - enum:
                - https://silverflow.com/processorTokens
        specversion:
          allOf:
            - $ref: '#/components/schemas/openapi_components-schemas-version-4'
            - enum:
                - '1.0'
        subject:
          allOf:
            - description: The subject of the notification, which is the processor token key.
            - $ref: '#/components/schemas/openapi_components-schemas-processorTokenKey'
        dataschema:
          allOf:
            - $ref: '#/components/schemas/dataschema'
            - example: https://silverflow.com/schemas/events/processorTokens/1.0
            - enum:
                - https://silverflow.com/schemas/events/processorTokens/1.0
    ProcessorTokenEventDataVersion1_1CvcDeleted:
      type: object
      description: The event data for processor token CVC deleted notifications.
      required:
        - key
        - status
        - created
        - version
      properties:
        key:
          $ref: '#/components/schemas/openapi_components-schemas-processorTokenKey'
        status:
          type: string
          description: The current status of a Processor Token.
          enum:
            - active
            - archived
          example: active
        reference:
          $ref: '#/components/schemas/processorTokenReference'
        created:
          $ref: '#/components/schemas/openapi_components-schemas-created-4'
        lastModified:
          $ref: '#/components/schemas/openapi_components-schemas-lastModified-4'
        version:
          $ref: '#/components/schemas/common_version'
    ProcessorTokenEventNotification1_0CvcDeleted:
      type: object
      allOf:
        - $ref: '#/components/schemas/PublicCloudEvent'
      required:
        - data
      properties:
        type:
          allOf:
            - $ref: '#/components/schemas/processorTokenEventType'
            - enum:
                - com.silverflow.processorTokens.cvcDeleted
            - example: com.silverflow.processorTokens.cvcDeleted
        data:
          $ref: '#/components/schemas/ProcessorTokenEventDataVersion1_1CvcDeleted'
        source:
          allOf:
            - $ref: '#/components/schemas/source'
            - enum:
                - https://silverflow.com/processorTokens
        specversion:
          allOf:
            - $ref: '#/components/schemas/openapi_components-schemas-version-4'
            - enum:
                - '1.0'
        subject:
          allOf:
            - description: The subject of the notification, which is the processor token key.
            - $ref: '#/components/schemas/openapi_components-schemas-processorTokenKey'
        dataschema:
          allOf:
            - $ref: '#/components/schemas/dataschema'
            - example: https://silverflow.com/schemas/events/processorTokens/1.0
            - enum:
                - https://silverflow.com/schemas/events/processorTokens/1.0
    chargeActionEventType:
      type: string
      description: The event type.
      enum:
        - com.silverflow.charges.action
    openapi_components-schemas-actionKey:
      description: Uniquely identifies an Action.
      type: string
      pattern: ^act-[a-zA-Z0-9]+$
      minLength: 1
      maxLength: 120
      example: act-5oRIijJIHA8BstUy0dpd
    actionType:
      description: The type of action that was created or updated.
      type: string
      enum:
        - authorization
        - reversal
        - refund
        - offline-refund
        - clearing
        - increment
    ChargeActionEventDataVersion1_0:
      type: object
      description: The event data.
      required:
        - chargeKey
        - actionKey
        - actionType
      properties:
        chargeKey:
          $ref: '#/components/schemas/openapi_components-schemas-chargeKey-2'
        actionKey:
          $ref: '#/components/schemas/openapi_components-schemas-actionKey'
        actionType:
          $ref: '#/components/schemas/actionType'
    ChargeActionEventNotificationVersion1_0:
      type: object
      allOf:
        - $ref: '#/components/schemas/PublicCloudEvent'
      required:
        - data
      properties:
        type:
          $ref: '#/components/schemas/chargeActionEventType'
        data:
          $ref: '#/components/schemas/ChargeActionEventDataVersion1_0'
        source:
          allOf:
            - $ref: '#/components/schemas/source'
            - enum:
                - https://silverflow.com/charges
        specversion:
          allOf:
            - $ref: '#/components/schemas/openapi_components-schemas-version-4'
            - enum:
                - '1.0'
        subject:
          allOf:
            - description: The subject key, which is the action `key`.
            - $ref: '#/components/schemas/openapi_components-schemas-actionKey'
        dataschema:
          allOf:
            - $ref: '#/components/schemas/dataschema'
            - example: https://silverflow.com/schemas/events/charges/action/1.0
            - enum:
                - https://silverflow.com/schemas/events/charges/action/1.0
    networkTokenEventType:
      type: string
      description: The event type for network token events.
      pattern: ^com.silverflow.networkTokens.[a-zA-Z]+$
      example: com.silverflow.networkTokens.created
    schemas-networkTokenKey:
      description: Uniquely identifies a Network Token.
      type: string
      pattern: ^ntk-[a-zA-Z0-9]+$
      minLength: 5
      maxLength: 120
      example: ntk-1e1dAHhgstYTUhlphPzZ
    schemas-lastTokenRefresh:
      type: string
      format: date-time
      description: The date and time this network token was last refreshed.
      example: '2024-01-31T10:03:19.949Z'
    NetworkTokenEventDataVersion1_0Created:
      type: object
      description: The event data for network token created notifications.
      required:
        - key
        - status
        - created
        - version
      properties:
        key:
          $ref: '#/components/schemas/schemas-networkTokenKey'
        status:
          type: string
          description: The current status of a Network Token.
          enum:
            - active
          example: active
        lastTokenRefresh:
          $ref: '#/components/schemas/schemas-lastTokenRefresh'
        created:
          $ref: '#/components/schemas/openapi_components-schemas-created-4'
        lastModified:
          $ref: '#/components/schemas/openapi_components-schemas-lastModified-4'
        version:
          $ref: '#/components/schemas/common_version'
    NetworkTokenEventNotification1_0Created:
      type: object
      allOf:
        - $ref: '#/components/schemas/PublicCloudEvent'
      required:
        - data
      properties:
        type:
          allOf:
            - $ref: '#/components/schemas/networkTokenEventType'
            - enum:
                - com.silverflow.networkTokens.created
            - example: com.silverflow.networkTokens.created
        data:
          $ref: '#/components/schemas/NetworkTokenEventDataVersion1_0Created'
        source:
          allOf:
            - $ref: '#/components/schemas/source'
            - enum:
                - https://silverflow.com/networkTokens
        specversion:
          allOf:
            - $ref: '#/components/schemas/openapi_components-schemas-version-4'
            - enum:
                - '1.0'
        subject:
          allOf:
            - description: The subject of the notification, which is the network token key.
            - $ref: '#/components/schemas/schemas-networkTokenKey'
        dataschema:
          allOf:
            - $ref: '#/components/schemas/dataschema'
            - enum:
                - https://silverflow.com/schemas/events/networkTokens/1.0
            - example: https://silverflow.com/schemas/events/networkTokens/1.0
    NetworkTokenEventDataVersion1_0Updated:
      type: object
      description: The event data for network token updated notifications.
      required:
        - key
        - status
        - created
        - version
      properties:
        key:
          $ref: '#/components/schemas/schemas-networkTokenKey'
        status:
          type: string
          description: The current status of a Network Token.
          enum:
            - requested
            - active
            - suspended
            - archivePending
          example: active
        lastTokenRefresh:
          $ref: '#/components/schemas/schemas-lastTokenRefresh'
        created:
          $ref: '#/components/schemas/openapi_components-schemas-created-4'
        lastModified:
          $ref: '#/components/schemas/openapi_components-schemas-lastModified-4'
        version:
          $ref: '#/components/schemas/common_version'
    NetworkTokenEventNotification1_0Updated:
      type: object
      allOf:
        - $ref: '#/components/schemas/PublicCloudEvent'
      required:
        - data
      properties:
        type:
          allOf:
            - $ref: '#/components/schemas/networkTokenEventType'
            - enum:
                - com.silverflow.networkTokens.updated
            - example: com.silverflow.networkTokens.updated
        data:
          $ref: '#/components/schemas/NetworkTokenEventDataVersion1_0Updated'
        source:
          allOf:
            - $ref: '#/components/schemas/source'
            - enum:
                - https://silverflow.com/networkTokens
        specversion:
          allOf:
            - $ref: '#/components/schemas/openapi_components-schemas-version-4'
            - enum:
                - '1.0'
        subject:
          allOf:
            - description: The subject of the notification, which is the network token key.
            - $ref: '#/components/schemas/schemas-networkTokenKey'
        dataschema:
          allOf:
            - $ref: '#/components/schemas/dataschema'
            - enum:
                - https://silverflow.com/schemas/events/networkTokens/1.0
            - example: https://silverflow.com/schemas/events/networkTokens/1.0
    NetworkTokenEventDataVersion1_0Archived:
      type: object
      description: The event data for network token archived notifications.
      required:
        - key
        - status
        - created
        - version
      properties:
        key:
          $ref: '#/components/schemas/schemas-networkTokenKey'
        status:
          type: string
          description: The current status of a Network Token.
          enum:
            - archived
          example: archived
        lastTokenRefresh:
          $ref: '#/components/schemas/schemas-lastTokenRefresh'
        created:
          $ref: '#/components/schemas/openapi_components-schemas-created-4'
        lastModified:
          $ref: '#/components/schemas/openapi_components-schemas-lastModified-4'
        version:
          $ref: '#/components/schemas/common_version'
    NetworkTokenEventNotification1_0Archived:
      type: object
      allOf:
        - $ref: '#/components/schemas/PublicCloudEvent'
      required:
        - data
      properties:
        type:
          allOf:
            - $ref: '#/components/schemas/networkTokenEventType'
            - enum:
                - com.silverflow.networkTokens.archived
            - example: com.silverflow.networkTokens.archived
        data:
          $ref: '#/components/schemas/NetworkTokenEventDataVersion1_0Archived'
        source:
          allOf:
            - $ref: '#/components/schemas/source'
            - enum:
                - https://silverflow.com/networkTokens
        specversion:
          allOf:
            - $ref: '#/components/schemas/openapi_components-schemas-version-4'
            - enum:
                - '1.0'
        subject:
          allOf:
            - description: The subject of the notification, which is the network token key.
            - $ref: '#/components/schemas/schemas-networkTokenKey'
        dataschema:
          allOf:
            - $ref: '#/components/schemas/dataschema'
            - enum:
                - https://silverflow.com/schemas/events/networkTokens/1.0
            - example: https://silverflow.com/schemas/events/networkTokens/1.0
    tokenError:
      type: object
      description: The error when the network token request failed.
      required:
        - code
        - detail
      properties:
        code:
          type: string
          description: Error code from the token provider.
          example: TOKEN_PROVISIONING_FAILED
        detail:
          type: string
          description: Human-readable error message.
          example: The card network rejected the tokenization request.
    NetworkTokenEventDataVersion1_0Failed:
      type: object
      description: The event data for network token failed notifications.
      required:
        - key
        - status
        - created
        - version
      properties:
        key:
          $ref: '#/components/schemas/schemas-networkTokenKey'
        status:
          type: string
          description: The current status of a Network Token.
          enum:
            - failed
          example: failed
        lastTokenRefresh:
          $ref: '#/components/schemas/schemas-lastTokenRefresh'
        error:
          $ref: '#/components/schemas/tokenError'
        created:
          $ref: '#/components/schemas/openapi_components-schemas-created-4'
        lastModified:
          $ref: '#/components/schemas/openapi_components-schemas-lastModified-4'
        version:
          $ref: '#/components/schemas/common_version'
    NetworkTokenEventNotification1_0Failed:
      type: object
      allOf:
        - $ref: '#/components/schemas/PublicCloudEvent'
      required:
        - data
      properties:
        type:
          allOf:
            - $ref: '#/components/schemas/networkTokenEventType'
            - enum:
                - com.silverflow.networkTokens.failed
            - example: com.silverflow.networkTokens.failed
        data:
          $ref: '#/components/schemas/NetworkTokenEventDataVersion1_0Failed'
        source:
          allOf:
            - $ref: '#/components/schemas/source'
            - enum:
                - https://silverflow.com/networkTokens
        specversion:
          allOf:
            - $ref: '#/components/schemas/openapi_components-schemas-version-4'
            - enum:
                - '1.0'
        subject:
          allOf:
            - description: The subject of the notification, which is the network token key.
            - $ref: '#/components/schemas/schemas-networkTokenKey'
        dataschema:
          allOf:
            - $ref: '#/components/schemas/dataschema'
            - enum:
                - https://silverflow.com/schemas/events/networkTokens/1.0
            - example: https://silverflow.com/schemas/events/networkTokens/1.0
  responses:
    BadRequestError:
      description: The request was malformed. See the response body for details
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/BadRequestProblemDetail'
          example:
            type: /silverflow/problems/bad-request
            title: Bad Request
            status: 400
            detail: Validation errors occurred
            instance: https://api.silverflow.co/v1/merchants/mct-1hPdFqhgstYTUhlphPDp
            validationErrors:
              - instancePath: /tags/0/businessId
                message: must not be longer than 255 characters
    UnauthorizedError:
      description: Authentication information is missing or invalid
      headers:
        WWW_Authenticate:
          schema:
            type: string
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ProblemDetail'
          example:
            type: https://datatracker.ietf.org/doc/html/rfc2616#section-10.4.2
            title: Unauthorized
            status: 401
            detail: The credentials supplied in the request are either missing, invalid, or not applicable in the current scope
    ForbiddenError:
      description: The authenticated client is forbidden to make the request for the resource identified.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ProblemDetail'
          example:
            type: https://datatracker.ietf.org/doc/html/rfc2616#section-10.4.4
            title: Forbidden
            status: 403
            detail: The server is refusing to execute the request for the current authenticated user
            instance: https://api.silverflow.co/v1/merchants/mct-1hPdFqhgstYTUhlphPDp
    NotFoundError:
      description: The requested resource was not found
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ProblemDetail'
          example:
            type: https://datatracker.ietf.org/doc/html/rfc2616#section-10.4.5
            title: Not Found
            status: 404
            detail: The entity referenced in the request could not be found
            instance: https://api.silverflow.co/v1/merchants/mct-1hPdFqhgstYTUhlphPDp
    TooManyRequestsError:
      description: The number of requests (per minute) has exceeded the configured maximum
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ProblemDetail'
          example:
            type: /silverflow/problems/too-many-requests
            title: Too Many Requests
            status: 429
            detail: You have exceeded the rate limit. Please try again after the specified delay.
            instance: /silverflow/b0451a9d-f66d-4ef7-9f5d-d48064a2bb3e
    ConflictError:
      description: The request could not be completed due to a conflict with the current state of the resources involved in the request.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ProblemDetail'
    PreconditionFailedError:
      description: The conditions specified in the HTTP headers of the request were not met.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/PreconditionFailedProblemDetail'
          example:
            detail: The referenced bin with key 'bin-5nHQqdP4wTClI7MDMw5j' did not have the expected version 5
            instance: /silverflow/00b32804-1109-4761-8776-9436a3c6b26b
            status: 412
            title: Precondition Failed
            type: /silverflow/problems/precondition-failed
    MethodNotAllowed:
      description: The attempted operation/action is not allowed.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ProblemDetail'
          example:
            detail: Archive function is not supported for the selected enrollment type.
            instance: /silverflow/00b32804-1109-4761-8776-9436a3c6b26b
            status: 405
            title: Method Not Allowed
            type: /silverflow/problems/method-not-allowed
    InvalidInputError:
      description: The request body was malformed
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/InvalidInputErrorDetails'
          example:
            type: /silverflow/problems/invalid-input
            title: Invalid Input
            status: 400
            detail: The request does not adhere to the defined API schema.
            instance: /silverflow/d2356c5d-4081-427d-b86e-4f098f0be84a
            validationErrors:
              - path: /screenings
                message: '''screeningType'' must be equal to one of the allowed values: MATCH_PRO, VMSS.'
    responses-UnauthorizedError:
      description: Authentication information is missing or invalid
      headers:
        WWW_Authenticate:
          schema:
            type: string
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/schemas-ProblemDetail'
          example:
            type: https://datatracker.ietf.org/doc/html/rfc2616#section-10.4.2
            title: Unauthorized
            status: 401
            detail: The credentials supplied in the request are either missing, invalid, or not applicable in the current scope
    responses-ForbiddenError:
      description: The authenticated client is forbidden to make the request for the resource identified.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/schemas-ProblemDetail'
          example:
            type: https://datatracker.ietf.org/doc/html/rfc2616#section-10.4.4
            title: Forbidden
            status: 403
            detail: The server is refusing to execute the request for the current authenticated user
            instance: https://api.silverflow.co/v1/merchants/mct-1hPdFqhgstYTUhlphPDp
    responses-NotFoundError:
      description: The requested resource was not found
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/schemas-ProblemDetail'
          example:
            type: https://datatracker.ietf.org/doc/html/rfc2616#section-10.4.5
            title: Not Found
            status: 404
            detail: The entity referenced in the request could not be found
            instance: https://api.silverflow.co/v1/merchants/mct-1hPdFqhgstYTUhlphPDp
    responses-TooManyRequestsError:
      description: The number of requests (per minute) has exceeded the configured maximum
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/schemas-ProblemDetail'
          example:
            type: https://api.silverflow.co/problem/too-many-requests
            title: Too Many Requests
            status: 429
            detail: The number of requests performed by the client has exceeded the configured maximum for a given period
    responses-ConflictError:
      description: The request could not be completed due to a conflict with the current state of the resources involved in the request.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/schemas-ProblemDetail'
    UnprocessableEntityError:
      description: The request is well formed, but the current state of the resources does not allow it. See the response body for details.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ProblemDetail'
    components-responses-UnauthorizedError:
      description: Authentication Required
      headers:
        WWW_Authenticate:
          schema:
            type: string
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/AuthenticationRequiredErrorDetails'
          examples:
            AuthenticationRequiredExample:
              $ref: '#/components/examples/AuthenticationRequiredExample'
    components-responses-TooManyRequestsError:
      description: Too Many Requests
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/TooManyRequestsErrorDetails'
          examples:
            TooManyRequestsErrorExample:
              $ref: '#/components/examples/TooManyRequestsErrorExample'
    InternalServerError:
      description: Internal Server Error
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/InternalServerErrorDetails'
          examples:
            InternalServerErrorExample:
              $ref: '#/components/examples/InternalServerErrorExample'
    BadRequestErrorResponse:
      description: Bad Request
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/components-schemas-InvalidInputErrorDetails'
          examples:
            InvalidInputErrorExample:
              $ref: '#/components/examples/examples-InvalidInputErrorExample'
    AuthenticationRequiredErrorResponse:
      description: Authentication Required
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/schemas-AuthenticationRequiredErrorDetails'
          examples:
            AuthenticationRequiredErrorExample:
              $ref: '#/components/examples/AuthenticationRequiredErrorExample'
    ForbiddenErrorResponse:
      description: Forbidden
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ForbiddenErrorDetails'
          examples:
            ForbiddenErrorExample:
              $ref: '#/components/examples/ForbiddenErrorExample'
    TooManyRequestsErrorResponse:
      description: Too Many Requests
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/TooManyRequestsErrorDetails'
          examples:
            TooManyRequestsErrorExample:
              $ref: '#/components/examples/TooManyRequestsErrorExample'
    InternalServerErrorResponse:
      description: Internal Server Error
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/InternalServerErrorDetails'
          examples:
            InternalServerErrorExample:
              $ref: '#/components/examples/examples-InternalServerErrorExample'
    responses-InvalidInputError:
      description: The request body was malformed
      headers:
        X-SF-Trace-ID:
          $ref: '#/components/headers/XSFTraceId'
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/openapi_components-schemas-InvalidInputErrorDetails'
          examples:
            InvalidInputErrorExample:
              $ref: '#/components/examples/components-examples-InvalidInputErrorExample'
    openapi_components-responses-UnauthorizedError:
      description: Authentication information is missing or invalid
      headers:
        WWW_Authenticate:
          schema:
            type: string
        X-SF-Trace-ID:
          $ref: '#/components/headers/XSFTraceId'
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/UnauthorizedErrorDetails'
          examples:
            AuthenticationRequired:
              $ref: '#/components/examples/examples-AuthenticationRequiredExample'
    components-responses-ForbiddenError:
      description: The authenticated client is forbidden to make the request for the resource identified.
      headers:
        X-SF-Trace-ID:
          $ref: '#/components/headers/XSFTraceId'
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/schemas-ForbiddenErrorDetails'
          examples:
            ForbiddenErrorExample:
              $ref: '#/components/examples/examples-ForbiddenErrorExample'
    EntityNotFoundError:
      description: The requested resource was not found
      headers:
        X-SF-Trace-ID:
          $ref: '#/components/headers/XSFTraceId'
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/components-schemas-EntityNotFoundErrorDetails'
          examples:
            EntityNotFoundErrorExample:
              $ref: '#/components/examples/examples-EntityNotFoundErrorExample'
    openapi_components-responses-TooManyRequestsError:
      description: Too Many Requests
      headers:
        X-SF-Trace-ID:
          $ref: '#/components/headers/XSFTraceId'
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/schemas-TooManyRequestsErrorDetails'
          examples:
            TooManyRequestsErrorExample:
              $ref: '#/components/examples/TooManyRequestsErrorExample'
    responses-InternalServerError:
      description: Internal Server Error
      headers:
        X-SF-Trace-ID:
          $ref: '#/components/headers/XSFTraceId'
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/schemas-InternalServerErrorDetails'
          examples:
            InternalServerErrorExample:
              $ref: '#/components/examples/components-examples-InternalServerErrorExample'
    InvalidToOrFromDateError:
      description: Bad Request
      headers:
        X-SF-Trace-ID:
          $ref: '#/components/headers/XSFTraceId'
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/InvalidToOrFromDateErrorDetails'
          examples:
            ReferencedEntityNotFoundErrorExample:
              $ref: '#/components/examples/InvalidToOrFromDateErrorExample'
    TemporaryServerError:
      description: Temporary Server Error
      headers:
        X-SF-Trace-ID:
          $ref: '#/components/headers/XSFTraceId'
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/TemporaryServerErrorDetails'
          examples:
            TemporaryServerErrorExample:
              $ref: '#/components/examples/TemporaryServerErrorExample'
    responses-BadRequestError:
      description: The request was malformed. See the response body for details
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/schemas-ProblemDetail'
          example:
            type: https://datatracker.ietf.org/doc/html/rfc2616#section-10.4.1
            title: Bad Request
            status: 400
            detail: The request could not be processed as it contained an invalid request entity
            instance: https://api.silverflow.co/v1/merchants/mct-1hPdFqhgstYTUhlphPDp
            validationErrors:
              - The value of property 'status' should be one of 'idle', 'active' or 'archived'
              - The value of property 'tags.0.businessId' must not be longer than 255 characters
    openapi_components-responses-UnauthorizedError-2:
      description: Authentication information is missing or invalid
      headers:
        WWW_Authenticate:
          schema:
            type: string
      content:
        application/json:
          schema:
            allOf:
              - $ref: '#/components/schemas/components-schemas-ProblemDetail'
              - type: object
                properties:
                  type:
                    type: string
                    enum:
                      - /silverflow/problems/unauthorized
                  title:
                    type: string
                    enum:
                      - Unauthorized
                  status:
                    type: integer
                    enum:
                      - 401
          example:
            type: /silverflow/problems/unauthorized
            title: Unauthorized
            status: 401
            instance: /silverflow/8450a79f-3457-4f63-86b7-b00b25037bed
            detail: The supplied security credentials were missing or invalid.
    openapi_components-responses-ForbiddenError:
      description: The authenticated client is forbidden to make the request for the resource identified.
      content:
        application/json:
          schema:
            allOf:
              - $ref: '#/components/schemas/components-schemas-ProblemDetail'
              - type: object
                properties:
                  type:
                    type: string
                    enum:
                      - /silverflow/problems/forbidden
                  title:
                    type: string
                    enum:
                      - Forbidden
                  status:
                    type: integer
                    enum:
                      - 403
          example:
            type: /silverflow/problems/forbidden
            title: Forbidden
            status: 403
            instance: /silverflow/48a7c13b-5301-4dab-92af-c3a1d3d4ce12
            detail: The authenticated client is does not have the required permissions.
    openapi_components-responses-TooManyRequestsError-2:
      description: The number of requests (per minute) has exceeded the configured maximum
      content:
        application/json:
          schema:
            allOf:
              - $ref: '#/components/schemas/components-schemas-ProblemDetail'
              - type: object
                properties:
                  type:
                    type: string
                    enum:
                      - /silverflow/problems/too-many-requests
                  title:
                    type: string
                    enum:
                      - Too Many Requests
                  status:
                    type: integer
                    enum:
                      - 429
          example:
            type: /silverflow/problems/too-many-requests
            title: Too Many Requests
            status: 429
            instance: /silverflow/ba1243a3-72e2-442f-85b2-fd07504aa2ab
            detail: The number of requests per unit of time has exceeded the configured maximum.
    UnprocessableContentError:
      description: |
        The server was unable to process the request.
      content:
        application/json:
          schema:
            allOf:
              - $ref: '#/components/schemas/components-schemas-ProblemDetail'
              - type: object
                properties:
                  type:
                    type: string
                    enum:
                      - /silverflow/problems/unprocessable-content
                  status:
                    type: integer
                    enum:
                      - 422
          example:
            type: /silverflow/problems/unprocessable-content
            title: Unprocessable Content
            status: 422
            instance: ba1243a3-72e2-442f-85b2-fd07504aa3bd
            detail: The request body is not processable
    components-responses-InternalServerError:
      description: |
        The server encountered an unexpected condition.
        This may or may not be a temporary situation.
      content:
        application/json:
          schema:
            allOf:
              - $ref: '#/components/schemas/components-schemas-ProblemDetail'
              - type: object
                properties:
                  type:
                    type: string
                    enum:
                      - /silverflow/problems/internal-server-error
                  title:
                    type: string
                    enum:
                      - Internal Server Error
                  status:
                    type: integer
                    enum:
                      - 500
          example:
            type: /silverflow/problems/internal-server-error
            title: Internal Server Error
            status: 500
            instance: /silverflow/b15ac28d-f854-464c-be37-6a4f6d5fe22c
            detail: The server encountered an unexpected condition.
    ServiceUnavailableError:
      description: |
        The server was unable to process the request.
        This is a temporary condition. Please retry the request.
      content:
        application/json:
          schema:
            allOf:
              - $ref: '#/components/schemas/components-schemas-ProblemDetail'
              - type: object
                properties:
                  type:
                    type: string
                    enum:
                      - /silverflow/problems/service-unavailable
                  title:
                    type: string
                    enum:
                      - Service Unavailable
                  status:
                    type: integer
                    enum:
                      - 503
          example:
            type: /silverflow/problems/service-unavailable
            title: Service Unavailable
            status: 503
            instance: /silverflow/962a5782-39a0-42fd-9ef2-77c856e44748
            detail: The server was unable to process the request.
    components-responses-NotFoundError:
      description: The requested resource was not found
      content:
        application/json:
          schema:
            allOf:
              - $ref: '#/components/schemas/components-schemas-ProblemDetail'
              - type: object
                properties:
                  type:
                    type: string
                    enum:
                      - /silverflow/problems/not-found
                  title:
                    type: string
                    enum:
                      - Not Found
                  status:
                    type: integer
                    enum:
                      - 404
          example:
            type: /silverflow/problems/not-found
            title: Not Found
            status: 404
            instance: /silverflow/1a9031a9-72d4-4534-88a5-e7777617000b
            detail: The resource identified in the request URL was not found.
    openapi_components-responses-UnauthorizedError-3:
      description: Authentication information is missing or invalid
      headers:
        WWW_Authenticate:
          schema:
            type: string
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/schemas-UnauthorizedErrorDetails'
          examples:
            AuthenticationRequired:
              $ref: '#/components/examples/examples-AuthenticationRequiredExample'
    openapi_components-responses-ForbiddenError-2:
      description: The authenticated client is forbidden to make the request for the resource identified.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ForbiddenErrorDetails'
          examples:
            ForbiddenErrorExample:
              $ref: '#/components/examples/examples-ForbiddenErrorExample'
    openapi_components-responses-InternalServerError:
      description: Internal Server Error
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/InternalServerErrorDetails'
          examples:
            InternalServerErrorExample:
              $ref: '#/components/examples/components-examples-InternalServerErrorExample'
    responses-ServiceUnavailableError:
      description: Service Unavailable - The service is temporarily unavailable. Please retry.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ServiceUnavailableErrorDetails'
    openapi_components-responses-TooManyRequestsError-3:
      description: The number of requests (per minute) has exceeded the configured maximum
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/TooManyRequestsProblemDetail'
          example:
            type: /silverflow/problems/too-many-requests
            title: Too Many Requests
            status: 429
            detail: Too many requests, please retry after a moment.
            instance: /silverflow/b0451a9d-f66d-4ef7-9f5d-d48064a2bb3e
    responses-PreconditionFailedError:
      description: The conditions specified in the HTTP headers of the request were not met.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/schemas-ProblemDetail'
          example:
            type: https://datatracker.ietf.org/doc/html/rfc2616#section-10.4.13
            title: Precondition failed
            status: 412
            detail: The version of the entity did not match the required version specified in the precondition of the request
            instance: https://api.silverflow.co/v1/merchants/mct-1hPdFqhgstYTUhlphPDp
            preconditionVersion: 3
            actualVersion: 4
    LengthRequiredError:
      description: The server doesn't accept requests without a defined 'content-Length'
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/schemas-ProblemDetail'
          example:
            type: https://datatracker.ietf.org/doc/html/rfc2616#section-10.4.12
            title: Length Required
            status: 411
            detail: The server refuses to accept the request without a defined Content-Length
            instance: https://api.silverflow.co/v1/merchants/mct-1hPdFqhgstYTUhlphPDp
    PayloadTooLargeError:
      description: Request payload is larger than limits defined by server.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/schemas-ProblemDetail'
          example:
            type: https://datatracker.ietf.org/doc/html/rfc2616#section-10.4.14
            title: Payload too Large
            status: 413
            detail: The server is refused the request because the size of the request entity is larger than that defined by the server
            instance: https://api.silverflow.co/v1/merchants/mct-1hPdFqhgstYTUhlphPDp
    UnsupportedMediaTypeError:
      description: The format of the request payload is not supported by the server
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/schemas-ProblemDetail'
          example:
            type: https://datatracker.ietf.org/doc/html/rfc2616#section-10.4.16
            title: Unsupported Media Type
            status: 415
            detail: The server is refusing the request because the entity of the request is in a format that is not supported
            instance: https://api.silverflow.co/v1/merchants/mct-1hPdFqhgstYTUhlphPDp
    components-responses-BadRequestError:
      description: The request was malformed. See the response body for details
      content:
        application/json:
          schema:
            oneOf:
              - $ref: '#/components/schemas/GenericBadRequestError'
              - $ref: '#/components/schemas/InvalidOffsetTokenError'
          examples:
            genericBadRequestError:
              $ref: '#/components/examples/error-bad-request'
            invalidOffsetTokenError:
              $ref: '#/components/examples/error-invalid-offset-token'
    openapi_components-responses-UnauthorizedError-4:
      description: Authentication information is missing or invalid
      headers:
        WWW_Authenticate:
          schema:
            type: string
      content:
        application/json:
          schema:
            allOf:
              - $ref: '#/components/schemas/openapi_components-schemas-ProblemDetail'
              - type: object
                properties:
                  type:
                    enum:
                      - /silverflow/problems/authentication-required
                  title:
                    enum:
                      - Authentication Required
          example:
            summary: Authentication Required Error
            value:
              status: 401
              type: /silverflow/problems/authentication-required
              title: Authentication Required
              detail: Authentication Required
              instance: /silverflow/RjLFu5Sund7ryJFNhZpFRGFsMzeuMym2BNoIxjvXTfxjtGZZlEpFnQ==
    openapi_components-responses-ForbiddenError-3:
      description: The authenticated client is forbidden to make the request for the resource identified.
      content:
        application/json:
          schema:
            allOf:
              - $ref: '#/components/schemas/openapi_components-schemas-ProblemDetail'
              - type: object
                properties:
                  type:
                    enum:
                      - /silverflow/problems/forbidden
                  title:
                    enum:
                      - Forbidden
          example:
            summary: Forbidden error
            value:
              status: 403
              type: /silverflow/problems/forbidden
              title: Forbidden
              detail: 'Authenticated user ''apk-33GjasQdWl4781OsErvi'' is missing the following permission(s): charges:Create.'
              instance: /silverflow/b0451a9d-f66d-4ef7-9f5d-d48064a2bb3e
    openapi_components-responses-TooManyRequestsError-4:
      description: The number of requests (per minute) has exceeded the configured maximum
      content:
        application/json:
          schema:
            allOf:
              - $ref: '#/components/schemas/openapi_components-schemas-ProblemDetail'
              - type: object
                properties:
                  type:
                    enum:
                      - /silverflow/problems/authentication-required
                  title:
                    enum:
                      - Authentication Required
          example:
            summary: Too many requests error
            value:
              status: 429
              type: /silverflow/problems/too-many-requests
              title: Too Many Requests
              detail: The number of requests performed by the client has exceeded the configured maximum for a given period
              instance: /silverflow/b68c4b1e-a40a-467f-afa3-095f8eb451d2
    openapi_components-responses-NotFoundError:
      description: The requested resource was not found
      content:
        application/json:
          schema:
            allOf:
              - $ref: '#/components/schemas/openapi_components-schemas-ProblemDetail'
              - type: object
                properties:
                  type:
                    enum:
                      - /silverflow/problems/not-found
                  title:
                    enum:
                      - Not Found
          example:
            summary: Not found error
            value:
              status: 404
              type: /silverflow/problems/not-found
              title: Not Found
              detail: The entity referenced in the request could not be found
              instance: /silverflow/3da2b6cf-b522-4c4a-891b-01514ba6c1c4
    openapi_components-responses-ForbiddenError-4:
      description: The authenticated client is forbidden to make the request for the resource identified.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/openapi_components-schemas-ProblemDetail-2'
          example:
            type: /silverflow/problems/forbidden
            title: Forbidden
            status: 403
            detail: 'Authenticated user ''apk-33GjasQdWl4781OsErvi'' is missing the following permission(s): reports:List'
            instance: /silverflow/b0451a9d-f66d-4ef7-9f5d-d48064a2bb3e
    openapi_components-responses-TooManyRequestsError-5:
      description: The number of requests (per minute) has exceeded the configured maximum
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/openapi_components-schemas-ProblemDetail-2'
          example:
            type: /silverflow/problems/too-many-requests
            title: Too Many Requests
            status: 429
            detail: You have exceeded the rate limit. Please try again after the specified delay.
            instance: /silverflow/b0451a9d-f66d-4ef7-9f5d-d48064a2bb3e
    openapi_components-responses-BadRequestError:
      description: |
        The request was malformed. See the response body for details
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/openapi_components-schemas-ProblemDetail-3'
          example:
            type: /silverflow/problems/invalid-input
            title: Invalid Input
            status: 400
            instance: /silverflow/06c93111-4cfd-47fa-b789-6080324ee7e7
            detail: The request does not adhere to the defined API schema.
    openapi_components-responses-UnauthorizedError-5:
      description: |
        The supplied security credentials were missing or invalid
      headers:
        WWW_Authenticate:
          schema:
            type: string
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/openapi_components-schemas-ProblemDetail-3'
          example:
            type: /silverflow/problems/authentication-required
            title: Authentication Required
            status: 401
            instance: 8450a79f-3457-4f63-86b7-b00b25037bed
            detail: Authentication Required
    openapi_components-responses-ForbiddenError-5:
      description: |
        The authenticated client is does not have the required permissions.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/openapi_components-schemas-ProblemDetail-3'
          example:
            type: https://api.silverflow.com/problem/forbidden
            title: Forbidden
            status: 403
            instance: 48a7c13b-5301-4dab-92af-c3a1d3d4ce12
            detail: The authenticated client is does not have the required permissions.
    openapi_components-responses-TooManyRequestsError-6:
      description: |
        The number of requests per unit of time has exceeded the
        configured maximum
      headers:
        Retry-After:
          description: The number of seconds to wait before retry-ing the request
          schema:
            type: integer
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/openapi_components-schemas-ProblemDetail-3'
          example:
            type: https://api.silverflow.com/problem/too-many-requests
            title: Too Many Requests
            status: 429
            instance: ba1243a3-72e2-442f-85b2-fd07504aa2ab
            detail: The number of requests per unit of time has exceeded the configured maximum
    openapi_components-responses-InternalServerError-2:
      description: |
        The server encountered an unexpected condition.
        This may or may not be a temporary situation.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/InternalServerErrorProblemDetail'
          example:
            type: /silverflow/problems/internal-server-error
            title: Internal Server Error
            status: 500
            instance: b15ac28d-f854-464c-be37-6a4f6d5fe22c
            detail: The server encountered an unexpected condition.
    components-responses-ServiceUnavailableError:
      description: |
        The server was unable to process the request.
        This is a temporary condition. Please retry the request.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/openapi_components-schemas-ProblemDetail-3'
          example:
            type: https://api.silverflow.com/problem/service-unavailable
            title: Service Unavailable
            status: 503
            instance: 962a5782-39a0-42fd-9ef2-77c856e44748
            detail: The server was unable to process the request.
    components-responses-ConflictError:
      description: |
        The request could not be completed due to a conflict with the
        current state of the resources involved in the request.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/openapi_components-schemas-ProblemDetail-3'
          example:
            type: https://api.silverflow.com/problem/conflict
            title: Conflict
            status: 409
            instance: a1bc4575-9992-46a7-970d-0ad030072a50
            detail: |
              The request could not be completed due to a conflict
              with the current state of the resources involved in the request.
    responses-UnprocessableContentError:
      description: |
        The server was unable to process the request.
        This is a temporary condition. Please retry the request.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/openapi_components-schemas-ProblemDetail-3'
          example:
            type: https://api.silverflow.com/problem/unprocessable-content
            title: Unprocessable Content
            status: 422
            instance: ba1243a3-72e2-442f-85b2-fd07504aa3bd
            detail: The request body is not processable
    openapi_components-responses-NotFoundError-2:
      description: The resource identified in the request URL was not found
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/openapi_components-schemas-ProblemDetail-3'
          example:
            type: https://api.silverflow.com/problem/not-found
            title: Not Found
            status: 404
            instance: 1a9031a9-72d4-4534-88a5-e7777617000b
            detail: The resource identified in the request URL was not found
  examples:
    create-amex-sm-enrollment:
      summary: AMEX Sponsored Merchant Enrollment
      value:
        merchantKey: mct-123dinkqFqfq3q2f2adfa
        type: amex_sm
        binKey: bin-1QAl5suBCAwOrolEIAB2
        mid: UO2344SDDAUOGS
        doingBusinessAsName: ACME Corp.
        mcc: '0742'
        legalName: ACME Corporation
        phoneNumber: '0612345678'
        businessRegistrationNumber: REG123456
        signer:
          firstName: Jane
          lastName: Cardholder
          identificationNumber: ID123456
          dateOfBirth: 1993/05/02
          address:
            line1: Entrada 300
            city: Amsterdam
            postalCode: 1114AA
            countryCode:
              alpha3: NLD
    create-discover-mpr-enrollment:
      summary: Discover MPR Enrollment
      value:
        merchantKey: mct-123dinkqFqfq3q2f2adfa
        merchantType: self-managed-outlet
        type: discover-mpr
        binKey: bin-1QAl5suBCAwOrolEIAB2
        mid: UO2344SDDAUOGS
        doingBusinessAsName: ACME Corp.
        mcc: '0742'
        debtRepaymentIndicator: false
        businessPrincipal:
          firstName: John
          lastName: Cardholder
          socialSecurityNumber: '567891234'
          homeAddress:
            countryCode: USA
            stateOrProvince: CA
            city: Hill Valley
            line1: Riverside Drive
            postalCode: '91103'
        merchantStatus: open
    create-scof-enrollment:
      summary: SCOF Enrollment
      value:
        merchantKey: mct-123dinkqFqfq3q2f2adfa
        type: scof
        mid: UO2344SDDAUOGS
        binKey: bin-1QAl5suBCAwOrolEIAB2
        programType: merchant_obo
        programName: programEnrollmentName
    create-vau-enrollment:
      summary: VAU Enrollment
      value:
        merchantKey: mct-123dinkqFqfq3q2f2adfa
        type: vau
        binKey: bin-1QAl5suBCAwOrolEIAB2
        mid: UO2344SDDAUOGS
        mcc: '0742'
    create-vts-enrollment:
      summary: VTS Enrollment
      value:
        merchantKey: mct-123dinkqFqfq3q2f2adfa
        type: vts
        businessIdentification:
          type: VAT
          value: NL123456789B01
    create-enrollment-scof:
      summary: Creates an enrollment for a merchant acceptor
      value:
        key: enr-2gDxu06uE6ocfcvPj8K2
        status: active
        agentKey: cgt-28nJRFOK6lqRnBqJkyXg
        merchantKey: mct-28okZKr7v9rD4z1LX459
        type: scof
        enrollmentStatus: pending
        enrollmentDetail:
          key: cgt-28nJRFOK6lqRnBqJkyXg#mct-28okZKr7v9rD4z1LX459#scof#merchant_obo#1234#bin-1QAl5suBCAwOrolEIAB2#programEnrollmentName
          mid: '1234'
          binKey: bin-1QAl5suBCAwOrolEIAB2
          programType: merchant_obo
          programName: programEnrollmentName
        created: '2022-05-12T09:13:46.067Z'
        lastModified: '2022-05-12T09:13:46.099Z'
        version: 1
    list-screenings-response:
      summary: List screenings response
      value:
        offsetToken: 23fOLO8cmTcIe0PkDgKl23fOLO8cmTcIe0PkDgKl
        moreItems: true
        screenings:
          - key: scr-23fOLO8cmTcIe0PkDgKl
            agentKey: cgt-2VfOLO8cmTcIe0PkDgKl
            binKey: bin-2VfOLO8cmTcIe0PkDgKl
            merchantKey: mct-2456O7O8cmTcIe0PkDgKl
            status: active
            screeningStatus: pending
            screeningType: VMSS
            created: '2021-12-02T13:00:18.487Z'
            version: 1
            screeningDetail:
              bid: '10056588'
              doingBusinessAsName: ACME Corp. A/S
              tradeOverInternet: false
              businessPhoneNumbers:
                - '31201234567'
                - '31201234568'
              businessCategory: marketplace
              principals:
                - lastName: Doe
                  firstName: Jane
              websiteUrl: https://www.acme.com
              address:
                countryCode:
                  alpha2: NL
                  alpha3: NLD
                  numeric: '528'
                stateOrProvince: Westeros
                city: Braavos
                line1: Kings Road
                line2: '1'
                postalCode: 1103JT
          - key: scr-2VfOLO8cmTcIe0PkDgKl
            agentKey: cgt-2VfOLO8cmTcIe0PkDgKl
            binKey: bin-2VfOLO8cmTcIe0PkDgKl
            merchantKey: mct-2VfOLO8cmTcIe0PkDgKl
            status: active
            screeningStatus: pending
            screeningType: MATCH
            created: '2021-12-02T13:00:18.487Z'
            version: 1
            screeningDetail:
              doingBusinessAsName: ACME Corp. A/S
              acquirerIdCode: '123213'
              legalName: ACME Corp. A/S
              principals:
                - lastName: Doe
                  firstName: Jane
                  phoneNumber: '31201234567'
                  address:
                    countryCode:
                      alpha2: NL
                      alpha3: NLD
                      numeric: '528'
                    stateOrProvince: Westeros
                    city: Braavos
                    line1: Kings Road
                    line2: '1'
                    postalCode: 1103JT
              websiteUrl: https://www.acme.com
              address:
                countryCode:
                  alpha2: NL
                  alpha3: NLD
                  numeric: '528'
                stateOrProvince: Westeros
                city: Braavos
                line1: Kings Road
                line2: '1'
                postalCode: 1103JT
    screening-submit-request-mc-pro:
      summary: Create a screening request for MATCH_PRO
      value:
        screeningType: MATCH_PRO
        doingBusinessAsName: ACME Corp. A/S
        binKey: bin-123412414
        merchantKey: mct-123412414
        merchantPhoneNumber: '31641444444'
        merchantCategoryCode: '1234'
        principals:
          - lastName: Doe
            firstName: Jane
            phoneNumber: '31201234567'
            email: jane@doe.com
            address:
              countryCode:
                alpha2: NL
              stateOrProvince: Westeros
              city: Braavos
              line1: Kings Road
              line2: '1'
              postalCode: 1103JT
    screening-submit-request-visa:
      summary: Create a screening request for VMSS
      value:
        screeningType: VMSS
        doingBusinessAsName: ACME Corp. A/S
        binKey: bin-123412414
        merchantKey: mct-123412414
        tradeOverInternet: false
        businessPhoneNumbers:
          - '31201234567'
          - '31201234568'
        principals:
          - lastName: Doe
            firstName: Jane
        businessCategory: marketplace
    screening-submit-response-mc-pro:
      summary: Create a screening response MATCH_PRO
      value:
        key: scr-2VfOLO8cmTcIe0PkDgKl
        created: '2021-12-02T13:00:18.487Z'
        version: 1
        agentKey: cgt-2VfOLO8cmTcIe0PkDgKl
        binKey: bin-2VfOLO8cmTcIe0PkDgKl
        merchantKey: mct-2VfOLO8cmTcIe0PkDgKl
        status: active
        screeningStatus: pending
        screeningType: MATCH_PRO
        screeningDetail:
          doingBusinessAsName: ACME Corp. A/S
          acquirerIdCode: '123213'
          legalName: ACME Corp. A/S
          merchantCategoryCode: '5999'
          merchantPhoneNumber: '31850609160'
          principals:
            - lastName: Doe
              firstName: Jane
              phoneNumber: '31201234567'
              email: jane.doe@acme.com
              address:
                countryCode:
                  alpha2: NL
                  alpha3: NLD
                  numeric: '528'
                stateOrProvince: Westeros
                city: Braavos
                line1: Kings Road
                line2: '1'
                postalCode: 1103JT
          websiteUrl: https://www.acme.com
          address:
            countryCode:
              alpha2: NL
              alpha3: NLD
              numeric: '528'
            stateOrProvince: Westeros
            city: Braavos
            line1: Kings Road
            line2: '1'
            postalCode: 1103JT
    screening-submit-response-visa:
      summary: Create a screening response VMSS
      value:
        key: scr-2VfOLO8cmTcIe0PkDgKl
        created: '2021-12-02T13:00:18.487Z'
        version: 1
        agentKey: cgt-2VfOLO8cmTcIe0PkDgKl
        binKey: bin-2VfOLO8cmTcIe0PkDgKl
        merchantKey: mct-2VfOLO8cmTcIe0PkDgKl
        status: active
        screeningStatus: pending
        screeningType: VMSS
        screeningDetail:
          bid: '10056588'
          doingBusinessAsName: ACME Corp. A/S
          tradeOverInternet: false
          businessPhoneNumbers:
            - '31201234567'
            - '31201234568'
          businessCategory: marketplace
          principals:
            - lastName: Doe
              firstName: Jane
          websiteUrl: https://www.acme.com
          address:
            countryCode:
              alpha2: NL
              alpha3: NLD
              numeric: '528'
            stateOrProvince: Westeros
            city: Braavos
            line1: Kings Road
            line2: '1'
            postalCode: 1103JT
    get-screening-response-mc:
      summary: Get a MATCH screening response
      value:
        key: scr-2VfOLO8cmTcIe0PkDgKl
        agentKey: cgt-2VfOLO8cmTcIe0PkDgKl
        binKey: bin-2VfOLO8cmTcIe0PkDgKl
        merchantKey: mct-2VfOLO8cmTcIe0PkDgKl
        status: active
        screeningStatus: pending
        screeningType: MATCH
        created: '2021-12-02T13:00:18.487Z'
        version: 1
        totalNumberOfResults: 0
        screeningDetail:
          doingBusinessAsName: ACME Corp. A/S
          acquirerIdCode: '123213'
          legalName: ACME Corp. A/S
          principals:
            - lastName: Doe
              firstName: Jane
              phoneNumber: '31201234567'
              address:
                countryCode:
                  alpha2: NL
                  alpha3: NLD
                  numeric: '528'
                stateOrProvince: Westeros
                city: Braavos
                line1: Kings Road
                line2: '1'
                postalCode: 1103JT
          websiteUrl: https://www.acme.com
          address:
            countryCode:
              alpha2: NL
              alpha3: NLD
              numeric: '528'
            stateOrProvince: Westeros
            city: Braavos
            line1: Kings Road
            line2: '1'
            postalCode: 1103JT
    get-screening-response-visa:
      summary: Get a VMSS screening response
      value:
        key: scr-2VfOLO8cmTcIe0PkDgKl
        agentKey: cgt-2VfOLO8cmTcIe0PkDgKl
        binKey: bin-2VfOLO8cmTcIe0PkDgKl
        merchantKey: mct-2VfOLO8cmTcIe0PkDgKl
        status: active
        screeningStatus: pending
        screeningType: VMSS
        created: '2021-12-02T13:00:18.487Z'
        version: 1
        screeningDetail:
          bid: '10056588'
          doingBusinessAsName: ACME Corp. A/S
          tradeOverInternet: false
          businessPhoneNumbers:
            - '31201234567'
            - '31201234568'
          businessCategory: marketplace
          principals:
            - lastName: Doe
              firstName: Jane
          websiteUrl: https://www.acme.com
          address:
            countryCode:
              alpha2: NL
              alpha3: NLD
              numeric: '528'
            stateOrProvince: Westeros
            city: Braavos
            line1: Kings Road
            line2: '1'
            postalCode: 1103JT
    get-screening-response-mc-pro:
      summary: Get a MATCH_PRO screening response
      value:
        key: scr-2VfOLO8cmTcIe0PkDgKl
        agentKey: cgt-2VfOLO8cmTcIe0PkDgKl
        binKey: bin-2VfOLO8cmTcIe0PkDgKl
        merchantKey: mct-2VfOLO8cmTcIe0PkDgKl
        status: active
        screeningStatus: pending
        screeningType: MATCH_PRO
        created: '2021-12-02T13:00:18.487Z'
        version: 1
        totalNumberOfResults: 0
        screeningDetail:
          doingBusinessAsName: ACME Corp. A/S
          acquirerIdCode: '123213'
          legalName: ACME Corp. A/S
          merchantCategoryCode: '5999'
          merchantPhoneNumber: '31850609160'
          principals:
            - lastName: Doe
              firstName: Jane
              phoneNumber: '31201234567'
              email: jane.doe@acme.com
              address:
                countryCode:
                  alpha2: NL
                  alpha3: NLD
                  numeric: '528'
                stateOrProvince: Westeros
                city: Braavos
                line1: Kings Road
                line2: '1'
                postalCode: 1103JT
          websiteUrl: https://www.acme.com
          address:
            countryCode:
              alpha2: NL
              alpha3: NLD
              numeric: '528'
            stateOrProvince: Westeros
            city: Braavos
            line1: Kings Road
            line2: '1'
            postalCode: 1103JT
    list-screenings-no-match-response:
      summary: Result no match
      value:
        moreItems: false
        screeningResults: []
    list-screenings-partial-match-response:
      summary: Result with 2 partial match
      value:
        moreItems: false
        screeningResults:
          - terminationReason: common-point-of-purchase
            terminatedMerchant:
              acquirerIdCode: '123213'
              legalName:
                matchType: none
                value: ACME Corp. A/S
              doingBusinessAsName:
                matchType: none
                value: ACME Corp. A/S
              address:
                countryCode:
                  value: NLD
                  matchType: partial
                stateOrProvince:
                  value: Westeros
                  matchType: partial
                city:
                  value: Braavos
                  matchType: partial
                line1:
                  value: Kings Road
                  matchType: partial
                postalCode:
                  value: 1103JT
                  matchType: partial
              websiteUrl:
                matchType: phonetic
                value:
                  - https://www.aqme.com
              principals:
                - firstName:
                    value: Jane
                    matchType: none
                  lastName:
                    value: Doe
                    matchType: partial
                  address:
                    countryCode:
                      value: NLD
                      matchType: partial
                    stateOrProvince:
                      matchType: partial
                      value: Westeros
                    city:
                      matchType: partial
                      value: Braavos
                    line1:
                      matchType: partial
                      value: Kings Road
                    postalCode:
                      matchType: partial
                      value: 1103JT
                  phoneNumber:
                    value: '31201234567'
                    matchType: partial
          - terminationReason: excessive-chargebacks
            terminatedMerchant:
              acquirerIdCode: '2325'
              doingBusinessAsName:
                matchType: partial
                value: ACME Corp. A/S
              legalName:
                matchType: none
                value: ACME Corp. A/S
              address:
                countryCode:
                  value: NLD
                  matchType: partial
                stateOrProvince:
                  matchType: partial
                  value: Westeros
                city:
                  matchType: partial
                  value: Braavos
                line1:
                  matchType: partial
                  value: Kings Road
                postalCode:
                  matchType: partial
                  value: 1103JT
              websiteUrl:
                matchType: phonetic
                value:
                  - https://www.aqme.com
              principals:
                - firstName:
                    value: Jane
                    matchType: none
                  lastName:
                    value: Doe
                    matchType: partial
                  address:
                    countryCode:
                      value: NLD
                      matchType: partial
                    stateOrProvince:
                      matchType: partial
                      value: Westeros
                    city:
                      matchType: partial
                      value: Braavos
                    line1:
                      matchType: partial
                      value: Kings Road
                    postalCode:
                      matchType: partial
                      value: 1103JT
                  phoneNumber:
                    value: '31201234567'
                    matchType: partial
    get-agent:
      summary: Example agent
      value:
        key: cgt-1examplei0AXnCRKxRgu
        status: active
        name: Acme Payments
        description: Acme Payments agent
        legalName: Acme Pay Ltd.
        billingAddress:
          line1: 2000 Purchase Street
          line2: Unit 43-1
          city: Purchase
          stateOrProvince: New York
          postalCode: NY10577
          countryCode:
            alpha2: US
            alpha3: USA
            numeric: '840'
        registeredAddress:
          line1: 2000 Purchase Street
          line2: Unit 43-1
          city: Purchase
          stateOrProvince: New York
          postalCode: NY10577
          countryCode:
            alpha2: US
            alpha3: USA
            numeric: '840'
        binKeys:
          - bin-1exampleU99MEEuBhtnq
          - bin-2exampleD6FreWrw60Ip
        technicalEmails:
          - technical@example.com
        billingEmails:
          - billing@example.com
        settlementEmails:
          - settlement@example.com
        businessEmails:
          - business@example.com
        created: '2021-06-21T11:34:12.214Z'
        version: 1
    update-agent-change-emails:
      summary: Example request changing the address of the Agent
      value:
        description: Sanbox Agent
        technicalEmails:
          - tech@email.com
        billingEmails:
          - billing@email.com
        settlementEmails:
          - settlement@email.com
    update-agent-change-emails-response:
      summary: Example agent
      value:
        key: cgt-1examplei0AXnCRKxRgu
        status: active
        name: Acme Payments
        legalName: Acme Pay Ltd.
        description: Acme Payments
        billingAddress:
          line1: 2000 Purchase Street
          line2: Unit 43-1
          city: Purchase
          stateOrProvince: New York
          postalCode: NY10577
          countryCode:
            alpha2: US
            alpha3: USA
            numeric: '840'
        registeredAddress:
          line1: 2000 Purchase Street
          line2: Unit 43-1
          city: Purchase
          stateOrProvince: New York
          postalCode: NY10577
          countryCode:
            alpha2: US
            alpha3: USA
            numeric: '840'
        binKeys:
          - bin-1exampleU99MEEuBhtnq
          - bin-2exampleD6FreWrw60Ip
        technicalEmails:
          - technical@example.com
        billingEmails:
          - billing@example.com
        settlementEmails:
          - settlement@example.com
        businessEmails:
          - business@example.com
        created: '2021-06-21T11:19:31.121Z'
        version: 2
    agent-activation:
      summary: New API Key received after activating a new Management Agent
      value:
        key: apk-3kDnG9ibUpvF7qYW76VW
        status: active
        agentKey: cgt-3kDnG6yXVLyNT0HrTu1l
        description: API Key Management Key (created by Agent activation)
        permissions:
          - all:All
        secret: FWtnOOHAjbD6rNxWWEeVOCj7JXSEPGJQ
        created: '2023-08-18T12:53:35.570Z'
        version: 1
    create-agent-bearer-token:
      summary: Example request creating a bearer token for the authenticated Agent
      description: The token created by this request will expire after 30 minutes, grants the bearer the `disputes:All` permission and restricts usage to the specified IP ranges.
      value:
        expires: PT30M
        permissions:
          - disputes:All
        ipRanges:
          - 185.184.111.39/32
          - 102.177.115.120/29
    create-agent-bearer-token-merchant:
      summary: Example request creating a bearer token for a merchant
      description: The token created by this request will expire after 30 minutes and grants the bearer the `merchants:All` permissions with the scope limited to a particular merchant.
      value:
        expires: PT30M
        permissions:
          - merchants:All
        scope:
          merchantKey: mct-1hPdFhmgaBzMS191nIbJ
    create-api-key-ip-ranges:
      summary: Example request creating an API key with 'all:All' permission and ip restriction for two ranges, that is 'active'
      value:
        status: active
        description: IP-restricted key
        permissions:
          - all:All
        ipRanges:
          - 185.184.111.39/32
          - 102.177.115.120/29
          - 0.0.0.0/0
    update-api-key-remove-ip-ranges:
      summary: Example request removing ipRanges from an API Key
      value:
        ipRanges: []
    update-api-key-enable-mtls:
      summary: Example request requiring mTLS for an API Key. This can't be undone
      value:
        mtlsEnabled: true
    create-api-key-certificate:
      summary: Example request binding a client certificate that was issued by an intermediate CA
      value:
        certificate: |
          -----BEGIN CERTIFICATE-----
          ...
          -----END CERTIFICATE-----
        intermediates:
          - |
            -----BEGIN CERTIFICATE-----
            ...
            -----END CERTIFICATE-----
        description: Production client certificate, rotated 2026-06-01
    create-agent-trust-anchor:
      summary: Example request registering a root CA certificate as a Trust Anchor
      value:
        certificate: |
          -----BEGIN CERTIFICATE-----
          MIIB0jCCAXegAwIBAgIUKqvqzVOerRP1RO+q6X0qNthATrgwCgYIKoZIzj0EAwIw
          NjEVMBMGA1UECgwMRXhhbXBsZSBDb3JwMR0wGwYDVQQDDBRFeGFtcGxlIENvcnAg
          Um9vdCBDQTAeFw0yNjAxMDEwMDAwMDBaFw0zNjAxMDEwMDAwMDBaMDYxFTATBgNV
          BAoMDEV4YW1wbGUgQ29ycDEdMBsGA1UEAwwURXhhbXBsZSBDb3JwIFJvb3QgQ0Ew
          WTATBgcqhkjOPQIBBggqhkjOPQMBBwNCAAQMzTVWcnnKJIJa6mMYLupm/LPa78LL
          rvJwpkVUbBK0sgBC7Ln+Kyabps0NbaBPioGjOhgxMqwCdLokQJ1D5QQFo2MwYTAd
          BgNVHQ4EFgQUDoD9rOWtD9twnUcYt6ESH6Hmz2kwHwYDVR0jBBgwFoAUDoD9rOWt
          D9twnUcYt6ESH6Hmz2kwDwYDVR0TAQH/BAUwAwEB/zAOBgNVHQ8BAf8EBAMCAQYw
          CgYIKoZIzj0EAwIDSQAwRgIhAL1ch0cDjzLui09b3RAkjsQHbVPzjjXXa8vxAR1A
          iYK9AiEAoUd1b9f6cL3n8xXuLr1zyQT6606h745ae0/EcL70/FQ=
          -----END CERTIFICATE-----
        description: Example Corp Root CA
    create-agent-trust-anchor-not-a-ca:
      summary: The certificate is not a CA certificate
      value:
        type: /silverflow/problems/bad-request
        title: Bad Request
        status: 400
        detail: The certificate can't be used as a Trust Anchor
        instance: https://api.silverflow.co/v1/trustAnchors
        validationErrors:
          - instancePath: /body/certificate
            message: must be a CA certificate
    create-agent-trust-anchor-expired:
      summary: The certificate has expired
      value:
        type: /silverflow/problems/bad-request
        title: Bad Request
        status: 400
        detail: The certificate can't be used as a Trust Anchor
        instance: https://api.silverflow.co/v1/trustAnchors
        validationErrors:
          - instancePath: /body/certificate
            message: has expired
    InvalidOffsetTokenExample:
      summary: The offset token is invalid
      value:
        status: 400
        type: /silverflow/problems/invalid-offset-token
        title: Invalid Offset Token
        detail: The provided offset token is invalid.
        instance: /silverflow/9cb3486d-4fca-495b-af83-218b669c3bb8
    AuthenticationRequiredExample:
      summary: Invalid credentials
      value:
        type: /silverflow/problems/authentication-required
        title: Authentication Required
        status: 401
        detail: Authentication Required
        instance: /silverflow/8e445b2e-d745-4b38-a38d-781fc998e442
    TooManyRequestsErrorExample:
      value:
        type: /silverflow/problems/too-many-requests
        title: Too Many Requests
        status: 429
        detail: You have exceeded the rate limit. Please try again after the specified delay.
        instance: /silverflow/b0451a9d-f66d-4ef7-9f5d-d48064a2bb3e
    InternalServerErrorExample:
      summary: Internal server error
      value:
        status: 500
        type: /silverflow/problems/internal-server-error
        title: Internal Server Error
        detail: The server encountered an unexpected condition.
        instance: /silverflow/9cb3486d-4fca-495b-91f2-218b669c3aa6
    ThreeDsRequestWithMerchantAcceptorExample:
      summary: Initiating a 3DS authentication with merchant acceptor
      value:
        merchantAcceptorKey: mac-25oJsQ99GBpW23MQidKS
        card:
          number: '4200350000000801'
          expiryYear: 2023
          expiryMonth: 12
          holderName: Joe Cardholder
        type:
          intent: purchase
          order: checkout
        amount:
          value: 30000
          currency: EUR
        cardholderInformation:
          email: carlos.somoza@gmail.com
          phone:
            work:
              number: '063012345678'
              countryCode: '031'
            mobile:
              number: '063012344579'
              countryCode: '031'
        billingAddress:
          countryCode:
            alpha3: NLD
          stateOrProvince: NH
          city: Amsterdam
          line1: Langtown Road
          line2: '4200'
          postalCode: 1234BC
        transactionReference: FR1
        authenticationContext:
          notificationUrl: https://www.merchant-shop.com/notify
          browserData:
            acceptHeader: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8
            javascriptEnabled: true
            language: nl-NL
            userAgent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/70.0.3538.110 Safari/537.36
            screenWidth: '1536'
            screenHeight: '723'
            javaEnabled: true
            colorDepth: '24'
            timeZoneOffset: '0'
            browserIP: 123.123.123.123
    ThreeDsRequestWithMerchantInfoExample:
      summary: Initiating a 3DS authentication with standalone merchant info
      value:
        merchantInfo:
          acquirerBin: '123456'
          merchantId: MERCHANT123
          mcc: '5411'
          merchantName: Example Store Inc
          merchantCountryCode:
            alpha2: NL
          websiteUrl: https://example.com
          network: visa
        card:
          number: '4200350000000801'
          expiryYear: 2023
          expiryMonth: 12
          holderName: Joe Cardholder
        type:
          intent: purchase
          order: checkout
        amount:
          value: 30000
          currency: EUR
        cardholderInformation:
          email: carlos.somoza@gmail.com
          phone:
            work:
              number: '063012345678'
              countryCode: '031'
            mobile:
              number: '063012344579'
              countryCode: '031'
        billingAddress:
          countryCode:
            alpha3: NLD
          stateOrProvince: NH
          city: Amsterdam
          line1: Langtown Road
          line2: '4200'
          postalCode: 1234BC
        transactionReference: FR1
        authenticationContext:
          notificationUrl: https://www.merchant-shop.com/notify
          browserData:
            acceptHeader: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8
            javascriptEnabled: true
            language: nl-NL
            userAgent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/70.0.3538.110 Safari/537.36
            screenWidth: '1536'
            screenHeight: '723'
            javaEnabled: true
            colorDepth: '24'
            timeZoneOffset: '0'
            browserIP: 123.123.123.123
    ThreeDsFrictionlessResponseWithMerchantAcceptorExample:
      summary: The 3DS response in case of a frictionless flow
      value:
        key: tds-2lCYA85kxQaWoER37cJS
        merchantAcceptorRef:
          key: mac-25oJsQ99GBpWjcMQidKS
          version: 1
        amount:
          value: 30000
          currency: EUR
        network: visa
        protocolVersion: 2.2.0
        deviceChannel: browser
        flow: frictionless
        result: authenticated
        ares:
          messageType: ARes
          transStatus: 'Y'
          threeDSServerTransID: 54c64c00-eef8-4a8b-af44-fee8cc57e530
          messageVersion: 2.2.0
          dsTransID: 043cff46-f694-432a-863b-0338511dc420
          acsTransID: 2385d219-0f19-4e82-a318-511f249c6c21
          dsReferenceNumber: DS_LOA_12345-1234
          acsReferenceNumber: 3DS_ACS_REF_NUM
          acsOperatorID: AcsOpId-123456
          authenticationValue: AUTHENTICATION_VALUE
          eci: '05'
        transactionReference: FR1
        type:
          intent: purchase
          order: checkout
        created: '2022-06-16T09:49:42.757+00:00'
        version: 1
    ThreeDsChallengeResponseWithMerchantAcceptorExample:
      summary: The 3DS response in case of a challenge flow
      value:
        key: tds-2lCYLHDuRPW9MvQK3sd6
        merchantAcceptorRef:
          key: mac-25oJsQ99GBpWjcMQidKS
          version: 1
        amount:
          value: 30000
          currency: EUR
        network: visa
        protocolVersion: 2.2.0
        deviceChannel: browser
        flow: challenge
        result: challenge
        ares:
          messageType: ARes
          transStatus: C
          acsChallengeMandated: 'Y'
          acsURL: https://issuera-acs.com/challenge
          threeDSServerTransID: 20354d7a-e4fe-47af-8ff6-187bca92f3f9
          messageVersion: 2.2.0
          dsTransID: 8e9f9d7c-b263-4182-b9ec-52eff401ee33
          acsTransID: 17ce478b-14fd-11a7-9611-33f5ad36e53f
          acsReferenceNumber: 3DS_ACS_REF_NUM
          acsOperatorID: AcsOpId-123456
          dsReferenceNumber: DS_LOA_12345-1234
          authenticationType: '01'
        transactionReference: FR1
        type:
          intent: purchase
          order: checkout
        created: '2022-06-16T09:50:12.201+00:00'
        version: 1
    ThreeDsFrictionlessResponseWithMerchantInfoExample:
      summary: The 3DS response in case of a frictionless flow with standalone merchant info
      value:
        key: tds-4nBPQ92rYsTbWFD48eKU
        merchantInfo:
          acquirerBin: '123456'
          merchantId: MERCHANT123
          mcc: '5411'
          merchantName: Example Store Inc
          merchantCountryCode:
            alpha2: NL
            alpha3: NLD
            numeric: '528'
          websiteUrl: https://example.com
          network: visa
        amount:
          value: 30000
          currency: EUR
        network: visa
        protocolVersion: 2.2.0
        deviceChannel: browser
        flow: frictionless
        result: authenticated
        ares:
          messageType: ARes
          transStatus: 'Y'
          threeDSServerTransID: 9a1b3c5e-7f2d-4e8b-b6a0-2d4f6c8e0a12
          messageVersion: 2.2.0
          dsTransID: 5c7e9a1b-3d5f-4c2e-8b0a-6e8c0a2b4d6f
          acsTransID: 1e3a5c7b-9d1f-4b6e-a2c4-8e0a2c4e6a8c
          dsReferenceNumber: DS_LOA_12345-1234
          acsReferenceNumber: 3DS_ACS_REF_NUM
          acsOperatorID: AcsOpId-123456
          authenticationValue: AUTHENTICATION_VALUE
          eci: '05'
        transactionReference: FR1
        type:
          intent: purchase
          order: checkout
        created: '2022-06-16T09:49:42.757+00:00'
        version: 1
    ThreeDsChallengeResponseWithMerchantInfoExample:
      summary: The 3DS response in case of a challenge flow with standalone merchant info
      value:
        key: tds-5pCQR03sTuUcXGE59fLV
        merchantInfo:
          acquirerBin: '123456'
          merchantId: MERCHANT123
          mcc: '5411'
          merchantName: Example Store Inc
          merchantCountryCode:
            alpha2: NL
            alpha3: NLD
            numeric: '528'
          websiteUrl: https://example.com
          network: visa
        amount:
          value: 30000
          currency: EUR
        network: visa
        protocolVersion: 2.2.0
        deviceChannel: browser
        flow: challenge
        result: challenge
        ares:
          messageType: ARes
          transStatus: C
          acsChallengeMandated: 'Y'
          acsURL: https://issuera-acs.com/challenge
          threeDSServerTransID: 2b4d6f8a-0c2e-4a6c-8e0b-4f6a8c0e2b4d
          messageVersion: 2.2.0
          dsTransID: 6d8f0b2d-4e6a-4d0f-9c1b-7f9b1d3f5e7a
          acsTransID: 2f4a6c8e-0a2c-4e8a-b0c2-6a8c0a2e4f6c
          acsReferenceNumber: 3DS_ACS_REF_NUM
          acsOperatorID: AcsOpId-123456
          dsReferenceNumber: DS_LOA_12345-1234
          authenticationType: '01'
        transactionReference: FR1
        type:
          intent: purchase
          order: checkout
        created: '2022-06-16T09:50:12.201+00:00'
        version: 1
    InvalidRequestExample:
      summary: The request was semantically invalid
      value:
        type: /silverflow/problems/invalid-request
        title: Invalid Request
        status: 400
        detail: When 'type.order' is 'recurring', both 'recurringExpiry' and 'recurringFrequency' need to be set.
        instance: /silverflow/8e445b2e-d745-4b38-a38d-781fc998e442
    InvalidInputErrorExample:
      summary: The request was invalid
      value:
        type: /silverflow/problems/invalid-input
        title: Invalid Input
        status: 400
        detail: The request does not adhere to the defined API schema.
        instance: /silverflow/184b44aa-33a4-4244-9074-5eb49715aa90
        validationErrors:
          - path: /body/card/number
            errorCode: required.openapi.validation
            message: must match pattern "^[0-9]+$"
    ReferencedEntityNotFoundErrorExample:
      summary: A referenced entity was not found
      value:
        type: /silverflow/problems/3ds/referenced-entity-not-found
        title: Referenced Entity Not Found
        status: 409
        detail: The referenced acceptor with key 'mac-1eOdAHhgstYTUhlphPFf' was not found.
        instance: /silverflow/b0451a9d-f66d-4ef7-9f5d-d48064a2bb3e
    UnsupportedCardNetwork:
      summary: Unsupported card network
      value:
        type: /silverflow/problems/3ds/unsupported-card-network
        title: Unsupported Card Network
        status: 409
        detail: 'Merchant acceptors with a BIN with network ''discover'' are not supported. Use a merchant acceptor that uses a BIN with a supported card network: ''mastercard'', ''bancontact''.'
        instance: /silverflow/e21c1a9d-f66d-4ef7-9f5d-d48064a2bb5e
    UnsupportedCardNetworkRegion:
      summary: Unsupported region for the given card network
      value:
        type: /silverflow/problems/3ds/unsupported-card-network-region
        title: Unsupported Region for this Card Network
        status: 409
        detail: 'Amex Direct Merchant model not supported for country ''ATA'' (from merchant.registeredAddress.countryCode.alpha3). Supported regions: USA, CAN, MEX, ARG, EMEA, JAPA. Update merchant address or contact support.'
        instance: /silverflow/e21c1a9d-f66d-4ef7-9f5d-d48064a2bb5e
    UnsupportedProtocolVersionCardExample:
      summary: The account number does not support the supported 3DS versions
      value:
        type: /silverflow/problems/3ds/unsupported-protocol-version
        title: Unsupported Protocol Version
        status: 422
        detail: 'Provided account number is not enrolled for any of the supported 3DS protocol versions: ["2.1.0", "2.2.0"]'
        instance: /silverflow/e21c1a9d-f66d-4ef7-9f5d-d48064a2bb5e
    UnenrolledAccountNumberExample:
      summary: The account number is not enrolled for 3DS
      value:
        type: /silverflow/problems/3ds/unenrolled-account-number
        title: Unenrolled Account Number
        status: 422
        detail: The account number provided in 'card.number' is not enrolled for 3DS authentication.
        instance: /silverflow/e21c1a9d-f66d-4ef7-9f5d-d48064a2bb5e
    UnenrolledAcquireOrMerchantExample:
      summary: The acquirer or merchant is not enrolled for 3DS
      value:
        type: /silverflow/problems/3ds/unenrolled-acquirer-or-merchant
        title: Unenrolled Acquirer or Merchant
        status: 422
        detail: The acquirer or merchant has not been enrolled for 3D Secure authentication.
        instance: /silverflow/e1451a9d-f66d-4ef7-9f5d-d48064a5bb2c
    RequestWithMerchantAcceptor:
      summary: Initiating a 3RI authentication with merchant acceptor
      value:
        merchantAcceptorResolver:
          merchantAcceptorKey: mac-25oJsQ99GBpWjcMQidKS
        card:
          number: '4200350000000801'
          expiryYear: 2023
          expiryMonth: 12
          holderName: Joe Cardholder
        threeRiIndicator: recurring
        amount:
          value: 30000
          currency: EUR
        cardholderInformation:
          email: carlos.somoza@gmail.com
          phone:
            work:
              number: '063012345678'
              countryCode: '031'
            mobile:
              number: '063012344579'
              countryCode: '031'
        billingAddress:
          countryCode:
            alpha2: NL
          stateOrProvince: NH
          city: Amsterdam
          line1: Langtown Road
          line2: '4200'
          postalCode: 1234BC
        transactionReference: FR1
        recurringExpiry: '2024-03-10'
        recurringFrequency: 30
        threeDsPriorAuthenticationInfo:
          authMethod: challenge
          dateTime: '2022-06-15T14:30:00.000+00:00'
          acsTransId: 2385d219-0f19-4e82-a318-511f249c6c21
          dsTransId: 043cff46-f694-432a-863b-0338511dc420
    RequestWithMerchantInfo:
      summary: Initiating a 3RI authentication with standalone merchant info
      value:
        merchantInfo:
          acquirerBin: '123456'
          merchantId: MERCHANT123
          mcc: '5411'
          merchantName: Example Store Inc
          merchantCountryCode:
            alpha2: NL
          websiteUrl: https://example.com
          network: visa
        card:
          number: '4200350000000801'
          expiryYear: 2023
          expiryMonth: 12
          holderName: Joe Cardholder
        threeRiIndicator: recurring
        amount:
          value: 30000
          currency: EUR
        cardholderInformation:
          email: carlos.somoza@gmail.com
          phone:
            work:
              number: '063012345678'
              countryCode: '031'
            mobile:
              number: '063012344579'
              countryCode: '031'
        billingAddress:
          countryCode:
            alpha2: NL
          stateOrProvince: NH
          city: Amsterdam
          line1: Langtown Road
          line2: '4200'
          postalCode: 1234BC
        transactionReference: FR1
        recurringExpiry: '2024-03-10'
        recurringFrequency: 30
        threeDsPriorAuthenticationInfo:
          authMethod: challenge
          dateTime: '2022-06-15T14:30:00.000+00:00'
          acsTransId: 2385d219-0f19-4e82-a318-511f249c6c21
          dsTransId: 043cff46-f694-432a-863b-0338511dc420
    ResponseWithMerchantAcceptor:
      summary: The 3DS 3RI authenticated response
      value:
        key: tds-2lCYA85kxQaWoER37cJS
        merchantAcceptorRef:
          key: mac-25oJsQ99GBpWjcMQidKS
          version: 1
        amount:
          value: 30000
          currency: EUR
        network: visa
        protocolVersion: 2.2.0
        deviceChannel: 3ri
        result: authenticated
        fraudLiability: issuer
        threeRiIndicator: recurring
        ares:
          messageType: ARes
          transStatus: 'Y'
          threeDSServerTransID: 54c64c00-eef8-4a8b-af44-fee8cc57e530
          messageVersion: 2.2.0
          dsTransID: 043cff46-f694-432a-863b-0338511dc420
          acsTransID: 2385d219-0f19-4e82-a318-511f249c6c21
          dsReferenceNumber: DS_LOA_12345-1234
          acsReferenceNumber: 3DS_ACS_REF_NUM
          acsOperatorID: AcsOpId-123456
          authenticationValue: AUTHENTICATION_VALUE
          eci: '05'
        transactionReference: FR1
        created: '2022-06-16T09:49:42.757+00:00'
        version: 1
    ResponseWithMerchantInfo:
      summary: The 3DS 3RI authenticated response with standalone merchant info
      value:
        key: tds-3mZKB17pRrXnVGC94hLT
        merchantInfo:
          acquirerBin: '123456'
          merchantId: MERCHANT123
          mcc: '5411'
          merchantName: Example Store Inc
          merchantCountryCode:
            alpha2: NL
            alpha3: NLD
            numeric: '528'
          websiteUrl: https://example.com
          network: visa
        amount:
          value: 30000
          currency: EUR
        network: visa
        protocolVersion: 2.2.0
        deviceChannel: 3ri
        result: authenticated
        fraudLiability: issuer
        threeRiIndicator: recurring
        ares:
          messageType: ARes
          transStatus: 'Y'
          threeDSServerTransID: 7f3a9c12-b8e4-4d1f-a562-9e2c10b7f890
          messageVersion: 2.2.0
          dsTransID: 1b4e6d3c-72a1-4f8b-9c05-3d7e82a4f619
          acsTransID: 8d2f1e4a-c930-4b7d-a185-6e3c9d2b0f47
          dsReferenceNumber: DS_LOA_12345-1234
          acsReferenceNumber: 3DS_ACS_REF_NUM
          acsOperatorID: AcsOpId-123456
          authenticationValue: AUTHENTICATION_VALUE
          eci: '05'
        transactionReference: FR1
        created: '2022-06-16T09:49:42.757+00:00'
        version: 1
    UnsupportedProtocolVersion3riExample:
      summary: The account number does not support 3RI
      value:
        type: /silverflow/problems/3ds/unsupported-protocol-version
        title: Unsupported Protocol Version
        status: 422
        detail: 3RI authentication is only possible when the enrolled card number supports version 2.2.0 or higher. Please submit the transaction directly for authorization.
        instance: /silverflow/b0451a9d-f66d-4ef7-9f5d-d48064a2bb3e
    ThreeDsAuthenticatedChallengeResponseWithMerchantAcceptorExample:
      summary: The 3DS response after an authenticated challenge flow
      value:
        key: tds-3wjQy7nDTJG9MvPV22dJ
        merchantAcceptorRef:
          key: mac-28gKCpqIDKp8jVboUyr2
          version: 1
        amount:
          value: 30000
          currency: EUR
        network: visa
        flow: challenge
        result: authenticated
        protocolVersion: 2.2.0
        deviceChannel: browser
        ares:
          messageType: ARes
          transStatus: C
          acsChallengeMandated: 'Y'
          acsURL: https://issuera-acs.com/challenge
          threeDSServerTransID: e75139e4-ce9f-4d12-84aa-c8916f0087b7
          messageVersion: 2.2.0
          dsTransID: a9c308fd-ccd1-4e37-86aa-d063adea5ee9
          acsTransID: 63e8ee5b-fe5a-411e-8e7b-3ca9d12364c1
          acsReferenceNumber: 3DS_LOA_ACS_PPFU_020100_00009
          acsOperatorID: AcsOpId-4138359541
          dsReferenceNumber: DS_LOA_DIS_PPFU_020100_00010
          authenticationType: '01'
        rreq:
          threeDSServerTransID: e75139e4-ce9f-4d12-84aa-c8916f0087b7
          acsTransID: 63e8ee5b-fe5a-411e-8e7b-3ca9d12364c1
          dsTransID: a9c308fd-ccd1-4e37-86aa-d063adea5ee9
          authenticationMethod: '02'
          authenticationType: '02'
          authenticationValue: MTIzNDU2Nzg5MDA5ODc2NTQzMjE=
          eci: '05'
          interactionCounter: '01'
          messageCategory: '01'
          messageType: RReq
          messageVersion: 2.2.0
          transStatus: 'Y'
        transactionReference: test-reference
        type:
          intent: purchase
          order: checkout
        created: '2023-11-08T12:56:06.715Z'
        lastModified: '2023-11-08T12:56:09.943Z'
        version: 2
    ThreeDsAuthenticatedChallengeResponseWithMerchantInfoExample:
      summary: The 3DS response after an authenticated challenge flow with standalone merchant info
      value:
        key: tds-6qDRS14tVvVdYHF60gMW
        merchantInfo:
          acquirerBin: '123456'
          merchantId: MERCHANT123
          mcc: '5411'
          merchantName: Example Store Inc
          merchantCountryCode:
            alpha2: NL
            alpha3: NLD
            numeric: '528'
          websiteUrl: https://example.com
          network: visa
        amount:
          value: 30000
          currency: EUR
        network: visa
        flow: challenge
        result: authenticated
        protocolVersion: 2.2.0
        deviceChannel: browser
        ares:
          messageType: ARes
          transStatus: C
          acsChallengeMandated: 'Y'
          acsURL: https://issuera-acs.com/challenge
          threeDSServerTransID: 3b5f7a9c-1d2e-4f8b-a6c0-8e2a4c6e8a0c
          messageVersion: 2.2.0
          dsTransID: 7a9b1c3e-5d7f-4a2c-8e0b-2c4e6a8c0e2a
          acsTransID: 1c3e5a7b-9d1f-4c6e-a2c4-6e8a0c2e4a6c
          acsReferenceNumber: 3DS_LOA_ACS_PPFU_020100_00009
          acsOperatorID: AcsOpId-4138359541
          dsReferenceNumber: DS_LOA_DIS_PPFU_020100_00010
          authenticationType: '01'
        rreq:
          threeDSServerTransID: 3b5f7a9c-1d2e-4f8b-a6c0-8e2a4c6e8a0c
          acsTransID: 1c3e5a7b-9d1f-4c6e-a2c4-6e8a0c2e4a6c
          dsTransID: 7a9b1c3e-5d7f-4a2c-8e0b-2c4e6a8c0e2a
          authenticationMethod: '02'
          authenticationType: '02'
          authenticationValue: MTIzNDU2Nzg5MDA5ODc2NTQzMjE=
          eci: '05'
          interactionCounter: '01'
          messageCategory: '01'
          messageType: RReq
          messageVersion: 2.2.0
          transStatus: 'Y'
        transactionReference: test-reference
        type:
          intent: purchase
          order: checkout
        created: '2023-11-08T12:56:06.715Z'
        lastModified: '2023-11-08T12:56:09.943Z'
        version: 2
    EntityNotFoundExample:
      summary: The entity was not found
      value:
        status: 404
        type: /silverflow/problems/3ds/not-found
        title: Not Found
        detail: The threeDs with key 'tds-1234abc' was not found.
        instance: /silverflow/5a276b24-4c46-4c73-beb4-462a7c08f941
    Request:
      summary: Simple request to get card number's information.
      value:
        cardNumber: '4500000000005643'
    Response:
      summary: Response to simple request to get card number's information.
      value:
        - network: bancontact
          startRange: '4500000000000001'
          endRange: '4500000000009999'
          acsStartProtocolVersion: 2.2.0
          acsEndProtocolVersion: 2.2.0
          dsStartProtocolVersion: 2.2.0
          dsEndProtocolVersion: 2.2.0
          threeDSMethodURL: string
          acsInfoIndicator:
            - '01'
            - '02'
            - '10'
            - '11'
        - network: visa
          startRange: '4500000000000001'
          endRange: '4500000000009999'
          acsStartProtocolVersion: 2.2.0
          acsEndProtocolVersion: 2.2.0
          dsStartProtocolVersion: 2.2.0
          dsEndProtocolVersion: 2.2.0
          threeDSMethodURL: threeDsMethodUrl
          acsInfoIndicator:
            - '01'
            - '02'
            - '09'
            - '10'
    examples-InvalidInputErrorExample:
      value:
        type: /silverflow/problems/invalid-input
        title: Invalid Input
        status: 400
        detail: The request does not adhere to the defined API schema.
        instance: /silverflow/b4cc37a0-ab24-46b4-aa8c-cc2d6eddf1b6
        validationErrors:
          - path: /body/amount/value
            errorCode: type.openapi.validation
            message: must be integer
    AuthenticationRequiredErrorExample:
      value:
        status: 401
        type: /silverflow/problems/authentication-required
        title: Authentication Required
        detail: The credentials supplied in the request are either missing, invalid, or not applicable in the current scope.
        instance: /silverflow/8e445b2e-d745-4b38-a38d-781fc998e442
    ForbiddenErrorExample:
      value:
        status: 403
        type: /silverflow/problems/forbidden
        title: Forbidden
        detail: 'Authenticated user ''apk-33GjasQdWl4781OsErvi'' is missing the following permission(s): bep:Create.'
        instance: /silverflow/8e445b2e-d745-4b38-a38d-781fc998e442
    EntityNotFoundErrorExample:
      value:
        status: 404
        type: /silverflow/problems/entity-not-found
        title: Not Found
        detail: The requested entity was not found.
        instance: /silverflow/8e445b2e-d745-4b38-a38d-781fc998e442
    examples-InternalServerErrorExample:
      value:
        status: 500
        type: /silverflow/problems/internal-server-error
        title: Internal Server Error
        detail: The server encountered an unexpected condition.
        instance: /silverflow/8e445b2e-d745-4b38-a38d-781fc998e442
    examples-ReferencedEntityNotFoundErrorExample:
      value:
        status: 409
        type: /silverflow/problems/referenced-entity-not-found
        title: Referenced Entity Not Found
        detail: The referenced acceptor for merchant 'mct-1eOdAHhgstYTUhlphPFf' with network 'bancontact' and route 'example-route' was not found.
        instance: /silverflow/8e445b2e-d745-4b38-a38d-781fc998e442
    IncompatibleCardNetworkErrorExample:
      value:
        status: 409
        type: /silverflow/problems/bin/unexpected-network
        title: Incompatible Card Network
        detail: The merchant acceptor with key 'mac-1JRadf2ffdfrdPMf2XrS2' and network 'visa' is unsupported for creating BEP authentications. The expected network is 'bancontact'.
        instance: /silverflow/8e445b2e-d745-4b38-a38d-781fc998e442
    UnauthenticatedBepEntityErrorExample:
      value:
        status: 409
        type: /silverflow/problems/bep/unauthenticated
        title: Unauthenticated BEP Entity
        detail: The referenced BEP entity with key 'bep-1eOdAHhgstYTUhlphPFf' is negatively authenticated. It is not possible to submit an authorization result for it.
        instance: /silverflow/8e445b2e-d745-4b38-a38d-781fc998e442
    AuthorizationResultAlreadySubmittedErrorExample:
      value:
        status: 409
        type: /silverflow/problems/bep/authorization-result-already-submitted
        title: Authorization Result Already Submitted
        detail: An authorization result has already been submitted for the BEP entity with key 'bep-1eOdAHhgstYTUhlphPFf'.
        instance: /silverflow/8e445b2e-d745-4b38-a38d-781fc998e442
    components-examples-InvalidInputErrorExample:
      value:
        type: /silverflow/problems/invalid-input
        title: Invalid Input
        status: 400
        detail: The request does not adhere to the defined API schema.
        instance: /silverflow/b4cc37a0-ab24-46b4-aa8c-cc2d6eddf1b6
        validationErrors:
          - path: /body/card/number
            message: must have required property 'number'
            errorCode: required.openapi.validation
    examples-AuthenticationRequiredExample:
      value:
        type: /silverflow/problems/authentication-required
        title: Authentication Required
        status: 401
        detail: Authentication Required
        instance: /silverflow/8e445b2e-d745-4b38-a38d-781fc998e442
    examples-ForbiddenErrorExample:
      value:
        type: /silverflow/problems/forbidden
        title: Forbidden
        status: 403
        detail: 'Authenticated user ''apk-33GjasQdWl4781OsErvi'' is missing the following permission(s): charges:Create.'
        instance: /silverflow/b0451a9d-f66d-4ef7-9f5d-d48064a2bb3e
    examples-EntityNotFoundErrorExample:
      value:
        type: /silverflow/problems/entity-not-found
        title: Not Found
        status: 404
        detail: The charge with key 'chg-124gasduIEAFDS2boU1f3' was not found.
        instance: /silverflow/b0451a9d-f66d-4ef7-9f5d-d48064a2bb3e
    components-examples-InternalServerErrorExample:
      value:
        type: /silverflow/problems/internal-server-error
        title: Internal Server Error
        status: 500
        detail: The server encountered an unexpected condition.
        instance: /silverflow/b045229d-f66d-4ef7-9f5d-d48064a2aa39
    InvalidToOrFromDateErrorExample:
      value:
        type: /silverflow/problems/invalid-to-or-from-date
        title: Invalid To or From Date
        status: 400
        detail: Cannot list charges by transactionReference with from or to date.
        instance: /silverflow/b0451a9d-f66d-4ef7-9f5d-d48064a2bb3e
    examples-Request:
      summary: Create a Mail Order/Telephone Order (MOTO) charge
      value:
        merchantAcceptorResolver:
          merchantAcceptorKey: mac-25oJsQ99GBpWjcMQidKS
        card:
          number: '4761070000000905'
          expiryYear: 2030
          expiryMonth: 12
          cvc: '196'
          holderName: Joe Cardholder
        type:
          intent: purchase
          cardEntry: manual
          order: phone
        amount:
          value: 2000
          currency: EUR
    3ds-provided_Request:
      summary: Create charge with a 3DS result
      value:
        merchantAcceptorResolver:
          merchantAcceptorKey: mac-1eOdAHhgstYTUhlphPFf
        card:
          number: '4761070000000905'
          expiryYear: 2030
          expiryMonth: 12
          holderName: Joe Cardholder
        type:
          intent: purchase
          cardEntry: e-commerce
          order: checkout
        amount:
          value: 1800
          currency: EUR
        threeDsAuthenticationResult:
          authenticationValue: kANBCCDDYJYjadADpka8KoQBXM
          directoryServerTransId: 5340af8a-5505-4bf6-abcd-123412341234
    avs_Request:
      summary: Creating a charge with AVS authentication
      value:
        merchantAcceptorResolver:
          merchantAcceptorKey: mac-1eOdAHhgstYTUhlphPFf
        card:
          number: '4761070000000905'
          expiryYear: 2030
          expiryMonth: 12
          cvc: '196'
          holderName: Joe Cardholder
        type:
          intent: purchase
          cardEntry: e-commerce
          order: checkout
        amount:
          value: 2000
          currency: EUR
        avs: true
        billingAddress:
          countryCode:
            alpha3: NLD
          stateOrProvince: NH
          city: Amsterdam
          line1: Langtown Road
          line2: '4200'
          postalCode: 1234BC
    recurring_Request:
      summary: Creating the initial charge of a recurring sequence
      value:
        merchantAcceptorResolver:
          merchantAcceptorKey: mac-1eOdAHhgstYTUhlphPFf
        card:
          number: '4761070000000905'
          expiryYear: 2030
          expiryMonth: 12
          holderName: Joe Cardholder
        type:
          intent: purchase
          cardEntry: e-commerce
          order: recurring
        amount:
          value: 2599
          currency: EUR
    reservation_Request:
      summary: Create a charge with pre-authorization
      value:
        merchantAcceptorResolver:
          merchantAcceptorKey: mac-1eOdAHhgstYTUhlphPFf
        card:
          number: '4761070000000905'
          expiryYear: 2030
          expiryMonth: 12
          holderName: Joe Cardholder
        type:
          intent: reservation
          cardEntry: e-commerce
          order: checkout
        amount:
          value: 2000
          currency: EUR
        clearingMode: manual
    google-pay_Request:
      summary: Create a charge using a Google Pay token
      value:
        merchantAcceptorResolver:
          merchantAcceptorKey: mac-1eOdAHhgstYTUhlphPFf
        card:
          number: '4761070000000905'
          expiryYear: 2030
          expiryMonth: 12
          cvc: '196'
          holderName: Joe Cardholder
        tokenDetails:
          type: google-pay
          eci: '05'
          threeDsCryptogram: 112233445566778899001122334=
        type:
          intent: purchase
          cardEntry: token
          order: checkout
        amount:
          value: 2000
          currency: EUR
    network-token_Request:
      summary: Create a charge using a network token
      value:
        merchantAcceptorResolver:
          merchantAcceptorKey: mac-1eOdAHhgstYTUhlphPFf
        card:
          number: '4761070000000905'
          expiryYear: 2030
          expiryMonth: 12
          cvc: '196'
          holderName: Joe Cardholder
        tokenDetails:
          type: network
          tokenCryptogram: 112233445566778899001122334=
        type:
          intent: purchase
          cardEntry: token
          order: checkout
        amount:
          value: 2000
          currency: EUR
    network-token-3ds_Request:
      summary: Create a charge using a network token with 3DS authentication
      value:
        merchantAcceptorResolver:
          merchantAcceptorKey: mac-1eOdAHhgstYTUhlphPFf
        card:
          number: '4761070000000905'
          expiryYear: 2030
          expiryMonth: 12
          cvc: '196'
          holderName: Joe Cardholder
        tokenDetails:
          type: network
          tokenCryptogram: 112233445566778899001122334=
        type:
          intent: purchase
          cardEntry: token
          order: checkout
        amount:
          value: 2000
          currency: EUR
        threeDsAuthenticationResult:
          authenticationValue: kANBCCDDYJYjadADpka8KoQBXMqS
          directoryServerTransId: 5340af8a-5505-4bf6-abcd-123412341234
    moto_Response:
      summary: Create a Mail Order/Telephone Order (MOTO) charge
      value:
        key: chg-3k3RijlWHj0YkOdU2g9L
        merchantAcceptorRef:
          key: mac-25oJsQ99GBpWjcMQidKS
          version: 1
        card:
          maskedNumber: 47610700****0905
        amount:
          value: 2000
          currency: EUR
        type:
          intent: purchase
          cardEntry: manual
          order: phone
        clearingMode: auto
        status:
          authentication: none
          authorization: approved
          clearing: pending
        authentication:
          sca:
            compliance: out-of-scope
            complianceReason: moto
            method: none
          cvc: match
          avs: none
        localTransactionDateTime: '2023-08-14T12:23:43.014Z'
        fraudLiability: acquirer
        authorizationIsoFields:
          responseCode: '00'
          responseCodeDescription: Approved
          authorizationCode: 13AE53
          networkCode: '0000'
          systemTraceAuditNumber: '356286'
          retrievalReferenceNumber: '322612356286'
          eci: '01'
          networkSpecificFields:
            transactionIdentifier: '209324308044810'
            cvv2ResultCode: M
        created: '2023-08-14T12:23:43.014Z'
        version: 1
    3ds-provided_Response:
      summary: Create charge with a 3DS result
      value:
        key: chg-3nsA2szdjeRXOjVmDjcc
        merchantAcceptorRef:
          key: mac-1eOdAHhgstYTUhlphPFf
          version: 3
        card:
          maskedNumber: 47610700****0905
        amount:
          value: 1800
          currency: EUR
        type:
          intent: purchase
          cardEntry: e-commerce
          order: checkout
        clearingMode: auto
        status:
          authentication: authenticated
          authorization: approved
          clearing: pending
        authentication:
          sca:
            compliance: mandated
            complianceReason: mandated
            method: 3ds2
            result:
              directoryServerTransId: 5340af8a-5505-4bf6-abcd-123412341234
          cvc: none
          avs: none
        localTransactionDateTime: '2023-09-07T08:49:47.140Z'
        fraudLiability: issuer
        authorizationIsoFields:
          responseCode: '00'
          responseCodeDescription: Approved
          authorizationCode: 8ECD86
          systemTraceAuditNumber: '180178'
          retrievalReferenceNumber: '325008180178'
          eci: '05'
          networkCode: '0000'
          networkSpecificFields:
            transactionIdentifier: '156252053618075'
        created: '2023-09-07T08:49:47.140Z'
        version: 1
    avs_Response:
      summary: Creating a charge with AVS authentication
      value:
        key: chg-3nsNEo5srpD8XxLrbQ48
        merchantAcceptorRef:
          key: mac-1eOdAHhgstYTUhlphPFf
          version: 3
        card:
          maskedNumber: 47610700****0905
        amount:
          value: 2000
          currency: EUR
        type:
          intent: purchase
          cardEntry: e-commerce
          order: checkout
        clearingMode: auto
        status:
          authentication: none
          authorization: approved
          clearing: pending
        authentication:
          sca:
            compliance: out-of-scope
            complianceReason: none
            method: none
          cvc: none
          avs: match
        localTransactionDateTime: '2023-09-07T09:25:34.184Z'
        fraudLiability: acquirer
        authorizationIsoFields:
          responseCode: '00'
          responseCodeDescription: Approved
          authorizationCode: 0EDA5E
          systemTraceAuditNumber: '180295'
          retrievalReferenceNumber: '325009180295'
          eci: '07'
          networkCode: '0000'
          networkSpecificFields:
            transactionIdentifier: '262649890621030'
            cvv2ResultCode: C
            avsResultCode: 'Y'
        billingAddress:
          countryCode:
            alpha2: NL
            alpha3: NLD
            numeric: '528'
          stateOrProvince: NH
          city: Amsterdam
          line1: Langtown Road
          line2: '4200'
          postalCode: 1234BC
        created: '2023-09-07T09:25:34.184Z'
        version: 1
    recurring_Response:
      summary: Creating the initial charge of a recurring sequence
      value:
        key: chg-3nt0YDfssspoTmAONWxa
        merchantAcceptorRef:
          key: mac-1eOdAHhgstYTUhlphPFf
          version: 3
        card:
          maskedNumber: 47610700****0905
        amount:
          value: 2000
          currency: EUR
        type:
          intent: purchase
          cardEntry: e-commerce
          order: recurring
          sequence: initial
        clearingMode: auto
        status:
          authentication: none
          authorization: approved
          clearing: pending
        authentication:
          sca:
            compliance: out-of-scope
            complianceReason: none
            method: none
          cvc: none
          avs: none
        localTransactionDateTime: '2023-09-07T10:00:36.241Z'
        fraudLiability: acquirer
        authorizationIsoFields:
          responseCode: '00'
          responseCodeDescription: Approved
          authorizationCode: F6D651
          systemTraceAuditNumber: '180298'
          retrievalReferenceNumber: '325010180298'
          eci: '07'
          networkCode: '0000'
          networkSpecificFields:
            transactionIdentifier: '230022687321855'
        created: '2023-09-07T10:00:36.241Z'
        version: 1
    reservation_Response:
      summary: Create a charge with pre-authorization
      value:
        key: chg-3nsVGucquuDDcMbHnEo0
        merchantAcceptorRef:
          key: mac-1eOdAHhgstYTUhlphPFf
          version: 3
        card:
          maskedNumber: 47610700****0905
        amount:
          value: 2000
          currency: EUR
        type:
          intent: reservation
          cardEntry: e-commerce
          order: checkout
        clearingMode: manual
        status:
          authentication: none
          authorization: approved
          clearing: pending
        authentication:
          sca:
            compliance: out-of-scope
            complianceReason: none
            method: none
          cvc: none
          avs: none
        localTransactionDateTime: '2023-09-07T09:46:41.401Z'
        fraudLiability: acquirer
        authorizationIsoFields:
          responseCode: '00'
          responseCodeDescription: Approved
          authorizationCode: 84D28D
          systemTraceAuditNumber: '180296'
          retrievalReferenceNumber: '325009180296'
          eci: '07'
          networkCode: '0000'
          networkSpecificFields:
            transactionIdentifier: '188781568925096'
        created: '2023-09-07T09:46:41.401Z'
        version: 1
    google-pay_Response:
      summary: Create a charge using a Google Pay token
      value:
        key: chg-1e1dAHhgstYTUhlphPzZ
        merchantAcceptorRef:
          key: mac-1eOdAHhgstYTUhlphPFf
          version: 1
        card:
          maskedNumber: 47610700****0905
        tokenDetails:
          type: google-pay
          eci: '05'
        amount:
          value: 2000
          currency: EUR
        type:
          intent: purchase
          cardEntry: token
          order: checkout
        clearingMode: auto
        status:
          authentication: none
          authorization: approved
          clearing: pending
        authentication:
          sca:
            compliance: out-of-scope
            complianceReason: moto
            method: none
          cvc: match
          avs: none
        localTransactionDateTime: '2019-08-24T14:15:22Z'
        fraudLiability: acquirer
        authorizationIsoFields:
          responseCode: '00'
          responseCodeDescription: Approved
          authorizationCode: 4A4316
          networkCode: '0000'
          systemTraceAuditNumber: '123456'
          retrievalReferenceNumber: '131608123456'
          eci: '05'
          networkSpecificFields:
            transactionIdentifier: '195764913831324'
            cvv2ResultCode: M
        created: '2019-08-24T14:15:22Z'
        version: 1
    network-token_Response:
      summary: Create a charge using a network token
      value:
        key: chg-1e1dAHhgstYTUhlphPzZ
        merchantAcceptorRef:
          key: mac-1eOdAHhgstYTUhlphPFf
          version: 1
        card:
          maskedNumber: 47610700****0905
        tokenDetails:
          type: network
        amount:
          value: 2000
          currency: EUR
        type:
          intent: purchase
          cardEntry: token
          order: checkout
        clearingMode: auto
        status:
          authentication: none
          authorization: approved
          clearing: pending
        authentication:
          sca:
            compliance: out-of-scope
            complianceReason: moto
            method: none
          cvc: not-processed
          avs: none
        localTransactionDateTime: '2019-08-24T14:15:22Z'
        fraudLiability: acquirer
        authorizationIsoFields:
          responseCode: '00'
          responseCodeDescription: Approved
          authorizationCode: 4A4316
          networkCode: '0000'
          systemTraceAuditNumber: '123456'
          retrievalReferenceNumber: '131608123456'
          eci: '05'
          networkSpecificFields:
            transactionIdentifier: '195764913831324'
            cvv2ResultCode: P
        created: '2019-08-24T14:15:22Z'
        version: 1
    network-token-3ds_Response:
      summary: Create a charge using a network token with 3DS authentication
      value:
        key: chg-1e1dAHhgstYTUhlphPzZ
        merchantAcceptorRef:
          key: mac-1eOdAHhgstYTUhlphPFf
          version: 1
        card:
          maskedNumber: 47610700****0905
        tokenDetails:
          type: network
        amount:
          value: 2000
          currency: EUR
        type:
          intent: purchase
          cardEntry: token
          order: checkout
        clearingMode: auto
        status:
          authentication: none
          authorization: approved
          clearing: pending
        authentication:
          sca:
            compliance: mandated
            complianceReason: mandated
            method: 3ds2
            result:
              directoryServerTransId: 5340af8a-5505-4bf6-abcd-123412341234
          cvc: not-processed
          avs: none
        localTransactionDateTime: '2019-08-24T14:15:22Z'
        fraudLiability: acquirer
        authorizationIsoFields:
          responseCode: '00'
          responseCodeDescription: Approved
          authorizationCode: 4A4316
          networkCode: '0000'
          systemTraceAuditNumber: '123456'
          retrievalReferenceNumber: '131608123456'
          eci: '05'
          networkSpecificFields:
            transactionIdentifier: '195764913831324'
            cvv2ResultCode: P
        created: '2019-08-24T14:15:22Z'
        version: 1
    InvalidRequestErrorExample:
      value:
        type: /silverflow/problems/charge/invalid-request
        title: Invalid Request
        status: 400
        detail: Cannot create the charge due to one or more errors in the charge request.
        instance: /silverflow/b0451a9d-f66d-4ef7-9f5d-d48064a2bb3e
    components-examples-ReferencedEntityNotFoundErrorExample:
      value:
        type: /silverflow/problems/referenced-entity-not-found
        title: Referenced Entity Not Found
        status: 409
        detail: The referenced acceptor with key 'mac-1eOdAHhgstYTUhlphPFf' was not found.
        instance: /silverflow/b0451a9d-f66d-4ef7-9f5d-d48064a2bb3e
    CannotDetermineCardNetworkErrorExample:
      value:
        type: /silverflow/problems/charge/cannot-determine-card-network-by-card-number
        title: Cannot Determine Card Network By Card Number
        status: 409
        detail: Could not determine a card network for the provided `cardNumber`.
        instance: /silverflow/b0451a9d-f66d-4ef7-9f5d-d48064a2bb3e
    examples-IncompatibleCardNetworkErrorExample:
      value:
        type: /silverflow/problems/bin/unexpected-network
        title: Incompatible Card Network
        status: 409
        detail: The provided card number is not compatible with the merchant acceptor, expected card number to be of network 'visa'.
        instance: /silverflow/b0451a9d-f66d-4ef7-9f5d-d48064a2bb3e
    BlockedMerchantAcceptorErrorExample:
      value:
        type: /silverflow/problems/merchant-acceptor/blocked
        title: Blocked Merchant Acceptor
        status: 409
        detail: The merchant acceptor with key 'mac-1eOdAHhgstYTUhlphPFf' is blocked from creating charges.
        instance: /silverflow/b0451a9d-f66d-4ef7-9f5d-d48064a2bb3e
    BlockedBinErrorExample:
      value:
        type: /silverflow/problems/merchant-acceptor/blocked
        title: Blocked Merchant Acceptor
        status: 409
        detail: This BIN is not permitted to submit charges.
        instance: /silverflow/a1451a9d-f66d-4ef7-8f5d-d48564a2bb3a
    NonMatchingIdempontentRequestErrorExample:
      value:
        type: /silverflow/problems/idempotency/request-mismatch
        title: Idempotent Request Mismatch
        status: 409
        detail: The retried request does not have the same body or URL as the initial request.
        instance: /silverflow/b0451a9d-f66d-4ef7-9f5d-d48064a2bb3e
    UnexpectedMessageSystemExample:
      value:
        type: /silverflow/problems/bin/unexpected-message-system
        title: Unexpected Message System
        status: 409
        detail: The merchant acceptor uses a BIN with message system 'SMS', expected 'DMS'.
        instance: /silverflow/b045229d-f66d-4ef7-9f5d-d48064a2aa39
    IncompatibleCardNetworkForOperationExample:
      value:
        type: /silverflow/problems/charge/incompatible-card-network-for-operation
        title: Incompatible Network For Operation
        status: 409
        detail: Operation 'reverse' is not supported for network 'bancontact'
        instance: /silverflow/b045229d-f66d-4ef7-9f5d-d48064a2aa39
    IncompatibleCardErrorExample:
      value:
        type: /silverflow/problems/charge/incompatible-card
        title: Incompatible Card
        status: 409
        detail: The country code of both the merchant and the card is 'NLD', but the card is a cross-border-only card.
        instance: /silverflow/b045229d-f66d-4ef7-9f5d-d48064a2aa39
    IdempotentRequestIsStillBeingProcessedExample:
      value:
        type: /silverflow/problems/idempotency/request-is-still-being-processed
        title: Request Is Still Being Processed
        status: 409
        detail: The previous request with idempotency key '28gKCluIEKp8jVboUyr2' is still being processed. Please retry.
        instance: /silverflow/b0451a9d-f66d-4ef7-9f5d-d48064a2bb3e
    UnexpectedCurrencyErrorExample:
      value:
        type: /silverflow/problems/bin/unexpected-currency
        title: Unexpected Currency
        status: 409
        detail: Bin 'bin-1iXRhbDjrT2Yxvo0mSZN' only supports currency 'EUR', but the charge request provides 'USD' as 'amount.currency'.
        instance: /silverflow/b0451a9d-f66d-4ef7-9f5d-d48064a2bb3e
    IncompatibleAuthenticationStatusExample:
      value:
        type: /silverflow/problems/charge/incompatible-authentication-status
        title: Incompatible Authentication Status
        status: 409
        detail: Authentication status 'non-authenticated' is not supported for this operation.'
        instance: /silverflow/b045229d-f66d-4ef7-9f5d-d48064a2aa39
    funding_Request:
      summary: Create a funding charge
      value:
        merchantAcceptorResolver:
          merchantAcceptorKey: mac-1eOdAHhgstYTUhlphPFf
        card:
          number: '4761070000000905'
          expiryYear: 2030
          expiryMonth: 12
          holderName: Joe Cardholder
        type:
          intent: funding
          cardEntry: e-commerce
          order: checkout
          fundingType: account-to-account
        amount:
          value: 200
          currency: EUR
        receiver:
          firstName: Joe
          lastName: Cardholder
          accountNumber: '4200350000000801'
          accountNumberType: card-account
          address:
            line1: Entrada 300
            city: Amsterdam
            stateOrProvince: NL
            postalCode: 1114AA
            countryCode:
              alpha2: NL
        sender:
          firstName: Joy
          lastName: Cardholder
          accountNumber: '4761340000000035'
          accountNumberType: card-account
          address:
            line1: Entrada 600
            city: Amsterdam
            stateOrProvince: NL
            postalCode: 1114AA
            countryCode:
              alpha2: NL
        transactionReference: FR1
    funding_Response:
      summary: Create a funding charge
      value:
        merchantAcceptorRef:
          key: mac-3rCoHlIyxYkhLa0YRTzT
          version: 1
        key: chg-3sBWL1ZGCvgzMufWEjMy
        card:
          maskedNumber: 47610700****0905
        amount:
          value: 200
          currency: EUR
        type:
          intent: funding
          fundingType: account-to-account
          cardEntry: e-commerce
          order: checkout
        localTransactionDateTime: '2023-10-13T12:24:08.501Z'
        transactionReference: FR1
        receiver:
          firstName: Joe
          lastName: Cardholder
          accountNumber: '**0801'
          accountNumberType: card-account
          address:
            countryCode:
              alpha2: NL
              alpha3: NLD
              numeric: '528'
            stateOrProvince: NL
            city: Amsterdam
            line1: Entrada 300
            postalCode: 1114AA
        sender:
          firstName: Joy
          lastName: Cardholder
          accountNumber: '**0035'
          accountNumberType: card-account
          address:
            countryCode:
              alpha2: NL
              alpha3: NLD
              numeric: '528'
            stateOrProvince: NL
            city: Amsterdam
            line1: Entrada 300
            postalCode: 1114AA
        status:
          authentication: none
          authorization: approved
          clearing: none
        fraudLiability: acquirer
        created: '2023-10-13T12:24:08.502Z'
        version: 1
        authentication:
          sca:
            compliance: out-of-scope
            complianceReason: none
            method: none
          cvc: none
          avs: none
        authorizationIsoFields:
          responseCode: '00'
          responseCodeDescription: Approved
          systemTraceAuditNumber: '669292'
          retrievalReferenceNumber: '328612669292'
          eci: none
          networkCode: '0000'
          networkSpecificFields:
            transactionIdentifier: unknown
        clearingMode: none
    IncompatibleMccErrorExample:
      value:
        type: /silverflow/problems/merchant-acceptor/incompatible-mcc
        title: Incompatible Merchant Category Code
        status: 409
        detail: The merchant acceptor with key 'mac-g4EaiVHfd2qwAVuS6Gv' has MCC '8398', but expected '7995'.
        instance: /silverflow/b0451a9d-f66d-4ef7-9f5d-d48064a2bb3e
    payout_Request:
      summary: Create a gaming payout charge
      value:
        merchantAcceptorResolver:
          merchantAcceptorKey: mac-1eOdAHhgstYTUhlphPFf
        card:
          number: '4761070000000905'
          expiryYear: 2030
          expiryMonth: 12
          cvc: '196'
          holderName: Joe Cardholder
        type:
          intent: payout
          cardEntry: e-commerce
          order: checkout
          payoutType: general-funds-disbursement
        amount:
          value: 100
          currency: EUR
        sender:
          firstName: John
          lastName: Doe
          address:
            line1: 2000 Purchase Street
            line2: Unit 43-1
            city: Purchase
            stateOrProvince: New York
            postalCode: NY10577
            countryCode:
              alpha2: US
    payout_Response:
      summary: Create a gaming payout charge
      value:
        key: chg-3llz36aua7HZLDG2aSpE
        merchantAcceptorRef:
          key: mac-1eOdAHhgstYTUhlphPFf
          version: 1
        card:
          maskedNumber: 47610700****0905
        amount:
          value: 100
          currency: EUR
        localTransactionDateTime: '2023-08-23T12:55:09.425Z'
        type:
          intent: payout
          cardEntry: e-commerce
          order: checkout
          payoutType: general-funds-disbursement
        sender:
          firstName: John
          lastName: Doe
          address:
            countryCode:
              numeric: '840'
              alpha2: US
              alpha3: USA
            stateOrProvince: New York
            city: Purchase
            line1: 2000 Purchase Street
            line2: Unit 43-1
            postalCode: NY10577
        status:
          authentication: none
          authorization: approved
          clearing: pending
        created: '2023-08-23T12:55:09.425Z'
        version: 1
        authentication:
          sca:
            compliance: out-of-scope
            complianceReason: none
            method: none
          cvc: match
          avs: none
        authorizationIsoFields:
          responseCode: '00'
          responseCodeDescription: Approved
          authorizationCode: A68B0A
          systemTraceAuditNumber: '657595'
          retrievalReferenceNumber: '323512657595'
          eci: '0'
          networkCode: MCS
          networkSpecificFields:
            traceId: 'MCS4056680527  '
            banknetReference: '405668'
        clearingMode: none
    online-pin_Request:
      summary: Create POS charge with online PIN
      value:
        merchantAcceptorResolver:
          merchantAcceptorKey: mac-1eOdAHhgstYTUhlphPFf
        card:
          number: '5286940020000205'
          expiryYear: 2030
          expiryMonth: 12
        amount:
          value: 2050
          currency: EUR
        type:
          intent: purchase
          cardEntry: terminal
          order: counter
          terminalEntryMode: contactless
        track2Data: 5286940020000205D30122010123456789
        emvData: 820219808407A00000000410109505000000800101020880
        pinBlock:
          block: D766AAA13ED5CA50
          format: ISO-0
          zoneId: pos-gateway
          keyId: '0001'
        terminal:
          id: 17s2d469
          type: softpos
          attended: true
          capabilities:
            - contactlessChip
            - noCvm
            - onlinePin
        clearingMode: auto
    manual-entry_Request:
      summary: Create POS charge with manual entry
      value:
        merchantAcceptorResolver:
          merchantAcceptorKey: mac-1eOdAHhgstYTUhlphPFf
        card:
          number: '5286940020000205'
          expiryYear: 2030
          expiryMonth: 12
        amount:
          value: 2050
          currency: EUR
        type:
          intent: purchase
          cardEntry: terminal
          order: counter
          terminalEntryMode: manual-entry
        terminal:
          id: 17s2d469
          type: pos
          attended: true
          capabilities:
            - keyEntry
            - contactChip
            - contactlessChip
            - noCvm
            - onlinePin
            - signature
            - oneTap
        pointOfSaleAddress:
          countryCode:
            alpha2: NL
          city: Amsterdam
          line1: Damrak 1
          postalCode: 1012LG
        clearingMode: auto
    examples-Response:
      summary: Create POS charge with online PIN
      value:
        key: chg-3pkSK2b2ES9ZTiYM4GWZ
        merchantAcceptorRef:
          key: mac-1TQ4EL0rI3Uz06VF2a0f
          version: 1
        card:
          maskedNumber: 52869400****0205
        amount:
          value: 2050
          currency: EUR
        type:
          intent: purchase
          cardEntry: terminal
          order: counter
          terminalEntryMode: contactless
        clearingMode: auto
        status:
          authentication: none
          authorization: approved
          clearing: pending
        localTransactionDateTime: '2023-09-20T12:46:05.516Z'
        authorizationIsoFields:
          responseCode: '00'
          responseCodeDescription: Approved
          authorizationCode: '547158'
          systemTraceAuditNumber: '665356'
          retrievalReferenceNumber: '326312665356'
          eci: '00'
          networkCode: MCS
          networkSpecificFields:
            traceId: 'MCS8428230527  '
            banknetReference: '842823'
        terminal:
          id: 17s2d469
          type: softpos
          attended: true
          capabilities:
            - contactlessChip
            - noCvm
            - onlinePin
        created: '2023-09-20T12:46:05.516Z'
        version: 1
    manual-entry_Response:
      summary: Create POS charge with manual entry
      value:
        key: chg-3pkWfhw0Sc3JlIiWiub2
        merchantAcceptorRef:
          key: mac-1TQ4EL0rI3Uz06VF2a0f
          version: 1
        card:
          maskedNumber: 52869400****0205
        amount:
          value: 2050
          currency: EUR
        type:
          intent: purchase
          cardEntry: terminal
          order: counter
          terminalEntryMode: manual-entry
        clearingMode: auto
        status:
          authentication: none
          authorization: approved
          clearing: pending
        localTransactionDateTime: '2023-09-20T12:55:18.216Z'
        authorizationIsoFields:
          responseCode: '00'
          responseCodeDescription: Approved
          authorizationCode: 07F3CF
          systemTraceAuditNumber: '669292'
          retrievalReferenceNumber: '326312669292'
          eci: '00'
          networkCode: MCS
          networkSpecificFields:
            traceId: 'MCS7915710527  '
            banknetReference: '791571'
        terminal:
          id: 17s2d469
          type: softpos
          attended: true
          capabilities:
            - contactlessChip
            - noCvm
            - onlinePin
        pointOfSaleAddress:
          countryCode:
            alpha2: NL
            alpha3: NLD
            numeric: '528'
          city: Amsterdam
          line1: Damrak 1
          postalCode: 1012LG
        created: '2023-09-20T12:55:18.216Z'
        version: 1
    MissingPosAddressForPosChargeErrorExample:
      value:
        type: /silverflow/problems/merchant-acceptor/missing-pos-address
        title: Missing Point of Sale Address
        status: 409
        detail: Neither the charge request nor the merchant acceptor with key 'mac-34EaiVHSeqwAVuS6Gvd' has a 'pointOfSaleAddress'.
        instance: /silverflow/b0451a9d-f66d-4ef7-9f5d-d48064a2bb3e
    MissingPosAddressErrorExample:
      value:
        type: /silverflow/problems/merchant-acceptor/missing-pos-address
        title: Missing Point of Sale Address
        status: 409
        detail: The merchant acceptor with key 'mac-34EaiVHSeqwAVuS6Gvd' is missing 'pointOfSaleAddress'.
        instance: /silverflow/b0451a9d-f66d-4ef7-9f5d-d48064a2bb3e
    mit-from-initial-charge_Request:
      summary: Create a MIT/recurring charge from an initial charge
      value:
        type:
          intent: purchase
          cardEntry: card-on-file
          order: recurring
        amount:
          value: 2599
          currency: EUR
        clearingMode: auto
    mit-from-initial-charge_Response:
      summary: Create a MIT/recurring charge from an initial charge
      value:
        key: chg-3llBLAFLn7pDlTd4lOIS
        merchantAcceptorRef:
          key: mac-3d4d3jOhg5GcI9ebskOP
          version: 1
        card:
          maskedNumber: 52869400****0205
        amount:
          value: 2599
          currency: EUR
        type:
          intent: purchase
          cardEntry: card-on-file
          order: recurring
          sequence: subsequent
        clearingMode: auto
        status:
          authentication: none
          authorization: approved
          clearing: pending
        authentication:
          sca:
            compliance: out-of-scope
            complianceReason: none
            method: none
          cvc: none
          avs: none
        localTransactionDateTime: '2023-08-23T13:02:18.087Z'
        fraudLiability: acquirer
        authorizationIsoFields:
          responseCode: '00'
          responseCodeDescription: Approved
          authorizationCode: A2B1E6
          systemTraceAuditNumber: '657599'
          retrievalReferenceNumber: '323513657599'
          eci: '0'
          networkCode: MCS
          networkSpecificFields:
            traceId: 'MCS5047710527  '
            banknetReference: '504771'
        initialChargeKey: chg-3llBJMLweDpJu98qYrim
        created: '2023-08-23T13:02:18.088Z'
        version: 1
    UnexpectedSequenceErrorExample:
      value:
        type: /silverflow/problems/charge/unexpected-sequence
        title: Unexpected Sequence
        status: 400
        detail: The initial charge with key 'chg-4R5t0h2Z1ll7tV5AMAS4' was expected to have a 'type.sequence' of 'initial'. To have that, it needs to have a 'type.order' of 'ucof', 'recurring', 'installment', or 'standing-order'.
        instance: /silverflow/27cc70fa-05f3-4757-932b-ecda1999d01d
    MissingNetworkReferenceErrorExample:
      value:
        type: /silverflow/problems/charge/missing-network-reference
        title: Missing Network Reference in Initial Charge
        status: 409
        detail: The initial charge with key 'chg-1e8gKCluVboUyr2' is missing a network reference.
        instance: /silverflow/b0451a9d-f66d-4ef7-9f5d-d48064a2bb3e
    visa_Request:
      summary: Create a MIT Visa charge
      value:
        merchantAcceptorResolver:
          merchantAcceptorKey: mac-1eOdAHhgstYTUhlphPFf
        card:
          number: '4761070000000905'
          expiryYear: 2030
          expiryMonth: 12
        type:
          intent: purchase
          cardEntry: card-on-file
          order: recurring
        amount:
          value: 2000
          currency: EUR
        initialTransactionReferences:
          initialTransactionIdentifier: '303221314991645'
    mastercard_Request:
      summary: Create a MIT Mastercard charge
      value:
        merchantAcceptorResolver:
          merchantAcceptorKey: mac-1eOdAHhgstYTUhlphPFf
        card:
          number: '5286940020000205'
          expiryYear: 2030
          expiryMonth: 12
        type:
          intent: purchase
          cardEntry: card-on-file
          order: recurring
        amount:
          value: 2000
          currency: EUR
        initialTransactionReferences:
          initialTraceId: MCSPMLCC30807
    mastercard-network-token_Request:
      summary: Create a MIT Mastercard charge with a network token
      value:
        merchantAcceptorResolver:
          merchantAcceptorKey: mac-1eOdAHhgstYTUhlphPFf
        card:
          number: '5286940020000205'
          expiryYear: 2030
          expiryMonth: 12
          holderName: Joe Cardholder
        tokenDetails:
          type: network
          tokenCryptogram: 112233445566778899001122334=
        type:
          intent: purchase
          cardEntry: token-on-file
          order: recurring
        amount:
          value: 2000
          currency: EUR
        initialTransactionReferences:
          initialTraceId: MCSPMLCC30807
    visa_Response:
      summary: Create a MIT Visa charge
      value:
        key: chg-1e1dAHhgstYTUhlphPzZ
        merchantAcceptorRef:
          key: mac-1eOdAHhgstYTUhlphPFf
          version: 1
        card:
          maskedNumber: 47610700****0905
        amount:
          value: 2000
          currency: EUR
        type:
          intent: purchase
          cardEntry: card-on-file
          order: recurring
          sequence: subsequent
        status:
          authentication: none
          authorization: approved
          clearing: pending
        authentication:
          sca:
            compliance: out-of-scope
            complianceReason: moto
            method: none
          cvc: none
          avs: none
        localTransactionDateTime: '2023-08-24T14:15:22Z'
        authorizationIsoFields:
          responseCode: '00'
          responseCodeDescription: Approved
          authorizationCode: 4A4316
          networkCode: '0000'
          systemTraceAuditNumber: '145156'
          retrievalReferenceNumber: '131608123456'
          eci: '0'
          networkSpecificFields:
            transactionIdentifier: '303221314991645'
        created: '2023-08-24T14:15:22Z'
        version: 1
    mastercard_Response:
      summary: Create a MIT Mastercard charge
      value:
        key: chg-1e1dAHhgstYTUhlphPzZ
        merchantAcceptorRef:
          key: mac-1eOdAHhgstYTUhlphPFf
          version: 1
        card:
          maskedNumber: 52869400****0205
        amount:
          value: 2000
          currency: EUR
        type:
          intent: purchase
          cardEntry: card-on-file
          order: recurring
          sequence: subsequent
        status:
          authentication: none
          authorization: approved
          clearing: pending
        authentication:
          sca:
            compliance: out-of-scope
            complianceReason: moto
            method: none
          cvc: none
          avs: none
        localTransactionDateTime: '2023-08-24T14:15:22Z'
        authorizationIsoFields:
          responseCode: '00'
          responseCodeDescription: Approved
          authorizationCode: 4A4316
          networkCode: '0000'
          systemTraceAuditNumber: '413453'
          retrievalReferenceNumber: '531658122456'
          eci: '0'
          networkSpecificFields:
            traceId: MCSPMLCC30807
            banknetReference: NZB8NR
        created: '2023-08-24T14:15:22Z'
        version: 1
    mastercard-network-token_Response:
      summary: Create a MIT Mastercard charge with a network token
      value:
        key: chg-3sbRZxBZFXqvLHmyl0d9
        merchantAcceptorRef:
          key: mac-3d4d3jOhg5GcI9ebskOP
          version: 1
        card:
          maskedNumber: 52869400****0205
        amount:
          value: 2000
          currency: EUR
        type:
          intent: purchase
          cardEntry: token-on-file
          order: recurring
          sequence: subsequent
        clearingMode: auto
        status:
          authentication: none
          authorization: approved
          clearing: pending
        authentication:
          sca:
            compliance: exemption
            complianceReason: recurring
            method: none
          cvc: none
          avs: none
        localTransactionDateTime: '2023-10-10T13:33:48.335Z'
        authorizationIsoFields:
          responseCode: '00'
          responseCodeDescription: Approved
          authorizationCode: D279EC
          systemTraceAuditNumber: '826894'
          retrievalReferenceNumber: '328313826894'
          eci: '0'
          networkCode: MCS
          networkSpecificFields:
            traceId: 'MCS7500800527  '
            banknetReference: '750080'
        created: '2023-10-10T13:33:48.336Z'
        version: 1
    mit-funding-visa_Request:
      summary: Create a MIT funding charge
      value:
        merchantAcceptorResolver:
          merchantAcceptorKey: mac-1eOdAHhgstYTUhlphPFf
        card:
          number: '4761070000000905'
          expiryYear: 2030
          expiryMonth: 12
          holderName: Joe Cardholder
        amount:
          value: 200
          currency: EUR
        type:
          intent: funding
          cardEntry: card-on-file
          order: recurring
          fundingType: account-to-account
        initialTransactionReferences:
          initialTransactionIdentifier: '303221314991645'
        receiver:
          firstName: Joe
          lastName: Cardholder
          accountNumber: '4200350000000801'
          accountNumberType: card-account
          address:
            line1: Entrada 300
            city: Amsterdam
            stateOrProvince: NL
            postalCode: 1114AA
            countryCode:
              alpha2: NL
        sender:
          firstName: Joy
          lastName: Cardholder
          accountNumber: '4761340000000035'
          accountNumberType: card-account
          address:
            line1: Entrada 600
            city: Amsterdam
            stateOrProvince: NL
            postalCode: 1114AA
            countryCode:
              alpha2: NL
        transactionReference: FR1
    mit-funding-visa_Response:
      summary: Create a MIT funding charge
      value:
        merchantAcceptorRef:
          key: mac-3rCoHlIyxYkhLa0YRTzT
          version: 1
        key: chg-3sBWL1ZGCvgzMufWEjMy
        card:
          maskedNumber: 47610700****0905
        amount:
          value: 200
          currency: EUR
        type:
          intent: funding
          cardEntry: card-on-file
          order: recurring
          sequence: subsequent
          fundingType: account-to-account
        localTransactionDateTime: '2023-10-13T12:24:08.501Z'
        transactionReference: FR1
        receiver:
          firstName: Joe
          lastName: Cardholder
          accountNumber: '**0801'
          accountNumberType: card-account
          address:
            countryCode:
              alpha2: NL
              alpha3: NLD
              numeric: '528'
            stateOrProvince: NL
            city: Amsterdam
            line1: Entrada 300
            postalCode: 1114AA
        sender:
          firstName: Joy
          lastName: Cardholder
          accountNumber: '**0035'
          accountNumberType: card-account
          address:
            countryCode:
              alpha2: NL
              alpha3: NLD
              numeric: '528'
            stateOrProvince: NL
            city: Amsterdam
            line1: Entrada 300
            postalCode: 1114AA
        status:
          authentication: none
          authorization: approved
          clearing: none
        fraudLiability: acquirer
        authentication:
          sca:
            compliance: out-of-scope
            complianceReason: none
            method: none
          cvc: none
          avs: none
        authorizationIsoFields:
          responseCode: '00'
          responseCodeDescription: Approved
          systemTraceAuditNumber: '669292'
          retrievalReferenceNumber: '328612669292'
          eci: none
          networkCode: '0000'
          networkSpecificFields:
            transactionIdentifier: unknown
        clearingMode: none
        created: '2023-10-13T12:24:08.502Z'
        version: 1
    wip_Request:
      summary: Create a wallet initiated charge
      value:
        type:
          intent: purchase
          cardEntry: card-on-file
          order: one-click
        amount:
          value: 100
          currency: EUR
        walletDetails:
          merchantAuthMethod: '01'
          merchantWipToken: 434948032DF0C237
          walletProviderId: '719901'
    wip_Response:
      summary: Create a wallet initiated charge
      value:
        key: chg-3sCufE2sig8Oa96QJEgS
        merchantAcceptorRef:
          key: mac-2Esunkn6IobroE2cJxuw
          version: 9
        card:
          maskedNumber: 42003500****9998
        amount:
          value: 100
          currency: EUR
        type:
          intent: purchase
          cardEntry: card-on-file
          order: one-click
          sequence: subsequent
        clearingMode: auto
        status:
          authentication: none
          authorization: approved
          clearing: pending
        authentication:
          sca:
            method: none
            compliance: exemption
            complianceReason: wip
          cvc: none
          avs: none
        localTransactionDateTime: '2023-10-13T13:52:11.632+00:00'
        transactionReference: trx-1234567109
        fraudLiability: issuer
        authorizationIsoFields:
          responseCode: '000'
          responseCodeDescription: Approved
          authorizationCode: PY962K
          systemTraceAuditNumber: '614176'
          retrievalReferenceNumber: '328613614176'
          eci: none
          networkCode: none
          networkSpecificFields:
            iban: BE68539007547034
        created: '2023-10-13T13:52:11.633Z'
        version: 1
    ClearingAlreadySubmittedExample:
      value:
        type: /silverflow/problems/charge/clearing-already-submitted
        title: Clearing Already Submitted
        status: 409
        detail: Cannot cancel the referenced charge because the clearing has already been submitted.
        instance: /silverflow/b045229d-f66d-4ef7-9f5d-d48064a2aa39
    UnexpectedIntentErrorExample:
      value:
        type: /silverflow/problems/charge/unexpected-intent
        title: Cannot increment charge with unexpected type.intent.
        status: 409
        detail: The type.intent is 'refund', but expected 'reservation' or 'purchase' or 'account-status'.
        instance: /silverflow/b0451a9d-f66d-4ef7-9f5d-d48064a2bb3e
    UnexpectedAuthorizationErrorExample:
      value:
        type: /silverflow/problems/charge/unexpected-authorization-status
        title: Unexpected Authorization Status
        status: 409
        detail: The status.authorization is 'declined', but expected 'approved' or 'expired'.
        instance: /silverflow/b0451a9d-f66d-4ef7-9f5d-d48064a2bb3e
    UnexpectedClearingStatusErrorExample:
      value:
        type: /silverflow/problems/charge/unexpected-clearing-status
        title: Cannot cancel or refund charge with unexpected status.clearing.
        status: 409
        detail: The status.clearing is 'cancelled', but expected 'none' or 'pending' or 'submitted' or 'completed'.
        instance: /silverflow/b0451a9d-f66d-4ef7-9f5d-d48064a2bb3e
    partial_Request:
      summary: Partial refund
      value:
        amount: 3218
        reference: my-refund-123
        clearAfter: '2023-11-21T14:15:22Z'
        dynamicDescriptor:
          merchantName: Annas Candy Stand
          merchantCity: Amsterdam
    partial_Response:
      summary: Partial refund
      value:
        type: offline-refund
        key: act-1e1dA2fgs1YTUhlhyPOp
        chargeKey: chg-1e1dAHhgstYTUhlphPzZ
        reference: my-refund-123
        amount:
          value: 3218
          currency: EUR
        clearAfter: '2023-11-21T14:15:22Z'
        created: '2023-11-20T10:03:01Z'
        version: 1
    InvalidCardErrorExample:
      value:
        type: /silverflow/problems/card/invalid
        title: Invalid Card
        status: 409
        detail: The card range for the provided card could not be found.
        instance: /silverflow/b0451a9d-f66d-4ef7-9f5d-d48064a2bb3e
    ChargeInvalidOperationErrorExample:
      value:
        type: /silverflow/problems/charge/invalid-operation
        title: Invalid Operation on Charge
        status: 409
        detail: The charge with key 'chg-1e8gKCluVboUyr2' can no longer be offline refunded since it has been more than 6 months since it was created.
        instance: /silverflow/b0451a9d-f66d-4ef7-9f5d-d48064a2bb3e
    TemporaryServerErrorExample:
      value:
        type: /silverflow/problems/temporary-server-error
        title: Temporary Server Error
        status: 503
        detail: Temporary Server Error. Please retry later.
        instance: /silverflow/b0451a9d-f66d-4ef7-9f5d-d48064a2bb3e
    UnexpectedClearingModeErrorExample:
      value:
        type: /silverflow/problems/charge/unexpected-clearing-mode
        title: Cannot cancel or refund charge with unexpected clearingMode.
        status: 409
        detail: The clearingMode is 'manual', but expected 'auto'.
        instance: /silverflow/b0451a9d-f66d-4ef7-9f5d-d48064a2bb3e
    InvalidAmountErrorExample:
      value:
        type: /silverflow/problems/charge/invalid-amount
        title: Cannot reverse charge with invalid replacement amount.
        status: 409
        detail: The reversal amount of '10' was greater than the original charge amount of '5'.
        instance: /silverflow/b045229d-f66d-4ef7-9f5d-d48064a2aa39
    UnexpectedRefundStatusErrorExample:
      value:
        type: /silverflow/problems/charge/unexpected-refunds-status
        title: Cannot cancel or refund charge with unexpected status.refunds.
        status: 409
        detail: The status.refund is 'approved', but expected 'none'.
        instance: /silverflow/b0451a9d-f66d-4ef7-9f5d-d48064a2bb3e
    ClearingCurrentZeroAmountErrorExample:
      value:
        type: /silverflow/problems/charge/cannot-clear-zero-amount
        title: Cannot Clear Zero Amount
        status: 409
        detail: Attempted to clear the full current amount of the charge with key 'chg-1e8gKCluVboUyr2', however, the currently authorized amount is 0.
        instance: /silverflow/b045229d-f66d-4ef7-9f5d-d48064a2aa39
    ChargeTooOldForClearingErrorExample:
      value:
        type: /silverflow/problems/charges/invalid-charge
        title: Invalid Charge
        status: 409
        detail: The charge with key 'chg-1e8gKCluVboUyr2' can no longer be cleared since it has been more than 6 months since it was authorized.
        instance: /silverflow/b0451a9d-f66d-4ef7-9f5d-d48064a2bb3e
    ReversePinChangeResponse:
      summary: Approved Mastercard
      value:
        key: cma-6snVN5e5HV2CWlbP7JZc
        reversedActionKey: cma-3pkSK2b2ES9ZTiYM4GWZ
        type: pin_change_reversal
        result: approved
        authorizationIsoFields:
          responseCode: '00'
          responseCodeDescription: Approved
          authorizationCode: '547161'
          networkCode: MCS
          systemTraceAuditNumber: '665359'
          retrievalReferenceNumber: '326312665359'
          networkSpecificFields:
            network: mastercard
            banknetReference: '842826'
            traceId: 'MCS8428260527  '
        created: '2026-07-13T12:46:05.516Z'
        version: 1
    PinChangeActionResponse:
      summary: PIN Change Action Response
      value:
        key: cma-3pkSK2b2ES9ZTiYM4GWZ
        type: pin_change
        result: approved
        card:
          maskedNumber: 52869400****0205
        merchantAcceptorRef:
          key: mac-1eOdAHhgstYTUhlphPFf
          version: 1
        terminalEntryMode: contactless
        terminal:
          id: ATM001
          capabilities:
            - contact_chip
            - contactless_chip
            - magstripe
        authorizationIsoFields:
          responseCode: '00'
          responseCodeDescription: Approved
          authorizationCode: '547158'
          networkCode: MCS
          systemTraceAuditNumber: '665356'
          retrievalReferenceNumber: '326312665356'
          networkSpecificFields:
            network: mastercard
            banknetReference: '842823'
            traceId: 'MCS8428230527  '
        localTransactionDateTime: '2026-07-13T12:46:05.516Z'
        created: '2026-07-13T12:46:05.516Z'
        version: 1
    ListRequestByDateRange:
      summary: Query by date range
      description: List actions created within a specific time range
      value:
        from: '2026-08-01T00:00:00Z'
        to: '2026-08-19T23:59:59Z'
        sortOrder: desc
        limit: 50
    ListRequestByTransactionReference:
      summary: Query by transaction reference
      description: Filter actions by a specific transaction reference
      value:
        transactionReference: TXN-123456789
        sortOrder: asc
        limit: 10
    ListRequestWithOffsetToken:
      summary: Paginate with offset token
      description: Fetch the next page of results using an offset token
      value:
        offsetToken: eyJjcmVhdGVkQXQiOiIyMDI2LTA4LTE5VDEyOjM0OjU2LjAwMFoiLCJpZCI6ImFjdF8xMjM0NTY3ODkifQ==
    ListResponseMoreItems:
      summary: More items available
      description: Response with offset token for pagination to fetch the next page.
      value:
        offsetToken: eyJDaGFyZ2VLZXkiOiJhY3QtNVFPdFdkTklUTlhoUzVMQ2JORWEiLCJUeXBlS2V5IjoiQ2hhcmdlQWN0aW9uIiwiTGlzdEluZGV4U29ydEtleSI6IkNoYXJnZUFjdGlvbiMyMDI2LTA4LTE4VDEzOjI3OjA2LjU2MVoiLCJMaXN0SW5kZXhLZXkiOiJjaGctNVFPdFZWTENTUklLelBDam91cVEifQ
        actions:
          - key: cma-3pkSK2b2ES9ZTiYM4GWZ
            type: pin_change
            result: approved
            card:
              maskedNumber: 52869400****0205
            merchantAcceptorRef:
              key: mac-1eOdAHhgstYTUhlphPFf
              version: 1
            terminalEntryMode: contactless
            terminal:
              id: ATM001
              capabilities:
                - contact_chip
                - contactless_chip
                - magstripe
            authorizationIsoFields:
              responseCode: '00'
              responseCodeDescription: Approved
              authorizationCode: '547158'
              networkCode: MCS
              systemTraceAuditNumber: '665356'
              retrievalReferenceNumber: '326312665356'
              networkSpecificFields:
                network: mastercard
                banknetReference: '842823'
                traceId: 'MCS8428230527  '
            localTransactionDateTime: '2026-07-13T12:46:05.516Z'
            created: '2026-07-13T12:46:05.516Z'
            version: 1
          - key: cma-5rmUM4d4GU1BVkaO6IYb
            type: balance_inquiry
            result: approved
            card:
              maskedNumber: 52869400****0205
            merchantAcceptorRef:
              key: mac-1eOdAHhgstYTUhlphPFf
              version: 1
            terminalEntryMode: contactless
            terminal:
              id: ATM001
              capabilities:
                - contact_chip
                - contactless_chip
                - magstripe
            authorizationIsoFields:
              responseCode: '00'
              responseCodeDescription: Approved
              authorizationCode: '547160'
              networkCode: MCS
              systemTraceAuditNumber: '665358'
              retrievalReferenceNumber: '326312665358'
              networkSpecificFields:
                network: mastercard
                banknetReference: '842825'
                traceId: 'MCS8428250527  '
            localTransactionDateTime: '2026-07-13T12:46:05.516Z'
            created: '2026-07-13T12:46:05.516Z'
            version: 1
    ListResponseFinal:
      summary: Final page of results
      description: Response when there are no more items to paginate (no offsetToken returned)
      value:
        actions:
          - key: cma-3pkSK2b2ES9ZTiYM4GWZ
            type: pin_change
            result: approved
            card:
              maskedNumber: 52869400****0205
            merchantAcceptorRef:
              key: mac-1eOdAHhgstYTUhlphPFf
              version: 1
            terminalEntryMode: contactless
            terminal:
              id: ATM001
              capabilities:
                - contact_chip
                - contactless_chip
                - magstripe
            authorizationIsoFields:
              responseCode: '00'
              responseCodeDescription: Approved
              authorizationCode: '547158'
              networkCode: MCS
              systemTraceAuditNumber: '665356'
              retrievalReferenceNumber: '326312665356'
              networkSpecificFields:
                network: mastercard
                banknetReference: '842823'
                traceId: 'MCS8428230527  '
            localTransactionDateTime: '2026-07-13T12:46:05.516Z'
            created: '2026-07-13T12:46:05.516Z'
            version: 1
          - key: cma-5rmUM4d4GU1BVkaO6IYb
            type: balance_inquiry
            result: approved
            card:
              maskedNumber: 52869400****0205
            merchantAcceptorRef:
              key: mac-1eOdAHhgstYTUhlphPFf
              version: 1
            terminalEntryMode: contactless
            terminal:
              id: ATM001
              capabilities:
                - contact_chip
                - contactless_chip
                - magstripe
            authorizationIsoFields:
              responseCode: '00'
              responseCodeDescription: Approved
              authorizationCode: '547160'
              networkCode: MCS
              systemTraceAuditNumber: '665358'
              retrievalReferenceNumber: '326312665358'
              networkSpecificFields:
                network: mastercard
                banknetReference: '842825'
                traceId: 'MCS8428250527  '
            localTransactionDateTime: '2026-07-13T12:46:05.516Z'
            created: '2026-07-13T12:46:05.516Z'
            version: 1
    request-card-info-mastercard:
      summary: Card Info Request Mastercard
      value:
        cardNumber: '5761070000000905'
        infoSource: mastercard
    card-info-response-mastercard:
      summary: Example of a Card Info Response for a Mastercard card
      value:
        infoSource: mastercard
        primaryCardNetwork: mastercard
        cardCountry:
          code:
            alpha2: NL
            alpha3: NLD
            numeric: '528'
          isInEEA: true
        issuerAccountRangeLow: '5555555555500000000'
        issuerAccountRangeHigh: '5555555555599999999'
        member:
          id: '00000123456'
          name: The Iron Bank
          countryCode:
            alpha3: CYP
            alpha2: CY
            numeric: '196'
        cardProducts:
          - code: MDS
            name: Debit Unembossed Mastercard® Card
            accountFundingSource: Debit
        cardholderBillingCurrency: USD
        mastercardCardInfo:
          productType:
            code: '1'
            description: Consumer
          brandProducts:
            - cardProgramIdentifier:
                code: DMC
                description: Debit Mastercard
              brandProduct:
                productClass:
                  gcmsProductID: MDS
                  licensedProductID: MDU
                  licensedProductDescription: Debit Unembossed Mastercard® Card
                  productClassID: DMC
                  productClassDescription: Debit Mastercard
                productCategory:
                  code: D
                  description: Debit
              priority: '01'
          interchangeRegion:
            code: D
            description: Europe
          coBrandParticipation: false
          moneySendIndicator: U
          anonymousPrepaidIndicator:
            code: 'N'
            description: Not prepaid or non-anonymous prepaid program/default
          dccIndicator: D
          infoSource: mastercard
          primaryCardNetwork: mastercard
          cardCountry:
            code:
              alpha2: NL
              alpha3: NLD
              numeric: '528'
            isInEEA: true
          issuerAccountRangeLow: '5555555555500000000'
          issuerAccountRangeHigh: '5555555555599999999'
          member:
            id: '00000123456'
            name: The Iron Bank
            countryCode:
              alpha3: CYP
              alpha2: CY
              numeric: '196'
          cardProducts:
            - code: MDS
              name: Debit Unembossed Mastercard® Card
              accountFundingSource: Debit
          cardholderBillingCurrency: USD
    card-info-response-visa:
      summary: Example of a Card Info Response for a Visa card
      value:
        infoSource: visa
        primaryCardNetwork: visa
        cardCountry:
          code:
            alpha2: FR
            alpha3: FRA
            numeric: '250'
          isInEEA: true
        issuerAccountRangeLow: '444455000'
        issuerAccountRangeHigh: '444455999'
        member:
          id: '123456'
          name: First Main Bank
          countryCode:
            alpha3: GBR
            alpha2: GB
            numeric: '826'
        cardProducts:
          - code: F
            name: Visa Classic
            accountFundingSource: Credit
        cardholderBillingCurrency: USD
        visaCardInfo:
          accountNumberLength: 16
          checkDigit: true
          accountRangeRegion:
            code: '3'
            description: Europe
          domain:
            code: W
            description: Worldwide
          product:
            visaProductID: F
            productType: Consumer
            productDescription: Visa Classic
            productSubTypeCode: ''
          accountFundingSource:
            code: C
            description: Credit
          visaDirectParticipation:
            nonMoneyTransferOCTsDomestic: false
            nonMoneyTransferOCTsCrossBorder: true
            onlineGamblingOCTsDomestic: false
            onlineGamblingOCTsCrossBorder: false
            moneyTransferOCTsDomestic: false
            moneyTransferOCTsCrossBorder: false
            fastFundsDomesticMoneyTransfer: true
            fastFundsDomesticNonMoneyTransfer: true
            fastFundsDomesticGambling: true
            fastFundsCrossBorderMoneyTransfer: false
            fastFundsCrossBorderNonMoneyTransfer: false
            fastFundsCrossBorderGambling: false
          infoSource: visa
          primaryCardNetwork: visa
          cardCountry:
            code:
              alpha2: FR
              alpha3: FRA
              numeric: '250'
            isInEEA: true
          issuerAccountRangeLow: '444455000'
          issuerAccountRangeHigh: '444455999'
          member:
            id: '123456'
            name: First Main Bank
            countryCode:
              alpha3: GBR
              alpha2: GB
              numeric: '826'
          cardProducts:
            - code: F
              name: Visa Classic
              accountFundingSource: Credit
          cardholderBillingCurrency: USD
    card-info-card-network-response-mastercard:
      summary: Example of a Card Info Response for a Mastercard network
      value:
        items:
          - infoSource: mastercard
            primaryCardNetwork: mastercard
            cardCountry:
              code:
                alpha2: NL
                alpha3: NLD
                numeric: '528'
              isInEEA: true
            issuerAccountRangeLow: '5555555555500000000'
            issuerAccountRangeHigh: '5555555555599999999'
            member:
              id: '00000123456'
              name: The Iron Bank
              countryCode:
                alpha3: CYP
                alpha2: CY
                numeric: '196'
            cardProducts:
              - code: MDS
                name: Debit Unembossed Mastercard® Card
                accountFundingSource: Debit
            cardholderBillingCurrency: USD
            mastercardCardInfo:
              productType:
                code: '1'
                description: Consumer
              brandProducts:
                - cardProgramIdentifier:
                    code: DMC
                    description: Debit Mastercard
                  brandProduct:
                    productClass:
                      gcmsProductID: MDS
                      licensedProductID: MDU
                      licensedProductDescription: Debit Unembossed Mastercard® Card
                      productClassID: DMC
                      productClassDescription: Debit Mastercard
                    productCategory:
                      code: D
                      description: Debit
                  priority: '01'
              interchangeRegion:
                code: D
                description: Europe
              coBrandParticipation: false
              moneySendIndicator: U
              anonymousPrepaidIndicator:
                code: 'N'
                description: Not prepaid or non-anonymous prepaid program/default
              dccIndicator: D
          - infoSource: mastercard
            primaryCardNetwork: mastercard
            cardCountry:
              code:
                alpha2: NL
                alpha3: NLD
                numeric: '528'
              isInEEA: true
            issuerAccountRangeLow: '5555555555600000000'
            issuerAccountRangeHigh: '5555555555699999999'
            member:
              id: '00000123456'
              name: The Iron Bank
              countryCode:
                alpha3: CYP
                alpha2: CY
                numeric: '196'
            cardProducts:
              - code: MDS
                name: Debit Unembossed Mastercard® Card
                accountFundingSource: Debit
            cardholderBillingCurrency: USD
            mastercardCardInfo:
              productType:
                code: '1'
                description: Consumer
              brandProducts:
                - cardProgramIdentifier:
                    code: DMC
                    description: Debit Mastercard
                  brandProduct:
                    productClass:
                      gcmsProductID: MDS
                      licensedProductID: MDU
                      licensedProductDescription: Debit Unembossed Mastercard® Card
                      productClassID: DMC
                      productClassDescription: Debit Mastercard
                    productCategory:
                      code: D
                      description: Debit
                  priority: '01'
              interchangeRegion:
                code: D
                description: Europe
              coBrandParticipation: false
              moneySendIndicator: U
              anonymousPrepaidIndicator:
                code: 'N'
                description: Not prepaid or non-anonymous prepaid program/default
              dccIndicator: D
    card-info-card-network-response-visa:
      summary: Example of a Card Info Response for a Visa network
      value:
        items:
          - infoSource: visa
            primaryCardNetwork: visa
            cardCountry:
              code:
                alpha2: FR
                alpha3: FRA
                numeric: '250'
              isInEEA: true
            issuerAccountRangeLow: '444455000'
            issuerAccountRangeHigh: '444455999'
            member:
              id: '123456'
              name: First Main Bank
              countryCode:
                alpha3: GBR
                alpha2: GB
                numeric: '826'
            cardProducts:
              - code: F
                name: Visa Classic
                accountFundingSource: Credit
            cardholderBillingCurrency: USD
            visaCardInfo:
              accountNumberLength: 16
              checkDigit: true
              accountRangeRegion:
                code: '3'
                description: Europe
              domain:
                code: W
                description: Worldwide
              product:
                visaProductID: F
                productType: Consumer
                productDescription: Visa Classic
                productSubTypeCode: ''
              accountFundingSource:
                code: C
                description: Credit
              visaDirectParticipation:
                nonMoneyTransferOCTsDomestic: false
                nonMoneyTransferOCTsCrossBorder: true
                onlineGamblingOCTsDomestic: false
                onlineGamblingOCTsCrossBorder: false
                moneyTransferOCTsDomestic: false
                moneyTransferOCTsCrossBorder: false
                fastFundsDomesticMoneyTransfer: true
                fastFundsDomesticNonMoneyTransfer: true
                fastFundsDomesticGambling: true
                fastFundsCrossBorderMoneyTransfer: false
                fastFundsCrossBorderNonMoneyTransfer: false
                fastFundsCrossBorderGambling: false
          - infoSource: visa
            primaryCardNetwork: visa
            cardCountry:
              code:
                alpha2: FR
                alpha3: FRA
                numeric: '250'
              isInEEA: true
            issuerAccountRangeLow: '444456000'
            issuerAccountRangeHigh: '444456999'
            member:
              id: '123456'
              name: First Main Bank
              countryCode:
                alpha3: GBR
                alpha2: GB
                numeric: '826'
            cardProducts:
              - code: F
                name: Visa Classic
                accountFundingSource: Credit
            cardholderBillingCurrency: USD
            visaCardInfo:
              accountNumberLength: 16
              checkDigit: true
              accountRangeRegion:
                code: '3'
                description: Europe
              domain:
                code: W
                description: Worldwide
              product:
                visaProductID: F
                productDescription: Visa Classic
                productSubTypeCode: ''
              accountFundingSource:
                code: C
                description: Credit
              visaDirectParticipation:
                nonMoneyTransferOCTsDomestic: false
                nonMoneyTransferOCTsCrossBorder: true
                onlineGamblingOCTsDomestic: false
                onlineGamblingOCTsCrossBorder: false
                moneyTransferOCTsDomestic: false
                moneyTransferOCTsCrossBorder: false
                fastFundsDomesticMoneyTransfer: true
                fastFundsDomesticNonMoneyTransfer: true
                fastFundsDomesticGambling: true
                fastFundsCrossBorderMoneyTransfer: false
                fastFundsCrossBorderNonMoneyTransfer: false
                fastFundsCrossBorderGambling: false
    response-currency-rates-visa:
      summary: Example of a Currency Rate Response for a Visa network and effectiveDate
      value:
        offsetToken: string
        items:
          - id: visa#EUR#USD#2021-10-30
            network: visa
            effectiveDate: '2022-10-30'
            effectiveFrom: '2022-10-30T11:00:00.000Z'
            buy:
              rate: 120000
              exponent: 6
            sell:
              rate: 110000
              exponent: 6
            sourceCurrency:
              code: EUR
              exponent: 6
            targetCurrency:
              code: USD
              exponent: 6
          - id: visa#EUR#SEK#2021-10-30
            network: visa
            effectiveDate: '2021-10-30'
            effectiveFrom: '2021-10-30T11:00:00.000Z'
            buy:
              rate: 90000
              exponent: 6
            sell:
              rate: 70000
              exponent: 6
            sourceCurrency:
              code: EUR
              exponent: 6
            targetCurrency:
              code: SEK
              exponent: 6
    BadRequestErrorExample:
      value:
        type: /silverflow/problems/bad-request
        title: Bad Request
        status: 400
        instance: /silverflow/92f69925-a694-4fbb-83e8-f43726d657ad
        detail: The request was malformed. See the response body for details.
    InvalidProcessorTokenErrorExample:
      value:
        type: /silverflow/problems/processorTokens/invalid-processor-token
        title: Invalid Processor Token
        status: 409
        instance: /silverflow/92f69925-a694-4fbb-83e8-f43726d657ad
        detail: Could not determine a card network for the card number.
    components-examples-Response:
      summary: List charges for a merchant
      value:
        itemCount: 2
        moreItems: false
        charges:
          - chargeKey: chg-3pkSK2b2ES9ZTiYM4GWZ
            merchantKey: mct-1TQ4EL0rI3Uz06VF2a0f
            terminalId: 17s2d469
            created: '2023-09-20T12:46:05.516Z'
            amount:
              value: 2050
              currency: EUR
            status: approved
            cardMaskedNumber: 52869400****0205
            type:
              intent: purchase
              cardEntry: terminal
              order: counter
              terminalEntryMode: contactless
          - chargeKey: chg-3pkWfhw0Sc3JlIiWiub2
            merchantKey: mct-1TQ4EL0rI3Uz06VF2a0f
            terminalId: 17s2d469
            created: '2023-09-20T12:55:18.216Z'
            amount:
              value: 9900
              currency: EUR
            status: approved
            cardMaskedNumber: 52869400****0205
            type:
              intent: purchase
              cardEntry: terminal
              order: counter
              terminalEntryMode: contactless
    OnlinePinResponse:
      summary: Create a charge with online PIN
      value:
        key: chg-3pkSK2b2ES9ZTiYM4GWZ
        merchantAcceptorRef:
          key: mac-1TQ4EL0rI3Uz06VF2a0f
          version: 1
        card:
          maskedNumber: 52869400****0205
        amount:
          value: 2050
          currency: EUR
        type:
          intent: purchase
          cardEntry: terminal
          order: counter
          terminalEntryMode: contactless
        clearingMode: auto
        status:
          authentication: none
          authorization: approved
          clearing: pending
        localTransactionDateTime: '2023-09-20T12:46:05.516Z'
        authorizationIsoFields:
          responseCode: '00'
          responseCodeDescription: Approved
          authorizationCode: '547158'
          systemTraceAuditNumber: '665356'
          retrievalReferenceNumber: '326312665356'
          eci: '00'
          networkCode: MCS
          networkSpecificFields:
            traceId: 'MCS8428230527  '
            banknetReference: '842823'
        terminal:
          id: 17s2d469
          type: softpos
          attended: true
          capabilities:
            - contactlessChip
            - noCvm
            - onlinePin
        created: '2023-09-20T12:46:05.516Z'
        version: 1
    ManualEntryResponse:
      summary: Create a charge with manual entry
      value:
        key: chg-3pkWfhw0Sc3JlIiWiub2
        merchantAcceptorRef:
          key: mac-1TQ4EL0rI3Uz06VF2a0f
          version: 1
        card:
          maskedNumber: 52869400****0205
        amount:
          value: 2050
          currency: EUR
        type:
          intent: purchase
          cardEntry: terminal
          order: counter
          terminalEntryMode: manual-entry
        clearingMode: auto
        status:
          authentication: none
          authorization: approved
          clearing: pending
        localTransactionDateTime: '2023-09-20T12:55:18.216Z'
        authorizationIsoFields:
          responseCode: '00'
          responseCodeDescription: Approved
          authorizationCode: 07F3CF
          systemTraceAuditNumber: '669292'
          retrievalReferenceNumber: '326312669292'
          eci: '00'
          networkCode: MCS
          networkSpecificFields:
            traceId: 'MCS7915710527  '
            banknetReference: '791571'
        terminal:
          id: 17s2d469
          type: softpos
          attended: true
          capabilities:
            - contactlessChip
            - noCvm
            - onlinePin
        created: '2023-09-20T12:55:18.216Z'
        version: 1
    NonMatchingIdempotentRequestErrorExample:
      value:
        type: /silverflow/problems/idempotency/request-mismatch
        title: Idempotent Request Mismatch
        status: 409
        detail: The retried request does not have the same body or URL as the initial request.
        instance: /silverflow/b0451a9d-f66d-4ef7-9f5d-d48064a2bb3e
    components-examples-Request:
      summary: Cancel a charge
      value:
        reference: cancel-001
    cancel_Response:
      summary: Cancel a charge
      value:
        key: rvsl-5BH5chO93SXky5gw
        chargeKey: chg-3pkSK2b2ES9ZTiYM4GWZ
        type: reversal
        reference: cancel-001
        status:
          authorization: approved
        replacementAmount:
          value: 1
          currency: EUR
        authorizationResponse:
          network: mastercard
          responseCode: '00'
          responseCodeDescription: Approved
          authorizationCode: A1B2C3
          systemTraceAuditNumber: '712345'
          retrievalReferenceNumber: '326312712345'
          eci: '0'
        created: '2023-09-20T13:10:22.000Z'
        version: 1
    UnexpectedClearingStatusExample:
      summary: Charge already cancelled
      value:
        type: /silverflow/problems/charge/unexpected-clearing-status
        title: Unexpected Clearing Status
        status: 409
        detail: The status.clearing is 'cancelled', but expected 'none' or 'pending'.
        instance: /silverflow/def-456
    refund_Request:
      summary: Refund a charge
      value:
        reference: refund-001
    refund_Response:
      summary: Refund a charge
      value:
        key: rfnd-7GH9abD12TYkx8mP
        chargeKey: chg-3pkSK2b2ES9ZTiYM4GWZ
        type: refund
        reference: refund-001
        status:
          authorization: approved
        amount:
          value: 2050
          currency: EUR
        authorizationResponse:
          network: mastercard
          responseCode: '00'
          responseCodeDescription: Approved
          authorizationCode: D4E5F6
          systemTraceAuditNumber: '718901'
          retrievalReferenceNumber: '326312718901'
          eci: '0'
        created: '2023-09-20T14:05:47.000Z'
        version: 1
    visa-dispute-received:
      summary: Chargeback received
      value:
        key: dsp-34fgyu17u8JyvJhc4444
        agentKey: cgt-EFG67b4yPre23ZDrLX
        merchantKey: mct-24456D7DFGlslSen4578
        merchantAcceptorKey: mac-24456D7DFGlslSen4578
        chargeInfo:
          amount:
            value: 12824
            currency: USD
          arn: '56123667134444000009999'
          localTransactionDateTime: '2023-08-17T00:00:00+00:00'
          networkReference: '28543746470772988'
          transactionReference: 3255TYG562324D0000772988
          fraudLiability: acquirer
          chargeKey: chg-EFG67b4yPre23ZDrLX
          clearingDateTime: '2023-08-18T00:13:00.000Z'
        cardInfo:
          last4: '1058'
          issuerName: Banco Mercantil
        isPartial: false
        disputeReference: '4547847279'
        disputeStatus: received
        disputeStage: chargeback
        mid: UO2344SDDAUOGS
        acquirerBin: '567854'
        actionDueDate: '2023-11-17'
        reason:
          code: '10.4'
          description: Card Absent Environment
          category: Fraud
        disputeAmount:
          value: 12824
          currency: USD
        reconciliationAmount:
          value: 12824
          currency: USD
        disputeDate: '2023-10-18T00:00:00.000Z'
        network: visa
        status: active
        created: '2023-10-17T23:35:24.652Z'
        version: 1
        lastEventDate: '2023-10-17T23:23:59+00:00'
        networkDisputeId: '437596139'
        closed: false
        actionRequired: true
        disputeHandling:
          autoDefense: false
        defenseOptions:
          - disputeResponseReason:
              id: ND
              description: Cardholder No Longer Disputes
          - disputeResponseReason:
              id: CP
              description: Credit Or Reversal Processed
          - disputeResponseReason:
              id: ID
              description: Invalid Dispute
            disputeSubResponseReason:
              - id: IDRA7
                description: Not Listed above
          - disputeResponseReason:
              id: CE
              description: Compelling Evidence
            disputeSubResponseReason:
              - id: CE01
                description: Documentation to prove the cardholder is in possession of and/or using the merchandise
              - id: CE02
                description: Signed Delivery form, or copy of/details of identification from cardholder as proof goods were picked up at merchant location
              - id: CE03
                description: AVS or Y or M and proof of delivery (date and time)
              - id: CE05
                description: Delivery to cardholder at place of employment
              - id: CE06
                description: T and E Loyalty transactions related to purchase
              - id: CE07
                description: T and E Subsequent purchases made throughout service period
              - id: CE08
                description: Passenger Transport proof ticket was received, scanned at gate or other transaction related to original (e.g. frequent flyer miles)
              - id: CE11
                description: Signed Mail Order/Phone Order form
              - id: CE12
                description: Legitimate spend across multiple payment types for same merchandise
              - id: CE14
                description: Signer is member of cardholders household
              - id: CE15
                description: Flight Manifest with corresponding purchase itinerary record
    dispute-liability-accepted:
      summary: Liability accepted for Dispute
      value:
        key: dsp-34fgyu17u8JyvJhc4444
        agentKey: cgt-EFG67b4yPre23ZDrLX
        merchantKey: mct-24456D7DFGlslSen4578
        merchantAcceptorKey: mac-24456D7DFGlslSen4578
        chargeInfo:
          amount:
            value: 12824
            currency: USD
          arn: '08123667134444000009999'
          localTransactionDateTime: '2023-08-17T00:00:00+00:00'
          networkReference: '28543746470772988'
          transactionReference: 3255TYG562324D0000772988
          fraudLiability: acquirer
          chargeKey: chg-EFG67b4yPre23ZDrLX
          clearingDateTime: '2023-08-18T00:13:00.000Z'
        cardInfo:
          last4: '1058'
          issuerName: Banco Mercantil
        isPartial: false
        disputeReference: '4547847279'
        disputeStatus: closedAccepted
        disputeStage: chargeback
        mid: UO2344SDDAUOGS
        acquirerBin: '567854'
        actionDueDate: '2023-11-17'
        reason:
          code: '4853'
          description: Cardholder Disputes
          category: Cardholder Disputes
        disputeAmount:
          value: 12824
          currency: USD
        reconciliationAmount:
          value: 12824
          currency: USD
        disputeDate: '2023-10-18T00:00:00.000Z'
        network: mastercard
        status: active
        created: '2023-10-17T23:35:24.652Z'
        version: 4
        lastEventDate: '2023-10-18T23:23:59+00:00'
        networkDisputeId: '437596139'
        closed: true
        actionRequired: false
        disputeHandling:
          autoDefense: false
        defenseOptions:
          - disputeResponseReason:
              id: '2700'
              description: 2700 - See Corresponding Documentation/Chargeback Remedied
          - disputeResponseReason:
              id: '2011'
              description: 2011 - Credit Previously Issued
          - disputeResponseReason:
              id: '2001'
              description: 2001 - Invalid Acquirer Reference Data
          - disputeResponseReason:
              id: '2002'
              description: 2002 - Non-receipt of Required Documentation to Support Chargeback
          - disputeResponseReason:
              id: '2004'
              description: 2004 - Invalid Acquirer Reference Data on Chargeback
          - disputeResponseReason:
              id: '2701'
              description: 2701 - Duplicate Chargeback
          - disputeResponseReason:
              id: '2702'
              description: 2702 - Past Chargeback Time Limit
          - disputeResponseReason:
              id: '2704'
              description: 2704 - Invalid Data Record Text
          - disputeResponseReason:
              id: '2709'
              description: 2709 - Documentation Received was Illegible
          - disputeResponseReason:
              id: '2710'
              description: 2710 - Unrelated Documents or Partial Scan
          - disputeResponseReason:
              id: '2713'
              description: 2713 - Invalid Chargeback
    dispute-expires:
      summary: Dispute expires (acquirer side)
      value:
        key: dsp-34fgyu17u8JyvJhc4444
        agentKey: cgt-EFG67b4yPre23ZDrLX
        merchantKey: mct-24456D7DFGlslSen4578
        merchantAcceptorKey: mac-24456D7DFGlslSen4578
        chargeInfo:
          amount:
            value: 12824
            currency: USD
          arn: '56123667134444000009999'
          localTransactionDateTime: '2023-08-17T00:00:00+00:00'
          networkReference: '28543746470772988'
          transactionReference: 3255TYG562324D0000772988
          fraudLiability: acquirer
          chargeKey: chg-EFG67b4yPre23ZDrLX
          clearingDateTime: '2023-08-18T00:13:00.000Z'
        cardInfo:
          last4: '1058'
          issuerName: Banco Mercantil
        isPartial: false
        disputeReference: '4547847279'
        disputeStatus: closedLost
        disputeStage: chargeback
        mid: UO2344SDDAUOGS
        acquirerBin: '567854'
        actionDueDate: '2023-11-17'
        reason:
          code: '13.7'
          description: Cancelled Merchandise/Services
          category: Cardholder Disputes
        disputeAmount:
          value: 12824
          currency: USD
        reconciliationAmount:
          value: 12824
          currency: USD
        disputeDate: '2023-10-18T00:00:00.000Z'
        network: visa
        status: active
        created: '2023-10-17T23:35:24.652Z'
        lastModified: '2023-11-17T23:59:00.000Z'
        version: 4
        lastEventDate: '2023-10-18T10:11:00+00:00'
        disputeStatusReason: ''
        networkDisputeId: '437596139'
        closed: true
        actionRequired: false
        submittedDefense: {}
        disputeHandling:
          autoDefense: false
        defenseOptions:
          - disputeResponseReason:
              id: CNLD
              description: Cardholder No Longer Disputes
          - disputeResponseReason:
              id: NL
              description: Not Listed
          - disputeResponseReason:
              id: CP
              description: Credit Or Reversal Processed
          - disputeResponseReason:
              id: ID
              description: Invalid Dispute
            disputeSubResponseReason:
              - id: IDRC1
                description: Services or merchandise were provided prior to cancellation date
              - id: IDRC9
                description: Disputed amount is due to Value Added Tax
              - id: IDRC10
                description: Returned Merchandise is being held in a custom agency outside the merchant's country
              - id: IDRC18
                description: Merchant properly disclosed a limited return or cancellation policy at the time of the transaction
              - id: IDRC19
                description: Cardholder received merchant cancellation or return policy and did not cancel according to policy
              - id: IDRC23
                description: Dispute is for quality
              - id: IDRC24
                description: Cardholder did not attempt to return merchandise
              - id: IDRC25
                description: Not listed above
    dispute-closedWon:
      summary: Dispute is won
      value:
        key: dsp-34fgyu17u8JyvJhc4444
        agentKey: cgt-EFG67b4yPre23ZDrLX
        merchantKey: mct-24456D7DFGlslSen4578
        merchantAcceptorKey: mac-24456D7DFGlslSen4578
        chargeInfo:
          amount:
            value: 12824
            currency: USD
          arn: '56123667134444000009999'
          localTransactionDateTime: '2023-08-17T00:00:00+00:00'
          networkReference: '28543746470772988'
          transactionReference: 3255TYG562324D0000772988
          fraudLiability: acquirer
          chargeKey: chg-EFG67b4yPre23ZDrLX
          clearingDateTime: '2023-08-18T00:13:00.000Z'
        cardInfo:
          last4: '1058'
          issuerName: Banco Mercantil
        isPartial: false
        disputeReference: '4547847279'
        disputeStatus: closedWon
        disputeStage: chargebackResponse
        mid: UO2344SDDAUOGS
        acquirerBin: '567854'
        actionDueDate: '2023-11-17'
        reason:
          code: '13.1'
          description: Merchandise/Services Not Received
          category: Cardholder Disputes
        disputeAmount:
          value: 12824
          currency: USD
        reconciliationAmount:
          value: 12824
          currency: USD
        disputeDate: '2023-10-18T00:00:00.000Z'
        network: visa
        status: active
        created: '2023-10-17T23:35:24.652Z'
        lastModified: '2023-10-25T23:35:24.652Z'
        version: 4
        lastEventDate: '2023-10-22T23:23:59+00:00'
        disputeStatusReason: ''
        networkDisputeId: '437596139'
        closed: true
        actionRequired: false
        submittedDefense: {}
        disputeHandling:
          autoDefense: false
    dispute-awaiting-response:
      summary: Defense successfully processed
      value:
        key: dsp-34fgyu17u8JyvJhc4444
        agentKey: cgt-EFG67b4yPre23ZDrLX
        merchantKey: mct-24456D7DFGlslSen4578
        merchantAcceptorKey: mac-24456D7DFGlslSen4578
        chargeInfo:
          amount:
            value: 12824
            currency: USD
          arn: '56123667134444000009999'
          localTransactionDateTime: '2023-08-17T00:00:00+00:00'
          networkReference: '28543746470772988'
          transactionReference: 3255TYG562324D0000772988
          fraudLiability: acquirer
          chargeKey: chg-EFG67b4yPre23ZDrLX
          clearingDateTime: '2023-08-18T00:13:00.000Z'
        cardInfo:
          last4: '1058'
          issuerName: Banco Mercantil
        isPartial: false
        disputeReference: '4547847279'
        disputeStatus: awaitingResponse
        disputeStage: chargeback
        mid: UO2344SDDAUOGS
        acquirerBin: '567854'
        actionDueDate: '2023-11-17'
        reason:
          code: '13.1'
          description: Merchandise/Services Not Received
          category: Cardholder Disputes
        disputeAmount:
          value: 12824
          currency: USD
        reconciliationAmount:
          value: 12824
          currency: USD
        disputeDate: '2023-10-18T00:00:00.000Z'
        network: visa
        status: active
        created: '2023-10-17T23:35:24.652Z'
        lastModified: '2023-10-25T21:12:23.652Z'
        version: 4
        lastEventDate: '2023-10-25T21:12:23+00:00'
        disputeStatusReason: ''
        networkDisputeId: '437596139'
        closed: false
        actionRequired: false
        submittedDefense: {}
        disputeHandling:
          autoDefense: false
    create-dispute-document:
      summary: Example request body of a dispute document
      value:
        originalFilename: bright.jpeg
        description: This shipping receipt proved of that purchased items were delivered on time.
    mc-defense-successfully-processed:
      summary: 'Mastercard: A defense was successfully processed'
      value:
        key: deh-3jdAyQ5ELRqpuxpO8SaA
        agentKey: cgt-24OJ9rv4u6x5jEu3MP91
        merchantKey: mct-3xrcuvGUx8ORqnx3347e
        merchantAcceptorKey: mac-3C1j58SixdfARL5qmmlx
        disputeStatus: awaitingResponse
        disputeStage: chargebackResponse
        disputeAmount:
          value: 1234
          currency: EUR
        disputeReason:
          code: '4853'
          description: Cardholder Disputes
          category: Cardholder Disputes
        created: '2023-08-01T11:20:42.340Z'
        eventDate: '2023-08-01T11:20:40.000Z'
        disputeKey: dsp-2WfYI0z3Y1N58H07MVKr
        initiator: issuer
        files: []
        disputeVersion: 3
        status: active
        eventDetails:
          messageText: please refer to the attachment
          responseReason: '2713'
    visa-defense-successfully-processed:
      summary: 'Visa: A defense was successfully processed'
      value:
        key: deh-3jdAyQ5ELRqpuxpO8SaA
        agentKey: cgt-24OJ9rv4u6x5jEu3MP91
        merchantKey: mct-3xrcuvGUx8ORqnx3347e
        merchantAcceptorKey: mac-3C1j58SixdfARL5qmmlx
        disputeStatus: awaitingResponse
        disputeStage: chargebackResponse
        disputeAmount:
          value: 1234
          currency: EUR
        disputeReason:
          code: '13.1'
          description: Merchandise/Services Not Received
          category: Cardholder Disputes
        created: '2023-08-01T11:20:42.340Z'
        eventDate: '2023-08-01T11:20:40.000Z'
        disputeKey: dsp-2WfYI0z3Y1N58H07MVKr
        initiator: acquirer
        disputeVersion: 4
        status: active
        eventDetails: {}
    dispute-expires-acquirer-side:
      summary: A dispute was lost
      value:
        key: deh-3jdAyQ5ELRqpuxpO8SaA
        agentKey: cgt-24OJ9rv4u6x5jEu3MP91
        merchantKey: mct-3xrcuvGUx8ORqnx3347e
        merchantAcceptorKey: mac-3C1j58SixdfARL5qmmlx
        disputeStatus: closedLost
        disputeStage: chargeback
        disputeAmount:
          value: 1234
          currency: EUR
        disputeReason:
          code: '13.1'
          description: Merchandise/Services Not Received
          category: Cardholder Disputes
        comment: This dispute was lost because it either expired or the card network ruled in favour of the Issuer.
        created: '2023-08-01T11:20:42.340Z'
        eventDate: '2023-08-01T11:20:40.000Z'
        disputeKey: dsp-2WfYI0z3Y1N58H07MVKr
        initiator: issuer
        disputeVersion: 2
        status: active
    dispute-won:
      summary: A dispute was won
      value:
        key: deh-3jdAyQ5ELRqpuxpO8SaA
        agentKey: cgt-24OJ9rv4u6x5jEu3MP91
        merchantKey: mct-3xrcuvGUx8ORqnx3347e
        merchantAcceptorKey: mac-3C1j58SixdfARL5qmmlx
        disputeStatus: closedWon
        disputeStage: chargeback
        disputeAmount:
          value: 1234
          currency: EUR
        disputeReason:
          code: '13.1'
          description: Merchandise/Services Not Received
          category: Cardholder Disputes
        created: '2023-08-01T11:20:42.340Z'
        eventDate: '2023-08-01T11:20:40.000Z'
        disputeKey: dsp-2WfYI0z3Y1N58H07MVKr
        initiator: issuer
        disputeVersion: 1
        status: active
    liability-accepted:
      summary: Liability for a dispute has been accepted
      value:
        key: deh-3jdAyQ5ELRqpuxpO8SaA
        agentKey: cgt-24OJ9rv4u6x5jEu3MP91
        merchantKey: mct-3xrcuvGUx8ORqnx3347e
        merchantAcceptorKey: mac-3C1j58SixdfARL5qmmlx
        disputeStatus: closedAccepted
        disputeStage: chargeback
        disputeAmount:
          value: 1234
          currency: EUR
        disputeReason:
          code: '13.1'
          description: Merchandise/Services Not Received
          category: Cardholder Disputes
        comment: This dispute was closed as the Acquirer accepted liability.
        created: '2023-08-01T11:20:42.340Z'
        eventDate: '2023-08-01T11:20:40.000Z'
        disputeKey: dsp-2WfYI0z3Y1N58H07MVKr
        initiator: issuer
        disputeVersion: 1
        status: active
    mc-chargeback-received:
      summary: 'Mastercard: A chargeback has been received'
      value:
        key: deh-3jdAyQ5ELRqpuxpO8SaA
        agentKey: cgt-24OJ9rv4u6x5jEu3MP91
        merchantKey: mct-3xrcuvGUx8ORqnx3347e
        merchantAcceptorKey: mac-3C1j58SixdfARL5qmmlx
        disputeStatus: received
        disputeStage: chargeback
        disputeAmount:
          value: 1234
          currency: EUR
        disputeReason:
          code: '4853'
          description: Cardholder Disputes
          category: Cardholder Disputes
        files:
          - filename: mastercom-123456789.pdf
            originalFilename: 00AABBCCDDEEFF.pdf
            contentType: application/pdf
            contentLength: 1234567
            owner: issuer
            disputeStage: chargeback
            key: dok-3qB1HcvH56pKlDj1lnob
        created: '2023-08-01T11:20:42.340Z'
        eventDate: '2023-08-01T11:20:40.000Z'
        disputeKey: dsp-2WfYI0z3Y1N58H07MVKr
        initiator: issuer
        disputeVersion: 2
        status: active
        eventDetails:
          messageText: 9189690734CARDHOLDER DID NOT AUTHORISE
    collaboration-request-received:
      summary: 'Mastercard: A collaboration request has been received'
      value:
        key: deh-3jdAyQ5ELRqpuxpO8SaA
        agentKey: cgt-24OJ9rv4u6x5jEu3MP91
        merchantKey: mct-3xrcuvGUx8ORqnx3347e
        merchantAcceptorKey: mac-3C1j58SixdfARL5qmmlx
        disputeStatus: received
        disputeStage: collaboration
        disputeAmount:
          value: 1234
          currency: EUR
        disputeReason:
          code: '4853'
          description: Cardholder Disputes
          category: Cardholder Disputes
        created: '2023-08-01T11:20:42.340Z'
        eventDate: '2023-08-01T11:20:40.000Z'
        disputeKey: dsp-2WfYI0z3Y1N58H07MVKr
        initiator: issuer
        disputeVersion: 1
        status: active
        eventDetails:
          elaboration: ISSUER MEMO
    mc-prearbitration-received:
      summary: 'Mastercard: A prearbitration was received'
      value:
        key: deh-3jdAyQ5ELRqpuxpO8SaA
        agentKey: cgt-24OJ9rv4u6x5jEu3MP91
        merchantKey: mct-3xrcuvGUx8ORqnx3347e
        merchantAcceptorKey: mac-3C1j58SixdfARL5qmmlx
        disputeStatus: received
        disputeStage: preArbitration
        disputeAmount:
          value: 1234
          currency: EUR
        disputeReason:
          code: '4853'
          description: Cardholder Disputes
          category: Cardholder Disputes
        files: []
        created: '2023-08-01T11:20:42.340Z'
        eventDate: '2023-08-01T11:20:40.000Z'
        disputeKey: dsp-2WfYI0z3Y1N58H07MVKr
        initiator: issuer
        disputeVersion: 6
        status: active
        eventDetails:
          elaboration: |-
            The Reason for Filing:
            PRE-ARBITRATION ATTEMPT
    visa-chargeback-received:
      summary: 'Visa: Chargeback received'
      value:
        key: deh-3jdAyQ5ELRqpuxpO8SaA
        agentKey: cgt-24OJ9rv4u6x5jEu3MP91
        merchantKey: mct-3xrcuvGUx8ORqnx3347e
        merchantAcceptorKey: mac-3C1j58SixdfARL5qmmlx
        disputeStatus: received
        disputeStage: chargeback
        disputeAmount:
          value: 1234
          currency: EUR
        disputeReason:
          code: '13.1'
          description: Merchandise/Services Not Received
          category: Cardholder Disputes
        files:
          - filename: vrol-9876543210-1234567890.pdf
            originalFilename: 1234567890.pdf
            contentType: application/pdf
            contentLength: 234567
            owner: issuer
            disputeStage: chargeback
            key: dok-3qB1HcvH56pKlDj1lnob
          - filename: vrol-9876543210-1234567891.pdf
            originalFilename: 1234567891.pdf
            contentType: application/pdf
            contentLength: 345678
            owner: issuer
            disputeStage: chargeback
            key: dok-3CubbFcp9HRtaHFiEav5
        created: '2023-08-01T11:20:42.340Z'
        eventDate: '2023-08-01T11:20:40.000Z'
        disputeKey: dsp-2WfYI0z3Y1N58H07MVKr
        initiator: issuer
        disputeVersion: 1
        status: active
        eventDetails:
          issuerQuestionnaire:
            DisputeDueTo: NR
            CardholderAttemptToResolve: 'Y'
            WhatWasNotReceived: S
            ThirdPartyGiftCardInd: 'N'
            PurchasedInfo: THE CARDHOLDER HAS PAID FOR THE SERVICE. THE AMOUNT WAS WITHDRAWN FROM THE CARD, BUT NO SERVICE WAS PROVIDED TO THE CARDHOLDER. THE CARDHOLDER TRIED TO COMMUNICATE WITH THE MERCHANT BUT DID NOT GET ANY RESULTS. THE CARDHOLDER WANTS TO GET THE AMOUNT BACK.
            ExpectedReceiptDate: '2023-09-20'
            ExpectedReceiptTime: 20.09.2023
            DidCardholderCancelPriorExpectedDate: 'N'
    visa-prearbitration-received:
      summary: 'Visa: A prearbitration was received'
      value:
        key: deh-3jdAyQ5ELRqpuxpO8SaA
        agentKey: cgt-24OJ9rv4u6x5jEu3MP91
        merchantKey: mct-3xrcuvGUx8ORqnx3347e
        merchantAcceptorKey: mac-3C1j58SixdfARL5qmmlx
        disputeStatus: received
        disputeStage: preArbitration
        disputeAmount:
          value: 1234
          currency: EUR
        disputeReason:
          code: '13.1'
          description: Merchandise/Services Not Received
          category: Cardholder Disputes
        files:
          - filename: vrol-9876543210-1234567890.pdf
            originalFilename: 1234567890.pdf
            contentType: application/pdf
            contentLength: 85833
            owner: issuer
            disputeStage: chargebackResponse
            key: dok-3CubbFcp9HRtaHFiEav5
        created: '2023-08-01T11:20:42.340Z'
        eventDate: '2023-08-01T11:20:40.000Z'
        disputeKey: dsp-2WfYI0z3Y1N58H07MVKr
        initiator: issuer
        disputeVersion: 5
        status: active
        eventDetails: {}
    prearbitration-response-received:
      summary: 'Visa: Prearbitration response received'
      value:
        key: deh-3jdAyQ5ELRqpuxpO8SaA
        agentKey: cgt-24OJ9rv4u6x5jEu3MP91
        merchantKey: mct-3xrcuvGUx8ORqnx3347e
        merchantAcceptorKey: mac-3C1j58SixdfARL5qmmlx
        disputeStatus: received
        disputeStage: preArbitrationResponse
        disputeAmount:
          value: 1234
          currency: EUR
        disputeReason:
          code: '13.1'
          description: Merchandise/Services Not Received
          category: Cardholder Disputes
        created: '2023-08-01T11:20:42.340Z'
        eventDate: '2023-08-01T11:20:40.000Z'
        disputeKey: dsp-2WfYI0z3Y1N58H07MVKr
        initiator: issuer
        disputeVersion: 17
        status: active
        eventDetails:
          elaboration: Invalid pre arbitration, after presenting cardholder with the information and documentation received in your pre arbitration, cardholder still denies authorizing or participating in this transaction.
    create-event-subscription-dispute-events:
      summary: Example request creating an Event Subscription to receive Dispute event notifications on https://my.server.com/events/disputes
      value:
        description: Data Lake Disputes Event Subscription
        eventSource: https://silverflow.com/disputes
        targetUrl: https://my.server.com/events/disputes
    fee-request-visa:
      summary: Fee Request Visa
      value:
        cardNumber: '4200350000000801'
        amount:
          value: 3000
          currency: EUR
        merchantAcceptorKey: mac-1JRadf2ffdfrdPMf2XrS2
        chargeType:
          intent: purchase
          cardEntry: e-commerce
          order: checkout
        threeDsAuthentication: none
        isRefund: false
    fees-interchange-estimate-response:
      summary: Example of an Fee Interchange Estimate response
      value:
        segments:
          currency: USD
          fixed: 10
          basisPoints: 15
          max: 200
          min: 20
        feeDate: '2021-12-01'
        amount:
          value: 99
          currency: EUR
        rates:
          - date: '2021-12-04'
            source: USD
            target: EUR
            operation: multiply
            type: buy
            rate: 84596
            exponent: 5
        designator:
          ird: '73'
          businessServiceArrangement:
            cardProgramIdentifier: DMC
            type: '2'
            idCode: '050002'
            priority: '04'
    tiered-fee:
      summary: Tiered Fee
      value:
        cardNetwork: mastercard
        fees:
          - billingFrequency: daily
            feeId: ID123
            feeDescription: Example Fee Description
            sourceAmount:
              impact: credit
              value: '100'
              currency: EUR
            convertedSourceAmount:
              impact: credit
              value: '105'
              currency: USD
            tierId: '-'
            tiering: count
            numberOfTiers: 2
            feeRate:
              type: fixed
              currency: EUR
              tiers:
                - impact: credit
                  value: '100'
                  tierNumber: 1
                  upToIncluding: 1000
                - impact: credit
                  value: '95'
                  tierNumber: 2
                  above: 1000
            billingAmount:
              currency: EUR
              amounts:
                - impact: credit
                  value: '100'
                  tierNumber: 1
                  upToIncluding: 1000
                - impact: credit
                  value: '95'
                  tierNumber: 2
                  above: 1000
          - billingFrequency: daily
            feeId: ID123
            feeDescription: Example Fee Description
            sourceAmount:
              impact: credit
              value: '100'
              currency: EUR
            convertedSourceAmount:
              impact: credit
              value: '105'
              currency: USD
            tierId: '-'
            tiering: volume
            numberOfTiers: 2
            feeRate:
              type: fixed
              currency: EUR
              tiers:
                - impact: credit
                  value: '100'
                  tierNumber: 1
                  upToIncluding: 1000
                - impact: credit
                  value: '95'
                  tierNumber: 2
                  above: 1000
            billingAmount:
              currency: EUR
              amounts:
                - impact: credit
                  value: '100'
                  tierNumber: 1
                  upToIncluding: 1000
                - impact: credit
                  value: '95'
                  tierNumber: 2
                  above: 1000
        conversionRates:
          - date: '2023-12-01T09:00:00.000Z'
            source: EUR
            target: USD
            rate: '1.05'
            operation: multiply
    non-tiered-fee:
      summary: Non-Tiered Fee
      value:
        cardNetwork: visa
        fees:
          - tiering: none
            billingFrequency: daily
            feeId: ID123
            feeDescription: Example Fee Description
            sourceAmount:
              impact: credit
              value: '100'
              currency: EUR
            convertedSourceAmount:
              impact: credit
              value: '105'
              currency: USD
            tierId: '-'
            feeRate:
              type: fixed
              currency: EUR
              tiers:
                - impact: credit
                  value: '100'
            billingAmount:
              amounts:
                - impact: credit
                  value: '100'
              currency: EUR
        conversionRates:
          - date: '2023-12-01T09:00:00.000Z'
            source: EUR
            target: USD
            rate: '1.05'
            operation: multiply
    create-merchant-simple:
      summary: Example request creating a Merchant that is 'active'
      value:
        merchantReference: AB1234-5678_10.31
        name: ACME Corporation
        description: ACME Corporation. Building materials, rockets and birdseed.
        legalName: Acme Corp.
        registeredAddress:
          countryCode:
            alpha3: USA
          stateOrProvince: CA
          city: Hill Valley
          line1: Riverside Drive
          line2: '1640'
          postalCode: '91103'
        customerInquiry: '+15554321'
        websiteUrl: https://acme.com/catalog
    update-merchant-change-address:
      summary: Example request updating the Merchant address
      value:
        registeredAddress:
          countryCode:
            alpha3: USA
          stateOrProvince: CA
          city: Hill Valley
          line1: Riverside Drive 1640
          postalCode: '91103'
    report-reconciliation-details-firstPresentment-dms:
      summary: Example of a reconciliation detail of type firstPresentment-dms
      value:
        offsetToken: eyJjcmVhdGVkIjoiMjAyMy0wNC0xM1QxMDoxNjoyNC44NzNaIiwiZW50aXR5IjoiZmlyc3RQcmVzZW50bWVudCNmYWxzZSNkbXMjMSIsImlkIjoidmlzYS0yMTIzNDU4MzEwMzM2MDAwMDAxMzUyNyIsImFnZW50S2V5IjoiY2d0LTFKTDMyR2hoM2tHWXNhNzRXYnFqIn0
        moreItems: true
        items:
          - key: rcl-6r6yyukhjuy2t7ghafej
            groupReference: mastercard-02708273027680000003485
            type: firstPresentment-dms
            created: '2023-03-23T12:53:08.666Z'
            entry: 1
            isCorrection: false
            reportingFor: '123456'
            network: mastercard
            fundsTransferDate: '2023-01-30'
            fundsTransferBookDate: '2023-01-30'
            networkFundsTransferKey: nft-aTrKhISSAKrbPeEMHJQ5
            netSettlementAmount:
              value: 3498.473
              currency: EUR
              impact: credit
            settlementService:
              code: EU00000008
              id: EU00000008-EUR
              name: EUR - Deutsche Bank, Frankfurt
            typeSpecific:
              arn: mastercard-72802773027680000003485
              processingDate: '2023-01-30'
              bin:
                key: bin-1ugugl0NlKtuTTEkr1bJ
                description: silverflow-mastercard
                acquirerBin: '728027'
              transactionReference: abc1
              actionKey: act-123gjkjg7t7t87
              actionReference: actionRef766rjh
              clearableTime: '2023-01-30T05:58:32.598Z'
              filename: 123456-230130-00016
              merchantAcceptor:
                legalName: Silverflow Merchant B.V.
                doingBusinessAsName: Silverflow Merchant B.V.
                description: Test Merchant Mastercard
                mid: '123456789'
                key: mac-037486yhe0ru9gwe9yha
              chargeKey: chg-91f8a4wtasnd623tpehj
              authorizationAmount:
                value: 3509
                currency: EUR
                impact: credit
              cashbackAmount:
                value: 10
                currency: EUR
              clearingAmount:
                value: 3509
                currency: EUR
                impact: credit
              grossSettlementAmount:
                value: 3509
                currency: EUR
                impact: credit
              interchangeFeeAmount:
                value: 10.527
                currency: EUR
                impact: debit
              acquirerIdCode: '123456'
              transactionType: purchase
              tags:
                IamAKey: ThisIsaValue!
              cardInfoSummary:
                cardCountry:
                  code:
                    alpha2: NL
                    alpha3: NLD
                    numeric: '528'
                accountFundingSource: Debit
                productType: Consumer
    report-reconciliation-details-firstPresentment-sms:
      summary: Example of a reconciliation detail of type firstPresentment-sms
      value:
        offsetToken: eyJjcmVhdGVkIjoiMjAyMy0wNC0xM1QxMDoxNjoyNC44NzNaIiwiZW50aXR5IjoiZmlyc3RQcmVzZW50bWVudCNmYWxzZSNkbXMjMSIsImlkIjoidmlzYS0yMTIzNDU4MzEwMzM2MDAwMDAxMzUyNyIsImFnZW50S2V5IjoiY2d0LTFKTDMyR2hoM2tHWXNhNzRXYnFqIn0
        moreItems: true
        items:
          - key: rcl-6r6yyukhjuy2t7ghafej
            groupReference: visa-594518973459
            type: firstPresentment-sms
            created: '2023-03-23T12:53:08.666Z'
            entry: 1
            isCorrection: false
            reportingFor: '123456'
            network: visa
            fundsTransferDate: '2023-01-30'
            fundsTransferBookDate: '2023-01-30'
            networkFundsTransferKey: nft-3aKhISSAKrbPeEMHJQ5
            netSettlementAmount:
              value: 3498.473
              currency: EUR
              impact: credit
            settlementService:
              code: '080'
              id: 080-EUR
              name: Euro Area Net Settlement Service
            typeSpecific:
              rrn: visa-594518973459
              processingDate: '2023-01-30'
              bin:
                key: bin-1ugugl0NlKtuTTEkr1bJ
                description: silverflow-visa
                acquirerBin: '728027'
              transactionReference: abc1
              actionKey: act-123gjkjg7t7t87
              actionReference: actionRef766rjh
              merchantAcceptor:
                legalName: Silverflow Merchant B.V.
                doingBusinessAsName: Silverflow Merchant B.V.
                description: Test Merchant Visa
                mid: '123456789'
                key: mac-5a7486yhe0ru9gwe9yha
              chargeKey: chg-5Ef8a4wtasnd623tpehj
              authorizationAmount:
                value: 3509
                currency: EUR
                impact: credit
              grossSettlementAmount:
                value: 3509
                currency: EUR
                impact: credit
              interchangeFeeAmount:
                value: 10.527
                currency: EUR
                impact: debit
              acquirerIdCode: '123456'
              transactionType: payout
              tags:
                IamAKey: ThisIsaValue!
              cardInfoSummary:
                cardCountry:
                  code:
                    alpha2: US
                    alpha3: USA
                    numeric: '840'
                accountFundingSource: Credit
                productType: Commercial
    report-reconciliation-details-firstPresentment-RTC:
      summary: Example of a reconciliation detail of type firstPresentment-rtc
      value:
        offsetToken: eyJjcmVhdGVkIjoiMjAyMy0wNC0xM1QxMDoxNjoyNC44NzNaIiwiZW50aXR5IjoiZmlyc3RQcmVzZW50bWVudCNmYWxzZSNkbXMjMSIsImlkIjoidmlzYS0yMTIzNDU4MzEwMzM2MDAwMDAxMzUyNyIsImFnZW50S2V5IjoiY2d0LTFKTDMyR2hoM2tHWXNhNzRXYnFqIn0
        moreItems: true
        items:
          - key: rcl-6ryukhj0823tgtghafej
            groupReference: bancontact-954174321573
            type: firstPresentment-rtc
            created: '2023-10-23T12:53:08.666Z'
            entry: 1
            isCorrection: false
            reportingFor: '123456'
            network: bancontact
            fundsTransferDate: '2023-10-23'
            fundsTransferBookDate: '2023-10-23'
            networkFundsTransferKey: nft-aTrKhdgwAKrbPeEMHJQ5
            netSettlementAmount:
              value: 350924
              currency: EUR
              impact: credit
            settlementService:
              code: EU
              id: EU-EUR
              name: BancontactSettlement
            typeSpecific:
              rrn: bancontact-954174321573
              processingDate: '2023-10-21'
              bin:
                key: bin-1ug53l0NlKtuTTEkr1bJ
                description: Silverflow Bancontact
                acquirerBin: '700000'
              transactionReference: abc1
              merchantAcceptor:
                legalName: Silverflow Merchant B.V.
                doingBusinessAsName: Silverflow Merchant B.V.
                description: Test Merchant Mastercard
                mid: '123456789'
                key: mac-037486yhe0ru9gwe9yha
              chargeKey: chg-91f8a4wtasnd623tpehj
              authorizationAmount:
                value: 350924
                currency: EUR
                impact: credit
              grossSettlementAmount:
                value: 350924
                currency: EUR
                impact: credit
              interchangeFeeAmount:
                value: 5
                currency: EUR
                impact: debit
              acquirerIdCode: '800000'
              transactionType: purchase
              switchPeriodDate: '2023-10-21'
              switchPeriodNumber: '7274'
    report-reconciliation-details-cardNetworkFee:
      summary: Example of a reconciliation detail of type cardNetworkFee
      value:
        offsetToken: eyJjcmVhdGVkIjoiMjAyMy0wNC0xM1QxMDoxNjoyNC44NzNaIiwiZW50aXR5IjoiZmlyc3RQcmVzZW50bWVudCNmYWxzZSNkbXMjMSIsImlkIjoidmlzYS0yMTIzNDU4MzEwMzM2MDAwMDAxMzUyNyIsImFnZW50S2V5IjoiY2d0LTFKTDMyR2hoM2tHWXNhNzRXYnFqIn0
        moreItems: true
        items:
          - key: rcl-6r6yyukhjuy2t7ghafej
            groupReference: mastercard-02708273027680000003485
            type: cardNetworkFee-dms
            created: '2023-03-23T12:53:08.666Z'
            entry: 1
            isCorrection: false
            reportingFor: '123456'
            network: mastercard
            fundsTransferDate: '2023-01-30'
            fundsTransferBookDate: '2023-01-30'
            networkFundsTransferKey: nft-aTrKhISSAKrbPeEMHJQ5
            netSettlementAmount:
              value: 3498.473
              currency: EUR
              impact: credit
            settlementService:
              code: EU00000008
              id: EU00000008-EUR
              name: EUR - Deutsche Bank, Frankfurt
            typeSpecific:
              acquirerIdCode: '123456'
              processingDate: '2023-01-30'
              type: Clearing System-generated
              subType: EDP Adjustment Amount
              description: INTERCHANGE EDP ADJUSTMENT FOR PROCESS DATE 23/01/27
    report-reconciliation-details-firstChargeback-dms:
      summary: Example of a reconciliation detail of type firstChargeback-dms
      value:
        offsetToken: eyJjcmVhdGVkIjoiMjAyMy0wNC0xM1QxMDoxNjoyNC44NzNaIiwiZW50aXR5IjoiZmlyc3RQcmVzZW50bWVudCNmYWxzZSNkbXMjMSIsImlkIjoidmlzYS0yMTIzNDU4MzEwMzM2MDAwMDAxMzUyNyIsImFnZW50S2V5IjoiY2d0LTFKTDMyR2hoM2tHWXNhNzRXYnFqIn0
        moreItems: true
        items:
          - key: rcl-6r6yyukhjuy2t7ghafej
            groupReference: visa-02708273027680000003485
            type: firstChargeback-dms
            created: '2023-03-23T12:53:08.666Z'
            entry: 1
            isCorrection: false
            reportingFor: '123456'
            network: visa
            fundsTransferDate: '2023-01-30'
            fundsTransferBookDate: '2023-01-30'
            networkFundsTransferKey: nft-jv4Og3CCLwE4uph5PII8
            netSettlementAmount:
              value: 3498.473
              currency: EUR
              impact: credit
            settlementService:
              code: '080'
              id: 080-EUR
              name: Euro Area Net Settlement Service
            typeSpecific:
              arn: visa-72802773027680000003485
              processingDate: '2023-01-30'
              bin:
                key: bin-1ugugl0NlKtuTTEkr1bJ
                description: silverflow-visa
                acquirerBin: '728027'
              transactionReference: abc1
              merchantAcceptor:
                legalName: Silverflow Merchant B.V.
                doingBusinessAsName: Silverflow Merchant B.V.
                description: Test Merchant Visa
                mid: '123456789'
                key: mac-037486yhe0ru9gwe9yha
              chargeKey: chg-91f8a4wtasnd623tpehj
              authorizationAmount:
                value: 3509
                currency: EUR
                impact: credit
              grossSettlementAmount:
                value: 3509
                currency: EUR
                impact: credit
              interchangeFeeAmount:
                value: 10.527
                currency: EUR
                impact: debit
              acquirerIdCode: '123456'
              transactionType: purchase
              preDispute: rapidDisputeResolution
              reversal: false
    report-reconciliation-details-firstChargeback-sms:
      summary: Example of a reconciliation detail of type firstChargeback-sms
      value:
        offsetToken: eyJjcmVhdGVkIjoiMjAyMy0wNC0xM1QxMDoxNjoyNC44NzNaIiwiZW50aXR5IjoiZmlyc3RQcmVzZW50bWVudCNmYWxzZSNkbXMjMSIsImlkIjoidmlzYS0yMTIzNDU4MzEwMzM2MDAwMDAxMzUyNyIsImFnZW50S2V5IjoiY2d0LTFKTDMyR2hoM2tHWXNhNzRXYnFqIn0
        moreItems: true
        items:
          - key: rcl-5oyukhjuy2t7ga3hafej
            groupReference: visa-594518973459
            type: firstChargeback-sms
            created: '2023-03-23T12:53:08.666Z'
            entry: 1
            isCorrection: false
            reportingFor: '123456'
            network: visa
            fundsTransferDate: '2025-08-19'
            fundsTransferBookDate: '2025-08-19'
            networkFundsTransferKey: nft-5aKhISSAKrbPeEMHJQ5
            netSettlementAmount:
              value: 3498.473
              currency: EUR
              impact: debit
            settlementService:
              code: '080'
              id: 080-EUR
              name: Euro Area Net Settlement Service
            typeSpecific:
              rrn: visa-594518973459
              processingDate: '2023-01-30'
              bin:
                key: bin-1ugugl0NlKtuTTEkr1bJ
                description: silverflow-visa
                acquirerBin: '728027'
              transactionReference: abc1
              actionKey: act-123gjkjg7t7t87
              actionReference: actionRef766rjh
              merchantAcceptor:
                legalName: Silverflow Merchant B.V.
                doingBusinessAsName: Silverflow Merchant B.V.
                description: Test Merchant Visa
                mid: '123456789'
                key: mac-5a7486yhe0ru9gwe9yha
              chargeKey: chg-5Ef8a4wtasnd623tpehj
              grossSettlementAmount:
                value: 3509
                currency: EUR
                impact: debit
              interchangeFeeAmount:
                value: 10.527
                currency: EUR
                impact: credit
              acquirerIdCode: '123456'
              transactionType: payout
              reversal: false
              tags:
                IamAKey: ThisIsaValue!
    report-reconciliation-details-secondPresentment-dms:
      summary: Example of a reconciliation detail of type secondPresentment-dms
      value:
        offsetToken: eyJjcmVhdGVkIjoiMjAyMy0wNC0xM1QxMDoxNjoyNC44NzNaIiwiZW50aXR5IjoiZmlyc3RQcmVzZW50bWVudCNmYWxzZSNkbXMjMSIsImlkIjoidmlzYS0yMTIzNDU4MzEwMzM2MDAwMDAxMzUyNyIsImFnZW50S2V5IjoiY2d0LTFKTDMyR2hoM2tHWXNhNzRXYnFqIn0
        moreItems: true
        items:
          - key: rcl-6r6yyukhjuy2t7ghafej
            groupReference: mastercard-02708273027680000003485
            type: secondPresentment-dms
            created: '2023-03-23T12:53:08.666Z'
            entry: 1
            isCorrection: false
            reportingFor: '123456'
            network: mastercard
            fundsTransferDate: '2023-01-30'
            fundsTransferBookDate: '2023-01-30'
            networkFundsTransferKey: nft-aTrKhISSAKrbPeEMHJQ5
            netSettlementAmount:
              value: 3498.473
              currency: EUR
              impact: credit
            settlementService:
              code: EU00000008
              id: EU00000008-EUR
              name: EUR - Deutsche Bank, Frankfurt
            typeSpecific:
              arn: mastercard-72802773027680000003485
              processingDate: '2023-01-30'
              bin:
                key: bin-1ugugl0NlKtuTTEkr1bJ
                description: silverflow-mastercard
                acquirerBin: '728027'
              transactionReference: abc1
              merchantAcceptor:
                legalName: Silverflow Merchant B.V.
                doingBusinessAsName: Silverflow Merchant B.V.
                description: Test Merchant Mastercard
                mid: '123456789'
                key: mac-037486yhe0ru9gwe9yha
              chargeKey: chg-91f8a4wtasnd623tpehj
              authorizationAmount:
                value: 3509
                currency: EUR
                impact: credit
              grossSettlementAmount:
                value: 3509
                currency: EUR
                impact: credit
              interchangeFeeAmount:
                value: 10.527
                currency: EUR
                impact: debit
              acquirerIdCode: '123456'
              transactionType: purchase
    report-reconciliation-details-preArbitration-dms:
      summary: Example of a reconciliation detail of type preArbitration-dms
      value:
        offsetToken: eyJjcmVhdGVkIjoiMjAyMy0wNC0xM1QxMDoxNjoyNC44NzNaIiwiZW50aXR5IjoiZmlyc3RQcmVzZW50bWVudCNmYWxzZSNkbXMjMSIsImlkIjoidmlzYS0yMTIzNDU4MzEwMzM2MDAwMDAxMzUyNyIsImFnZW50S2V5IjoiY2d0LTFKTDMyR2hoM2tHWXNhNzRXYnFqIn0
        moreItems: true
        items:
          - key: rcl-6r6yyukhjuy2t7ghafej
            groupReference: mastercard-02708273027680000003485
            type: preArbitration-dms
            created: '2023-03-23T12:53:08.666Z'
            entry: 1
            isCorrection: false
            reportingFor: '123456'
            network: mastercard
            fundsTransferDate: '2023-01-30'
            fundsTransferBookDate: '2023-01-30'
            networkFundsTransferKey: nft-aTrKhISSAKrbPeEMHJQ5
            netSettlementAmount:
              value: 3498.473
              currency: EUR
              impact: credit
            settlementService:
              code: EU00000008
              id: EU00000008-EUR
              name: EUR - Deutsche Bank, Frankfurt
            typeSpecific:
              arn: mastercard-72802773027680000003485
              processingDate: '2023-01-30'
              bin:
                key: bin-1ugugl0NlKtuTTEkr1bJ
                description: silverflow-mastercard
                acquirerBin: '728027'
              transactionReference: abc1
              merchantAcceptor:
                legalName: Silverflow Merchant B.V.
                doingBusinessAsName: Silverflow Merchant B.V.
                description: Test Merchant Mastercard
                mid: '123456789'
                key: mac-037486yhe0ru9gwe9yha
              chargeKey: chg-91f8a4wtasnd623tpehj
              authorizationAmount:
                value: 3509
                currency: EUR
                impact: credit
              grossSettlementAmount:
                value: 3509
                currency: EUR
                impact: credit
              interchangeFeeAmount:
                value: 10.527
                currency: EUR
                impact: debit
              acquirerIdCode: '123456'
              transactionType: purchase
              disputeOutcome: closedLost
              reversal: false
    report-reconciliation-details-arbitration-dms:
      summary: Example of a reconciliation detail of type arbitration-dms
      value:
        offsetToken: eyJjcmVhdGVkIjoiMjAyMy0wNC0xM1QxMDoxNjoyNC44NzNaIiwiZW50aXR5IjoiZmlyc3RQcmVzZW50bWVudCNmYWxzZSNkbXMjMSIsImlkIjoidmlzYS0yMTIzNDU4MzEwMzM2MDAwMDAxMzUyNyIsImFnZW50S2V5IjoiY2d0LTFKTDMyR2hoM2tHWXNhNzRXYnFqIn0
        moreItems: true
        items:
          - key: rcl-6r6yyukhjuy2t7ghafej
            groupReference: mastercard-02708273027680000003485
            type: arbitration-dms
            created: '2023-03-23T12:53:08.666Z'
            entry: 1
            isCorrection: false
            reportingFor: '123456'
            network: mastercard
            fundsTransferDate: '2023-01-30'
            fundsTransferBookDate: '2023-01-30'
            networkFundsTransferKey: nft-aTrKhISSAKrbPeEMHJQ5
            netSettlementAmount:
              value: 3498.473
              currency: EUR
              impact: credit
            settlementService:
              code: EU00000008
              id: EU00000008-EUR
              name: EUR - Deutsche Bank, Frankfurt
            typeSpecific:
              arn: mastercard-72802773027680000003485
              processingDate: '2023-01-30'
              bin:
                key: bin-1ugugl0NlKtuTTEkr1bJ
                description: silverflow-mastercard
                acquirerBin: '728027'
              transactionReference: abc1
              merchantAcceptor:
                legalName: Silverflow Merchant B.V.
                doingBusinessAsName: Silverflow Merchant B.V.
                description: Test Merchant Mastercard
                mid: '123456789'
                key: mac-037486yhe0ru9gwe9yha
              chargeKey: chg-91f8a4wtasnd623tpehj
              authorizationAmount:
                value: 3509
                currency: EUR
                impact: credit
              grossSettlementAmount:
                value: 3509
                currency: EUR
                impact: credit
              interchangeFeeAmount:
                value: 10.527
                currency: EUR
                impact: debit
              acquirerIdCode: '123456'
              transactionType: purchase
              disputeOutcome: closedLost
              reversal: true
    error-bad-request:
      summary: Generic bad request error
      value:
        status: 400
        type: /silverflow/problems/bad-request
        title: Bad Request
        detail: The submitted request was syntactically or semantically invalid
        instance: /silverflow/dbfaddea-8178-469a-bc23-c5af05a3fa00
    error-invalid-offset-token:
      summary: Invalid offset token error
      value:
        status: 400
        type: /silverflow/problems/invalid-offset-token
        title: Invalid Offset Token
        detail: The provided offset token is invalid.
        instance: /silverflow/dbfaddea-8178-469a-bc23-c5af05a3fb48
    report-network-funds-transfers:
      summary: Example of a Page of Network Funds Transfers
      value:
        networkFundsTransfers:
          - key: nft-aTrKhISSAKrbPeEMHJQ5
            cardNetwork: mastercard
            reportingFor: '021010'
            settlementService:
              code: EU00000008
              name: Settlement Bank, Frankfurt
              currency: EUR
            reported:
              amount:
                value: 800235
                impact: credit
                currency: EUR
            fundsTransferBookDate: '2023-01-10'
            fundsTransferDate: '2023-01-10'
            created: '2023-01-09T07:15:57.272Z'
            lastModified: '2023-01-09T12:23:45.008Z'
            status: pending
          - key: nft-v0P069tMYq8ivga5oaM6
            cardNetwork: mastercard
            reportingFor: '021010'
            settlementService:
              code: EU00000012
              name: Settlement Bank, London
              currency: GBP
            reported:
              amount:
                value: 123235
                impact: credit
                currency: EUR
            fundsTransferBookDate: '2023-01-10'
            fundsTransferDate: '2023-01-10'
            created: '2023-01-09T09:15:57.272Z'
            lastModified: '2023-01-09T12:23:45.008Z'
            status: completed
          - key: nft-jv4Og3CCLwE4uph5PII8
            cardNetwork: visa
            reportingFor: '9000000001'
            settlementService:
              code: '080'
              name: Euro Area Net Settlement Service
              currency: EUR
            reported:
              amount:
                value: 442050
                impact: credit
                currency: EUR
            fundsTransferBookDate: '2023-01-10'
            fundsTransferDate: '2023-01-09'
            created: '2023-01-09T08:05:57.272Z'
            lastModified: '2023-01-09T12:23:45.008Z'
            status: pending
          - key: nft-p163R0xUx0HBuCUeVPTZ
            cardNetwork: visa
            reportingFor: '9000000002'
            settlementService:
              code: '001'
              name: International Settlement Service
              currency: NOK
            reported:
              amount:
                value: 53200150
                impact: credit
                currency: NOK
            fundsTransferBookDate: '2023-01-11'
            fundsTransferDate: '2023-01-11'
            created: '2023-01-09T08:25:57.272Z'
            lastModified: '2023-01-09T12:23:45.008Z'
            status: completed
        moreItems: false
    report-network-funds-transfer:
      summary: Example of a Network Funds Transfer
      value:
        key: nft-aTrKhISSAKrbPeEMHJQ5
        cardNetwork: mastercard
        reportingFor: '021010'
        settlementService:
          code: EU00000008
          name: Settlement Bank, Frankfurt
          currency: EUR
        reported:
          amount:
            value: 800235
            impact: credit
            currency: EUR
        fundsTransferBookDate: '2023-01-10'
        fundsTransferDate: '2023-01-10'
        created: '2023-01-09T07:15:57.272Z'
        lastModified: '2023-01-09T12:23:45.008Z'
        status: pending
    ReconciliationDetailsRequestByCreated:
      value:
        parameters:
          createdFrom: '2025-04-09T14:00:00Z'
          createdTo: '2025-04-10T14:00:00Z'
        reference: Report Reference
        mimeType: application/x-ndjson
        distributions:
          - dst-2e1dAHhgstYTUhlphPzZ
    ReconciliationDetailsRequestByNftKey:
      value:
        parameters:
          nftKey: nft-e7v4Og3CCLwE4uah5PA2
        reference: Report Reference
        mimeType: application/x-ndjson
        distributions:
          - dst-3e1dAHhgstYTUhlphPzZ
    InvalidDateRangeError:
      summary: Invalid Date Range Error
      value:
        type: /silverflow/problems/report/invalid-date-range
        title: Invalid date range
        status: 400
        detail: 'Invalid date range: 2019-08-25T14:15:22Z - 2019-08-24T14:15:22Z'
        instance: /silverflow/b4cc37a0-ab24-46b4-aa8c-cc2d6eddf1b6
    SchemeFeeDetailsReport:
      summary: Scheme Fee Details Report
      value:
        reportName: SchemeFeeDetails
        parameters:
          bookDateFrom: '2019-08-24T14:15:22Z'
          bookDateTo: '2019-08-24T14:15:22Z'
        mimeType: application/json
        key: rep-1e1dAHhgstYTUhlphPzZ
        agentKey: cgt-1e1dAHhgstYTUhlphPzZ
        reference: Report Reference
        status: completed
        result:
          size: 1337
          lastToken: ZfDH6YfTwPU2TweAN6a5Rk6cLZ1Xxyms
        created: '2019-08-24T14:15:22Z'
        reportScheduleKey: rsk-1e1dAHhgstYTUhlphPzZ
        lastModified: '2019-08-25T14:15:22Z'
        version: 2
    JSON:
      summary: SchemeFeeDetails
      value:
        - key: sfb-cAKaGQcUy64vHXPs8SR9jSayErDH5k6RWiBXihU6AP8
          agentKey: cgt-2YokFM7kSX7sKD3Sw000
          cardNetwork: mastercard
          feeCategory: authentication
          binKey: bin-2WpfFandCkkSX7sKM000
          bin: '271000'
          acquirerIdCode: '263000'
          merchantAcceptorKey: mac-2YokFM7yWNRbg8Xdo030
          merchantKey: mct-2YohR8zcx7FP8yoLJ010
          mid: '7000010'
          threeDsKey: tds-3z4GZdYHqqxVAwIacx2B
          transactionReference: b9b87e23-e7fe-4391-9ebd-97c598552e69
          billingFrequency: monthly
          tierId: TYA2805
          feeId: 2YA2805
          feeDescription: EMV 3DS - Acquiring Authentication Fee - Nonrecurring - Dom
          feeDate: '2023-11-27T21:01:44.890Z'
          bookDate: '2023-11-27T21:09:39.242Z'
          tiering: none
          feeRate:
            type: basisPoints
            currency: EUR
            tiers:
              - impact: debit
                value: '2.3'
          sourceAmount:
            impact: debit
            currency: EUR
            value: '1780.44'
          conversionRates:
            - date: '2023-11-27'
              source: USD
              target: EUR
              rate: '0.913'
              operation: multiply
          billingAmount:
            currency: EUR
            amounts:
              - impact: debit
                value: '0.4095012'
        - key: sfb-gK0db2KtEefFcn8LbMlt0sr7lSSLkyj5ZeQyWBDiSXo
          agentKey: cgt-2YokFM7kSX7sKD3Sw000
          cardNetwork: mastercard
          feeCategory: authentication
          binKey: bin-2WpfFandCkkSX7sKM000
          bin: '271000'
          acquirerIdCode: '263000'
          merchantAcceptorKey: mac-2YokFM7yWNRbg8Xdo030
          merchantKey: mct-2YohR8zcx7FP8yoLJ010
          mid: '7000010'
          threeDsKey: tds-3z4GZdYHqqxVAwIacx2B
          transactionReference: b9b87e23-e7fe-4391-9ebd-97c598552e69
          billingFrequency: monthly
          tierId: '-'
          feeId: 2YA2807
          feeDescription: EMV 3DS - Acquiring Authentication Fee - Nonrecurring - Dom
          feeDate: '2023-11-27T21:01:44.890Z'
          bookDate: '2023-11-27T21:09:39.242Z'
          tiering: none
          feeRate:
            type: basisPoints
            currency: EUR
            tiers:
              - impact: debit
                value: '15.5'
          sourceAmount:
            impact: debit
            currency: EUR
            value: '1780.44'
          conversionRates:
            - date: '2023-11-27'
              source: USD
              target: EUR
              rate: '0.913'
              operation: multiply
          billingAmount:
            currency: EUR
            amounts:
              - impact: debit
                value: '2.759682'
        - key: sfb-JrpJKfiyO4ep4ZoIZgot7v5wTh1uvdkENWDym4I11KP
          agentKey: cgt-2YokFM7kSX7sKD3Sw000
          cardNetwork: mastercard
          feeCategory: authorization
          binKey: bin-2WpfFandCkkSX7sKM000
          bin: '271000'
          acquirerIdCode: '263000'
          merchantAcceptorKey: mac-2YokFM7yWNRbg8Xdo030
          merchantKey: mct-2YohR8zcx7FP8yoLJ010
          mid: '7000010'
          chargeKey: chg-3z4GZe3eu1zYqMoH2Sa1
          transactionReference: b9b87e23-e7fe-4391-9ebd-97c598552e69
          billingFrequency: weekly
          serviceCode: AIQ
          tierId: '-'
          feeId: 2AB1116
          feeDescription: Account Status Inquiry Service Fee Domestic
          feeDate: '2023-11-27T21:01:44.890Z'
          bookDate: '2023-11-27T21:31:36.049Z'
          tiering: none
          feeRate:
            type: fixed
            currency: USD
            tiers:
              - impact: debit
                value: '2.5'
          sourceAmount:
            impact: debit
            currency: EUR
            value: '1780.44'
          conversionRates:
            - date: '2023-11-27'
              source: USD
              target: EUR
              rate: '0.913'
              operation: multiply
          convertedSourceAmount:
            impact: debit
            currency: USD
            value: '1950.09857612267'
          billingAmount:
            currency: USD
            amounts:
              - impact: debit
                value: '2.5'
    NDJSON:
      summary: SchemeFeeDetails
      value: |-
        {"key":"sfb-cAKaGQcUy64vHXPs8SR9jSayErDH5k6RWiBXihU6AP8","agentKey":"cgt-2YokFM7kSX7sKD3Sw000","region":"eu-west-1","binKey":"bin-2WpfFandCkkSX7sKM000","bin":"271000","acquirerIdCode":"263000","merchantAcceptorKey":"mac-2YokFM7yWNRbg8Xdo030","merchantKey":"mct-2YohR8zcx7FP8yoLJ010","mid":"7000010","threeDsKey":"tds-3z4GZdYHqqxVAwIacx2B","transactionReference":"b9b87e23-e7fe-4391-9ebd-97c598552e69","billingFrequency":"monthly","feeId":"2YA2805","feeDescription":"EMV 3DS - Acquiring Authentication Fee - Nonrecurring - Dom","feeDate":"2023-11-27T21:01:44.890Z","tiering":"none","feeRate":{"type":"basisPoints","currency":"EUR","tiers":[{"impact":"debit","value":"2.3"}]},"sourceAmount":{"currency":"EUR","value":"1780.44"},"conversionRates":[{"date":"2023-11-27","source":"USD","target":"EUR","rate":"0.913","operation":"multiply"}],"billingAmount":{"currency":"EUR","amounts":[{"impact":"debit","value":"0.4095012"}]},"cardNetwork":"mastercard","feeCategory":"authentication","tierId":"TYA2805","bookDate":"2023-11-27T21:09:39.242Z"}
        {"key":"sfb-gK0db2KtEefFcn8LbMlt0sr7lSSLkyj5ZeQyWBDiSXo","agentKey":"cgt-2YokFM7kSX7sKD3Sw000","region":"eu-west-1","binKey":"bin-2WpfFandCkkSX7sKM000","bin":"271000","acquirerIdCode":"263000","merchantAcceptorKey":"mac-2YokFM7yWNRbg8Xdo030","merchantKey":"mct-2YohR8zcx7FP8yoLJ010","mid":"7000010","threeDsKey":"tds-3z4GZdYHqqxVAwIacx2B","transactionReference":"b9b87e23-e7fe-4391-9ebd-97c598552e69","billingFrequency":"monthly","feeId":"2YA2807","feeDescription":"EMV 3DS - Acquiring Authentication Fee - Nonrecurring - Dom","feeDate":"2023-11-27T21:01:44.890Z","tiering":"none","feeRate":{"type":"basisPoints","currency":"EUR","tiers":[{"impact":"debit","value":"15.5"}]},"sourceAmount":{"currency":"EUR","value":"1780.44"},"conversionRates":[{"date":"2023-11-27","source":"USD","target":"EUR","rate":"0.913","operation":"multiply"}],"billingAmount":{"currency":"EUR","amounts":[{"impact":"debit","value":"2.759682"}]},"cardNetwork":"mastercard","feeCategory":"authentication","tierId":"-","bookDate":"2023-11-27T21:09:39.242Z"}
        {"key":"sfb-JrpJKfiyO4ep4ZoIZgot7v5wTh1uvdkENWDym4I11KP","agentKey":"cgt-2YokFM7kSX7sKD3Sw000","region":"eu-west-1","binKey":"bin-2WpfFandCkkSX7sKM000","bin":"271000","acquirerIdCode":"263000","merchantAcceptorKey":"mac-2YokFM7yWNRbg8Xdo030","merchantKey":"mct-2YohR8zcx7FP8yoLJ010","mid":"7000010","chargeKey":"chg-3z4GZe3eu1zYqMoH2Sa1","transactionReference":"b9b87e23-e7fe-4391-9ebd-97c598552e69","billingFrequency":"weekly","feeId":"2AB1116","feeDescription":"Account Status Inquiry Service Fee Domestic","serviceCode":"AIQ","feeDate":"2023-11-27T21:01:44.890Z","tiering":"none","feeRate":{"type":"fixed","currency":"USD","tiers":[{"impact":"debit","value":"2.5"}]},"sourceAmount":{"currency":"EUR","value":"1780.44"},"conversionRates":[{"date":"2023-11-27","source":"USD","target":"EUR","rate":"0.913","operation":"multiply"}],"convertedSourceAmount":{"currency":"USD","value":"1950.09857612267"},"billingAmount":{"currency":"USD","amounts":[{"impact":"debit","value":"2.5"}]},"cardNetwork":"mastercard","feeCategory":"authorization","tierId":"-","bookDate":"2023-11-27T21:31:36.049Z"}
    settlement-details_NDJSON:
      summary: SettlementDetails
      value: |-
        {"key":"sdt-uFVBghMZdwaiuqAG3nmU","bookDate":"2026-01-14T10:59:59.209Z","agentKey":"cgt-3jmyR7QcO6wJkKVkxeNO","detailType":"capture","messageSystem":"dms","network":"mastercard","networkFundsTransferKey":"nft-8jtYg6qRj78qSjKs19gc1T","settlementService":"EU00000008","fundsTransferDate":"2026-01-14","chargeKey":"chg-5lZM9lvcgAddVY8qHRKD","actionKey":"act-5q0rHkVMZJNqm8IJe0Or","actionReference":"ref-mc-capture-001","arn":"mastercard-01543396014007483105576","netSettlementAmount":{"value":10010,"currency":"EUR","impact":"debit"},"grossSettlementAmount":{"value":10000,"currency":"EUR","impact":"debit"},"interchangeFeeAmount":{"value":10,"currency":"EUR","impact":"debit"},"interchangeFeeDesignator":{"ird":"DMC","feeDescriptor":"","feeProgramIndicator":""},"charge":{"intent":"purchase","cardEntry":"terminal","order":"checkout"},"authorizationAmount":{"value":2000,"currency":"EUR"},"transactionReference":"296b1b51-bb0d-4994-a34a-892c128a52c6","merchant":{"acceptorKey":"mac-4RNqeYmfXm0zxVskKdWx","mid":"7DB91C34DC4C460"},"cardInfo":{"product":{"code":"TCS","name":"Mastercard® Standard Card—Immediate Debit","accountFundingSource":"Debit"},"member":{"id":"00000010243","name":"BANQUE FEDERATIVE DU CREDIT MU","countryCode":{"alpha3":"FRA"}},"cardCountry":{"code":{"alpha3":"FRA"}},"cardholderBillingCurrency":"EUR"},"clearing":{"amount":{"value":9500,"currency":"EUR"},"submittedTime":"2026-01-14T08:30:00.000Z"}}
        {"key":"sdt-DinersCnb0000000001","bookDate":"2026-01-14T10:59:59.209Z","agentKey":"cgt-3jmyR7QcO6wJkKVkxeNO","detailType":"card_network_billing","network":"diners","networkFundsTransferKey":"nft-diners-cnb-000001","settlementService":"EU00000008","fundsTransferDate":"2026-01-14","netSettlementAmount":{"value":200,"currency":"USD","impact":"debit"},"acquiringIsoIic":"diners-iso-iic-54321","interchangeFeeDesignator":{"ird":"","feeDescriptor":"","feeProgramIndicator":""},"merchant":{"acceptorKey":"","mid":""},"billingData":{"billingType":"diners_fee","feeDescription":"Diners Network Access Fee","ruleSerialNumber":"RSN-778899","ruleDescription":"Standard acquirer network access rule"}}
    CSV:
      summary: SchemeFeeDetails
      value: |-
        key,agentKey,cardNetwork,binKey,bin,acquirerIdCode,merchantAcceptorKey,merchantKey,mid,threeDsKey,chargeKey,chargeActionKey,clearingArn,transactionReference,actionReference,billingFrequency,serviceCode,tierId,feeId,feeDescription,feeDate,bookDate,tiering,numberOfTiers,feeRate.type,feeRate.currency,feeRate.tiers.0.value,feeRate.tiers.0.impact,feeRate.tiers.0.upToIncluding,feeRate.tiers.0.above,feeRate.tiers.1.value,feeRate.tiers.1.impact,feeRate.tiers.1.upToIncluding,feeRate.tiers.1.above,feeRate.tiers.2.value,feeRate.tiers.2.impact,feeRate.tiers.2.upToIncluding,feeRate.tiers.2.above,feeRate.tiers.3.value,feeRate.tiers.3.impact,feeRate.tiers.3.upToIncluding,feeRate.tiers.3.above,feeRate.tiers.4.value,feeRate.tiers.4.impact,feeRate.tiers.4.upToIncluding,feeRate.tiers.4.above,feeRate.tiers.5.value,feeRate.tiers.5.impact,feeRate.tiers.5.upToIncluding,feeRate.tiers.5.above,sourceAmount.currency,sourceAmount.value,conversionRates.0.date,conversionRates.0.source,conversionRates.0.target,conversionRates.0.rate,conversionRates.0.operation,conversionRates.1.date,conversionRates.1.source,conversionRates.1.target,conversionRates.1.rate,conversionRates.1.operation,convertedSourceAmount.currency,convertedSourceAmount.value,billingAmount.currency,billingAmount.amounts.0.value,billingAmount.amounts.0.impact,billingAmount.amounts.0.upToIncluding,billingAmount.amounts.0.above,billingAmount.amounts.1.value,billingAmount.amounts.1.impact,billingAmount.amounts.1.upToIncluding,billingAmount.amounts.1.above,billingAmount.amounts.2.value,billingAmount.amounts.2.impact,billingAmount.amounts.2.upToIncluding,billingAmount.amounts.2.above,billingAmount.amounts.3.value,billingAmount.amounts.3.impact,billingAmount.amounts.3.upToIncluding,billingAmount.amounts.3.above,billingAmount.amounts.4.value,billingAmount.amounts.4.impact,billingAmount.amounts.4.upToIncluding,billingAmount.amounts.4.above,billingAmount.amounts.5.value,billingAmount.amounts.5.impact,billingAmount.amounts.5.upToIncluding,billingAmount.amounts.5.above,reconciliationKey,feeCategory
        sfb-cAKaGQcUy64vHXPs8SR9jSayErDH5k6RWiBXihU6AP8,cgt-2YokFM7kSX7sKD3Sw000,mastercard,bin-2WpfFandCkkSX7sKM000,271000,263000,mac-2YokFM7yWNRbg8Xdo030,mct-2YohR8zcx7FP8yoLJ010,7000010,tds-3z4GZdYHqqxVAwIacx2B,,,,b9b87e23-e7fe-4391-9ebd-97c598552e69,,monthly,,TYA2805,2YA2805,EMV 3DS - Acquiring Authentication Fee - Nonrecurring - Dom,2023-11-27T21:01:44.890Z,2023-11-27T21:09:39.242Z,none,,basisPoints,EUR,2.3,debit,,,,,,,,,,,,,,,,,,,,,,,EUR,1780.44,2023-11-27,USD,EUR,0.913,multiply,,,,,,,,EUR,0.4095012,debit,,,,,,,,,,,,,,,,,,,,,,,,authentication
        sfb-gK0db2KtEefFcn8LbMlt0sr7lSSLkyj5ZeQyWBDiSXo,cgt-2YokFM7kSX7sKD3Sw000,mastercard,bin-2WpfFandCkkSX7sKM000,271000,263000,mac-2YokFM7yWNRbg8Xdo030,mct-2YohR8zcx7FP8yoLJ010,7000010,tds-3z4GZdYHqqxVAwIacx2B,,,,b9b87e23-e7fe-4391-9ebd-97c598552e69,,monthly,,-,2YA2807,EMV 3DS - Acquiring Authentication Fee - Nonrecurring - Dom,2023-11-27T21:01:44.890Z,2023-11-27T21:09:39.242Z,none,,basisPoints,EUR,15.5,debit,,,,,,,,,,,,,,,,,,,,,,,EUR,1780.44,2023-11-27,USD,EUR,0.913,multiply,,,,,,,,EUR,2.759682,debit,,,,,,,,,,,,,,,,,,,,,,,,authentication
        sfb-JrpJKfiyO4ep4ZoIZgot7v5wTh1uvdkENWDym4I11KP,cgt-2YokFM7kSX7sKD3Sw000,mastercard,bin-2WpfFandCkkSX7sKM000,271000,263000,mac-2YokFM7yWNRbg8Xdo030,mct-2YohR8zcx7FP8yoLJ010,7000010,,chg-3z4GZe3eu1zYqMoH2Sa1,,,b9b87e23-e7fe-4391-9ebd-97c598552e69,,weekly,AIQ,-,2AB1116,Account Status Inquiry Service Fee Domestic,2023-11-27T21:01:44.890Z,2023-11-27T21:31:36.049Z,none,,fixed,USD,2.5,debit,,,,,,,,,,,,,,,,,,,,,,,EUR,1780.44,2023-11-27,USD,EUR,0.913,multiply,,,,,,USD,1950.09857612267,USD,2.5,debit,,,,,,,,,,,,,,,,,,,,,,,,authorization
    CreateAmmfReportRequest:
      value:
        parameters:
          date: '2024-07-29'
          acquirerIdCode: '123456'
          directSubmission: false
        mimeType: application/vnd.ms-excel
        reference: AMMF-REPORT-20240729-001
        distributions:
          - dst-3e1dAHhgstYTUhlphPzZ
    CreateAmmfReportResponse:
      value:
        key: rep-2a1dAHhgstYTUhlphPzZ
        reportName: AmmfReport
        parameters:
          date: '2024-07-29'
          acquirerIdCode: '123456'
          directSubmission: false
        mimeType: application/vnd.ms-excel
        reference: AMMF-REPORT-20240729-001
        agentKey: cgt-1UF2NafdfrdPMf2XrS2
        status: scheduled
        created: '2019-08-24T14:15:22Z'
        distributions:
          - dst-1e1dAHhgstYTUhlphPzZ
    VisaQuarterlySchemeReportRequest:
      value:
        parameters:
          network: visa
          bid: '123456'
          year: 2024
          quarter: 1
          currency: USD
        reference: report reference
        mimeType: application/vnd.ms-excel
    MastercardQuarterlySchemeReportRequest:
      value:
        parameters:
          network: mastercard
          acquirerIdCode: '123456'
          year: 2024
          quarter: 1
          currency: USD
        reference: report reference
        mimeType: application/vnd.ms-excel
    VisaQuarterlySchemeReportResponse:
      value:
        reportName: VisaQuarterlySchemeReport
        parameters:
          network: visa
          bid: '123456'
          year: 2024
          quarter: 1
          currency: USD
        mimeType: application/vnd.ms-excel
        key: rep-1e1dAHhgstYTUhlphPzZ
        agentKey: cgt-1e1dAHhgstYTUhlphPzZ
        reference: Report Reference
        status: scheduled
        created: '2024-01-01T12:00:00Z'
        distributions:
          - dst-1e1dAHhgstYTUhlphPzZ
    MastercardQuarterlySchemeReportResponse:
      value:
        reportName: MastercardQuarterlySchemeReport
        parameters:
          network: mastercard
          acquirerIdCode: '123456'
          year: 2024
          quarter: 1
          currency: USD
        mimeType: application/vnd.ms-excel
        key: rep-1e1dAHhgstYTUhlphPzZ
        agentKey: cgt-1e1dAHhgstYTUhlphPzZ
        reference: Report Reference
        status: scheduled
        created: '2024-01-01T12:00:00Z'
        distributions:
          - dst-1e1dAHhgstYTUhlphPzZ
    HourlySchemeFeeDetails:
      value:
        reportName: SchemeFeeDetails
        reference: Report Reference
        trigger:
          type: interval
          cadence: hourly
        mimeType: application/json
    DailySchemeFeeDetails:
      value:
        reportName: SchemeFeeDetails
        reference: Report Reference
        trigger:
          type: interval
          cadence: daily
          hour: 5
        mimeType: application/json
    DailySchemeFeeDetailsWithDistributions:
      value:
        reportName: SchemeFeeDetails
        reference: Distributed Report Reference
        trigger:
          type: interval
          cadence: daily
          hour: 12
        mimeType: text/csv
        distributions:
          - dst-1e1dAHhgstYTUhlphPzZ
          - dst-1JRadf2ffdfrdPMf2XrS2
    MerchantPayoutRequest:
      value:
        reportName: MerchantPayout
        reference: Report Reference
        trigger:
          type: interval
          cadence: daily
          hour: 5
        mimeType: text/csv
        parameters:
          type: Standardized
    HourlySettlementDetails:
      value:
        reportName: SettlementDetails
        reference: Report Reference
        trigger:
          type: interval
          cadence: hourly
        mimeType: text/csv
    DailySettlementDetails:
      value:
        reportName: SettlementDetails
        reference: Report Reference
        trigger:
          type: interval
          cadence: daily
          hour: 5
        mimeType: text/csv
    AmmfRequest:
      value:
        reportName: AmmfReport
        reference: AMMF Report Reference
        trigger:
          type: interval
          cadence: monthly
          hour: 5
          day: 28
        parameters:
          acquirerIdCode: '123456'
          directSubmission: false
        mimeType: application/vnd.ms-excel
    Hourly:
      value:
        reportName: SchemeFeeDetails
        trigger:
          cadence: hourly
          type: interval
        mimeType: application/json
        key: rsk-9f9dAHhgstYTUhlphKsm
        status: active
        agentKey: cgt-1UF2NafdfrdPMf2XrS2
        created: '2024-10-28T08:00:00Z'
        lastModified: '2024-10-28T09:00:00Z'
        version: 1
        reference: Report Reference
    Daily:
      value:
        reportName: SchemeFeeDetails
        trigger:
          type: interval
          cadence: daily
          hour: 14
        mimeType: application/json
        key: rsk-9f9dAHhgstYTUhlphKsm
        status: active
        agentKey: cgt-1UF2NafdfrdPMf2XrS2
        created: '2024-10-28T08:00:00Z'
        lastModified: '2024-10-28T10:00:00Z'
        version: 1
        reference: Report Reference
    DailyWithDistributions:
      value:
        reportName: SchemeFeeDetails
        trigger:
          type: interval
          cadence: daily
          hour: 12
        mimeType: text/csv
        key: rsk-9f9dAHhgstYTUhlphKsm
        status: active
        agentKey: cgt-1UF2NafdfrdPMf2XrS2
        created: '2024-10-28T08:00:00Z'
        lastModified: '2024-10-28T10:00:00Z'
        version: 1
        reference: Distributed Report Reference
        distributions:
          - dst-1e1dAHhgstYTUhlphPzZ
          - dst-1JRadf2ffdfrdPMf2XrS2
    MerchantPayoutResponse:
      value:
        reportName: SchemeFeeDetails
        trigger:
          type: interval
          cadence: daily
          hour: 12
        mimeType: text/csv
        key: rsk-9f9dAHhgstYTUhlphKsm
        status: active
        agentKey: cgt-1UF2NafdfrdPMf2XrS2
        created: '2024-10-28T08:00:00Z'
        lastModified: '2024-10-28T10:00:00Z'
        version: 1
        reference: Merchant Payout Report
        parameters:
          type: Standardized
    settlement-details_Hourly:
      value:
        reportName: SettlementDetails
        trigger:
          cadence: hourly
          type: interval
        mimeType: text/csv
        key: rsk-9f9dAHhgstYTUhlphKsm
        status: active
        agentKey: cgt-1UF2NafdfrdPMf2XrS2
        created: '2024-10-28T08:00:00Z'
        lastModified: '2024-10-28T09:00:00Z'
        version: 1
        reference: Report Reference
    settlement-details_Daily:
      value:
        reportName: SettlementDetails
        trigger:
          type: interval
          cadence: daily
          hour: 14
        mimeType: text/csv
        key: rsk-9f9dAHhgstYTUhlphKsm
        status: active
        agentKey: cgt-1UF2NafdfrdPMf2XrS2
        created: '2024-10-28T08:00:00Z'
        lastModified: '2024-10-28T10:00:00Z'
        version: 1
        reference: Report Reference
    AmmfResponse:
      value:
        key: rsk-9f9dAHhgstYTUhlphKsm
        reportName: AmmfReport
        trigger:
          type: interval
          cadence: monthly
          hour: 5
          day: 28
        parameters:
          acquirerIdCode: '123456'
          directSubmission: false
        mimeType: application/vnd.ms-excel
        status: active
        agentKey: cgt-1UF2NafdfrdPMf2XrS2
        created: '2026-06-01T08:00:00Z'
        lastModified: '2026-06-01T10:00:00Z'
        version: 1
        reference: AMMF Report Reference
    EntityAlreadyExistsErrorExample:
      summary: A scheduled report with the passed values already exist
      value:
        type: /silverflow/problems/report/entity-already-exists
        title: Entity Already Exists
        status: 409
        detail: A report schedule with the passed values already exists.
        instance: /silverflow/b0451a9d-f66d-4ef7-9f5d-d48064a2bb3e
    openapi_components-examples-ReferencedEntityNotFoundErrorExample:
      summary: A referenced entity was not found
      value:
        type: /silverflow/problems/report/referenced-entity-not-found
        title: Referenced Entity Not Found
        status: 409
        detail: The referenced distribution key 'dst-1eOdAHhgstYTUhlphPFf' was not found.
        instance: /silverflow/b0451a9d-f66d-4ef7-9f5d-d48064a2bb3e
    ReferencedEntityArchivedErrorExample:
      summary: A referenced entity is archived
      value:
        type: /silverflow/problems/report/referenced-entity-archived
        title: Referenced Entity Archived
        status: 409
        detail: The referenced distribution with key 'dst-1eOdAHhgstYTUhlphPFf' is archived.
        instance: /silverflow/b0451a9d-f66d-4ef7-9f5d-d48064a2bb3e
    UpdateReportSchedule:
      value:
        reference: Distributed Report Reference
        trigger:
          type: interval
          cadence: hourly
        mimeType: application/json
        distributions:
          - dst-1e1dAHhgstYTUhlphPzZ
    InputValidationError:
      summary: Input Validation Error
      value:
        type: /silverflow/problems/invalid-input
        title: Invalid Input
        status: 400
        detail: The request does not adhere to the defined API schema.
        instance: /silverflow/b4cc37a0-ab24-46b4-aa8c-cc2d6eddf1b6
        validationErrors:
          - path: /body/type
            errorCode: enum.openapi.validation
            message: 'must be equal to one of the allowed values: email'
    UnauthorizedError:
      summary: Unauthorized Error
      value:
        type: /silverflow/problems/authentication-required
        title: Authentication Required
        status: 401
        detail: The credentials supplied in the request are either missing, invalid, or not applicable in the current scope
        instance: /silverflow/8e445b2e-d745-4b38-a38d-781fc998e442
    ForbiddenError:
      summary: Forbidden Error
      value:
        type: /silverflow/problems/forbidden
        title: Forbidden
        status: 403
        detail: The server is refusing to execute the request for the current authenticated user
        instance: /silverflow/8e445b2e-d745-4b38-a38d-781fc998e442
    TooManyRequestsError:
      summary: Too Many Requests Error
      value:
        type: /silverflow/problems/too-many-requests
        title: Too Many Requests
        status: 429
        detail: The number of requests performed by the client has exceeded the configured maximum for a given period
        instance: /silverflow/8e445b2e-d745-4b38-a38d-781fc998e442
    CreateEmailDistributionRequest:
      summary: Create Email Distribution Request
      value:
        type: email
        targets:
          recipients:
            - to:
                - to-example@example.com
              cc:
                - cc-example@example.com
              bcc:
                - bcc-example@example.com
        reference: DistributionReference
    CreateSftpDistributionRequest:
      summary: Create SFTP Distribution Request
      value:
        type: sftp
        targets:
          host: file-server.company.com
          username: ssh-username
          dirPath: /files/reports/received/
        reference: sftp-distribution-reference
    CreateS3DistributionRequest:
      summary: Create S3 Distribution Request
      value:
        type: s3
        targets:
          accountId: '123456789012'
          bucketName: test-bucket
          directory: test-directory
          externalId: hiddenid
          roleArn: arn:aws:iam::123456789012:role/test-role
        reference: S3
    CreateEmailDistributionResponse:
      summary: Create Email Distribution Response
      value:
        type: email
        targets:
          recipients:
            - to:
                - to-example@example.com
              cc:
                - cc-example@example.com
              bcc:
                - bcc-example@example.com
        key: dst-1e1dAHhgstYTUhlphPzZ
        status: active
        agentKey: cgt-1e1dAHhgstYTUhlphPzZ
        created: '2025-01-24T14:15:22Z'
        version: 1
        reference: DistributionReference
    CreateSftpDistributionResponse:
      summary: Create SFTP Distribution Response
      value:
        type: sftp
        targets:
          host: file-server.company.com
          username: ssh-username
          dirPath: /files/reports/received/
        key: dst-1e1dAHhgstYTUhlphPzZ
        status: active
        agentKey: cgt-1e1dAHhgstYTUhlphPzZ
        created: '2025-04-24T14:15:22Z'
        version: 1
        reference: sftp-distribution-reference
    CreateS3DistributionResponse:
      summary: Create S3 Distribution Response
      value:
        type: s3
        targets:
          accountId: '123456789012'
          bucketName: test-bucket
          directory: test-directory
          externalId: hiddenid
          roleArn: arn:aws:iam::123456789012:role/test-role
        key: dst-5qJEzBHZ1vsYSBgKs1dK
        status: active
        agentKey: cgt-5qJCIJOofB9n0cYKZTUD
        created: '2025-04-24T14:15:22Z'
        version: 1
        reference: S3
    DistributionNotFoundError:
      summary: Distribution Not Found Error
      value:
        type: /silverflow/problems/distribution/not-found
        title: Distribution not found
        status: 404
        detail: The distribution dst-1e1dAHhgstYTUhlphPzZ is not found
        instance: /silverflow/8e445b2e-d745-4b38-a38d-781fc998e442
    perform-risk-assessment-fraudio:
      value:
        provider: fraudio
        merchantAcceptorKey: mac-1JRadf2ffdfrdPMf2XrS2
        card:
          number: '1234123412341234'
          expiryMonth: 1
          expiryYear: 2020
          holderName: Joe Cardholder
        amount:
          value: 900000000
          currency: EUR
        chargeType:
          intent: purchase
          cardEntry: e-commerce
          order: checkout
          sequence: initial
          terminalEntryMode: contactless
    perform-risk-assessment-cybersource:
      value:
        provider: cybersource
        merchantAcceptorKey: mac-1JRadf2ffdfrdPMf2XrS2
        card:
          number: '1234123412341234'
          expiryMonth: 1
          expiryYear: 2020
          holderName: Joe Cardholder
        amount:
          value: 900000000
          currency: EUR
        chargeType:
          intent: purchase
          cardEntry: e-commerce
          order: checkout
          sequence: initial
          terminalEntryMode: contactless
        customer:
          firstName: Joe
          lastName: Cardholder
          email: joecardholder@example.com
          phoneNumber: +31(0)12345678
          billingAddress:
            countryCode: US
            stateOrProvince: Pennsylvania
            city: Scranton
            line1: 1725 Slough Avenue
            line2: Suite 200
            postalCode: '18503'
        localTransactionDateTime: '2019-08-24T14:15:22Z'
        authentication:
          cvc: none
          avs: none
          threeDsResult: authenticated
        authorizationFields:
          responseCode: '00'
          eci: '5'
    get-token-data-response-mastercard:
      summary: Mastercard Network Token Data
      value:
        number: '5186151969951348'
        expiryMonth: 10
        expiryYear: 2026
        paymentAccountReference: 5001EUMYTT3AESCZGUEC77KPCLETI
    get-token-data-response-visa:
      summary: Visa Network Token Data
      value:
        number: '4817476114064469'
        expiryMonth: 12
        expiryYear: 2025
        paymentAccountReference: 5001EUMYTT3AESCZGUEC77KPCLETI
    pre-compliance:
      summary: Compliance case in pre-compliance stage
      value:
        type: com.silverflow.complianceCases.received
        data:
          key: cmp-1JRadf2ffdfrdPMf2XrS2
          complianceReference: testMasterRef-9876
          complianceStage: preCompliance
          network: visa
          arn: '12345678901234567890123'
          networkEventDate: '2022-02-17'
          created: '2022-02-17T16:03:42.991Z'
        source: https://silverflow.com/complianceCases
        specversion: '1.0'
        subject: cmp-1JRadf2ffdfrdPMf2XrS2
        dataschema: https://silverflow.com/schemas/events/complianceCases/1.0
        id: evt-1e1dAHhgstYTUhlphPzZ
        datacontenttype: application/json
        time: '2022-02-17T16:03:42.991Z'
        agent: cgt-EFG67b4yPre23ZDrLX
    compliance:
      summary: Compliance case in compliance stage
      value:
        type: com.silverflow.complianceCases.received
        data:
          key: cmp-1JRadf2ffdfrdPMf2XrS2
          complianceReference: testVisaRef-5432
          complianceStage: compliance
          network: visa
          arn: '98765432109876543210987'
          networkEventDate: '2022-02-20'
          created: '2022-02-20T10:30:15.123Z'
        source: https://silverflow.com/complianceCases
        specversion: '1.0'
        subject: cmp-1JRadf2ffdfrdPMf2XrS2
        dataschema: https://silverflow.com/schemas/events/complianceCases/1.0
        id: evt-9f2kDHjgrtYZUmlqoQaC
        datacontenttype: application/json
        time: '2022-02-20T10:30:15.123Z'
        agent: cgt-EFG67b4yPre23ZDrLX
    received:
      summary: Dispute was received
      value:
        type: com.silverflow.disputes.received
        data:
          disputeStatus: received
          key: dsp-1JRadf2ffdfrdPMf2XrS2
          networkReference: '28543746470772988'
          arn: '12345678901234567890123'
          created: '2019-08-24T14:15:22Z'
          version: 1
        source: https://silverflow.com/disputes
        specversion: '1.0'
        subject: dsp-1JRadf2ffdfrdPMf2XrS2
        dataschema: https://silverflow.com/schemas/events/disputes/1.0
        id: evt-1e1dAHhgstYTUhlphPzZ
        datacontenttype: application/json
        time: '2019-08-24T14:15:22Z'
        agent: cgt-EFG67b4yPre23ZDrLX
    acceptance-initiated:
      summary: Acceptance was initiated for Dispute
      value:
        type: com.silverflow.disputes.acceptanceInitiated
        data:
          disputeStatus: acceptanceInitiated
          key: dsp-1JRadf2ffdfrdPMf2XrS2
          networkReference: '28543746470772988'
          arn: '12345678901234567890123'
          created: '2019-08-24T14:15:22Z'
          lastModified: '2019-08-24T14:15:22Z'
          version: 2
        source: https://silverflow.com/disputes
        specversion: '1.0'
        subject: dsp-1JRadf2ffdfrdPMf2XrS2
        dataschema: https://silverflow.com/schemas/events/disputes/1.0
        id: evt-1e1dAHhgstYTUhlphPzZ
        datacontenttype: application/json
        time: '2019-08-24T14:15:22Z'
        agent: cgt-EFG67b4yPre23ZDrLX
    acceptance-failed:
      summary: Acceptance failed for Dispute
      value:
        type: com.silverflow.disputes.acceptanceFailed
        data:
          disputeStatus: acceptanceFailed
          key: dsp-1JRadf2ffdfrdPMf2XrS2
          networkReference: '28543746470772988'
          arn: '12345678901234567890123'
          created: '2019-08-24T14:15:22Z'
          lastModified: '2019-08-24T14:15:22Z'
          version: 3
        source: https://silverflow.com/disputes
        specversion: '1.0'
        subject: dsp-1JRadf2ffdfrdPMf2XrS2
        dataschema: https://silverflow.com/schemas/events/disputes/1.0
        id: evt-1e1dAHhgstYTUhlphPzZ
        datacontenttype: application/json
        time: '2019-08-24T14:15:22Z'
        agent: cgt-EFG67b4yPre23ZDrLX
    defense-initiated:
      summary: Defense was initiated for Dispute
      value:
        type: com.silverflow.disputes.defenseInitiated
        data:
          disputeStatus: defenseInitiated
          key: dsp-1JRadf2ffdfrdPMf2XrS2
          networkReference: '28543746470772988'
          arn: '12345678901234567890123'
          created: '2019-08-24T14:15:22Z'
          lastModified: '2019-08-24T14:15:22Z'
          version: 2
        source: https://silverflow.com/disputes
        specversion: '1.0'
        subject: dsp-1JRadf2ffdfrdPMf2XrS2
        dataschema: https://silverflow.com/schemas/events/disputes/1.0
        id: evt-1e1dAHhgstYTUhlphPzZ
        datacontenttype: application/json
        time: '2019-08-24T14:15:22Z'
        agent: cgt-EFG67b4yPre23ZDrLX
    defense-failed:
      summary: Defense failed for Dispute
      value:
        type: com.silverflow.disputes.defenseFailed
        data:
          disputeStatus: defenseFailed
          key: dsp-1JRadf2ffdfrdPMf2XrS2
          networkReference: '28543746470772988'
          arn: '12345678901234567890123'
          created: '2019-08-24T14:15:22Z'
          lastModified: '2019-08-24T14:15:22Z'
          version: 3
        source: https://silverflow.com/disputes
        specversion: '1.0'
        subject: dsp-1JRadf2ffdfrdPMf2XrS2
        dataschema: https://silverflow.com/schemas/events/disputes/1.0
        id: evt-1e1dAHhgstYTUhlphPzZ
        datacontenttype: application/json
        time: '2019-08-24T14:15:22Z'
        agent: cgt-EFG67b4yPre23ZDrLX
    evidence-submitted:
      summary: Evidence was submitted for Dispute
      value:
        type: com.silverflow.disputes.evidenceSubmitted
        data:
          disputeStatus: evidenceSubmitted
          key: dsp-1JRadf2ffdfrdPMf2XrS2
          networkReference: '28543746470772988'
          arn: '12345678901234567890123'
          created: '2019-08-24T14:15:22Z'
          lastModified: '2019-08-24T14:15:22Z'
          version: 2
        source: https://silverflow.com/disputes
        specversion: '1.0'
        subject: dsp-1JRadf2ffdfrdPMf2XrS2
        dataschema: https://silverflow.com/schemas/events/disputes/1.0
        id: evt-1e1dAHhgstYTUhlphPzZ
        datacontenttype: application/json
        time: '2019-08-24T14:15:22Z'
        agent: cgt-EFG67b4yPre23ZDrLX
    evidence-rejected:
      summary: Evidence was rejected for Dispute
      value:
        type: com.silverflow.disputes.evidenceRejected
        data:
          disputeStatus: evidenceRejected
          key: dsp-1JRadf2ffdfrdPMf2XrS2
          networkReference: '28543746470772988'
          arn: '12345678901234567890123'
          created: '2019-08-24T14:15:22Z'
          lastModified: '2019-08-24T14:15:22Z'
          version: 3
        source: https://silverflow.com/disputes
        specversion: '1.0'
        subject: dsp-1JRadf2ffdfrdPMf2XrS2
        dataschema: https://silverflow.com/schemas/events/disputes/1.0
        id: evt-1e1dAHhgstYTUhlphPzZ
        datacontenttype: application/json
        time: '2019-08-24T14:15:22Z'
        agent: cgt-EFG67b4yPre23ZDrLX
    awaiting-response:
      summary: Dispute is awaiting a response
      value:
        type: com.silverflow.disputes.awaitingResponse
        data:
          disputeStatus: awaitingResponse
          key: dsp-1JRadf2ffdfrdPMf2XrS2
          networkReference: '28543746470772988'
          arn: '12345678901234567890123'
          created: '2019-08-24T14:15:22Z'
          lastModified: '2019-08-24T14:15:22Z'
          version: 3
        source: https://silverflow.com/disputes
        specversion: '1.0'
        subject: dsp-1JRadf2ffdfrdPMf2XrS2
        dataschema: https://silverflow.com/schemas/events/disputes/1.0
        id: evt-1e1dAHhgstYTUhlphPzZ
        datacontenttype: application/json
        time: '2019-08-24T14:15:22Z'
        agent: cgt-EFG67b4yPre23ZDrLX
    closed-accepted:
      summary: Dispute was accepted
      value:
        type: com.silverflow.disputes.closedAccepted
        data:
          disputeStatus: closedAccepted
          key: dsp-1JRadf2ffdfrdPMf2XrS2
          networkReference: '28543746470772988'
          arn: '12345678901234567890123'
          created: '2019-08-24T14:15:22Z'
          lastModified: '2019-08-24T14:15:22Z'
          version: 2
        source: https://silverflow.com/disputes
        specversion: '1.0'
        subject: dsp-1JRadf2ffdfrdPMf2XrS2
        dataschema: https://silverflow.com/schemas/events/disputes/1.0
        id: evt-1e1dAHhgstYTUhlphPzZ
        datacontenttype: application/json
        time: '2019-08-24T14:15:22Z'
        agent: cgt-EFG67b4yPre23ZDrLX
    closed-won:
      summary: Dispute was won
      value:
        type: com.silverflow.disputes.closedWon
        data:
          disputeStatus: closedWon
          key: dsp-1JRadf2ffdfrdPMf2XrS2
          networkReference: '28543746470772988'
          arn: '12345678901234567890123'
          created: '2019-08-24T14:15:22Z'
          lastModified: '2019-08-24T14:15:22Z'
          version: 4
        source: https://silverflow.com/disputes
        specversion: '1.0'
        subject: dsp-1JRadf2ffdfrdPMf2XrS2
        dataschema: https://silverflow.com/schemas/events/disputes/1.0
        id: evt-1e1dAHhgstYTUhlphPzZ
        datacontenttype: application/json
        time: '2019-08-24T14:15:22Z'
        agent: cgt-EFG67b4yPre23ZDrLX
    closed-lost:
      summary: Dispute was lost
      value:
        type: com.silverflow.disputes.closedLost
        data:
          disputeStatus: closedLost
          key: dsp-1JRadf2ffdfrdPMf2XrS2
          networkReference: '28543746470772988'
          arn: '12345678901234567890123'
          created: '2019-08-24T14:15:22Z'
          lastModified: '2019-08-24T14:15:22Z'
          version: 4
        source: https://silverflow.com/disputes
        specversion: '1.0'
        subject: dsp-1JRadf2ffdfrdPMf2XrS2
        dataschema: https://silverflow.com/schemas/events/disputes/1.0
        id: evt-1e1dAHhgstYTUhlphPzZ
        datacontenttype: application/json
        time: '2019-08-24T14:15:22Z'
        agent: cgt-EFG67b4yPre23ZDrLX
    reversed:
      summary: Dispute was reversed
      value:
        type: com.silverflow.disputes.reversed
        data:
          disputeStatus: reversed
          key: dsp-1JRadf2ffdfrdPMf2XrS2
          networkReference: '28543746470772988'
          arn: '12345678901234567890123'
          created: '2019-08-24T14:15:22Z'
          lastModified: '2019-08-24T14:15:22Z'
          version: 2
        source: https://silverflow.com/disputes
        specversion: '1.0'
        subject: dsp-1JRadf2ffdfrdPMf2XrS2
        dataschema: https://silverflow.com/schemas/events/disputes/1.0
        id: evt-1e1dAHhgstYTUhlphPzZ
        datacontenttype: application/json
        time: '2019-08-24T14:15:22Z'
        agent: cgt-EFG67b4yPre23ZDrLX
    withdrawn:
      summary: Dispute was withdrawn
      value:
        type: com.silverflow.disputes.withdrawn
        data:
          disputeStatus: withdrawn
          key: dsp-1JRadf2ffdfrdPMf2XrS2
          networkReference: '28543746470772988'
          arn: '12345678901234567890123'
          created: '2019-08-24T14:15:22Z'
          lastModified: '2019-08-24T14:15:22Z'
          version: 5
        source: https://silverflow.com/disputes
        specversion: '1.0'
        subject: dsp-1JRadf2ffdfrdPMf2XrS2
        dataschema: https://silverflow.com/schemas/events/disputes/1.0
        id: evt-1e1dAHhgstYTUhlphPzZ
        datacontenttype: application/json
        time: '2019-08-24T14:15:22Z'
        agent: cgt-EFG67b4yPre23ZDrLX
    distributions-sent-success:
      summary: Distribution succeeded
      value:
        type: com.silverflow.distributions.sent
        agent: cgt-EFG67b4yPre23ZDrLX
        data:
          distributionKey: dst-5gaZJMuz8fPzJGmwsNnD
          fileName: file.csv
          status: delivered
          time: '2025-12-11T08:50:42.264Z'
          type: sftp
        id: evt-1e1dAHhgstYTUhlphPzZ
        datacontenttype: application/json
        dataschema: https://silverflow.com/schemas/events/distributions/1.0
        source: https://silverflow.com/distributions
        specversion: '1.0'
        subject: dst-5gaZJMuz8fPzJGmwsNnD
        time: '2025-12-11T08:50:42.264Z'
    distributions-sent-failure:
      summary: Distribution failed
      value:
        type: com.silverflow.distributions.sent
        agent: cgt-EFG67b4yPre23ZDrLX
        data:
          distributionKey: dst-5gaZJMuz8fPzJGmwsNnD
          fileName: file.csv
          status: failed
          time: '2025-12-11T08:50:42.264Z'
          type: sftp
          failureReason:
            message: The connection to the SFTP host failed (ECONNRESET)
            detail: Connection reset by host
        id: evt-1e1dAHhgstYTUhlphPzZ
        datacontenttype: application/json
        dataschema: https://silverflow.com/schemas/events/distributions/1.0
        source: https://silverflow.com/distributions
        specversion: '1.0'
        subject: dst-5gaZJMuz8fPzJGmwsNnD
        time: '2025-12-11T08:50:42.264Z'
    ammf-submission-submitted:
      summary: AMMF Submission Submitted
      value:
        id: evt-1e1dAHhgstYTUhlphPzZ
        type: com.silverflow.ammfSubmissions.submitted
        agent: cgt-EFG67b4yPre23ZDrLX
        datacontenttype: application/json
        dataschema: https://silverflow.com/schemas/events/ammfSubmissions/1.0
        source: https://silverflow.com/ammfSubmissions
        specversion: '1.0'
        subject: asm-9RxdinkqFqJxAq2fZadf
        time: '2025-12-11T08:50:42.264Z'
        data:
          key: asm-9RxdinkqFqJxAq2fZadf
          reportKey: rep-1e1dAHhgstYTUhlphPzZ
          submittedFileName: AMMF_A123456_D20250630_S001.xlsx
    ammf-submission-approved:
      summary: AMMF Submission Approved
      value:
        id: evt-1e1dAHhgstYTUhlphPzZ
        type: com.silverflow.ammfSubmissions.approved
        agent: cgt-EFG67b4yPre23ZDrLX
        datacontenttype: application/json
        dataschema: https://silverflow.com/schemas/events/ammfSubmissions/1.0
        source: https://silverflow.com/ammfSubmissions
        specversion: '1.0'
        subject: asm-9RxdinkqFqJxAq2fZadf
        time: '2025-12-12T08:50:42.264Z'
        data:
          key: asm-9RxdinkqFqJxAq2fZadf
          reportKey: rep-1e1dAHhgstYTUhlphPzZ
          submittedFileName: AMMF_A123456_D20250630_S001.xlsx
    ammf-submission-rejected:
      summary: AMMF Submission Rejected
      value:
        id: evt-1e1dAHhgstYTUhlphPzZ
        type: com.silverflow.ammfSubmissions.rejected
        agent: cgt-EFG67b4yPre23ZDrLX
        datacontenttype: application/json
        dataschema: https://silverflow.com/schemas/events/ammfSubmissions/1.0
        source: https://silverflow.com/ammfSubmissions
        specversion: '1.0'
        subject: asm-9RxdinkqFqJxAq2fZadf
        time: '2025-12-12T08:50:42.264Z'
        data:
          key: asm-9RxdinkqFqJxAq2fZadf
          reportKey: rep-1e1dAHhgstYTUhlphPzZ
          submittedFileName: AMMF_A123456_D20250630_S001.xlsx
    report-completed:
      summary: Report Completed
      value:
        agent: cgt-5n22WlPy500PdVyGsqai
        data:
          created: '2026-01-21T08:00:43.350Z'
          downloadUrl: https://eu-west-1.api.silverflow.com/v1/reports/rep-5n00Z6q5PB3MqRc1A3zd/file
          key: rep-5n00Z6q5PB3MqRc1A3zd
          lastModified: '2026-01-21T08:01:41.931Z'
          mimeType: text/csv
          reference: updated-schedule-2
          reportName: SchemeFeeDetails
          status: completed
          version: 2
        datacontenttype: application/json
        dataschema: https://silverflow.com/schemas/events/reports/1.0
        id: evt-T6Z2PkEltHXrPG8sonEHtGOyZC7y4KPLgDaseTTAZwT
        source: https://silverflow.com/reports
        specversion: '1.0'
        subject: rep-5n00Z6q5PB3MqRc1A3zd
        time: '2026-01-21T08:01:41.939Z'
        type: com.silverflow.reports.updated
    report-failed:
      summary: Report Failed
      value:
        agent: cgt-5n22WlPy500PdVyGsqai
        data:
          created: '2026-01-15T12:23:46.775Z'
          key: rep-5maCw8W3hdC6ZCLN5i6R
          lastModified: '2026-01-15T12:23:47.604Z'
          mimeType: application/vnd.ms-excel
          reference: Visa AMMF Report
          reportName: AmmfReport
          status: failed
          version: 2
        datacontenttype: application/json
        dataschema: https://silverflow.com/schemas/events/reports/1.0
        id: evt-9294PkEltHXrPG8sonEHtGOyZC7y4KPLgDase505032
        source: https://silverflow.com/reports
        specversion: '1.0'
        subject: rep-5maCw8W3hdC6ZCLN5i6R
        time: '2026-01-15T12:23:47.612Z'
        type: com.silverflow.reports.updated
    nft-completed:
      summary: Network Funds Transfer Completed
      value:
        type: com.silverflow.reconciliation.networkFundsTransferCompleted
        data:
          networkFundsTransferKey: nft-5JBrdf2ffdfrdPMf2Abs3
          fundsTransferDate: '2025-10-26'
        source: https://silverflow.com/reconciliation
        specversion: '1.0'
        subject: nft-5JBrdf2ffdfrdPMf2Abs3
        dataschema: https://silverflow.com/schemas/events/reconciliation/1.0
        id: evt-5a1dAHhgstYTUhlphAaC
        datacontenttype: application/json
        time: '2025-10-24T14:15:22Z'
        agent: cgt-4as67b4yPre23ZDmfa
    created:
      summary: Processor Token was created
      value:
        type: com.silverflow.processorTokens.created
        data:
          key: ptk-1e1dA2fgs1YTUhlhyPOp
          status: active
          reference: VEQNS4L35E6IU1TN
          created: '2024-01-31T09:55:00.999Z'
          version: 1
        source: https://silverflow.com/processorTokens
        specversion: '1.0'
        subject: ptk-1e1dA2fgs1YTUhlhyPOp
        dataschema: https://silverflow.com/schemas/events/processorTokens/1.0
        id: evt-3IgSdT7DbeXNVftim0oY
        datacontenttype: application/json
        time: '2024-01-31T10:03:19.951Z'
        agent: cgt-1UF2NafdfrdPMf2XrS2
    archived:
      summary: Processor Token was archived
      value:
        type: com.silverflow.processorTokens.archived
        data:
          key: ptk-1e1dA2fgs1YTUhlhyPOp
          status: archived
          reference: VEQNS4L35E6IU1TN
          created: '2024-01-31T09:55:00.999Z'
          lastModified: '2024-02-15T14:30:45.123Z'
          version: 2
        source: https://silverflow.com/processorTokens
        specversion: '1.0'
        subject: ptk-1e1dA2fgs1YTUhlhyPOp
        dataschema: https://silverflow.com/schemas/events/processorTokens/1.0
        id: evt-2KmNpW8QcfgYXwujnRpA
        datacontenttype: application/json
        time: '2024-02-15T14:30:45.123Z'
        agent: cgt-1UF2NafdfrdPMf2XrS2
    cvc-deleted:
      summary: CVC was deleted from Processor Token
      value:
        type: com.silverflow.processorTokens.cvcDeleted
        data:
          key: ptk-1e1dA2fgs1YTUhlhyPOp
          status: active
          reference: VEQNS4L35E6IU1TN
          created: '2024-01-31T09:55:00.999Z'
          lastModified: '2024-02-01T08:15:30.456Z'
          version: 2
        source: https://silverflow.com/processorTokens
        specversion: '1.0'
        subject: ptk-1e1dA2fgs1YTUhlhyPOp
        dataschema: https://silverflow.com/schemas/events/processorTokens/1.0
        id: evt-5RqTbZ9VfhjLYxvmpSqD
        datacontenttype: application/json
        time: '2024-02-01T08:15:30.456Z'
        agent: cgt-1UF2NafdfrdPMf2XrS2
    authorization:
      summary: Charge action event for an authorization
      value:
        type: com.silverflow.charges.action
        data:
          chargeKey: chg-5oRIiaZi9oRQi7dlN5Yi
          actionKey: act-5oRIijJIHA8BstUy0dpd
          actionType: authorization
        source: https://silverflow.com/charges
        specversion: '1.0'
        subject: act-5oRIijJIHA8BstUy0dpd
        dataschema: https://silverflow.com/schemas/events/charges/action/1.0
        id: evt-1e1dAHhgstYTUhlphPzZ
        datacontenttype: application/json
        time: '2026-02-03T10:18:43.566Z'
        agent: cgt-1MQQgZdQ2bB3CJTdZH7f
    reversal:
      summary: Charge action event for a reversal
      value:
        type: com.silverflow.charges.action
        data:
          chargeKey: chg-5oRIiaZi9oRQi7dlN5Yi
          actionKey: act-7kPQmNx3vBcRtWsY2hLf
          actionType: reversal
        source: https://silverflow.com/charges
        specversion: '1.0'
        subject: act-7kPQmNx3vBcRtWsY2hLf
        dataschema: https://silverflow.com/schemas/events/charges/action/1.0
        id: evt-2f2eBI1htuZUVimqiQaA
        datacontenttype: application/json
        time: '2026-02-03T10:20:12.123Z'
        agent: cgt-1MQQgZdQ2bB3CJTdZH7f
    refund:
      summary: Charge action event for a refund
      value:
        type: com.silverflow.charges.action
        data:
          chargeKey: chg-5oRIiaZi9oRQi7dlN5Yi
          actionKey: act-3nLRoKw5xDdStXuZ4jMg
          actionType: refund
        source: https://silverflow.com/charges
        specversion: '1.0'
        subject: act-3nLRoKw5xDdStXuZ4jMg
        dataschema: https://silverflow.com/schemas/events/charges/action/1.0
        id: evt-3g3fCJ2iuvAVWjnrjRbB
        datacontenttype: application/json
        time: '2026-02-03T10:22:05.456Z'
        agent: cgt-1MQQgZdQ2bB3CJTdZH7f
    offline-refund:
      summary: Charge action event for an offline refund
      value:
        type: com.silverflow.charges.action
        data:
          chargeKey: chg-5oRIiaZi9oRQi7dlN5Yi
          actionKey: act-9pNTqMy7zFfUvZwB6lOi
          actionType: offline-refund
        source: https://silverflow.com/charges
        specversion: '1.0'
        subject: act-9pNTqMy7zFfUvZwB6lOi
        dataschema: https://silverflow.com/schemas/events/charges/action/1.0
        id: evt-4h4gDK3jvwBWXkosk5cC
        datacontenttype: application/json
        time: '2026-02-03T10:25:33.789Z'
        agent: cgt-1MQQgZdQ2bB3CJTdZH7f
    clearing:
      summary: Charge action event for a clearing
      value:
        type: com.silverflow.charges.action
        data:
          chargeKey: chg-5oRIiaZi9oRQi7dlN5Yi
          actionKey: act-2mKSpLv6yEeSuYvA5kNh
          actionType: clearing
        source: https://silverflow.com/charges
        specversion: '1.0'
        subject: act-2mKSpLv6yEeSuYvA5kNh
        dataschema: https://silverflow.com/schemas/events/charges/action/1.0
        id: evt-5i5hEL4kwxCXYlptl6dD
        datacontenttype: application/json
        time: '2026-02-03T10:18:44.001Z'
        agent: cgt-1MQQgZdQ2bB3CJTdZH7f
    increment:
      summary: Charge action event for an increment
      value:
        type: com.silverflow.charges.action
        data:
          chargeKey: chg-5oRIiaZi9oRQi7dlN5Yi
          actionKey: act-4oMUrNx8AGgTwAvC7mPj
          actionType: increment
        source: https://silverflow.com/charges
        specversion: '1.0'
        subject: act-4oMUrNx8AGgTwAvC7mPj
        dataschema: https://silverflow.com/schemas/events/charges/action/1.0
        id: evt-6j6iFM5lxyCZZmqum7eE
        datacontenttype: application/json
        time: '2026-02-03T10:30:17.234Z'
        agent: cgt-1MQQgZdQ2bB3CJTdZH7f
    created-2:
      summary: Network Token was created
      value:
        type: com.silverflow.networkTokens.created
        data:
          key: ntk-1e1dAHhgstYTUhlphPzZ
          status: active
          lastTokenRefresh: '2024-01-31T10:03:19.949Z'
          created: '2024-01-31T09:57:02.201Z'
          lastModified: '2024-01-31T10:03:19.949Z'
          version: 2
        source: https://silverflow.com/networkTokens
        specversion: '1.0'
        subject: ntk-1e1dAHhgstYTUhlphPzZ
        dataschema: https://silverflow.com/schemas/events/networkTokens/1.0
        id: evt-3IgSdT7DbeXNVftim0oY
        datacontenttype: application/json
        time: '2024-01-31T10:03:19.951Z'
        agent: cgt-1UF2NafdfrdPMf2XrS2
    updated:
      summary: Network Token was updated
      value:
        type: com.silverflow.networkTokens.updated
        data:
          key: ntk-1e1dAHhgstYTUhlphPzZ
          status: active
          lastTokenRefresh: '2024-01-31T10:03:19.949Z'
          created: '2024-01-31T09:57:02.201Z'
          lastModified: '2024-01-31T10:03:19.949Z'
          version: 3
        source: https://silverflow.com/networkTokens
        specversion: '1.0'
        subject: ntk-1e1dAHhgstYTUhlphPzZ
        dataschema: https://silverflow.com/schemas/events/networkTokens/1.0
        id: evt-3IgSdT7DbeXNVftim0oY
        datacontenttype: application/json
        time: '2024-01-31T10:03:19.951Z'
        agent: cgt-1UF2NafdfrdPMf2XrS2
    archived-2:
      summary: Network Token was archived
      value:
        type: com.silverflow.networkTokens.archived
        data:
          key: ntk-1e1dAHhgstYTUhlphPzZ
          status: archived
          created: '2024-01-31T09:57:02.201Z'
          lastModified: '2024-01-31T10:03:19.951Z'
          version: 4
        source: https://silverflow.com/networkTokens
        specversion: '1.0'
        subject: ntk-1e1dAHhgstYTUhlphPzZ
        dataschema: https://silverflow.com/schemas/events/networkTokens/1.0
        id: evt-3IgSdT7DbeXNVftim0oY
        datacontenttype: application/json
        time: '2024-01-31T10:03:19.951Z'
        agent: cgt-1UF2NafdfrdPMf2XrS2
    failed:
      summary: Network Token creation failed
      value:
        type: com.silverflow.networkTokens.failed
        data:
          key: ntk-1e1dAHhgstYTUhlphPzZ
          status: failed
          error:
            code: TOKEN_PROVISIONING_FAILED
            detail: The card network rejected the tokenization request.
          created: '2024-01-31T09:57:02.201Z'
          lastModified: '2024-01-31T10:03:19.951Z'
          version: 2
        source: https://silverflow.com/networkTokens
        specversion: '1.0'
        subject: ntk-1e1dAHhgstYTUhlphPzZ
        dataschema: https://silverflow.com/schemas/events/networkTokens/1.0
        id: evt-3IgSdT7DbeXNVftim0oY
        datacontenttype: application/json
        time: '2024-01-31T10:03:19.951Z'
        agent: cgt-1UF2NafdfrdPMf2XrS2
  headers:
    XSFTraceId:
      description: |
        The Silverflow trace ID for this request. It will be unique for every single
        request, including ones where idempotency is available and utilized. We
        strongly encourage clients to always log this value and providing it to
        Silverflow for support cases that regard specific API requests in order to
        streamline and speed up our processing of those cases.
      schema:
        type: string
        minLength: 10
        maxLength: 50
        example: 1-5f3759df-a1b2c3d4e5f60718293a4b5c
x-tagGroups:
  - name: ''
    tags:
      - Introduction
      - Release Notes
  - name: Accounts
    tags:
      - Agents
      - API Keys
      - Trust Anchors
      - Bins
      - Merchants
      - Merchant Acceptors
      - Enrollments
      - Screenings
  - name: Authentication
    tags:
      - 3DS Authentication
      - BEP Authentication
  - name: Tokenization
    tags:
      - Processor Tokenization
      - Network Tokenization
  - name: Charges
    tags:
      - Create Charges
      - Create Recurring
      - Retrieve Charges
      - Charge Actions
  - name: Terminal-To-Cloud
    tags:
      - Create POS Charges
      - Retrieve POS Charges
      - POS Charge Actions
  - name: Card Management
    tags:
      - Card Management
  - name: Disputes
    tags:
      - Disputes
      - Documents
  - name: Fraud Notifications
    tags:
      - Fraud Notifications
  - name: Card Info
    tags:
      - Card Info
  - name: Currency Conversion Rates
    tags:
      - Currency Conversion Rates
  - name: Fees
    tags:
      - Fees
  - name: Reports
    tags:
      - Settlement Reports
      - Card Network Reports
      - Dispute Reports
      - Fraud Notifications Reports
      - Charges Reports
      - Scheme Fee Reports
      - Retrieve Reports
      - Report Scheduling
      - Distributions
  - name: Reconciliation
    tags:
      - Reconciliation Details
      - Network Funds Transfers
      - Reconciliation Reports
  - name: Event Notifications
    tags:
      - Event Subscriptions
      - Charges Events
      - Clearing Events
      - Compliance Cases Events
      - Disputes Events
      - Distribution Events
      - Fraud Notification Events
      - Processor Tokens Events
      - AMMF Submission Events
      - Network Tokens Events
      - Report Events
      - Reconciliation Events
  - name: Transaction Risk Assessment
    tags:
      - Transaction Risk Assessment
  - name: File Subscriptions
    tags:
      - File Subscriptions
