openapi: 3.0.3 info: title: Paypal Payment Experience Web Profiles description: Use the Payment Experience API to create seamless payment experience profiles. For information about how to create a PayPal payment with a web experience profile, see Web experience profiles. version: '1.3' contact: {} servers: - url: https://api-m.sandbox.paypal.com description: PayPal Sandbox Environment - url: https://api-m.paypal.com description: PayPal Live Environment tags: - name: Web-Profiles description: Use the `/payment-experience/web-profiles` resource to create, show details for, list, update, partially update, and delete web experience profiles. externalDocs: url: https://developer.paypal.com/docs/api/payment-experience/v1/ paths: "/v1/payment-experience/web-profiles": post: summary: Paypal Create web experience profile description: Creates a web experience profile. In the JSON request body, specify the profile name and details. operationId: web-profile.create responses: '200': description: A successful request, with or without the optional PayPal-Request-Id request header, returns the HTTP 201 Created status code and a JSON response body that shows the profile details and the ID of the profile. Any subsequent calls with the same PayPal-Request-Id request header value within a three-hour window returns the HTTP 200 OK status code and a JSON response body that shows the profile details and the ID of the profile. content: application/json: schema: "$ref": "#/components/schemas/web_profile" '201': description: A successful request, with or without the optional PayPal-Request-Id request header, returns the HTTP 201 Created status code and a JSON response body that shows the profile details and the ID of the profile. Any subsequent calls with the same PayPal-Request-Id request header value within a three-hour window returns the HTTP 200 OK status code and a JSON response body that shows the profile details and the ID of the profile. content: application/json: schema: "$ref": "#/components/schemas/web_profile" '500': description: An internal server error occurred. The request returns the HTTP `500 Internal Server Error` status code. content: application/json: schema: "$ref": "#/components/schemas/error" default: description: The error response. content: application/json: schema: "$ref": "#/components/schemas/error" parameters: - "$ref": "#/components/parameters/paypal_request_id" requestBody: "$ref": "#/components/requestBodies/web_profile" security: - Oauth2: - https://uri.paypal.com/services/payments/payment - Oauth2: - https://uri.paypal.com/services/payments/realtimepayment tags: - Web-Profiles get: summary: Paypal List web experience profiles description: Lists the latest 20 web experience profiles for a merchant or subject. To show details for these or additional profiles, you can show web experience profile details by ID. operationId: web-profile.get-list responses: '200': description: A successful request returns the HTTP `200 OK` status code and a JSON response body that lists the latest 20 profiles that the merchant owns, with details. To show details for these or additional profiles, you can show web experience profile details by ID. content: application/json: schema: "$ref": "#/components/schemas/web_profile_list" '500': description: An internal server error occurred. The request returns the HTTP `500 Internal Server Error` status code. content: application/json: schema: "$ref": "#/components/schemas/error" default: description: The error response. content: application/json: schema: "$ref": "#/components/schemas/error" security: - Oauth2: - https://uri.paypal.com/services/payments/payment - Oauth2: - https://uri.paypal.com/services/payments/realtimepayment tags: - Web-Profiles "/v1/payment-experience/web-profiles/{id}": put: summary: Paypal Update web experience profile description: Updates a web experience profile, by ID. In the JSON request body, specify the profile details. If your request omits any profile parameters, any previously set values for those parameters are removed. operationId: web-profile.update responses: '204': description: A successful request returns the HTTP `204 No Content` status code with no JSON response body. '500': description: An internal server error occurred. The request returns the HTTP `500 Internal Server Error` status code. content: application/json: schema: "$ref": "#/components/schemas/error" default: description: The error response. content: application/json: schema: "$ref": "#/components/schemas/error" parameters: - "$ref": "#/components/parameters/id" requestBody: "$ref": "#/components/requestBodies/web_profile" security: - Oauth2: - https://uri.paypal.com/services/payments/payment - Oauth2: - https://uri.paypal.com/services/payments/realtimepayment tags: - Web-Profiles patch: summary: Paypal Partially update web experience profile description: Partially-updates a web experience profile, by ID. In the JSON request body, specify a patch object, the path of the profile location to update, and a new value. operationId: web-profile.partial-update responses: '204': description: A successful request returns the HTTP `204 No Content` status code with no JSON response body. '500': description: An internal server error occurred. The request returns the HTTP `500 Internal Server Error` status code. content: application/json: schema: "$ref": "#/components/schemas/error" default: description: The error response. content: application/json: schema: "$ref": "#/components/schemas/error" parameters: - "$ref": "#/components/parameters/id" requestBody: content: application/json: schema: "$ref": "#/components/schemas/patch_request" examples: patch_request: value: - op: add path: "/presentation/brand_name" value: new_brand_name - op: remove path: "/flow_config/landing_page_type" security: - Oauth2: - https://uri.paypal.com/services/payments/payment - Oauth2: - https://uri.paypal.com/services/payments/realtimepayment tags: - Web-Profiles get: summary: Paypal Show web experience profile details by ID description: Shows details for a web experience profile, by ID. operationId: web-profile.get responses: '200': description: A successful request returns the HTTP `200 OK` status code and a JSON response body that shows the profile details. content: application/json: schema: "$ref": "#/components/schemas/web_profile" '500': description: An internal server error occurred. The request returns the HTTP `500 Internal Server Error` status code. content: application/json: schema: "$ref": "#/components/schemas/error" default: description: The error response. content: application/json: schema: "$ref": "#/components/schemas/error" parameters: - "$ref": "#/components/parameters/id" security: - Oauth2: - https://uri.paypal.com/services/payments/payment - Oauth2: - https://uri.paypal.com/services/payments/realtimepayment tags: - Web-Profiles delete: summary: Paypal Delete web experience profile description: Deletes a web experience profile, by ID. operationId: web-profile.delete responses: '204': description: A successful request returns the HTTP `204 No Content` status code with no JSON response body. '500': description: An internal server error occurred. The request returns the HTTP `500 Internal Server Error` status code. content: application/json: schema: "$ref": "#/components/schemas/error" default: description: The error response. content: application/json: schema: "$ref": "#/components/schemas/error" parameters: - "$ref": "#/components/parameters/id" security: - Oauth2: - https://uri.paypal.com/services/payments/payment - Oauth2: - https://uri.paypal.com/services/payments/realtimepayment tags: - Web-Profiles components: requestBodies: web_profile: content: application/json: schema: "$ref": "#/components/schemas/web_profile" securitySchemes: Oauth2: type: oauth2 description: Oauth 2.0 authentication flows: clientCredentials: tokenUrl: "/v1/oauth2/token" scopes: https://uri.paypal.com/services/payments/payment: New special privileged scope available for payment and manage payment experience profiles. Available to internal clients only. https://uri.paypal.com/services/payments/realtimepayment: Permission to do any real-time payment and manage-payment experience profiles with support for sale, authorize, and order intents. schemas: error_details: title: Error Details type: object description: The error details. Required for client-side `4XX` errors. properties: field: type: string description: The field that caused the error. If this field is in the body, set this value to the field's JSON pointer value. Required for client-side errors. value: type: string description: The value of the field that caused the error. location: "$ref": "#/components/schemas/error_location" issue: type: string description: The unique, fine-grained application-level error code. description: type: string description: The human-readable description for an issue. The description can change over the lifetime of an API, so clients must not depend on this value. required: - issue error_location: type: string description: The location of the field that caused the error. Value is `body`, `path`, or `query`. enum: - body - path - query default: body error_link_description: title: Link Description description: The request-related [HATEOAS link](/api/rest/responses/#hateoas-links) information. type: object required: - href - rel properties: href: description: The complete target URL. To make the related call, combine the method with this [URI Template-formatted](https://tools.ietf.org/html/rfc6570) link. For pre-processing, include the `$`, `(`, and `)` characters. The `href` is the key HATEOAS component that links a completed call with a subsequent call. type: string minLength: 0 maxLength: 20000 pattern: "^.*$" rel: description: The [link relation type](https://tools.ietf.org/html/rfc5988#section-4), which serves as an ID for a link that unambiguously describes the semantics of the link. See [Link Relations](https://www.iana.org/assignments/link-relations/link-relations.xhtml). type: string minLength: 0 maxLength: 100 pattern: "^.*$" method: description: The HTTP method required to make the related call. type: string minLength: 3 maxLength: 6 pattern: "^[A-Z]*$" enum: - GET - POST - PUT - DELETE - PATCH error_400: type: object title: Bad Request Error description: Request is not well-formed, syntactically incorrect, or violates schema. properties: name: type: string enum: - INVALID_REQUEST message: type: string enum: - Request is not well-formed, syntactically incorrect, or violates schema. details: type: array items: "$ref": "#/components/schemas/error_details" debug_id: type: string description: The PayPal internal ID. Used for correlation purposes. links: description: An array of request-related [HATEOAS links](https://en.wikipedia.org/wiki/HATEOAS). type: array minItems: 0 maxItems: 10000 items: "$ref": "#/components/schemas/error_link_description" error_401: type: object title: Unauthorized Error description: Authentication failed due to missing Authorization header, or invalid authentication credentials. properties: name: type: string enum: - AUTHENTICATION_FAILURE message: type: string enum: - Authentication failed due to missing authorization header, or invalid authentication credentials. details: type: array items: "$ref": "#/components/schemas/error_details" debug_id: type: string description: The PayPal internal ID. Used for correlation purposes. links: description: An array of request-related [HATEOAS links](https://en.wikipedia.org/wiki/HATEOAS). type: array minItems: 0 maxItems: 10000 items: "$ref": "#/components/schemas/error_link_description" error_403: type: object title: Not Authorized Error description: 'The client is not authorized to access this resource, although it may have valid credentials. ' properties: name: type: string enum: - NOT_AUTHORIZED message: type: string enum: - Authorization failed due to insufficient permissions. details: type: array items: "$ref": "#/components/schemas/error_details" debug_id: type: string description: The PayPal internal ID. Used for correlation purposes. links: description: An array of request-related [HATEOAS links](https://en.wikipedia.org/wiki/HATEOAS). type: array minItems: 0 maxItems: 10000 items: "$ref": "#/components/schemas/error_link_description" error_404: type: object title: Not found Error description: The server has not found anything matching the request URI. This either means that the URI is incorrect or the resource is not available. properties: name: type: string enum: - RESOURCE_NOT_FOUND message: type: string enum: - The specified resource does not exist. details: type: array items: "$ref": "#/components/schemas/error_details" debug_id: type: string description: The PayPal internal ID. Used for correlation purposes. links: description: An array of request-related [HATEOAS links](https://en.wikipedia.org/wiki/HATEOAS). type: array minItems: 0 maxItems: 10000 items: "$ref": "#/components/schemas/error_link_description" error_409: type: object title: Resource Conflict Error description: The server has detected a conflict while processing this request. properties: name: type: string enum: - RESOURCE_CONFLICT message: type: string enum: - The server has detected a conflict while processing this request. details: type: array items: "$ref": "#/components/schemas/error_details" debug_id: type: string description: The PayPal internal ID. Used for correlation purposes. links: description: An array of request-related [HATEOAS links](https://en.wikipedia.org/wiki/HATEOAS). type: array minItems: 0 maxItems: 10000 items: "$ref": "#/components/schemas/error_link_description" error_415: type: object title: Unsupported Media Type Error description: The server does not support the request payload's media type. properties: name: type: string enum: - UNSUPPORTED_MEDIA_TYPE message: type: string enum: - The server does not support the request payload's media type. details: type: array items: "$ref": "#/components/schemas/error_details" debug_id: type: string description: The PayPal internal ID. Used for correlation purposes. links: description: An array of request-related [HATEOAS links](https://en.wikipedia.org/wiki/HATEOAS). type: array minItems: 0 maxItems: 10000 items: "$ref": "#/components/schemas/error_link_description" error_422: type: object title: Unprocessable Entity Error description: The requested action cannot be performed and may require interaction with APIs or processes outside of the current request. This is distinct from a 500 response in that there are no systemic problems limiting the API from performing the request. properties: name: type: string enum: - UNPROCESSABLE_ENTITY message: type: string enum: - The requested action could not be performed, semantically incorrect, or failed business validation. details: type: array items: "$ref": "#/components/schemas/error_details" debug_id: type: string description: The PayPal internal ID. Used for correlation purposes. links: description: An array of request-related [HATEOAS links](https://en.wikipedia.org/wiki/HATEOAS). type: array minItems: 0 maxItems: 10000 items: "$ref": "#/components/schemas/error_link_description" error_500: type: object title: Internal Server Error description: This is either a system or application error, and generally indicates that although the client appeared to provide a correct request, something unexpected has gone wrong on the server. properties: name: type: string enum: - INTERNAL_SERVER_ERROR message: type: string enum: - An internal server error occurred. debug_id: type: string description: The PayPal internal ID. Used for correlation purposes. links: description: An array of request-related [HATEOAS links](https://en.wikipedia.org/wiki/HATEOAS). type: array minItems: 0 maxItems: 10000 items: "$ref": "#/components/schemas/error_link_description" example: name: INTERNAL_SERVER_ERROR message: An internal server error occurred. debug_id: 90957fca61718 links: - href: https://developer.paypal.com/api/orders/v2/#error-INTERNAL_SERVER_ERROR rel: information_link error_503: type: object title: Service Unavailable Error description: The server is temporarily unable to handle the request, for example, because of planned maintenance or downtime. properties: name: type: string enum: - SERVICE_UNAVAILABLE message: type: string enum: - Service Unavailable. debug_id: type: string description: The PayPal internal ID. Used for correlation purposes. links: description: An array of request-related [HATEOAS links](https://en.wikipedia.org/wiki/HATEOAS). type: array minItems: 0 maxItems: 10000 items: "$ref": "#/components/schemas/error_link_description" example: name: SERVICE_UNAVAILABLE message: Service Unavailable. debug_id: 90957fca61718 information_link: https://developer.paypal.com/docs/api/orders/v2/#error-SERVICE_UNAVAILABLE error_details-2: type: object title: Error Details description: The error details. Required for client-side `4XX` errors. properties: field: type: string description: The name of the field that caused the error. issue: type: string description: The reason for the error. required: - field - issue error: type: object title: Error description: The error information. properties: name: type: string description: The human-readable, unique name of the error. readOnly: true debug_id: type: string description: The PayPal internal ID. Used for correlation purposes. readOnly: true message: type: string description: The message that describes the error. readOnly: true information_link: type: string description: The URI to detailed information related to this error for the developer. readOnly: true details: type: array description: An array of additional details for the error. readOnly: true items: "$ref": "#/components/schemas/error_details-2" required: - name - message - information_link web_profile: type: object description: A payment web experience profile. title: Web Profile required: - name properties: id: type: string readOnly: true minLength: 22 maxLength: 22 description: The ID of the web experience profile. name: type: string minLength: 1 maxLength: 50 description: The web experience profile name. Must be unique for a set of profiles for a merchant. temporary: type: boolean description: Indicates whether the profile persists for three hours or permanently. To persist the profile permanently, set to `false`. To persist the profile for three hours, set to `true`. flow_config: type: object title: Flow Configuration description: The flow configuration parameters. properties: landing_page_type: type: string minLength: 1 maxLength: 255 description: The type of landing page to display on the PayPal site for user checkout. To use the non-PayPal account landing page, set to `Billing`. To use the PayPal account login landing page, set to `Login`. enum: - login - billing bank_txn_pending_url: type: string format: uri minLength: 1 maxLength: 127 description: The merchant site URL to display after a bank transfer payment. In Germany, valid only for the Giropay payment method or bank transfer payment method. user_action: type: string description: Presents either the **Continue** or **Pay Now** checkout flow to the customer.

