Spree Commerce Adyen API

The Adyen API from Spree Commerce — 3 operation(s) for adyen.

OpenAPI Specification

spree-adyen-api-openapi.yml Raw ↑
openapi: 3.0.3
info:
  title: Admin Account / Address Adyen API
  contact:
    name: Spree Commerce
    url: https://spreecommerce.org
    email: hello@spreecommerce.org
  description: "Spree Admin API v3 - Administrative API for managing products, orders, and store settings.\n\n## Authentication\n\nThe Admin API requires a secret API key passed in the `x-spree-api-key` header.\nSecret API keys can be generated in the Spree admin dashboard.\n\n## Response Format\n\nAll responses are JSON. List endpoints return paginated responses with `data` and `meta` keys.\nSingle resource endpoints return a flat JSON object.\n\n## Resource IDs\n\nEvery resource is identified by an opaque string ID (e.g. `prod_86Rf07xd4z`,\n`variant_k5nR8xLq`, `or_UkLWZg9DAJ`). Use these IDs everywhere — URL paths,\nrequest bodies, and Ransack filters all accept them directly.\n\n## Error Handling\n\nErrors return a consistent format:\n```json\n{\n  \"error\": {\n    \"code\": \"validation_error\",\n    \"message\": \"Validation failed\",\n    \"details\": { \"name\": [\"can't be blank\"] }\n  }\n}\n```\n"
  version: v3
servers:
- url: http://{defaultHost}
  variables:
    defaultHost:
      default: localhost:3000
