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:
      - 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":The body must always contain the transaction and    description: Succesful operationpassword."
             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:
 "redirectUrl": "https://localhost:8028/pay?data=0f628643a49a71ce...1d023822ec5f02f2587057fe"
      - Payment       operationId: generateQRCodeImage       requestBody:}
        content:           application/json: }

          schema:      paymentLink:
        type: string         requiredsummary: trueRequest a payment link
   responses:         "200":      value: |
   description: OK           content:     {
       image/png:               schema"message":  "OK",
              type: array       "details": {
        items:                   type: string"requestId": "129294ac-ec36-4155-addd-697be68ec8aa",
                  format: byte
        "400redirectUrl":    "https://localhost:8028/api/link?id=BH3IiBlBN2XjaqWR"
      description: Invalid input provided           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'
              examples:
            "500":
          description: Technical error
          content:    passwd:
                  summary: Wrong password provided
                  value: |
                    {
                      "message": "Incorrect merchant password for merchant: x@yz.com",
                      "httpStatus": 401,
                      "details": "Unauthorized"
                    }
                    
        "400":
          description: >-
            Bad Request
            Property wrong or missing from JSON, for example UUID string too large.
          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"
                    }
                  
        "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,
              application/json"details": "/globadymeGateway/transaction/requestPayment"
            }
schema:
    unexpectedError:
      description: Internal Server Error.
 $ref: '#/components/schemas/ErrorDTO'    /globadymeGateway/refund/initiateRefundcontent:
    post:       tagsapplication/json:
      - Refunds   schema:
   summary: Initiate a refund       description$ref: Initiate a refund on an earlier created and approve transaction'#/components/schemas/ErrorDTO'
     
  schemas:
      operationIdBillingAddressDTO: initiateRefund
      requestBodyrequired:
      - attention
content:      - email
   application/json:   - city
      - familyName
schema:      - givenName
      - phoneNumber
$ref: '#/components/schemas/RefundRequestDTO'     - postalCode
  required: true   - region
  responses:    - streetAddress1
   "200":   - title
      descriptiontype: object
 Succesful operation    properties:
      content:  attention:
          plain/textdescription: {}the attention string, for example the department of the "404":addressee
          descriptiontype: Notstring
found        email:
  content:        description: Customer e-mailaddress
  application/json:        type: string
     schema:     example: 'customer@example.com'
        city:
 $ref: '#/components/schemas/ErrorDTO'         "400"type: string
          descriptionexample: Total refund amount exceeds original transaction amount'Goirle'
        familyName:
          contenttype: string
           application/json:example: 'Janssen'
        givenName:
     schema:     type: string
          $refexample: '#/components/schemas/ErrorDTOPiet'
        "401"phoneNumber:
          descriptiontype: Authenticationstring
 failure         example:  content:'+1234567890'
        postalCode:
          '*/*'type: string
          example: '1234AB'
 schema:       region:
          $reftype: '#/components/schemas/OkDTO'string
          "403"example:  'North-East'
        descriptionstreetAddress1: Autorisation
failure           contenttype: string
          example: '*/*':Kasteelstraat 123'
        streetAddress2:
     schema:     type: string
          $refexample: '#/components/schemas/OkDTOApartment 13'
   /api/auth/sign-in:     posttitle:
      tags:    type: string
 - Authentication       operationId: signIn
      requestBody:
 example: 'Mr.'
       contentKlarnaSpecDTO:
          application/jsondescription: In order to be able to process Klarna payments, this field and schema:its sub elements must be filled.
      required:
  $ref: '#/components/schemas/JwtRequest'    - orderItems
   required: true  - billingAddress
   responses:   type: object
    "200":  properties:
        descriptiontaxAmount:
OK           contenttype: integer
        orderItems:
  '*/*':        description: |
      schema:      A list of the items being ordered. Note that the sum $ref: '#/components/schemas/JwtResponse'
 of the totalAmounts must 
     "401":       add up to the description:total Authenticationtransaction failureamount. If not, the payment request wil be rejected
  content:        uniqueItems: true
   '*/*':       type: array
      schema:    items:
            $ref: '#/components/schemas/OkDTO'
  /api/auth/refresh-token:/OrderItemDTO'
    post:    billingAddress:
  tags:       - Authentication
$ref: '#/components/schemas/BillingAddressDTO'
     operationIdOrderItemDTO: refreshToken
      requestBodyrequired:
      - name
