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.999 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:
      - Payment
      summary: Request a transaction
      description: Request a transaction to obtain a payment link.
      operationId: requestPayment
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/RequestPaymentRequestDTO'
        required: true

     responses:   description:      "200":
          description: Succesful operation"The body must always contain the transaction and password."
           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",
     description: |         Request a qrcode image for the payment       tags:
      - Payment"redirectUrl": "https://localhost:8028/pay?data=0f628643a49a71ce...1d023822ec5f02f2587057fe"
        operationId: generateQRCodeImage       requestBody:      }
  content:           application/json:       }

    schema:               typepaymentLink:
string         required: true       responses:
        "200" summary: Request a payment link
      description: OK           contentvalue: |
           image/png:         {
     schema:                 type"message": array"OK",
                items:      "details": {
           type: string            "requestId": "129294ac-ec36-4155-addd-697be68ec8aa",
     format: byte         "400":           description: Invalid input provided"redirectUrl": "https://localhost:8028/api/link?id=BH3IiBlBN2XjaqWR"
                  content:    }
        application/json:            }
  schema:                 $ref: '#/components/schemas/ErrorDTO'
        "404":
          description: Not found
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorDTO'
  /globadymeGateway/transaction/initiatePayment:     post:       descriptionexamples:
|         Initiate a payment, using the payment link UNKNOWN:
     tags:       - Payment       operationIdsummary: initiatePaymentWhenever the given merchant is unknown
 requestBody:         content:           application/jsonvalue: |
           schema:         {
     $ref: '#/components/schemas/InitiatePaymentRequestDTO'         required: true       responses"message": "Merchant not found with     "200":id 7699cab7-2dfa-4981-9c90-0d0c93c801ac",
          description: OK           content"httpStatus": 404,
           application/json:           "details": "Not Found"
  schema:                 $ref: '#/components/schemas/OkDTO' }
        "400401":
          description: InvalidUnauthorized
input provided
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorDTO'
        "500":      examples:
    description: Technical error           contentpasswd:
            application/json:      summary: Wrong password provided
     schema:             value: |
  $ref: '#/components/schemas/ErrorDTO'    /globadymeGateway/refund/initiateRefund:     post:       tags: {
     - Refunds       summary: Initiate a refund      "message":  description: Initiate a refund on an earlier created and approve transaction"Incorrect merchant password for merchant: x@yz.com",
              operationId: initiateRefund       requestBody:"httpStatus": 401,
        content:           application/json:   "details": "Unauthorized"
        schema:            }
  $ref: '#/components/schemas/RefundRequestDTO'         required: true       responses:
        "200400":
          description: >-
 Succesful operation          Bad content:Request
            plain/text: {}
        "404":Property wrong or missing from JSON, for example UUID string too large.
          descriptioncontent:
Not found           contentapplication/json:
            application/json:
              schema:
                $ref: '#/components/schemas/ErrorDTO'
        "400":      examples: 
   description:  Total refund amount exceeds original transaction amount     UUID:
     content:             application/jsonsummary: Wrong UUID provided
            schema:      value: |
         $ref: '#/components/schemas/ErrorDTO'         "401": {
         description: Authentication failure           content"message": "UUID string too large",
        '*/*':               schema"cause": "UUID string too large",
            $ref: '#/components/schemas/OkDTO'         "403httpStatus": 400,
         description: Autorisation failure           content"details": "/globadymeGateway/transaction/requestPayment"
           '*/*':            }

 schema:               JSON:
 $ref: '#/components/schemas/OkDTO'    /api/auth/sign-in:     post:       tagssummary: Invalid JSON provided
   - Authentication       operationId: signIn       requestBodyvalue: |
       content:           application/json:  {
          schema:            "message": "JSON parse $referror: Unexpected character '#/components/schemas/JwtRequest('}' (code 125)): was expecting double-quote to start field required:name",
true       responses:         "200":      "cause": "JSON parse error: Unexpected description: OK
          content:character ('}' (code 125)): was expecting double-quote to start field name",
              '*/*':        "httpStatus": 400,
     schema:                 $ref"details": '#"/componentsglobadymeGateway/schemas/JwtResponse'transaction/requestPayment"
           "401":         }
 description: Authentication failure           content:    
        '*/*'"405":
          $ref: '#/components/responses/methodNotSupported'
  schema:      "406":
          $ref: '#/components/schemasresponses/OkDTO'
  /api/auth/refresh-token:
    post:
      tags: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
      - quantity
      - totalAmount
      - AuthenticationunitPrice
      operationIdtype: refreshTokenobject
      requestBodyproperties:
        contentname:
          application/json:type: string
        quantity:
    schema:      type: integer
       $ref   format: '#/components/schemas/TokenRefreshRequest'int32
        requiredtotalAmount:
 true         responsesdescription: The total amount in cents
     "200"     type: number
         descriptionunitPrice:
OK           contentdescription: Unit price in cents
        '*/*':  type: number
    RecurrenceDTO:
      schematype: object
      properties:
        $refrecurrenceFrequency: '#/components/schemas/TokenRefreshResponse'
          /globadymeGateway/transaction/getPaymentByRequestIdtype: string
   get:       securityenum:
      - Bearer: []  - DAILY
   tags:       - PaymentWEEKLY
       operationId: getPaymentByRequestId  - MONTHLY
   parameters:       - QUARTERLY
name: getPaymentByRequestIdRequestDTO         in:- queryYEARLY
        requiredrecurrenceStatus:
 true         schematype: string
          $refenum:
'#/components/schemas/GetPaymentByRequestIdRequestDTO'          responses:- ACTIVE
       "200":   - PAUSED
      description: OK   - FINISHED
      content:  startDate:
          application/jsontype: string
          format: date
  schema:      recurrenceAmount:
          $reftype: '#/components/schemas/OkDTO' number
        /globadymeGateway/common/banks:
transactionId:
   get:       securitytype: string
     - Bearer: [] description:
     tags:     type: string
- Payment       -id:
Common       operationId: getBanks  type: integer
   responses:       format: int32
"200":    SepaSpecDTO:
      description: Container for OKSEPA payments.
      required:
  content:    - iban
      - application/json:emailAddress
      - postalAddress
      schematype: object
      properties:
        typeiban:
array          description: The buyer's IBAN.
   items:       type: string
          $refexample: '#/components/schemas/BankDTO'ES9121000418450200051332'
  components:   securitySchemes:   emailAddress:
 bearerAuth:      type: http  description: The buyer's email scheme:address.
bearer      name: JWT   schemastype: string
   BillingAddressDTO:       type: objectexample: 'customer@example.com'
        propertiespostalAddress:
         attention: description: The buyer's postal address.
          type: string
        email:  example: 'Customerstreet 13, 1234AB Customercity'
    typeRequestPaymentRequestDTO:
string         citytype: object
      required:
  type: string   - transaction
    familyName:  - password
       typeproperties:
string         givenNametransaction:
          type$ref: string'#/components/schemas/RequestPaymentRequestTransactionDTO'
        phoneNumberpassword:
          type: string
        postalCode  description: Password to authenticate this merchant
      type    example: string'MerchantTestPassword'
    RequestPaymentRequestTransactionDTO:
      regiondescription: 
        Holds type: string
 the detail for this payment
      streetAddress1required:
        - merchantId
 type: string      - amount
 streetAddress2:       - currency
  type: string     - country
  title:      - description
   type: string    - KlarnaSpecDTO:accountHolderName
      type: object
      properties:
        taxAmountmerchantId:
          type: integerstring
          orderItemsdescription: UUID to identify this merchant
     uniqueItems: true    example: '7699cab7-2dfa-4981-9c90-0d0c93c801ac'
       type amount:
array          type: string
items:          description: An amount $ref: '#/components/schemas/OrderItemDTO'
        billingAddress:for the payment. The decimal separator must be a dot '.'
          $refexample: '#/components/schemas/BillingAddressDTO123.45'
    OrderItemDTO:    currency:
  type: object       propertiestype: string
       name:   pattern: '[A-Z]{3,3}'
      type: string   example: 'EUR'
    quantity:      description: '3 Letter ISO Currency typeCode: integerISO 4217 code'
        formatcountry:
int32          totalAmounttype: string
         type: number pattern: '[A-Z]{2,2}'
          unitPriceexample: 'NL'
          typedescription: number'2 Letter ISO Country  RecurrenceDTOCode: ISO 3166 code'
   type: object    description:
  properties:        type: recurrenceFrequency:string
          typedescription: string'A descriptive string for  this transaction'
    enum:      example: 'Test payment' 
 - DAILY      accountHolderName:
    - WEEKLY     type: string
    - MONTHLY     description: 'Name of the account holder'
- QUARTERLY         example: 'Test -account YEARLYholder'
        recurrenceStatusemailAddress:
          type: string
          enumexample: 'klant@yourshop.com'
        recurrence:
- ACTIVE         $ref:  - PAUSED'#/components/schemas/RecurrenceDTO'
        klarnaSpec:
   - FINISHED         startDate$ref: '#/components/schemas/KlarnaSpecDTO'
         typesepaSpec:
string           format$ref: date'#/components/schemas/SepaSpecDTO'
        recurrenceAmounttransactionRecurrenceType:
          type: numberstring
        transactionId:    enum:
      type: string   -   ONETIME
  description:        - FIRST
 type: string        - id:RECURRING
          typedescription:
integer           format: int32This will default to ONETIME SepaSpecDTO:if not present. For recurring payments, 
type: object       properties:    this field needs to be iban:present and filled with FIRST. This will then 
  type: string         emailAddress:be the first in a series of recurring payments, also serving type:as stringthe 
       postalAddress:     mandate for future payments. Scheduling and type:execution stringof subsequent 
  RequestPaymentRequestDTO:       type: object  recurrences are handled by Globadyme properties:according to parameters set in 
   transaction:           $ref: '#/components/schemas/RequestPaymentRequestTransactionDTO'the next field.
        passwordredirectUrlSuccess:
          type: string
       RequestPaymentRequestTransactionDTO:   description: Optional specific url type:to objectredirect to in case of a successful properties:transaction.
        merchantIdredirectUrlFailed:
          type: string
          amountdescription: Optional specific url to redirect to in case of a type:failed stringtransaction.
        currencyredirectUrlAborted:
          type: string
          countrydescription: Optional specific url to redirect to in case of an type:aborted stringtransaction.
        descriptionpaymentLink:
          type: stringboolean
        accountHolderName:  description: 
       type: string   Flag to choose between a payment emailAddress:link and a one-time or recurring 
    type: string         recurrence:
          $ref: '#/components/schemas/RecurrenceDTO'payment. A value of true will return a payment link 
        klarnaSpeclinkValidityDays:
          $reftype: '#/components/schemas/KlarnaSpecDTO' integer
          sepaSpecformat: int32
          $refdescription:
'#/components/schemas/SepaSpecDTO'         transactionRecurrenceType:   The amount of days the payment link will type:be stringvalid. Default value is 14.
      enumOkDTO:
      description: Common Success response
- ONETIME     type: object
    - FIRST properties:
        message:
- RECURRING         redirectUrlSuccessdescription: A descriptive message for the consumer
    type: string     type: string
  redirectUrlFailed:           typeexample: string'OK'
        redirectUrlAborteddetails:
          typedescription: stringKey/value pair detailing the message results
   paymentLink:       type: object
  type: boolean       additionalProperties:
 linkValidityDays:           type: integerobject
          formatexample:
 int32     OkDTO:      redirectUrl: description: Common Success response"https://dev.globadyme.com/pay?data=0f6286...ad990f4"
            typerequestId: object"9694c0c8-d411-4d3d-af08-2b0d21ba9521"
      properties:        
