openapi: 3.1.0 servers: - url: https://checkout-test.adyen.com/checkout/possdk/v68 info: version: '68' x-publicVersion: true title: POS Mobile API description: "The POS Mobile API is used in the mutual authentication flow between\ \ an Adyen Android or iOS [POS Mobile SDK](https://docs.adyen.com/point-of-sale/ipp-mobile/)\ \ and the Adyen payments platform.\nThe POS Mobile SDK for Android or iOS devices\ \ enables businesses to accept in-person payments using a commercial off-the-shelf\ \ (COTS) device like a phone. For example, Tap to Pay transactions, or transactions\ \ on a mobile device in combination with a card reader.\n\n## Authentication\n\ Each request to the POS Mobile API must be signed with an API key. [Generate your\ \ API key](https://docs.adyen.com/development-resources/api-credentials#generate-api-key)\ \ in the Customer Area and then set this key to the `X-API-Key` header value.\n\ You also need to have a [client key](https://docs.adyen.com/development-resources/client-side-authentication/).\ \ The client key is part of the setup but you won't need to use it in your integration\ \ later. Therefore, you don't need to specify allowed origins, and you don't need\ \ to store the key in your system. \nTo access the live endpoints, you need to\ \ generate a new API key and client key in your live Customer Area.\n## Versioning\n\ \nThe POS Mobile API handles versioning as part of the endpoint URL.\n\nFor example:\n\ ```\nhttps://checkout-test.adyen.com/checkout/possdk/v68/sessions\n```\n\n## Going\ \ live\n\nTo access the live endpoints, you need an API key and client key from\ \ your live Customer Area.\n\nThe live endpoint URLs contain a prefix which is\ \ unique to your company account, for example:\n```\nhttps://{PREFIX}-checkout-live.adyenpayments.com/checkout/possdk/v68/sessions\n\ ```\n\n\n\n\n\n" termsOfService: https://www.adyen.com/legal/terms-and-conditions contact: name: Adyen Developer Experience team url: https://github.com/Adyen/adyen-openapi tags: - name: General paths: /sessions: post: tags: - General summary: Create a communication session description: "Establishes a secure communications session between the POS Mobile\ \ SDK and the Adyen payments platform, through mutual authentication. \nThe\ \ request sends a setup token that identifies the SDK and the device. The\ \ response returns a session token that the SDK can use to authenticate responses\ \ received from the Adyen payments platform.\n>This request applies to **mobile\ \ in-person** transactions. You cannot use this request to create online payments\ \ sessions. \n\n" x-addedInVersion: '68' operationId: post-sessions x-sortIndex: 0 x-methodName: createCommunicationSession security: - BasicAuth: [] - ApiKeyAuth: [] requestBody: content: application/json: examples: createAuthSession: $ref: '#/components/examples/post-sessions-createAuthSession' schema: $ref: '#/components/schemas/CreateSessionRequest' responses: '201': content: application/json: examples: generic: $ref: '#/components/examples/post-sessions-generic-201' schema: $ref: '#/components/schemas/CreateSessionResponse' description: Created - the request has been fulfilled and has resulted in one or more new resources being created. components: schemas: CreateSessionRequest: additionalProperties: false properties: merchantAccount: description: The unique identifier of your merchant account. type: string setupToken: description: "The setup token provided by the POS Mobile SDK. \n- When using\ \ the Android POS Mobile SDK, obtain the token through the `AuthenticationService.authenticate(setupToken)`\ \ callback of `AuthenticationService`. \n- When using the iOS POS Mobile\ \ SDK, obtain the token through the `PaymentServiceDelegate.register(with:)`\ \ callback of `PaymentServiceDelegate`." maxLength: 50000 type: string store: description: The unique identifier of the store that you want to process transactions for. type: string required: - merchantAccount - setupToken type: object CreateSessionResponse: additionalProperties: false properties: id: description: The unique identifier of the session. type: string installationId: description: The unique identifier of the SDK installation. If you create the [Terminal API](https://docs.adyen.com/point-of-sale/design-your-integration/terminal-api/) transaction request on your backend, use this as the `POIID` in the `MessageHeader` of the request. type: string merchantAccount: description: The unique identifier of your merchant account. type: string sdkData: description: The data that the SDK uses to authenticate responses from the Adyen payments platform. Pass this value to your POS app. type: string store: description: The unique identifier of the store that you want to process transactions for. type: string type: object securitySchemes: ApiKeyAuth: in: header name: X-API-Key type: apiKey BasicAuth: scheme: basic type: http examples: post-sessions-createAuthSession: summary: Create a communication session description: Establish a communication session between the POS Mobile SDK and the Adyen payments platform value: merchantAccount: YOUR_MERCHANT_ACCOUNT setupToken: SETUP_TOKEN store: YOUR_STORE_ID post-sessions-generic-201: summary: Example response for request 'createAuthSession' value: id: APP_SESSION_ID installationId: INSTALLATION_ID merchantAccount: YOUR_MERCHANT_ACCOUNT store: YOUR_STORE_ID sdkData: SDK_DATA_BLOB