> ## Documentation Index
> Fetch the complete documentation index at: https://docs.paysway.io/llms.txt
> Use this file to discover all available pages before exploring further.

# Validate payment details

> Accepts the full or partial payment instruction and validates it against local and global payment regulations, scheme requirements, bank reference data, and heuristics.  If the payment details in the instruction are likely to be valid, the response will indicate success.  If there are issues, the response will include a list of validation errors with specific reasons.




## OpenAPI

````yaml /api-reference/paysway-api.yaml post /payments/validations
openapi: 3.1.0
info:
  title: PaySway API
  version: 1.2.0
servers:
  - url: https://api.paysway.dev
    description: Development environment
  - url: https://api.paysway.io
    description: Production environment
security: []
paths:
  /payments/validations:
    post:
      tags:
        - Payment Preparation
      summary: Validate payment details
      description: >
        Accepts the full or partial payment instruction and validates it against
        local and global payment regulations, scheme requirements, bank
        reference data, and heuristics.  If the payment details in the
        instruction are likely to be valid, the response will indicate success. 
        If there are issues, the response will include a list of validation
        errors with specific reasons.
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/Payment'
      responses:
        '200':
          description: Validations result returned successfully
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ValidationsResult'
              examples:
                ALERT:
                  value:
                    status: ALERT
                    alerts:
                      - code: CREDITOR_IBAN_INVALID_FORMAT
                OK:
                  value:
                    status: OK
                    alerts: []
      security:
        - oauth2ClientCredentials: []
