Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.
Swagger integration
openapi: 3.0.3
info:
  title: Globadyme-gateway
  version: v0.99  9999
  description:
    The Globadyme Gateway API facilitates Global Payment acceptance for businesses, enabling them to seamlessly process
    transactions across various Payment methods and currencies on a worldwide scale.  
  contact:
    email: onboarding@globadyme.com
    name: Globadyme
    url: https://globadyme.com/wp-content/uploads/2024/04/Globadyme-Integration-Guide.pdf
servers:
  - url: https://sandbox.globadyme.com/api
tags:
  - description: Payments 
    name: globadyme-gateway-api
paths:
  /globadymeGateway/transaction/requestPayment:
    post:
      tags:
      - TransactionPayment
      summary: Request a transaction
      description: Request a transaction to obtain a payment link.
      operationId: requestPayment
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/TransactionRequestDTORequestPaymentRequestDTO'
        required: true
      responses:        description: "200":The body must always contain the transaction and password."
  description: Succesful operation           contentresponses:
            application/json"200":
              schemadescription: |
               $ref: '#/components/schemas/OkDTO'Succesful operation<br/>
        "404":    The response contains the redirect URL and description:a Notunique foundrequestId.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorDTOOkDTO'
        "400":      examples:
    description: Property missing from JSON        payment:
  content:             application/json:   summary: Request a payment
        schema:          value: |
     $ref: '#/components/schemas/ErrorDTO'         "500":     {
     description: Unable to parse JSON or encode transaction.           content"message":  "OK",
          application/json:               schema"details": {
               $ref: '#/components/schemas/ErrorDTO'   /globadymeGateway/transaction/qrcode:     post"requestId": "623277d0-464b-4e72-8632-2b9a284c699d",
     tags:       - transaction-resource       operationId: generateQRCodeImage       requestBody:
 "redirectUrl": "https://localhost:8028/pay?data=0f628643a49a71ce...1d023822ec5f02f2587057fe"
      content:           application/json:     }
       schema:             }

type: string         required: true       responsespaymentLink:
        "200":           descriptionsummary: OKRequest a payment link
       content:             image/pngvalue: |
             schema:       {
         type: array            "message": "OK",
   items:                   type"details": string{
                  format: byte   /globadymeGateway/transaction/initiatePayment:     post:
"requestId": "129294ac-ec36-4155-addd-697be68ec8aa",
     tags:       - transaction-resource       operationId: initiatePayment       requestBody:"redirectUrl": "https://localhost:8028/api/link?id=BH3IiBlBN2XjaqWR"
        content:           application/json:   }
         schema:           }
   $ref: '#/components/schemas/InitiatePaymentRequestDTO'         required: true      
responses:         "200404":
          description: Not OKfound
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/OkDTOErrorDTO'
    /globadymeGateway/refund/initiateRefund:     post:     examples:
 tags:       - Refunds       summaryUNKNOWN:
