Silverflow Merchants API

Operations 5

GET /merchants List Merchants #
POST /merchants Create Merchant #
GET /merchants/{merchantKey} Get Merchant #
PATCH /merchants/{merchantKey} Update Merchant #
DELETE /merchants/{merchantKey} Archive Merchant #

Documentation

Specifications

Other Resources

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • find_apisBrowse and filter every API in the catalog.
  • get_api_artifactsOne API's artifacts, grouped by type.
  • get_openapiThe primary OpenAPI for this API.
  • find_similar_apisAPIs that look like this one.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/silverflow-merchants-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

A second provider on the same verified email joins the account you already have.

OpenAPI Specification

silverflow-merchants-api-openapi.yml Raw ↑
openapi: 3.2.0
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.417.0
  title: Silverflow Merchants 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: ' '
paths:
  /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'
components:
  schemas:
    reference:
      type: string
      pattern: ^[a-zA-Z0-9()+,\-.:=@;$_!*\/?#|]+$
      minLength: 1
      maxLength: 120
      description: User-specified reference.
    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.
    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
    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'
    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'
    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'
    created:
      type: string
      description: The date and time this object was created
      format: date-time
    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.
    acquirerAgentKey:
      type: string
      description: Acquirer Agent Key shows the owner agent Key of the Bin.
      pattern: ^cgt-[a-zA-Z0-9]+|^$
      default: ''
    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'
    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'
    status:
      type: string
      description: The status of the object
      enum:
      - active
      - archived
    amexPaymentDesignationAcquirerBin:
      allOf:
      - description: For Payment Designator, this field is automatically copied from acquirerIdCode field.
      - $ref: '#/components/schemas/amexAcquirerIdCode'
    offsetToken:
      type: string
      pattern: ^[a-zA-Z0-9%]+$
      minLength: 1
      maxLength: 2048
    chargesBlocked:
      type: boolean
      description: A value of `true` prohibits charges from being created using this Acceptor. If the property is absent upon Acceptor creation a value of `false` is assumed.
    agentKey:
      description: Uniquely identifies an Agent
      type: string
      pattern: ^cgt-[a-zA-Z0-9]+|current$
      example: cgt-1UF2NafdfrdPMf2XrS2
    CountryCodeOnlyAlpha3:
      type: object
      required:
      - alpha3
      additionalProperties: false
      properties:
        alpha3:
          $ref: '#/components/schemas/countryCodeAlpha3'
    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
    email:
      type: string
      description: A valid email address
      pattern: \w+([-+.']\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*
    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'
    binKey:
      description: A key assigned by Silverflow to uniquely identify a Bin.
      type: string
      pattern: ^bin-[a-zA-Z0-9]+$
      minLength: 5
      maxLength: 120
    MerchantWithAcceptors:
      allOf:
      - $ref: '#/components/schemas/Merchant'
      - type: object
        properties:
          merchantAcceptors:
            type: array
            items:
              $ref: '#/components/schemas/Acceptor'
    acceptorStatus:
      type: string
      description: The status of the Acceptor (version)
      enum:
      - draft
      - active
      - archived
    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
    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
    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. \nThe value `999998` must be used for MGP ID field if the MPG is wholly owned by the Acquirer.\nThe value `999997` must be used in the MPG ID field if the Merchant uses no gateway and connects directly to the Acquirer. \nIn case no value is provided, `999998` is used by Silverflow where applicable. <span class=\"tag network-tag mastercard-tag\">MASTERCARD</span>\n"
      pattern: ^\d{1,11}$
    discoverAcquirerIdCode:
      type: string
      description: Acquirer Institution ID code.
      pattern: ^\d+$
      minLength: 1
      maxLength: 11
    lastModified:
      type: string
      description: The date and time this object was last modified
      format: date-time
    moreItems:
      type: boolean
    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'
    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.
        pattern: ^.+$
        minLength: 1
        maxLength: 100
      example:
        IamAKey: ThisIsaValue!
    amexDirectMerchantAcquirerBin:
      allOf:
      - description: For Direct Merchant, this field is automatically copied from acquirerIdCode field.
      - $ref: '#/components/schemas/amexAcquirerIdCode'
    messageSystem:
      type: string
      description: Determines the message structure and Data Element definitions for card network.
      enum:
      - DMS
      - SMS
      default: DMS
    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>
    isoId:
      type: string
      description: Unique ID as

# --- truncated at 32 KB (106 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/silverflow/refs/heads/main/openapi/silverflow-merchants-api-openapi.yml