content:      - quantity
    application/json:  - totalAmount
      - unitPrice
 schema:     type: object
      properties:
 $ref: '#/components/schemas/TokenRefreshRequest'      name:
  required: true       responsestype: string
        "200"quantity:
          descriptiontype: OKinteger
          contentformat: int32
           '*/*'totalAmount:
          description: The total amount schema:in cents
          type:  number
  $ref: '#/components/schemas/TokenRefreshResponse'      /globadymeGateway/transaction/getPaymentByRequestId:unitPrice:
          getdescription: Unit price in cents
  security:       - Bearertype: []number
      tagsRecurrenceDTO:
      -type: Paymentobject
      operationIdproperties:
 getPaymentByRequestId       parametersrecurrenceFrequency:
         - nametype: getPaymentByRequestIdRequestDTOstring
        in: query enum:
       required: true  - DAILY
     schema:     - WEEKLY
    $ref: '#/components/schemas/GetPaymentByRequestIdRequestDTO'     - MONTHLY
responses:         "200": - QUARTERLY
        description: OK - YEARLY
        contentrecurrenceStatus:
          type: string
 application/json:         enum:
     schema:     - ACTIVE
          $ref: '#/components/schemas/OkDTO'- PAUSED
   /globadymeGateway/common/banks:     get:  - FINISHED
   security:     startDate:
 - Bearer: []       tagstype: string
      -  Payment  format: date
   - Common    recurrenceAmount:
  operationId: getBanks       responsestype: number
       "200" transactionId:
          descriptiontype: OKstring
        description:
 content:         type: string
  application/json:      id:
          schematype: integer
          format: int32
   type SepaSpecDTO:
array      description: Container for SEPA payments.
      itemsrequired:
      - iban
      - emailAddress
  $ref: '#/components/schemas/BankDTO'    components:- postalAddress
 securitySchemes:     bearerAuthtype: object
      typeproperties:
 http       schemeiban:
bearer      name: JWT   schemasdescription: The buyer's IBAN.
 BillingAddressDTO:         type: objectstring
      properties:    example: 'ES9121000418450200051332'
   attention:      emailAddress:
    type: string     description: The buyer's email email:address.
          type: string
          cityexample: 'customer@example.com'
        postalAddress:
type: string         familyNamedescription: The buyer's postal address.
          type: string
        givenName:  example: 'Customerstreet 13, 1234AB Customercity'
    typeRequestPaymentRequestDTO: string
        phoneNumbertype: object
      required:
  type: string   - transaction
    postalCode:  - password
       typeproperties:
string        transaction:
region:           type: string$ref: '#/components/schemas/RequestPaymentRequestTransactionDTO'
         streetAddress1password:
          type: string
        streetAddress2  description: Password to authenticate this merchant
      type: string   example: 'MerchantTestPassword'
    titleRequestPaymentRequestTransactionDTO:
      description: 
  type: string     KlarnaSpecDTO:Holds the detail for this payment
 type: object    required:
  properties:      - merchantId
 taxAmount:       - amount
  type: integer     - currency
  orderItems:      - country
   uniqueItems: true    - description
     type: array  - accountHolderName
       itemstype: object
      properties:
    $ref: '#/components/schemas/OrderItemDTO'   merchantId:
     billingAddress:     type: string
    $ref: '#/components/schemas/BillingAddressDTO'     OrderItemDTOdescription: UUID to identify this merchant
  type: object       propertiesexample: '7699cab7-2dfa-4981-9c90-0d0c93c801ac'
       name amount:
          type: string
          quantitydescription: An amount for the payment. The decimal separator must be a type: integerdot '.'
          formatexample: int32'123.45'
        totalAmountcurrency:
          type: string
number          unitPricepattern: '[A-Z]{3,3}'
         type example: number
'EUR'
   RecurrenceDTO:       typedescription: object'3 Letter ISO Currency Code: ISO 4217 properties:code'
        recurrenceFrequencycountry:
          type: string
          enumpattern:           - DAILY
 '[A-Z]{2,2}'
        - WEEKLY example: 'NL'
        - MONTHLY description: '2 Letter ISO Country Code: ISO 3166 code'
 - QUARTERLY      description:
    - YEARLY     type: string
  recurrenceStatus:        description: 'A  type:descriptive string for this transaction'
       enum:   example: 'Test payment' 
    - ACTIVE   accountHolderName:
       - PAUSED  type: string
       - FINISHED  description: 'Name of the    startDate:account holder'
          typeexample: string'Test account holder'
        formatemailAddress:
 date         recurrenceAmounttype: string
          typeexample: number'klant@yourshop.com'
        transactionIdrecurrence:
          type$ref: string'#/components/schemas/RecurrenceDTO'
        descriptionklarnaSpec:
          type$ref: string'#/components/schemas/KlarnaSpecDTO'
        idsepaSpec:
          type$ref: integer'#/components/schemas/SepaSpecDTO'
          format: int32
transactionRecurrenceType:
   SepaSpecDTO:       type: objectstring
      properties:    enum:
    iban:      - ONETIME
   type: string      - FIRST
 emailAddress:         - RECURRING
type: string         postalAddressdescription:
          type: string This will default to RequestPaymentRequestDTO:ONETIME if not present. For recurring payments, type:
object       properties:     this field needs to transaction:be present and filled with FIRST. This will then 
 $ref: '#/components/schemas/RequestPaymentRequestTransactionDTO'         password: be the first in a series of recurring payments, also type:serving stringas the 
  RequestPaymentRequestTransactionDTO:       type: object  mandate for future payments. Scheduling properties:and execution of subsequent 
    merchantId:        recurrences are handled type:by stringGlobadyme according to parameters set in 
  amount:          the type:next stringfield.
        currencyredirectUrlSuccess:
          type: string
          countrydescription: Optional specific url to redirect to in case of a type:successful stringtransaction.
        descriptionredirectUrlFailed:
          type: string
          accountHolderNamedescription: Optional specific url to redirect to in case of a type:failed stringtransaction.
        emailAddressredirectUrlAborted:
          type: string
        recurrence:           $ref: '#/components/schemas/RecurrenceDTO'
        klarnaSpec:
 description: Optional specific url to redirect to in case of an aborted transaction.
        $refpaymentLink: '#/components/schemas/KlarnaSpecDTO'
          sepaSpectype: boolean
          $refdescription: '#/components/schemas/SepaSpecDTO' 
         transactionRecurrenceType:  Flag to choose between a payment link and a type: string
one-time or recurring 
        enum:   payment. A value of true will return a -payment ONETIMElink 
        linkValidityDays:
- FIRST         type: integer
- RECURRING         redirectUrlSuccessformat: int32
         type description:
string         redirectUrlFailed:   The amount of days the payment link will type:be stringvalid. Default value       redirectUrlAborted:is 14.
    OkDTO:
      typedescription: stringCommon Success response
      paymentLinktype: object
      properties:
   type: boolean    message:
    linkValidityDays:      description: A descriptive message for type:the integerconsumer
          formattype: int32string
    OkDTO:       descriptionexample: Common'OK'
Success response       typedetails:
object       properties:   description: Key/value pair detailing the message message:results
          descriptiontype: Aobject
  descriptive message for the consumer    additionalProperties:
      type: string     type: object
  details:        example:
  description: Key/value pair detailing the message results    redirectUrl: "https://dev.globadyme.com/pay?data=0f6286...ad990f4"
     type: object      requestId: "9694c0c8-d411-4d3d-af08-2b0d21ba9521"
   additionalProperties:           
 type: object
    ErrorDTO:
      description: Common Error response - In case of any error.
      type: object
      properties:
        message:
          description: A descriptive error message for the consumer
          type: string
          example: "IncorrectError merchantprocessing password for merchant: x@yz.comencoded transaction"
        cause:
          description: Optional a Technical error
          type: string: string
        httpStatus:
          description: The http status code
          type: integer
          format: int32
          example: 500
        httpStatusdetails:
          description: The http status code Optional a detailed description, e.g. which field was missing
          type: integerstring
          formatexample: int32Internal Server  Error 
      example: 401|
        details:{
          description: Optional a detailed description, e.g. which field was missing"message": "Error processing encoded transaction: Unable to deserialise",
          "httpStatus": 500,
   type: string      "details": "Internal Server Error"
 example: Unauthorized      InitiatePaymentRequestDTO:}

     typeInitiatePaymentRequestDTO:
object       propertiestype: object
       encryptedTransactionrequired:
      - encryptedTransaction
  type: string   - paymentMethod
    bank:  properties:
        typeencryptedTransaction: string
        paymentMethod:  description: The encrypted transaction as received in the return type:url string
from '/globadymeGateway/transaction/requestPayment'
   RequestPaymentResponseDTO:       type: object
string
     properties:   bank:
     redirectUrl:     description: The name of the bank.
type: string         requestIdtype: 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       - EPS
amount:           type: number
    JwtRequest:- GIROPAY
       type: object  - SOFORT
   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
           enumrequired:
      - user
    - ROLE_ADMIN type: object
      properties:
   - ROLE_CLIENT     TokenRefreshRequestuser:
          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   - password
GetPaymentByRequestIdRequestDTO:       type: object
      properties:
        requestIdusername:
          type: string
        password:
          type: string
        merchantIdJwtResponse:
      description: Object containing tokens type:to stringauthorise a    BankDTO:merchant/user
       type: object
      properties:
        displayNameaccessToken:
          type: string
        nametokenType:
          type: string
        ibanAbbreviationrefreshToken:
          type: string
        BICuserId:
          type: string
    PaymentMethodDTO:    roles:
  type: object       propertiestype: array
          nameitems:
            type: string
        displayName    enum:
          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:      
    typeTokenRefreshRequest:
number      description: Request a currency:new accessToken
      required:
  type: string   - refreshToken
    country:  type: 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:  }
      idGetPaymentByRequestIdRequestDTO:
          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.