message:    ErrorDTO:
      description: ACommon descriptiveError messageresponse for- theIn consumercase of any  error.
      type: string object
      properties:
        detailsmessage:
          description: Key/value pair detailing A descriptive error message for the messageconsumer
results
          type: objectstring
          additionalPropertiesexample: "Error processing encoded transaction"
        typecause:
object     ErrorDTO:
      description: CommonOptional Errora responseTechnical -error
In case of any error.       type: object
 string
    properties:         messagehttpStatus:
          description: AThe descriptivehttp error message for the consumerstatus code
           type: stringinteger
          exampleformat: "Incorrectint32
merchant password for merchant: x@yz.com"         causeexample: 500
         descriptiondetails:
Optional a Technical error           typedescription: stringOptional a detailed description,      httpStatus:
  e.g. which field was missing
       description: The http statustype: codestring
          typeexample: integerInternal Server Error 
       formatexample: int32|
        {
 example: 401         details"message": "Error processing encoded transaction: Unable to deserialise",
   description: Optional a detailed description, e.g. which field was missing"httpStatus": 500,
           type"details": string"Internal Server Error"
        example: Unauthorized}

    InitiatePaymentRequestDTO:
      type: object
      propertiesrequired:
      - encryptedTransaction
 encryptedTransaction:     - paymentMethod
      typeproperties: string
        bankencryptedTransaction:
          typedescription: stringThe encrypted transaction as received in the return url    paymentMethod:from '/globadymeGateway/transaction/requestPayment'
          type: string
    RequestPaymentResponseDTO:    bank:
  type: object       propertiesdescription: The name of the bank.
   redirectUrl:
          type: string

       requestId:   example: 'ING'
      type: string     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       - EPS
amount:          - type:GIROPAY
number     JwtRequest:     - SOFORT
type: object       properties:  -       user:PAYCONIQ
          - $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: number
array    JwtRequest:
      itemsdescription: Request an jwt token to authorise subsequent requests
    type: string required:
      - user
   enum:   type: object
      properties:
 - ROLE_ADMIN      user:
      - ROLE_CLIENT     TokenRefreshRequest:
      type: object$ref: '#/components/schemas/User'
      example: properties:|
        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
    JwtResponse:
     merchantId description: Object containing tokens to authorise a merchant/user
      type: stringobject
      BankDTOproperties:
      type  accessToken:
object          propertiestype: string
        displayNametokenType:
          type: string
        namerefreshToken:
          type: string
        ibanAbbreviationuserId:
          type: string
        BICroles:
          type: stringarray
    PaymentMethodDTO:       typeitems:
object       properties:      type: string
 name:           typeenum:
string         displayName:   - ROLE_ADMIN
       type: string    - ROLE_MERCHANT
   hasRecurring:         - ROLE_CLIENT
type: boolean         countriesexample: |
         uniqueItems: true  {
        type: array     "accessToken": "eyJhbGciOiJIUzI1NiJ...Bruizs7XwzPRzMBdQoKj2WNAJrZ9XlH8",
    items:             type"tokenType": string"Bearer",
        overrideCountry:      "refreshToken": "c84e512...1128b62a2",
   type: boolean     TransactionSummaryDTO:       type: object
"userId": "9694c0c8-d411-4d3d-af08-2b0d21ba9521",
     properties:         id"roles": [
         type: string      "ROLE_MERCHANT",
  created:           type: string   "ROLE_CLIENT"
       format: date-time      ]
  status:          } type: string        
amount:    TokenRefreshRequest:
      typedescription: numberRequest a new accessToken
     currency required:
      - refreshToken
  type: string         countrytype: object
         typeproperties:
string         paymentMethodrefreshToken:
          $reftype: '#/components/schemas/PaymentMethodDTO'string
        bankexample: |
        {
$ref: '#/components/schemas/BankDTO'         description"refreshToken": "refreshToken"
         type: string}
    TokenRefreshResponse:
   iban:   type: object
      typeproperties:
string         accountholderNameaccessToken:
          type: string
        transactionRecurrenceTyperefreshToken:
          type: string
        failReasontokenType:
          type: 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.

...