components:
  schemas:
    Payment:
      type: object
      properties:
        country:
          $ref: '#/components/schemas/CountryCode'
        currency:
          $ref: '#/components/schemas/CurrencyCode'
        creditorAgent:
          $ref: '#/components/schemas/FinancialInstitution'
        creditorAccount:
          $ref: '#/components/schemas/Account'
        creditor:
          $ref: '#/components/schemas/Party'
        intermediaryAgent1:
          $ref: '#/components/schemas/FinancialInstitution'
        intermediaryAgent2:
          $ref: '#/components/schemas/FinancialInstitution'
        intermediaryAgent3:
          $ref: '#/components/schemas/FinancialInstitution'
        settlementInformation:
          $ref: '#/components/schemas/SettlementInformation'
    ValidationsResult:
      type: object
      properties:
        status:
          type: string
          enum:
            - OK
            - ALERT
        alerts:
          type: array
          items:
            $ref: '#/components/schemas/Alert'
      required:
        - status
        - alerts
    CountryCode:
      description: ISO 3166-1 alpha-2 code
      type: string
      pattern: ^[A-Z]{2,2}$
    CurrencyCode:
      description: ISO 4217 alpha code
      type: string
      pattern: ^[A-Z]{3,3}$
    FinancialInstitution:
      type: object
      properties:
        bic:
          $ref: '#/components/schemas/BIC'
        clearingSystemMemberId:
          $ref: '#/components/schemas/ClearingSystemMemberId'
        branchId:
          type: string
    Account:
      type: object
      properties:
        id:
          $ref: '#/components/schemas/AccountId'
        type:
          $ref: '#/components/schemas/AccountType'
      required:
        - id
    Party:
      type: object
      properties:
        name:
          type: string
        address:
          $ref: '#/components/schemas/Address'
        contactDetails:
          $ref: '#/components/schemas/ContactDetails'
        dateOfBirth:
          type: string
          format: date
        taxId:
          type: string
        documents:
          type: array
          items:
            $ref: '#/components/schemas/IdentificationDocument'
        type:
          $ref: '#/components/schemas/PartyType'
    SettlementInformation:
      type: object
      properties:
        settlementSystem:
          $ref: '#/components/schemas/SettlementSystem'
    Alert:
      type: object
      properties:
        code:
          $ref: '#/components/schemas/AlertCode'
      required:
        - code
    BIC:
      type: string
    ClearingSystemMemberId:
      type: object
      properties:
        memberId:
          type: string
    AccountId:
      type: object
      properties:
        value:
          type: string
        type:
          $ref: '#/components/schemas/AccountIdType'
      required:
        - value
        - type
    AccountType:
      type: string
    Address:
      type: object
      properties:
        addressLine1:
          type: string
        addressLine2:
          type: string
        addressLine3:
          type: string
        department:
          type: string
        streetName:
          type: string
        buildingNumber:
          type: string
        buildingName:
          type: string
        floor:
          type: string
        room:
          type: string
        townName:
          type: string
        townLocationName:
          type: string
        districtName:
          type: string
        postBox:
          type: string
        postCode:
          type: string
        countrySubdivision:
          type: string
        country:
          $ref: '#/components/schemas/CountryCode'
      required:
        - country
    ContactDetails:
      type: object
      properties:
        email:
          type: string
        phone:
          type: string
    IdentificationDocument:
      type: object
      properties:
        value:
          type: string
        type:
          $ref: '#/components/schemas/IdDocumentType'
      required:
        - type
        - value
    PartyType:
      type: string
      enum:
        - INDIVIDUAL
        - BUSINESS
    SettlementSystem:
      description: Encoded cash settlement system
      type: string
      enum:
        - SCT
        - SCT_INST
        - SDD_CORE
        - SDD_B2B
        - US_FEDWIRE
        - US_FEDACH
        - GB_FPS
        - GB_CHAPS
        - GB_CCCC
        - GB_BACS_CR
        - GB_BACS_DR
        - CA_ACSS
        - CA_LYNX
        - AU_PCS
        - AU_RITS
        - AU_BECS
        - AU_HVCS
    AlertCode:
      description: Encoded alert reason
      type: string
      enum:
        - CREDITOR_IBAN_INVALID_FORMAT
        - CREDITOR_IBAN_INVALID_COUNTRY_CODE
        - CREDITOR_IBAN_COUNTRY_NOT_SUPPORTED
        - CREDITOR_IBAN_INVALID_BBAN_STRUCTURE
        - CREDITOR_IBAN_INCORRECT_CHECK_DIGITS
        - CREDITOR_IBAN_COUNTRY_INCONSISTENCY
        - CREDITOR_IBAN_NO_SSI_FOR_CURRENCY
        - CREDITOR_BIC_INVALID_FORMAT
        - CREDITOR_BIC_INVALID_COUNTRY_CODE
        - CREDITOR_BIC_DOES_NOT_EXIST
        - CREDITOR_BIC_IBAN_INCONSISTENCY
        - CREDITOR_BIC_SCHEME_UNSUPPORTED
        - CREDITOR_BIC_NO_SSI_FOR_CURRENCY
        - CREDITOR_BIC_COUNTRY_INCONSISTENCY
        - CREDITOR_BIC_COMPLIANCE_HIT
        - CREDITOR_BANK_IDENTIFIER_INVALID_FORMAT
        - CREDITOR_BANK_IDENTIFIER_DOES_NOT_EXIST
        - CREDITOR_BRANCH_IDENTIFIER_INVALID_FORMAT
        - CREDITOR_BRANCH_IDENTIFIER_DOES_NOT_EXIST
        - CREDITOR_ACCOUNT_NUMBER_INVALID_FORMAT
        - CREDITOR_ACCOUNT_NUMBER_TOO_SHORT
        - CREDITOR_ACCOUNT_NUMBER_TOO_LONG
        - CREDITOR_ACCOUNT_NUMBER_INCORRECT_CHECKSUM
        - CREDITOR_ACCOUNT_NUMBER_INVALID_BANK_IDENTIFIER
        - CREDITOR_ACCOUNT_NUMBER_POSSIBLE_CARD_NUMBER
        - CREDITOR_ACCOUNT_ID_EMAIL_INVALID_FORMAT
        - CREDITOR_ACCOUNT_ID_MSISDN_INVALID_FORMAT
        - CREDITOR_BANK_IDENTIFIER_ACCOUNT_NUMBER_INCONSISTENCY
        - CREDITOR_BANK_IDENTIFIER_ACCOUNT_NUMBER_SWAP
        - CREDITOR_BANK_IDENTIFIER_ACCOUNT_NUMBER_DUPLICATION
        - CREDITOR_BANK_IDENTIFIER_SCHEME_UNSUPPORTED
        - INTERMEDIARY_1_INVALID_FORMAT
        - INTERMEDIARY_1_DOES_NOT_EXIST
        - INTERMEDIARY_1_NO_SSI
        - INTERMEDIARY_1_COMPLIANCE_HIT
        - INTERMEDIARY_2_INVALID_FORMAT
        - INTERMEDIARY_2_DOES_NOT_EXIST
        - INTERMEDIARY_2_NO_SSI
        - INTERMEDIARY_2_COMPLIANCE_HIT
        - INTERMEDIARY_3_INVALID_FORMAT
        - INTERMEDIARY_3_DOES_NOT_EXIST
        - INTERMEDIARY_3_NO_SSI
        - INTERMEDIARY_3_COMPLIANCE_HIT
        - CREDITOR_DOCUMENT_1_INVALID_FORMAT
        - CREDITOR_DOCUMENT_1_INCORRECT_CHECKSUM
    AccountIdType:
      type: string
      enum:
        - IBAN
        - ACCOUNT_NUMBER
        - EMAIL
        - MSISDN
        - CARD_NUMBER
        - GENERIC
    IdDocumentType:
      type: string
  securitySchemes:
    oauth2ClientCredentials:
      type: oauth2
      flows:
        clientCredentials:
          tokenUrl: /oauth2/token
          scopes: {}

````