{
  "openapi" : "3.1.0",
  "servers" : [ {
    "url" : "https://management-live.adyen.com/v1",
    "description" : "Live Environment"
  }, {
    "url" : "https://management-test.adyen.com/v1",
    "description" : "Test Environment"
  } ],
  "info" : {
    "title" : "Payments App API",
    "description" : "Board and manage the Adyen Payments App on your Android mobile devices.\n## Authentication\nEach request to the Payments App 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\n## Versioning\n\nPayments App API handles versioning as part of the endpoint URL. For example, to send a request to this version of the `/merchants/{merchantId}/generatePaymentsAppBoardingToken` endpoint, use:\n\n```text\nhttps://management-test.adyen.com/v1/merchants/{merchantId}/generatePaymentsAppBoardingToken\n```\n\n## Going live\n\nTo access the live endpoints, you need an API key from your live Customer Area. Use this API key to make requests to:\n\n```text\nhttps://management-live.adyen.com/v{version}\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"
    },
    "version" : "1",
    "x-timestamp" : "2025-02-11T15:31:29Z"
  },
  "tags" : [ {
    "name" : "Payments App"
  } ],
  "paths" : {
    "/merchants/{merchantId}/generatePaymentsAppBoardingToken" : {
      "post" : {
        "tags" : [ "Payments App" ],
        "summary" : "Create a boarding token - merchant level",
        "description" : "Creates a boarding token used to authenticate the installation of a Payments App instance on an Android device. The boarding token is created for the `boardingRequestToken` of the Payments App for the merchant account identified in the path. \n\nTo make this request, your API credential must have the following [role](https://docs.adyen.com/development-resources/api-credentials#api-permissions):\n* Adyen Payments App role\n",
        "operationId" : "post-merchants-merchantId-generatePaymentsAppBoardingToken",
        "parameters" : [ {
          "name" : "merchantId",
          "in" : "path",
          "description" : "The unique identifier of the merchant account.",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        } ],
        "requestBody" : {
          "content" : {
            "application/json" : {
              "schema" : {
                "$ref" : "#/components/schemas/BoardingTokenRequest"
              }
            }
          },
          "required" : true
        },
        "responses" : {
          "200" : {
            "description" : "OK - the request has succeeded.",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/BoardingTokenResponse"
                }
              }
            }
          },
          "400" : {
            "description" : "Bad Request - a problem reading or understanding the request.",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/DefaultErrorResponseEntity"
                }
              }
            }
          },
          "401" : {
            "description" : "Unauthorized - authentication required.",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/DefaultErrorResponseEntity"
                }
              }
            }
          },
          "403" : {
            "description" : "Forbidden - insufficient permissions to process the request.",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/DefaultErrorResponseEntity"
                }
              }
            }
          },
          "422" : {
            "description" : "Unprocessable Entity - a request validation error.",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/DefaultErrorResponseEntity"
                }
              }
            }
          },
          "500" : {
            "description" : "Internal Server Error - the server could not process the request.",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/DefaultErrorResponseEntity"
                }
              }
            }
          }
        },
        "x-methodName" : "generatePaymentsAppBoardingTokenForMerchant",
        "x-sortIndex" : 0
      }
    },
    "/merchants/{merchantId}/stores/{storeId}/generatePaymentsAppBoardingToken" : {
      "post" : {
        "tags" : [ "Payments App" ],
        "summary" : "Create a boarding token - store level",
        "description" : "Creates a boarding token used to authenticate the installation of a Payments App instance on an Android device. The boarding token is created for the `boardingRequestToken` of the Payments App for the store identified in the path.\n\nTo make this request, your API credential must have the following [role](https://docs.adyen.com/development-resources/api-credentials#api-permissions):\n* Adyen Payments App role\n",
        "operationId" : "post-merchants-merchantId-stores-storeId-generatePaymentsAppBoardingToken",
        "parameters" : [ {
          "name" : "merchantId",
          "in" : "path",
          "description" : "The unique identifier of the merchant account.",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "storeId",
          "in" : "path",
          "description" : "The unique identifier of the store.",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        } ],
        "requestBody" : {
          "content" : {
            "application/json" : {
              "schema" : {
                "$ref" : "#/components/schemas/BoardingTokenRequest"
              }
            }
          },
          "required" : true
        },
        "responses" : {
          "200" : {
            "description" : "OK - the request has succeeded.",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/BoardingTokenResponse"
                }
              }
            }
          },
          "400" : {
            "description" : "Bad Request - a problem reading or understanding the request.",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/DefaultErrorResponseEntity"
                }
              }
            }
          },
          "401" : {
            "description" : "Unauthorized - authentication required.",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/DefaultErrorResponseEntity"
                }
              }
            }
          },
          "403" : {
            "description" : "Forbidden - insufficient permissions to process the request.",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/DefaultErrorResponseEntity"
                }
              }
            }
          },
          "422" : {
            "description" : "Unprocessable Entity - a request validation error.",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/DefaultErrorResponseEntity"
                }
              }
            }
          },
          "500" : {
            "description" : "Internal Server Error - the server could not process the request.",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/DefaultErrorResponseEntity"
                }
              }
            }
          }
        },
        "x-methodName" : "generatePaymentsAppBoardingTokenForStore",
        "x-sortIndex" : 0
      }
    },
    "/merchants/{merchantId}/paymentsApps" : {
      "get" : {
        "tags" : [ "Payments App" ],
        "summary" : "Get a list of Payments Apps - merchant level",
        "description" : "Returns the list of Payments App instances for the merchant account identified in the path.\n\nTo make this request, your API credential must have the following [role](https://docs.adyen.com/development-resources/api-credentials#api-permissions):\n* Adyen Payments App role\n",
        "operationId" : "get-merchants-merchantId-paymentsApps",
        "parameters" : [ {
          "name" : "merchantId",
          "in" : "path",
          "description" : "The unique identifier of the merchant account.",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "statuses",
          "in" : "query",
          "description" : "The status of the Payments App. Comma-separated list of one or more values. If no value is provided, the list returns all statuses. \n\nPossible values:\n\n* **BOARDING**\n\n * **BOARDED**\n\n * **REVOKED**",
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "limit",
          "in" : "query",
          "description" : "The number of items to return.",
          "schema" : {
            "maximum" : 100,
            "type" : "integer",
            "format" : "int32",
            "default" : 10
          }
        }, {
          "name" : "offset",
          "in" : "query",
          "description" : "The number of items to skip.",
          "schema" : {
            "type" : "integer",
            "format" : "int64",
            "default" : 0
          }
        } ],
        "responses" : {
          "200" : {
            "description" : "OK - the request has succeeded.",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/PaymentsAppResponse"
                }
              }
            }
          },
          "400" : {
            "description" : "Bad Request - a problem reading or understanding the request.",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/DefaultErrorResponseEntity"
                }
              }
            }
          },
          "401" : {
            "description" : "Unauthorized - authentication required.",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/DefaultErrorResponseEntity"
                }
              }
            }
          },
          "403" : {
            "description" : "Forbidden - insufficient permissions to process the request.",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/DefaultErrorResponseEntity"
                }
              }
            }
          },
          "422" : {
            "description" : "Unprocessable Entity - a request validation error.",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/DefaultErrorResponseEntity"
                }
              }
            }
          },
          "500" : {
            "description" : "Internal Server Error - the server could not process the request.",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/DefaultErrorResponseEntity"
                }
              }
            }
          }
        },
        "x-methodName" : "listPaymentsAppForMerchant",
        "x-sortIndex" : 0
      }
    },
    "/merchants/{merchantId}/stores/{storeId}/paymentsApps" : {
      "get" : {
        "tags" : [ "Payments App" ],
        "summary" : "Get a list of Payments Apps - store level",
        "description" : "Returns the list of Payments App instances for the store identified in the path.\n\nTo make this request, your API credential must have the following [role](https://docs.adyen.com/development-resources/api-credentials#api-permissions):\n* Adyen Payments App role\n",
        "operationId" : "get-merchants-merchantId-stores-storeId-paymentsApps",
        "parameters" : [ {
          "name" : "merchantId",
          "in" : "path",
          "description" : "The unique identifier of the merchant account.",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "storeId",
          "in" : "path",
          "description" : "The unique identifier of the store.",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "statuses",
          "in" : "query",
          "description" : "The status of the Payments App. Comma-separated list of one or more values. If no value is provided, the list returns all statuses. \n\nPossible values:\n\n* **BOARDING**\n\n * **BOARDED**\n\n * **REVOKED**",
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "limit",
          "in" : "query",
          "description" : "The number of items to return.",
          "schema" : {
            "maximum" : 100,
            "type" : "integer",
            "format" : "int32",
            "default" : 10
          }
        }, {
          "name" : "offset",
          "in" : "query",
          "description" : "The number of items to skip.",
          "schema" : {
            "type" : "integer",
            "format" : "int64",
            "default" : 0
          }
        } ],
        "responses" : {
          "200" : {
            "description" : "OK - the request has succeeded.",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/PaymentsAppResponse"
                }
              }
            }
          },
          "400" : {
            "description" : "Bad Request - a problem reading or understanding the request.",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/DefaultErrorResponseEntity"
                }
              }
            }
          },
          "401" : {
            "description" : "Unauthorized - authentication required.",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/DefaultErrorResponseEntity"
                }
              }
            }
          },
          "403" : {
            "description" : "Forbidden - insufficient permissions to process the request.",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/DefaultErrorResponseEntity"
                }
              }
            }
          },
          "422" : {
            "description" : "Unprocessable Entity - a request validation error.",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/DefaultErrorResponseEntity"
                }
              }
            }
          },
          "500" : {
            "description" : "Internal Server Error - the server could not process the request.",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/DefaultErrorResponseEntity"
                }
              }
            }
          }
        },
        "x-methodName" : "listPaymentsAppForStore",
        "x-sortIndex" : 0
      }
    },
    "/merchants/{merchantId}/paymentsApps/{installationId}/revoke" : {
      "post" : {
        "tags" : [ "Payments App" ],
        "summary" : "Revoke Payments App instance authentication",
        "description" : "Revokes the authentication of the Payments App instance for the `installationId` and merchant account identified in the path. This call revokes the authentication of the Payments App instance with the `installationId` identified in the path for both merchant accounts and stores.\n\nTo make this request, your API credential must have the following [role](https://docs.adyen.com/development-resources/api-credentials#api-permissions):\n* Adyen Payments App role\n",
        "operationId" : "post-merchants-merchantId-paymentsApps-installationId-revoke",
        "parameters" : [ {
          "name" : "merchantId",
          "in" : "path",
          "description" : "The unique identifier of the merchant account.",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        }, {
          "name" : "installationId",
          "in" : "path",
          "description" : "The unique identifier of the Payments App instance on a device.",
          "required" : true,
          "schema" : {
            "type" : "string"
          }
        } ],
        "responses" : {
          "200" : {
            "description" : "OK - the request has succeeded.",
            "content" : {
              "application/json" : { }
            }
          },
          "400" : {
            "description" : "Bad Request - a problem reading or understanding the request.",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/DefaultErrorResponseEntity"
                }
              }
            }
          },
          "401" : {
            "description" : "Unauthorized - authentication required.",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/DefaultErrorResponseEntity"
                }
              }
            }
          },
          "500" : {
            "description" : "Internal Server Error - the server could not process the request.",
            "content" : {
              "application/json" : {
                "schema" : {
                  "$ref" : "#/components/schemas/DefaultErrorResponseEntity"
                }
              }
            }
          }
        },
        "x-methodName" : "revokePaymentsApp",
        "x-sortIndex" : 0
      }
    }
  },
  "components" : {
    "schemas" : {
      "BoardingTokenResponse" : {
        "required" : [ "boardingToken", "installationId" ],
        "type" : "object",
        "properties" : {
          "boardingToken" : {
            "type" : "string",
            "description" : "The boarding token that allows the Payments App to board."
          },
          "installationId" : {
            "type" : "string",
            "description" : "The unique identifier of the Payments App instance."
          }
        }
      },
      "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."
          }
        }
      },
      "BoardingTokenRequest" : {
        "required" : [ "boardingRequestToken" ],
        "type" : "object",
        "properties" : {
          "boardingRequestToken" : {
            "type" : "string",
            "description" : "The boardingToken request token."
          }
        }
      },
      "PaymentsAppDto" : {
        "required" : [ "installationId", "merchantAccountCode", "status" ],
        "type" : "object",
        "properties" : {
          "installationId" : {
            "type" : "string",
            "description" : "The unique identifier of the Payments App instance."
          },
          "merchantAccountCode" : {
            "type" : "string",
            "description" : "The account code associated with the Payments App instance."
          },
          "merchantStoreCode" : {
            "type" : "string",
            "description" : "The store code associated with the Payments App instance."
          },
          "status" : {
            "type" : "string",
            "description" : "The status of the Payments App instance."
          }
        }
      },
      "PaymentsAppResponse" : {
        "required" : [ "paymentsApps" ],
        "type" : "object",
        "properties" : {
          "paymentsApps" : {
            "type" : "array",
            "description" : "List of Payments Apps.",
            "items" : {
              "$ref" : "#/components/schemas/PaymentsAppDto"
            }
          }
        }
      }
    },
    "securitySchemes" : {
      "ApiKeyAuth" : {
        "type" : "apiKey",
        "name" : "X-API-Key",
        "in" : "header"
      },
      "BasicAuth" : {
        "type" : "http",
        "scheme" : "basic"
      }
    }
  },
  "jsonSchemaDialect" : "https://spec.openapis.org/oas/3.1/dialect/base"
}