Silverflow Create POS Charges API

Create a POS charge.

Business capability
Card Transaction Processing Management BC-1340.70

Operations 1

POST /pos/charges Create Charge [EXPERIMENTAL] #

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-create-pos-charges-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-create-pos-charges-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 Create POS Charges 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: Create POS Charges
  description: Create a POS charge.
paths:
  /pos/charges:
    servers:
    - url: https://devices.eu-west-1.api.silverflow.com/v1
      description: Production environment
    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'
                - $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
          content:
            application/json:
              schema:
                oneOf:
                - $ref: '#/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'
                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/responses-InternalServerError'
components:
  schemas:
    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.

        '
    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'
    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'
    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'
    openapi_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/ValidationError'
          description: A list of validation errors.
    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
    isoFieldRetrievalReferenceNumber:
      type: string
      description: Contents of field 37
      example: '131608123456'
    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'
    isoFieldNetworkCode:
      type: string
      description: Contents of field 63, subfield 1
      example: '0000'
    errorStatus:
      type: integer
      format: int32
      description: 'The HTTP status code generated by the origin server for this occurrence

        of the problem.

        '
    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
    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
    errorInstance:
      type: string
      description: 'A reference that identifies the specific occurrence of the error. The instance is unique for every error.

        '
    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-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
    openapi_components-schemas-created:
      type: string
      description: The date and time this object was created
      format: iso-8601-date-time
      readOnly: true
    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
    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'
    PinBlockZoneId:
      type: string
      pattern: ^[a-zA-Z0-9()+,\-.:=@;$_!*\/?#|]*$
      minLength: 1
      maxLength: 128
      description: ID of the encryption zone.
      example: my-zone
    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.

        '
    schemas-order:
      description: The method used to place the order.
      type: string
      enum:
      - counter
    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
    errorType:
      type: string
      description: 'A relative URI reference, this property can be used to perform automated error handling.

        '
    errorDetail:
      type: string
      description: 'A human readable explanation specific to this occurrence of the problem.

        '
    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'
    isoFieldAuthorizationCode:
      type: string
      description: Contents of field 38
      example: 4A4316
    schemas-ClearingStatus:
      type: string
      description: Clearing status of the charge
      enum:
      - none
      - manual
      - pending
      - completed
      - canceled
      - abandoned
      example: pending
    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'
    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'
    isoFieldResponseCodeDescription:
      type: string
      description: The description of the `responseCode`
      example: Approved
    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'
    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'
    errorTitle:
      type: string
      description: 'A short, human-readable summary of the problem type. It does not change from occurrence to occurrence of the error.

        '
    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'
    softPosTerminalCapability:
      type: string
      enum:
      - contactlessChip
      - onlinePin
      - signature
      - noCvm
      - oneTap
    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/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-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
    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.
    chargeKey:
      description: Uniquely identifies a charge.
      type: string
      pattern: ^chg-[a-zA-Z0-9]+$
      minLength: 5
      maxLength: 120
      example: chg-1e1dAHhgstYTUhlphPzZ
    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/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'
    isoFieldSystemTraceAuditNumber:
      type: string
      description: Contents of field 11
      example: '123456'
    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
    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.
    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'
    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
    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'
    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'
    components-schemas-intent:
      description: The intention of the cardholder
      type: string
      enum:
      - purchase
      - reservation
      - refund
    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
    expiryMonth:
      type: integer
      description: 'The month the card expires. January is 1

        '
      minimum: 1
      maximum: 12
    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: 

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