tags:
- name: Adyen
paths:
  /api/v2/storefront/adyen/payment_sessions:
    post:
      summary: Create an Adyen Payment Session
      description: Create a new Adyen payment session with the specified amount. Adyen support is currently in private beta. [Please contact us](https://spreecommerce.org/contact) to get access.
      tags:
      - Adyen
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                payment_session:
                  type: object
                  properties:
                    amount:
                      type: number
                      description: The payment amount
                      example: 80.99
                    channel:
                      type: string
                      default: Web
                      enum:
                      - Web
                      - Android
                      - iOS
                    return_url:
                      type: string
                      default: https://{host}/adyen/payment_sessions/redirect
                      description: URL to return back to store after payment with redirect flow like Klarna or iDEAL. The URL must not include personally identifiable information (PII), for example name or email address.
                  required:
                  - amount
              required:
              - payment_session
            example:
              payment_session:
                amount: 80.99
                channel: Android
                return_url: my-app://your.package.name
      operationId: create-adyen-payment-session
      responses:
        '200':
          $ref: '#/components/responses/AdyenPaymentSession'
        '422':
          $ref: '#/components/responses/422UnprocessableEntity'
      security:
      - orderToken: []
  /api/v2/storefront/adyen/payment_sessions/{id}/complete:
    post:
      summary: Complete an Adyen payment session and order
      description: Complete an Adyen payment session and order. Adyen support is currently in private beta. [Please contact us](https://spreecommerce.org/contact) to get access.
      tags:
      - Adyen
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              properties:
                session_result:
                  type: string
                  description: The Adyen payment session result
              required:
              - session_result
            example:
              session_result: AdyenResultData
      operationId: complete-adyen-payment-session
      responses:
        '200':
          $ref: '#/components/responses/AdyenPaymentSession'
        '422':
          $ref: '#/components/responses/422UnprocessableEntity'
      security:
      - orderToken: []
  /api/v2/storefront/adyen/payment_sessions/{id}:
    get:
      summary: Get Adyen Payment Session
      description: Retrieve An Adyen payment session information. Adyen support is currently in private beta. [Please contact us](https://spreecommerce.org/contact) to get access.
      tags:
      - Adyen
      operationId: get-adyen-payment-session
      responses:
        '200':
          $ref: '#/components/responses/AdyenPaymentSession'
        '403':
          $ref: '#/components/responses/403Forbidden'
        '404':
          $ref: '#/components/responses/404NotFound'
      security:
      - orderToken: []
components:
  responses:
    403Forbidden:
      description: 403 Forbidden - You are not authorized to access this page.
      content:
        application/vnd.api+json:
          schema:
            properties:
              error:
                type: string
                example: You are not authorized to access this page.
                default: You are not authorized to access this page.
          examples:
            403 Example:
              value:
                error: You are not authorized to access this page.
    404NotFound:
      description: 404 Not Found - Resource not found.
      content:
        application/vnd.api+json:
          schema:
            properties:
              error:
                type: string
                example: The resource you were looking for could not be found.
                default: The resource you were looking for could not be found.
          examples:
            404 Example:
              value:
                error: The resource you were looking for could not be found.
    AdyenPaymentSession:
      description: 200 Success - Returns the Adyen Payment Session with session data and payment amount.
      content:
        application/vnd.api+json:
          schema:
            type: object
            properties:
              data:
                type: object
                properties:
                  id:
                    type: string
                    example: '3'
                  type:
                    type: string
                    default: adyen_payment_session
                  attributes:
                    type: object
                    properties:
                      adyen_id:
                        type: string
                        description: The Adyen session ID
                        example: CS3E6B43783787E79B
                      amount:
                        type: string
                        description: The payment amount
                        example: '80.99'
                      currency:
                        type: string
                        description: The payment currency
                        example: USD
                      client_key:
                        type: string
                        description: The Adyen client key
                        example: your_client_key
                      adyen_data:
                        type: string
                        description: The Adyen session data required for payment processing
                      channel:
                        type: string
                        default: Web
                        enum:
                        - Web
                        - Android
                        - iOS
                        description: The channel of the payment session
                        example: Android
                      return_url:
                        type: string
                        description: URL to return back to store after payment with redirect flow like Klarna or iDEAL. The URL must not include personally identifiable information (PII), for example name or email address.
                        example: https://{host}/adyen/payment_sessions/redirect
                      status:
                        type: string
                        description: The status of the payment session
                        example: initial
                      expires_at:
                        type: string
                        format: date-time
                        description: The expiration date and time of the payment session
                        example: '2025-07-24T14:40:45.000Z'
                  relationships:
                    type: object
                    properties:
                      order:
                        type: object
                        properties:
                          data:
                            type: object
                            properties:
                              id:
                                type: string
                                example: '4'
                              type:
                                type: string
                                example: cart
                      payment_method:
                        type: object
                        properties:
                          data:
                            type: object
                            properties:
                              id:
                                type: string
                                example: '4'
                              type:
                                type: string
                                example: payment_method
                      user:
                        type: object
                        properties:
                          data:
                            nullable: true
          examples:
            Adyen Payment Session:
              value:
                data:
                  id: '3'
                  type: adyen_payment_session
                  attributes:
                    adyen_id: CS3E6B43783787E79B
                    amount: '80.99'
                    currency: USD
                    channel: iOS
                    adyen_data: Ab02b4c0!BQABAgCNxadId3f9NXF6OMYGXsZAoAwcnOdgINKAypoyo8GUq8UqjnT/7J8K4kNhl6tjWOpGY6t+r+4QQVVfo4IHFWtjzNkj2k9dnTS4932UyCznLC+gHbzPHcfN6rNiHBIpQo523a94EvV2Sq1Gh/3j6N2aNCjfV2TDWynQJU11uOhalgwhAnVrD3HmFtbVqM60kGiPRBfE4LwLuQ7f+7S/cdVx8HzWizvafndeRnx5lM3RQNibNRbimJ3G6YZh/HI9FwZYbxkUoq8dQl8dgdquNKAxsSO0BcC6UpTU2Z8d/z3lAsm0UlX1+YiryRut4Ipg9YqJbVt3gnj7Kh4kZFRO1hZM8NDeD9PshE8riBXDpUwJ84m+9I+cfbnwYWgfZaGuxfGG+IiiliQBWIjHefd6ukUATLWsPX6ufUL7BT3rSMx/5QMmdNrE/zMA9B1tFg5Tm8t88S6WQcSZ/vIgOv+peDml5j44OcEth6iEqxRwsmT3T0nZUhYwYUSTEykrpY9+Ly2+NWpTE+sgvXhld6SZubbbG9gIBad6TIwaKkUO0kJOx6Zvk37uU2D0z8mnWIktimBZIqhegsdBXutVyUe93xSighf/C41n69COSjALE3KCcXGCmR4NsdwJ7LesJMYLu1S4gDOObvkuW5IY2k8r6pptUWgsOxcyUvbpPMlQrjRTHAwRPxcnk0SJrSL29HwASnsia2V5IjoiQUYwQUFBMTAzQ0E1MzdFQUVEODdDMjRERDUzOTA5QjgwQTc4QTkyM0UzODIzRDY4REFDQzk0QjlGRjgzMDVEQyJ9JcDZ7NsVaMwwHpvV0vX/5b7P9FS/1TfuFbQRmlFX4vCQOLxSiyAf5P4uN7Hb2Zw4dplBl4oSEBBUvrKk5TCqjGoS1azHS8Fv5LCcl2yCDH6WBtQKzJnT6NmXl29+ILYCxETtyF9K8LwgJyu8sHs2jQnnLujLBqqjIZqDFa8TORtGiwvhtS3UMtagkkg0SkCaaaOjqtZdWrTy7C9Gy9nFZNYEfmurFZmgLRROTB3jRNwmveWvayFJl4TTtub14l+RZJDx2VgjAwqRU8btN/0xnrT9m2kg6LOyW4F9TkauPgAzY3Gu//HQOGW7VDBPq6y83mzP7iNp8Whe14NQSu29i9rBricl0f6RoWin87jRD7AtZx0MxlhNxUF579COCwNHAMhs310nntoSY5U8s13of9Wn2lDcBcg2QmSNOixMMIcBkjHpEQEZAeGzfi8OvJtjoi9TVY0VzrpSbR1dcx8MNjOUeY37H+XlWkdEkd3457zbeOuSlEbjvuDYW7tYHYWipsd4fNllXiMzKW+w6YxL2Kqj0M5B+3ihuEKg7VS3b/XKs+OS7eHGZSImAt9e4tGltEqYzdRHzm4S6pnJytaoPp7+OswEm+JQTi739w4CJeNWxr1t9dot2k9OQw3vZabeI7OTrwBc2IwtUYZ9oPlBVOibMoUwCIVmSPrSgF8nCj9S2RdZgamLNnyg1srQmWnNxtOLMnvTnWedICtoE48rMG2Q+cDrEjy11TCGK3R+LHE+LaqPv96yk3ztsHomOF7XstAvLvUAIH3Z/X5+ePNcDzV7OZkS9xcLkqGqeqR04iHGZZfLw3q4rauZMWLyxb+NkGKfgTtGhe7nq+Z7bGXWxzQh694dJf+59oGCslmfJ44cd8SX3o2JjSZ7Ew7LgQt7fj6z+yif1Bs8SH3QNZN9POsfxJggCwRIhvaPmZR7hsV75+b4jC+wU2LAHik8Nr1pt48NpCxULtKNw6ZPUbJwMVWK7gmZtqa39l7OmIs2PE54vgeZk38XBi6K1UFqoZlV667GrnwOgscob3DFPMcjZhCBYOWJNLjxjqP6pw3zf7OB/ZA1m4F6yv4LVka19rlQk0esAqfTy36KbJggRYNJdGYgDr6u2zz3NblMfZpys5mtpW8ncoBdsOeWlL+cspDGig9HINHT2CnrL9+N7oU=
                    client_key: test_ECRHWDLSER123456HMT57VW7XGOUDA23
                    status: initial
                    expires_at: '2025-07-24T14:40:45.000Z'
                    return_url: https://example.com/adyen/payment_sessions/redirect
                  relationships:
                    order:
                      data:
                        id: '4'
                        type: cart
                    payment_method:
                      data:
                        id: '4'
                        type: payment_method
                    user:
                      data: null
    422UnprocessableEntity:
      description: 422 Unprocessable Entity
      content:
        application/vnd.api+json:
          schema:
            $ref: '#/components/schemas/Error'
          examples:
            422 Example:
              value:
                error: Example is invalid
                errors:
                  example:
                  - Example is invalid
  schemas:
    Error:
      x-internal: false
      title: Error
      type: object
      properties:
        error:
          type: string
  securitySchemes:
    api_key:
      type: apiKey
      name: x-spree-api-key
      in: header
      description: Secret API key for admin access
    bearer_auth:
      type: http
      scheme: bearer
      bearerFormat: JWT
      description: JWT token for admin user authentication
x-tagGroups:
- name: Authentication
  tags:
  - Authentication
- name: Products & Catalog
  tags:
  - Products
  - Variants
  - Option Types
  - Custom Fields
  - Channels
- name: Pricing
  tags:
  - Pricing
  - Markets
- name: Orders & Fulfillment
  tags:
  - Orders
  - Payments
  - Fulfillments
  - Refunds
- name: Customers
  tags:
  - Customers
  - Customer Groups
- name: Promotions & Gift Cards
  tags:
  - Promotions
  - Gift Cards
- name: Data
  tags:
  - Exports
- name: Configuration
  tags:
  - Settings
  - Stock Locations
  - Payment Methods
  - Staff
  - API Keys
  - Allowed Origins
  - Webhooks