mirror of
https://github.com/gcatanese/adyen-openapi.git
synced 2026-03-10 08:01:24 +00:00
389 lines
15 KiB
YAML
389 lines
15 KiB
YAML
openapi: 3.1.0
|
|
servers:
|
|
- url: https://test.adyen.com/authe/api/v1
|
|
description: Test Environment
|
|
- url: https://authe-live.adyen.com/authe/api/v1
|
|
description: Live Environment
|
|
info:
|
|
title: Session authentication API
|
|
description: "The Session authentication API enables you to create and manage the\
|
|
\ JSON Web Tokens (JWT) required for integrating [components](https://docs.adyen.com/platforms/components-overview).\n\
|
|
## Authentication\nWe recommend that you use an API key to connect to the Session\
|
|
\ authentication API. Generate an API key in your Customer Area if you have a\
|
|
\ [platform setup](https://docs.adyen.com/platforms/manage-access/api-credentials-web-service/#generate-api-key)\
|
|
\ or [marketplace setup](https://docs.adyen.com/marketplaces/manage-access/api-credentials-web-service/#generate-api-key).\
|
|
\ If you have an Adyen Issuing integration, [generate an API key](https://docs.adyen.com/issuing/manage-access/api-credentials-web-service/#generate-api-key)\
|
|
\ in your Balance Platform Customer Area.\n\nTo connect to the Session authentication\
|
|
\ API, add an `X-API-Key` header with the API key as the value, for example:\n\
|
|
\n ```\ncurl\n-H 'Content-Type: application/json' \\\n-H 'X-API-Key: YOUR_API_KEY'\
|
|
\ \\\n...\n```\n\n## Roles and permissions\nTo create a token, you must meet specific\
|
|
\ requirements. These requirements vary depending on the type of component. For\
|
|
\ more information, see the documentation for [Onboarding](https://docs.adyen.com/platforms/onboard-users/components)\
|
|
\ and [Platform Experience](https://docs.adyen.com/platforms/build-user-dashboards)\
|
|
\ components.\n\n## Going live\nTo access the live endpoint, generate an API key\
|
|
\ in your live Customer Area if you have a [platform](https://docs.adyen.com/platforms/)\
|
|
\ or [marketplace setup](https://docs.adyen.com/marketplaces/). If you have an\
|
|
\ Adyen Issuing integration, [generate an API key](https://docs.adyen.com/issuing/manage-access/api-credentials-web-service/#generate-api-key)\
|
|
\ in your Balance Platform Customer Area. You can then use the API key to send\
|
|
\ requests to `https://authe-live.adyen.com/authe/api/v1`.\n\n"
|
|
termsOfService: https://www.adyen.com/legal/terms-and-conditions
|
|
contact:
|
|
name: Adyen Developer Experience team
|
|
url: https://github.com/Adyen/adyen-openapi
|
|
version: '1'
|
|
x-timestamp: '2024-12-10T11:26:50Z'
|
|
tags:
|
|
- name: Session authentication
|
|
paths:
|
|
/sessions:
|
|
post:
|
|
tags:
|
|
- Session authentication
|
|
summary: Create a session token
|
|
description: 'Creates a session token that is required to integrate [components](https://docs.adyen.com/platforms/components-overview).
|
|
|
|
|
|
The response contains encrypted session data. The front end then uses the
|
|
session data to make the required server-side calls for the component.
|
|
|
|
|
|
To create a token, you must meet specific requirements. These requirements
|
|
vary depending on the type of component. For more information, see the documentation
|
|
for [Onboarding](https://docs.adyen.com/platforms/onboard-users/components)
|
|
and [Platform Experience](https://docs.adyen.com/platforms/build-user-dashboards)
|
|
components.
|
|
|
|
|
|
'
|
|
operationId: post-sessions
|
|
requestBody:
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/AuthenticationSessionRequest'
|
|
examples:
|
|
create-session-platform:
|
|
summary: Create a session token for platform components
|
|
description: The request describes a subset of resources and permissions
|
|
expected from the requested session
|
|
value:
|
|
allowOrigin: https://www.your-website.com
|
|
product: platform
|
|
policy:
|
|
resources:
|
|
- type: accountHolder
|
|
accountHolderId: AH00000000000000000000001
|
|
roles:
|
|
- 'Transactions Overview Component: View'
|
|
- 'Payouts Overview Component: View'
|
|
create-session-onboarding:
|
|
summary: Create a session token for onboarding components
|
|
description: The request describes a subset of resources and permissions
|
|
expected from the requested session
|
|
value:
|
|
allowOrigin: https://www.your-website.com
|
|
product: onboarding
|
|
policy:
|
|
resources:
|
|
- type: legalEntity
|
|
legalEntityId: LE00000000000000000000001
|
|
roles:
|
|
- createTransferInstrumentComponent
|
|
- manageTransferInstrumentComponent
|
|
required: true
|
|
responses:
|
|
'200':
|
|
description: Successful operation
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/AuthenticationSessionResponse'
|
|
examples:
|
|
create-session-platform:
|
|
summary: Session token created
|
|
description: Response to be proxied to embedded components
|
|
value:
|
|
id: 11a1e60a-18b0-4dda-9258-e0ae29e1e2a3
|
|
token: eyJraWQiOiJwbGF0Zm9ybWNvbGRlciI...
|
|
create-session-onboarding:
|
|
summary: Session token created
|
|
description: Response to be proxied to embedded components
|
|
value:
|
|
id: 11a1e60a-18b0-4dda-9258-e0ae29e1e2a3
|
|
token: eyJraWQiOiJwbGF0Zm9ybWNvbGRlciI...
|
|
'400':
|
|
description: Bad request
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/DefaultErrorResponseEntity'
|
|
examples:
|
|
create-session-400:
|
|
summary: Bad request
|
|
description: Response returned when request parsing has failed or
|
|
some request fields were invalid.
|
|
value:
|
|
type: https://docs.adyen.com/errors/bad-request
|
|
errorCode: '00_400'
|
|
title: Bad request
|
|
detail: Unable to map request body
|
|
requestId: c49d45e20aec9a0f20c908343da5ebc3
|
|
status: 400
|
|
invalidFields:
|
|
- name: product
|
|
message: Field key/value incorrect
|
|
'401':
|
|
description: Unauthorized
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/DefaultErrorResponseEntity'
|
|
examples:
|
|
create-session-401:
|
|
summary: Unauthorized
|
|
description: Authentication failed.
|
|
value:
|
|
type: https://docs.adyen.com/errors/unauthorized
|
|
title: Unauthorized
|
|
status: 401
|
|
errorCode: '00_401'
|
|
'403':
|
|
description: Forbidden
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: '#/components/schemas/DefaultErrorResponseEntity'
|
|
examples:
|
|
create-session-403:
|
|
summary: Forbidden
|
|
description: Most commonly happens when user does not have sufficient
|
|
roles or doesn't own requested resource.
|
|
value:
|
|
type: https://docs.adyen.com/errors/forbidden
|
|
errorCode: '00_403'
|
|
title: Forbidden
|
|
detail: User doesn't have access to all token policy resources
|
|
requestId: d42c493b5176df89e51516c6060cc34c
|
|
status: 403
|
|
x-methodName: createAuthenticationSession
|
|
x-sortIndex: 0
|
|
components:
|
|
schemas:
|
|
AccountHolderResource:
|
|
required:
|
|
- accountHolderId
|
|
type: object
|
|
allOf:
|
|
- $ref: '#/components/schemas/Resource'
|
|
- type: object
|
|
properties:
|
|
accountHolderId:
|
|
type: string
|
|
description: The unique identifier of the resource connected to the component.
|
|
For [Platform Experience components](https://docs.adyen.com/platforms/build-user-dashboards),
|
|
this is the account holder linked to the balance account shown in the
|
|
component.
|
|
AuthenticationSessionRequest:
|
|
required:
|
|
- allowOrigin
|
|
- policy
|
|
- product
|
|
type: object
|
|
properties:
|
|
allowOrigin:
|
|
type: string
|
|
description: The URL where the component will appear. In your live environment,
|
|
you must protect the URL with an SSL certificate and ensure that it starts
|
|
with `https://`.
|
|
policy:
|
|
description: An object that contains a description of the allowed resources
|
|
and roles for the requested session.
|
|
$ref: '#/components/schemas/Policy'
|
|
product:
|
|
description: 'The type of component.
|
|
|
|
|
|
For [Onboarding components](https://docs.adyen.com/platforms/onboard-users/components),
|
|
set this to **onboarding**.
|
|
|
|
|
|
For [Platform Experience components](https://docs.adyen.com/platforms/build-user-dashboards),
|
|
set this to **platform**.'
|
|
$ref: '#/components/schemas/ProductType'
|
|
BalanceAccountResource:
|
|
required:
|
|
- balanceAccountId
|
|
type: object
|
|
allOf:
|
|
- $ref: '#/components/schemas/Resource'
|
|
- type: object
|
|
properties:
|
|
balanceAccountId:
|
|
type: string
|
|
LegalEntityResource:
|
|
required:
|
|
- legalEntityId
|
|
type: object
|
|
allOf:
|
|
- $ref: '#/components/schemas/Resource'
|
|
- type: object
|
|
properties:
|
|
legalEntityId:
|
|
type: string
|
|
description: 'The unique identifier of the resource connected to the component.
|
|
|
|
For [Onboarding components](https://docs.adyen.com/platforms/onboard-users/components),
|
|
this is the legal entity that has a contractual relationship with your
|
|
platform and owns the [transfer instrument](https://docs.adyen.com/api-explorer/legalentity/latest/post/transferInstruments).
|
|
For sole proprietorships, this is the legal entity of the individual
|
|
owner.'
|
|
MerchantAccountResource:
|
|
type: object
|
|
allOf:
|
|
- $ref: '#/components/schemas/Resource'
|
|
- type: object
|
|
properties:
|
|
merchantAccountCode:
|
|
type: string
|
|
PaymentInstrumentResource:
|
|
required:
|
|
- paymentInstrumentId
|
|
type: object
|
|
allOf:
|
|
- $ref: '#/components/schemas/Resource'
|
|
- type: object
|
|
properties:
|
|
paymentInstrumentId:
|
|
type: string
|
|
Policy:
|
|
type: object
|
|
properties:
|
|
resources:
|
|
uniqueItems: true
|
|
type: array
|
|
description: 'An object containing the type and the unique identifier of
|
|
the user of the component.
|
|
|
|
|
|
For [Onboarding components](https://docs.adyen.com/platforms/onboard-users/components),
|
|
this is the ID of the legal entity that has a contractual relationship
|
|
with your platform. For sole proprietorships, use the ID of the legal
|
|
entity of the individual owner.
|
|
|
|
|
|
For [Platform Experience components](https://docs.adyen.com/platforms/build-user-dashboards),
|
|
this is the ID of the account holder that is associated with the balance
|
|
account shown in the component.'
|
|
items:
|
|
$ref: '#/components/schemas/Resource'
|
|
roles:
|
|
uniqueItems: true
|
|
type: array
|
|
description: The name of the role required to use the component.
|
|
items:
|
|
type: string
|
|
ProductType:
|
|
type: string
|
|
enum:
|
|
- onboarding
|
|
- platform
|
|
Resource:
|
|
type: object
|
|
properties:
|
|
type:
|
|
description: 'The resource type.
|
|
|
|
|
|
Possible values: **accountHolder**, **legalEntity**.
|
|
|
|
|
|
You must also include the corresponding unique identifier of the resource.
|
|
For example, the account holder ID.'
|
|
$ref: '#/components/schemas/ResourceType'
|
|
discriminator:
|
|
propertyName: type
|
|
mapping:
|
|
legalEntity: '#/components/schemas/LegalEntityResource'
|
|
balanceAccount: '#/components/schemas/BalanceAccountResource'
|
|
accountHolder: '#/components/schemas/AccountHolderResource'
|
|
merchantAccount: '#/components/schemas/MerchantAccountResource'
|
|
paymentInstrument: '#/components/schemas/PaymentInstrumentResource'
|
|
ResourceType:
|
|
type: string
|
|
enum:
|
|
- legalEntity
|
|
- balanceAccount
|
|
- accountHolder
|
|
- merchantAccount
|
|
- paymentInstrument
|
|
AuthenticationSessionResponse:
|
|
type: object
|
|
properties:
|
|
id:
|
|
type: string
|
|
description: The unique identifier of the session.
|
|
token:
|
|
type: string
|
|
description: The session token created.
|
|
DefaultErrorResponseEntity:
|
|
type: object
|
|
properties:
|
|
detail:
|
|
type: string
|
|
description: A human-readable explanation specific to this occurrence of
|
|
the problem.
|
|
errorCode:
|
|
type: string
|
|
description: Unique business error code.
|
|
instance:
|
|
type: string
|
|
description: A URI that identifies the specific occurrence of the problem
|
|
if applicable.
|
|
invalidFields:
|
|
type: array
|
|
description: Array of fields with validation errors when applicable.
|
|
items:
|
|
$ref: '#/components/schemas/InvalidField'
|
|
requestId:
|
|
type: string
|
|
description: The unique reference for the request.
|
|
status:
|
|
type: integer
|
|
description: The HTTP status code.
|
|
format: int32
|
|
title:
|
|
type: string
|
|
description: A short, human-readable summary of the problem type.
|
|
type:
|
|
type: string
|
|
description: A URI that identifies the validation error type. It points
|
|
to human-readable documentation for the problem type.
|
|
description: Standardized error response following RFC-7807 format
|
|
externalDocs:
|
|
url: https://www.rfc-editor.org/rfc/rfc7807
|
|
InvalidField:
|
|
required:
|
|
- message
|
|
- name
|
|
- value
|
|
type: object
|
|
properties:
|
|
name:
|
|
type: string
|
|
description: The field that has an invalid value.
|
|
value:
|
|
type: string
|
|
description: The invalid value.
|
|
message:
|
|
type: string
|
|
description: Description of the validation error.
|
|
securitySchemes:
|
|
ApiKeyAuth:
|
|
type: apiKey
|
|
name: X-API-Key
|
|
in: header
|
|
BasicAuth:
|
|
type: http
|
|
scheme: basic
|
|
jsonSchemaDialect: https://json-schema.org/draft/2020-12/schema
|