Default is **Continue**, or `user_action=continue`. When you do not know the final payment amount, accept this default flow, which redirects the customer to the PayPal payment page with the **Continue** button. When the customer clicks **Continue**, the customer can change the payment amount.

When you know the final payment amount, set `user_action=commit` to choose the **Pay Now** flow, which redirects the customer to the PayPal payment page with the **Pay Now** button. When the customer clicks **Pay Now**, the payment is processed immediately. minLength: 1 maxLength: 255 enum: - COMMIT return_uri_http_method: type: string description: The HTTP method to use to redirect the customer to a return URL. Value is `GET` or `POST`. minLength: 1 maxLength: 255 enum: - GET - POST input_fields: type: object title: Input Field Customization description: The input field customization parameters. properties: no_shipping: type: integer minimum: 0 maximum: 2 description: Indicates whether PayPal displays shipping address fields on the experience pages. Value is: address_override: type: integer minimum: 0 maximum: 1 description: Indicates whether to display the shipping address that is passed to this call rather than the one on file for this buyer on the PayPal experience pages. Value is: presentation: type: object title: Style and Presentation description: The style and presentation parameters. properties: brand_name: type: string minLength: 1 maxLength: 127 description: 'A label that overrides the business name in the PayPal account on the PayPal pages. Character length and limitations: 127 single-byte alphanumeric characters.' logo_image: type: string minLength: 1 maxLength: 127 description: 'A URL to the logo image. A valid media type is `.gif`, `.jpg`, or `.png`. The image''s maximum width is 190 pixels and maximum height is 60 pixels. PayPal crops images that are larger. PayPal places your logo image at the top of the cart review area. PayPal recommends that you store the image on a secure (HTTPS) server. Otherwise, web browsers display a message that checkout pages contain non-secure items. Character length and limitations: 127 single-byte alphanumeric characters.' locale_code: type: string minLength: 2 maxLength: 5 description: 'The locale of pages that the PayPal payment experience displays. A valid value is `AU`, `AT`, `BE`, `BR`, `CA`, `CH`, `CN`, `DE`, `ES`, `GB`, `FR`, `IT`, `NL`, `PL`, `PT`, `RU`, or `US`. A 5-character code is also valid for languages in these countries: `da_DK`, `he_IL`, `id_ID`, `ja_JP`, `no_NO`, `pt_BR`, `ru_RU`, `sv_SE`, `th_TH`, `zh_CN`, `zh_HK`, or `zh_TW`.' web_profile_list: type: array title: Web Profile List description: An array of web profiles. minItems: 1 maxItems: 20 items: "$ref": "#/components/schemas/web_profile" patch: type: object title: Patch description: The JSON patch object to apply partial updates to resources. properties: op: type: string description: The operation. enum: - add - remove - replace - move - copy - test path: type: string description: The JSON Pointer to the target document location at which to complete the operation. value: title: Patch Value description: The value to apply. The remove operation does not require a value. from: type: string description: The JSON Pointer to the target document location from which to move the value. Required for the move operation. required: - op patch_request: type: array title: Patch Request description: An array of JSON patch objects to apply partial updates to resources. items: "$ref": "#/components/schemas/patch" parameters: paypal_request_id: name: PayPal-Request-Id in: header description: The server stores keys for three hours. required: true schema: type: string id: name: id in: path description: The ID of the profile to delete. required: true schema: type: string