Initiate a refund       description: Initiate a refund on an earlier created and approvesummary: transactionWhenever the given merchant is unknown
 operationId: initiateRefund       requestBody:         contentvalue: |
         application/json:           {
  schema:               $ref: '#/components/schemas/RefundRequestDTO'     "message": "Merchant not found with  required: trueid 7699cab7-2dfa-4981-9c90-0d0c93c801ac",
             responses:         "200httpStatus": 404,
         description: Succesful operation           content:"details": "Not Found"
                  plain/text:  {}
        "404401":
          description: Not foundUnauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorDTO'
           "400"   examples:
          description:  Total refund amount exceeds originalpasswd:
transaction amount           content:      summary: Wrong password provided
   application/json:               schemavalue: |
                $ref: '#/components/schemas/ErrorDTO'     {
   "401":           description: Authentication failure      "message": "Incorrect merchant password for contentmerchant: x@yz.com",
           '*/*':               schema"httpStatus":    401,
            $ref: '#/components/schemas/OkDTO'         "403details": "Unauthorized"
         description: Autorisation failure         }
 content:             '*/*':      
        schema"400":
          description: >-
    $ref: '#/components/schemas/OkDTO'    /api/auth/sign-in:   Bad Request
post:       tags:     Property wrong -or jwt-resourcemissing from JSON, for example UUID string operationId:too signInlarge.
      requestBody:     content:
   content:           application/json:
              schema:
                $ref: '#/components/schemas/JwtRequestErrorDTO'
        required: true       responsesexamples: 
       "200":         UUID:
 description: OK           content:      summary: Wrong UUID provided
   '*/*':               schemavalue: |
               $ref: '#/components/schemas/JwtResponse'   /api/auth/refresh-token:
 {
   post:       tags:       - jwt-resource       operationId"message": refreshToken"UUID string too large",
   requestBody:         content:           application/json"cause": "UUID string too large",
        schema:               $ref: '#/components/schemas/TokenRefreshRequest'"httpStatus": 400,
        required: true       responses:        "details": "200":/globadymeGateway/transaction/requestPayment"
           description: OK        }

 content:             '*/*':  JSON:
            schema:      summary: Invalid JSON provided
       $ref: '#/components/schemas/TokenRefreshResponse'     /globadymeGateway/transaction/getPaymentByRequestId:     getvalue: |
     security:       - Bearer: []      {
tags:       - transaction-resource       operationId: getPaymentByRequestId       parameters"message": "JSON parse error: Unexpected character ('}' (code 125)): was expecting double-quote to start field name",
                      "cause": "JSON parse error: Unexpected character ('}' (code 125)): was expecting double-quote to start field name",
                      "httpStatus": 400,
                      "details": "/globadymeGateway/transaction/requestPayment"
                    }
                  
        "405":
          $ref: '#/components/responses/methodNotSupported'
        "406":
          $ref: '#/components/responses/notAcceptable'
        "415":
          $ref: '#/components/responses/unsupportedMediaType'  
        "429":
          $ref: '#/components/responses/tooManyRequests'                
        "500":
          $ref: '#/components/responses/unexpectedError'
  /globadymeGateway/transaction/qrcode:
    post:
      description: Request a qrcode image for the payment
      security:
      - Bearer: []
      tags:
      - Payment
      operationId: generateQRCodeImage
      requestBody:
        content:
          application/json:
            schema:
              type: string
            example: |
              id=BVvBVE41t7t1YnBQ
        required: true
      responses:
        "200":
          description: OK
          content:
            image/png:
              schema:
                description: Return a generated qr-code image for the payment as a binary string
                type: array
                items:
                  type: string
                  format: byte
        "400":
          description: Invalid input provided
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorDTO'
              examples: 
                UUID:
                  summary: Wrong UUID provided
                  value: |
                    {
                      "message": "UUID string too large",
                      "cause": "UUID string too large",
                      "httpStatus": 400,
                      "details": "/globadymeGateway/transaction/requestPayment"
                    }

                JSON:
                  summary: Invalid JSON provided
                  value: |
                    {
                      "message": "JSON parse error: Unexpected character ('}' (code 125)): was expecting double-quote to start field name",
                      "cause": "JSON parse error: Unexpected character ('}' (code 125)): was expecting double-quote to start field name",
                      "httpStatus": 400,
                      "details": "/globadymeGateway/transaction/requestPayment"
                    }
        "404":
          description: Not found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorDTO'
              examples:
                UNKNOWN:
                  summary: Whenever the given merchant is unknown
                  value: |
                    {
                      "message": "Merchant not found with id 7699cab7-2dfa-4981-9c90-0d0c93c801ac",
                      "httpStatus": 404,
                      "details": "Not Found"
                    }
                  
        "405":
          $ref: '#/components/responses/methodNotSupported'
        "406":
          $ref: '#/components/responses/notAcceptable'
        "415":
          $ref: '#/components/responses/unsupportedMediaType'  
        "429":
          $ref: '#/components/responses/tooManyRequests'                 
        "500":
          $ref: '#/components/responses/unexpectedError'
          
  /globadymeGateway/transaction/initiatePayment:
    post:
      description: |
        Initiate a payment, using the payment link
      tags:
      - Payment
      operationId: initiatePayment
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/InitiatePaymentRequestDTO'
            example: |
              {
                "encryptedTransaction": "0f628643a49a71cecb16d1a604008...2ecd4b64724abda392abd80f8388bae1b",
                "paymentMethod": "IDEAL"
              }
        required: true
      responses:
        "200":
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/OkDTO'
              example: |
                {
                  "message": "payment",
                  "details": {
                    "redirectUrl": "https://r3.girogate.de/ti/simideal?tx=140250159191&rs=VT5S...6d231184",
                    "id": "d549d14f-2827-4579-8a03-57077bc7cda7"
                  }
                }
        "400":
          description: Invalid input provided
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorDTO'
              examples:
                expired:
                  summary: The request for this payment has expired
                  value: |
                    {
                      "message": "The requested payment has expired",
                      "httpStatus": 400,
                      "details": "Bad Request"
                    }
                paymentMethod:
                  summary: No payment method provided
                  value: |
                    {
                      "message": "Missing or invalid payment method provided!",
                      "httpStatus": 400,
                      "details": "Bad Request"
                    }
        
        "405":
          $ref: '#/components/responses/methodNotSupported'
        "406":
          $ref: '#/components/responses/notAcceptable'
        "415":
          $ref: '#/components/responses/unsupportedMediaType'                  
        "500":
          $ref: '#/components/responses/unexpectedError'

  /globadymeGateway/refund/initiateRefund:
    post:
      tags:
      - Refunds
      summary: Initiate a refund
      description: Initiate a refund on an earlier created and approved transaction
      operationId: initiateRefund
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/RefundRequestDTO'
            example: |
              {
                "transactionId": "9378c831-dac4-4169-9210-065a70ef7b13",
                "merchantId": "d549d14f-2827-4579-8a03-57077bc7cda7",
                "description": "Return this article",
                "amount": 123.45
              }

        required: true
      responses:
        "200":
          description: Succesful operation
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/OkDTO'
              examples:
                success:
                  summary: refund succeeded
                  value: |
                    {
                      "message": "refund",
                      "details": {
                        "status": "SUCCEEDED"
                      }
                    }

        "404":
          description: Not found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorDTO'
              examples:
                merchant:
                  summary: merchant not found
                  value: |
                    {
                      "message": "Refund no merchant found for merchantId",
                      "httpStatus": 404,
                      "details": "Not Found"
                    }
                transaction:
                  summary: transaction not found
                  value: |
                    {
                      "message": "Refund no transaction found for transactionId",
                      "httpStatus": 404,
                      "details": "Not Found"
                    }  
                exceeded:
                  summary: total amount exceeds original amount
                  value: |
                    {
                      "message": "Total refund amount: 200.12 exceeds original transactionId amount: 123.00",
                      "httpStatus": 400,
                      "details": "Bad Request"
                    }

        "400":
          description: Invalid input provided
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorDTO'
              examples:
                desc:
                  summary: description empty
                  value: |
                    {
                      "message": "Refund description is empty.",
                      "httpStatus": 400,
                      "details": "Bad Request"
                    }
                merchant:
                  summary: merchant empty
                  value: |
                    {
                      "message": "Refund merchantId is empty.",
                      "httpStatus": 400,
                      "details": "Bad Request"
                    }
                transaction:
                  summary: transaction empty
                  value: |
                    {
                      "message": "Refund transactionId is empty.",
                      "httpStatus": 400,
                      "details": "Bad Request"
                    }
                amount:
                  summary: amount empty or negative
                  value: |
                    {
                      "message": "Refund amount is empty or less then 0.00.",
                      "httpStatus": 400,
                      "details": "Bad Request"
                    }

        "401":
          $ref: '#/components/responses/authenticationFailure'
        "405":
          $ref: '#/components/responses/methodNotSupported'
        "406":
          $ref: '#/components/responses/notAcceptable'
        "415":
          $ref: '#/components/responses/unsupportedMediaType'                  
        "500":
          $ref: '#/components/responses/unexpectedError'
          
  /api/auth/sign-in:
    post:
      tags:
      - Authentication
      operationId: signIn
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/JwtRequest'
        required: true
      responses:
        "200":
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/JwtResponse'
        "401":
          description: Authentication failure
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorDTO'
              example: |
                {
                  "message": "Could not sign in. User/password combination wrong",
                  "httpStatus": 401,
                  "details": "Unauthorized"
                }

        "405":
          $ref: '#/components/responses/methodNotSupported'
        "406":
          $ref: '#/components/responses/notAcceptable'
        "415":
          $ref: '#/components/responses/unsupportedMediaType'                  
        "500":
          $ref: '#/components/responses/unexpectedError'
                 
  /api/auth/refresh-token:
    post:
      tags:
      - Authentication
      operationId: refreshToken
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/TokenRefreshRequest'
        required: true
      responses:
        "200":
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/TokenRefreshResponse'
                         
        "405":
          $ref: '#/components/responses/methodNotSupported'
        "406":
          $ref: '#/components/responses/notAcceptable'
        "415":
          $ref: '#/components/responses/unsupportedMediaType'                  
        "500":
          $ref: '#/components/responses/unexpectedError'
 
  /globadymeGateway/transaction/getPaymentByRequestId:
    get:
      tags:
      - Payment
      operationId: getPaymentByRequestId
      parameters:
      - name: getPaymentByRequestIdRequestDTO
        in: query
        required: true
        schema:
          $ref: '#/components/schemas/GetPaymentByRequestIdRequestDTO'
        example: |
          {
            "requestId": "04f5faf0-e46c-4a8e-82e6-d69c1ab434bc",
            "password": "merchantPassword",
            "merchantId": "9378c831-dac4-4169-9210-065a70ef7b13"
          }
      responses:
        "200":
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/OkDTO'
              examples:
                found:
                  summary: items found
                  value: |
                    {
                      "message": "PaymentByRequestId",
                      "details": {
                        "requestId": "04f5faf0-e46c-4a8e-82e6-d69c1ab434ac",
                        "transactions": [
                          {
                            "id": "9378c831-dac4-4169-9210-065a70ef7b13",
                            "created": "2024-06-17T14:24:31.801722Z",
                            "status": "PENDING",
                            "amount": 368.00,
                            "currency": "EUR",
                            "country": "NL",
                            "paymentMethod": "iDEAL",
                            "accountholderName": "Oebele de Rekeninghouder",
                            "requestId": "04f5faf0-e46c-4a8e-82e6-d69c1ab434ac",     
                            "settled": true,
                            "settlementDate": "2024-01-28T06:00:00.572957294Z",
                            "settlementId": "1-912-W-2024-3-C0"
                          }
                        ]
                       }
                     }
                  none:
                    summary: none found
                    value: |
                      {
                        "message": "PaymentByRequestId",
                        "details": {
                          "requestId": "04f5faf0-e46c-4a8e-82e6-d69c1ab434bc"
                        }
                      }

        "401":
          description: Unauthorized
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorDTO'
              examples:
                passwd:
                  summary: Wrong password provided
                  value: |
                    {
                      "message": "Incorrect merchant password for merchant: x@yz.com",
                      "httpStatus": 401,
                      "details": "Unauthorized"
                    }

        "404":
          description: Not found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorDTO'
              examples:
                UNKNOWN:
                  summary: Whenever the given merchant is unknown
                  value: |
                    {
                      "message": "Merchant not found with id 7699cab7-2dfa-4981-9c90-0d0c93c801ac",
                      "httpStatus": 404,
                      "details": "Not Found"
                    }

        "405":
          $ref: '#/components/responses/methodNotSupported'
        "406":
          $ref: '#/components/responses/notAcceptable'
        "415":
          $ref: '#/components/responses/unsupportedMediaType'                  
        "500":
          $ref: '#/components/responses/unexpectedError'
          
  /globadymeGateway/common/banks:
    get:
      security:
      - Bearer: []
      tags:
      - Payment
      - Common
      operationId: getBanks
      responses:
        "200":
          description: OK
          content:
            application/json:
              schema:
                type: array
                items:
                  $ref: '#/components/schemas/BankDTO'
              example: |
                [
                  {
                    "displayName": "Nationale Nederlanden",
                    "name": "NN",
                    "ibanAbbreviation": "NNBA",
                    "BIC": "NNBANL2G"
                  },
                  {
                    "displayName": "ING",
                    "name": "ING",
                    "ibanAbbreviation": "INGB",
                    "BIC": "INGBNL2A"
                  }
                ]

        "401":
          $ref: '#/components/responses/authenticationFailure'
        "405":
          $ref: '#/components/responses/methodNotSupported'
        "406":
          $ref: '#/components/responses/notAcceptable'
        "415":
          $ref: '#/components/responses/unsupportedMediaType'                  
        "500":
          $ref: '#/components/responses/unexpectedError'
components:
  securitySchemes:
    bearerAuth:
     type: http
     scheme: bearer
     name: JWT
     
  responses:
    authenticationFailure:
      description: Authentication failure
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorDTO'
          example: |
            {
              "message": "Expired or invalid JWT token",
              "httpStatus": 401,
              "details": "Unauthorized"
            }
                       
    methodNotSupported:
      description: Method not supported.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorDTO'
          example: |
            {
              "message": "Request method 'GET' is not supported",
              "cause": "Request method 'GET' is not supported",
              "httpStatus": 405,
              "details": "/globadymeGateway/transaction/requestPayment"
            }

    notAcceptable:
      description: Not acceptable.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorDTO'
  
    unsupportedMediaType:
      description: Media type not supported.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorDTO'
          example: |
            {
              "message": "Content-Type 'text/plain;charset=UTF-8' is not supported",
              "cause": "Content-Type 'text/plain;charset=UTF-8' is not supported",
              "httpStatus": 415,
              "details": "/globadymeGateway/transaction/requestPayment"
            }

    tooManyRequests:
      description: Too many requests.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorDTO'
          example: |
            {
              "message": "To many request at endpoint /globadymeGateway/transaction/requestPayment from IP 127.0.0.1! Please try again after 60000 milliseconds!",
              "cause": "To many request at endpoint /globadymeGateway/transaction/requestPayment from IP 127.0.0.1! Please try again after 60000 milliseconds!",
              "httpStatus": 429,
              "details": "/globadymeGateway/transaction/requestPayment"
            }

    unexpectedError:
      description: Internal Server Error.
      content:
        application/json:
          schema:
            $ref: '#/components/schemas/ErrorDTO'
     
  schemas:
    BillingAddressDTO:
      required:
      - attention
      - email
      - city
      - familyName
      - givenName
      - phoneNumber
      - postalCode
      - region
      - streetAddress1
      - title
      type: object
      properties:
        attention:
          description: the attention string, for example the department of the addressee
          type: string
        email:
          description: Customer e-mailaddress
          type: string
          example: 'customer@example.com'
        city:
          type: string
          example: 'Goirle'
        familyName:
          type: string
          example: 'Janssen'
        givenName:
          type: string
          example: 'Piet'
        phoneNumber:
          type: string
          example: '+1234567890'
        postalCode:
          type: string
          example: '1234AB'
        region:
          type: string
          example: 'North-East'
        streetAddress1:
          type: string
          example: 'Kasteelstraat 123'
        streetAddress2:
          type: string
          example: 'Apartment 13'
        title:
          type: string
          example: 'Mr.'
    KlarnaSpecDTO:
      description: In order to be able to process Klarna payments, this field and its sub elements must be filled.
      required:
      - orderItems
      - billingAddress
      type: object
      properties:
        taxAmount:
          type: integer
        orderItems:
          description: |
            A list of the items being ordered. Note that the sum of the totalAmounts must 
            add up to the total transaction amount. If not, the payment request wil be rejected
          uniqueItems: true
          type: array
          items:
            $ref: '#/components/schemas/OrderItemDTO'
        billingAddress:
          $ref: '#/components/schemas/BillingAddressDTO'
    OrderItemDTO:
      required:
      - name: getPaymentByRequestIdRequestDTO
      - quantity
      - totalAmount
      - unitPrice
      type: object
      properties:
        inname:
 query         requiredtype: truestring
        schemaquantity:
          $reftype: '#/components/schemas/GetPaymentByRequestIdRequestDTO' integer
          responsesformat: int32
        "200"totalAmount:
          description: OKThe total amount in cents
       content:   type: number
        application/jsonunitPrice:
          description: Unit price in schema:cents
          type: number
    $refRecurrenceDTO:
'#/components/schemas/OkDTO'    /globadymeGateway/common/banks:  type: object
 get:     properties:
 security:       - BearerrecurrenceFrequency:
[]       tags:   type: string
  - common-resource       operationIdenum:
 getBanks       responses:  - DAILY
     "200":     - WEEKLY
    description: OK     - MONTHLY
    content:      - QUARTERLY
     application/json:     - YEARLY
        schemarecurrenceStatus:
          type: string
    type:  array    enum:
          - ACTIVE
items:          - PAUSED
       $ref: '#/components/schemas/BankDTO'  components:- FINISHED
 securitySchemes:     bearerAuth:  startDate:
   type: http      schemetype: string
bearer      name: JWT   schemasformat: date
   BillingAddressDTO:     recurrenceAmount:
  type: object       propertiestype: number
        attentiontransactionId:
          type: string
        emaildescription:
          type: string
        cityid:
          type: stringinteger
        familyName:  format: int32
       typeSepaSpecDTO:
string         givenNamedescription: Container for SEPA payments.
      typerequired:
string      - iban
 phoneNumber:     - emailAddress
    type: string - postalAddress
      postalCodetype: object
      properties:
  type: string     iban:
   region:       description: The buyer's IBAN.
 type: string        type: streetAddress1:string
          typeexample: string'ES9121000418450200051332'
        streetAddress2emailAddress:
          typedescription: stringThe buyer's email address.
     title:     type: string
    type: string     KlarnaSpecDTOexample: 'customer@example.com'
     type:  object postalAddress:
     properties:     description: The buyer's postal taxAmount:address.
          type: integerstring
        orderItems:  example: 'Customerstreet 13, 1234AB Customercity'
    uniqueItemsRequestPaymentRequestDTO:
 true     type: object
    type: array required:
      - transaction
 items:     - password
      $refproperties:
'#/components/schemas/OrderItemDTO'         billingAddresstransaction:
          $ref: '#/components/schemas/BillingAddressDTO'
RequestPaymentRequestTransactionDTO'
        password:
   OrderItemDTO:       type: string
object          properties:description: Password to authenticate this merchant
        name  example: 'MerchantTestPassword'
    RequestPaymentRequestTransactionDTO:
      typedescription: string
        quantity:Holds the detail for this payment
     type required:
integer        - merchantId
 format: int32      - amount
 totalAmount:       - currency
  type: number     - country
  unitPrice:      - description
   type: number    - RecurrenceDTO:accountHolderName
      type: object
      properties:
        recurrenceFrequencymerchantId:
          type: string
          enumdescription: UUID to identify this merchant
          example: '7699cab7-2dfa- DAILY4981-9c90-0d0c93c801ac'
        amount:
          -type: WEEKLYstring
          -description: MONTHLYAn amount for the payment. The decimal separator must be a -dot QUARTERLY'.'
          - YEARLYexample: '123.45'
        recurrenceStatuscurrency:
          type: string
          enumpattern: '[A-Z]{3,3}'
          example: 'EUR'
    - ACTIVE     description: '3 Letter ISO Currency Code: -ISO PAUSED4217 code'
        country:
- FINISHED         startDatetype: string
          typepattern: string'[A-Z]{2,2}'
          formatexample: date'NL'
        recurrenceAmount:  description: '2 Letter ISO Country  Code: ISO 3166 type:code'
number         transactionIddescription:
          type: string
          description: 'A descriptive string for this transaction'
    type: string     example: 'Test payment' 
id:           typeaccountHolderName:
integer           formattype: int32string
    SepaSpecDTO:       typedescription: object'Name of the account holder'
  properties:        example: iban:'Test account holder'
        typeemailAddress:
 string         emailAddresstype: string
          typeexample: string'klant@yourshop.com'
        postalAddressrecurrence:
          type$ref: string'#/components/schemas/RecurrenceDTO'
    TransactionRequestDTO:    klarnaSpec:
  type: object       properties:$ref: '#/components/schemas/KlarnaSpecDTO'
        merchantIdsepaSpec:
          type$ref: string'#/components/schemas/SepaSpecDTO'
        amounttransactionRecurrenceType:
          type: string
        currency:  enum:
        type: string - ONETIME
      country:    - FIRST
     type: string    - RECURRING
   description:           typedescription:
string         accountholderName:   This will default to ONETIME if not present. type:For stringrecurring  payments, 
     emailAddress:       this field needs to type:be stringpresent and filled with FIRST. This will then 
transactionRecurrenceType:           type: stringbe the first in a series of recurring payments, klarnaSpec:also serving as the 
      $ref: '#/components/schemas/KlarnaSpecDTO'     mandate for future  sepaSpecDTO:payments. Scheduling and execution of subsequent 
    $ref: '#/components/schemas/SepaSpecDTO'       recurrences are recurrence:handled by Globadyme according to parameters set in 
  $ref: '#/components/schemas/RecurrenceDTO'         requested:the next field.
        typeredirectUrlSuccess:
string          type: string
format: date-time         requestIddescription: Optional specific url to redirect to in case of a type:successful stringtransaction.
        redirectUrlSuccessredirectUrlFailed:
          type: string
          redirectUrlFaileddescription: Optional specific url to redirect to in case of a type:failed stringtransaction.
        redirectUrlAborted:
          type: string
        paymentLink  description: Optional specific url to redirect to in case of an type:aborted booleantransaction.
        linkValidityDayspaymentLink:
          type: integerboolean
          formatdescription: 
int32         linkId:  Flag to choose between a payment link and a type: string
one-time or recurring 
  OkDTO:       type: object payment. A value of true will properties:return a payment link 
    message:    linkValidityDays:
      type: string   type: integer
    details:      format: int32
   type: object      description:
    additionalProperties:        The amount of days the type:payment objectlink will be valid. Default ErrorDTO:value is 14.
    typeOkDTO:
object      description: properties:Common Success response
      messagetype: object
         type: stringproperties:
        causemessage:
          typedescription: string
        httpStatus:A descriptive message for the consumer
          type: integerstring
          formatexample: int32'OK'
        details:
          type: string
description: Key/value pair detailing the message results
   InitiatePaymentRequestDTO:       type: object
      properties:     additionalProperties:
   encryptedTransaction:           type: stringobject
        bank:  example:
        type: string         paymentMethod:redirectUrl: "https://dev.globadyme.com/pay?data=0f6286...ad990f4"
            typerequestId: string"9694c0c8-d411-4d3d-af08-2b0d21ba9521"
    RequestPaymentRequestTransactionDTO:       type: object  
    propertiesErrorDTO:
        merchantIddescription: Common Error response        type: string
    - In case of any error.
   amount:   type: object
      typeproperties:
string         currencymessage:
          typedescription: stringA descriptive error message for the consumer
  country:           type: string
          descriptionexample: "Error processing encoded transaction"
       type cause:
string          accountHolderName:
description: Optional a Technical error
          type: string
        emailAddresshttpStatus:
          typedescription: stringThe http status code
     recurrence:     type: integer
    $ref: '#/components/schemas/RecurrenceDTO'      format: int32
 klarnaSpec:           $refexample: '#/components/schemas/KlarnaSpecDTO'500
        sepaSpecdetails:
          $refdescription: '#/components/schemas/SepaSpecDTO'
        transactionRecurrenceType:Optional a detailed description, e.g. which field was missing
          type: string
          enumexample: Internal Server Error 
      -example: ONETIME|
        {
 - FIRST        "message": "Error processing -encoded RECURRINGtransaction: Unable to deserialise",
     redirectUrlSuccess:     "httpStatus": 500,
    type: string     "details": "Internal Server Error"
redirectUrlFailed:        }

 type: string  InitiatePaymentRequestDTO:
      redirectUrlAbortedtype: object
      required:
  type: string   - encryptedTransaction
    paymentLink:  - paymentMethod
       typeproperties:
boolean         linkValidityDaysencryptedTransaction:
          typedescription: integerThe encrypted transaction as received in the return url   format: int32
from '/globadymeGateway/transaction/requestPayment'
   RequestPaymentResponseDTO:       type: objectstring
      properties:  bank:
      redirectUrl:    description: The name of the bank.
 type: string        type: requestId:string
          typeexample: string'ING'
    RefundRequestDTO:    paymentMethod:
  type: object       propertiesdescription: The payment method as chosen by the  refundId:consumer.
          type: string
        transactionId:   enum:
       type: string  - IDEAL
     merchantId:     - PAYPAL
    type: string     - KLARNA
  description:        - CREDITCARD
 type: string        - amount:EPS
          type:- numberGIROPAY
    JwtRequest:      - type:SOFORT
object       properties:   - PAYCONIQ
    user:           $ref: '#/components/schemas/User'- SEPA
     User:     - BANCONTACT
type: object   RefundRequestDTO:
   properties:   description: Object to request a refund
username:      required:
    type: string - transactionId
      password:- merchantId
      - description
 type: string    - JwtResponse:amount
      type: object
      properties:
        accessTokenrefundId:
          type: string
        tokenTypetransactionId:
          type: string
        refreshTokenmerchantId:
          type: string
        userIddescription:
          type: string
        rolesamount:
          type: arraynumber
          itemsJwtRequest:
      description: Request an jwt token to type:authorise stringsubsequent requests
      required:
    enum:  - user
      type: object
 - ROLE_ADMIN    properties:
        -user:
ROLE_CLIENT     TokenRefreshRequest:       type$ref: object'#/components/schemas/User'
      propertiesexample: |
       refreshToken: {
          type"user": {
string     TokenRefreshResponse:       type"username": object"merchant@merchandise.shop",
      properties:      "password": "merchantPassword"
 accessToken:         }
 type: string      }
  refreshToken:  User:
      description: Object type:to stringidentify a merchant/user
      tokenTyperequired:
      -  username
 type: string    - GetPaymentByRequestIdRequestDTO:password
      type: object
      properties:
        requestIdusername:
          type: string
        password:
          type: string
        merchantIdJwtResponse:
      description: Object containing tokens type:to stringauthorise a merchant/user
  BankDTO:
      type: object
      properties:
        displayNameaccessToken:
          type: string
        nametokenType:
          type: string
        ibanAbbreviationrefreshToken:
          type: string
        BICuserId:
          type: string
    PaymentMethodDTO    roles:
      type:  object  type: array
   properties:       items:
 name:           type: string
            displayNameenum:
          type: string - ROLE_ADMIN
      hasRecurring:      - ROLE_MERCHANT
   type: boolean        - countries:ROLE_CLIENT
          uniqueItemsexample: true|
          type: array {
         items:     "accessToken": "eyJhbGciOiJIUzI1NiJ...Bruizs7XwzPRzMBdQoKj2WNAJrZ9XlH8",
      type: string         overrideCountry"tokenType": "Bearer",
         type: boolean     TransactionSummaryDTO:"refreshToken": "c84e512...1128b62a2",
      type: object       properties"userId": "9694c0c8-d411-4d3d-af08-2b0d21ba9521",
       id:       "roles": [
  type:  string         created:   "ROLE_MERCHANT",
       type: string        "ROLE_CLIENT"
  format: date-time         status:  ]
        type: string   }      amount:    
    TokenRefreshRequest:
 type: number    description: Request a new accessToken
currency:      required:
    type: string - refreshToken
      countrytype: object
         typeproperties:
string         paymentMethodrefreshToken:
          $reftype: '#/components/schemas/PaymentMethodDTO'string
        bankexample: |
        {
$ref: '#/components/schemas/BankDTO'         description"refreshToken": "refreshToken"
        }
type: string   TokenRefreshResponse:
      ibantype: object
         typeproperties:
string         accountholderNameaccessToken:
          type: string
        transactionRecurrenceTyperefreshToken:
          type: string
        failReasontokenType:
          type: string
 string
      emailAddressexample: |
        {
type: string         linkId:"accessToken": "eyJhbGciOiJIUzI1...Lw4VDWjcPBuN01IQZMIWDAdtLZLNfDdgAIM",
          type"refreshToken": string"78738b...7e085618",
    GetPaymentByRequestIdResponseTransactionDTO:       type"tokenType": object"Bearer"
      properties:  }
      id:
  GetPaymentByRequestIdRequestDTO:
       type: stringobject
        createdproperties:
          typerequestId:
string           formattype: date-timestring
        statuspassword:
          type: string
        amountmerchantId:
          type: numberstring
    BankDTO:
   currency:   type: object
      typeproperties:
string         countrydisplayName:
          type: string
        paymentMethodname:
          type: string
        accountholderNameibanAbbreviation:
          type: string
        requestIdBIC:
          type: string
 

Download

View file
nameglobadyme-gateway-api.yaml
specification.