openapi: 3.2.0
info:
  title: 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 <a
    href="/docs/integration/direct/payment-experience/">Web experience
    profiles</a>.
  version: "1.3"
paths:
  /v1/payment-experience/web-profiles:
    post:
      summary: 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
            <code>PayPal-Request-Id</code> request header, returns the HTTP
            <code>201 Created</code> status code and a JSON response body that
            shows the profile details and the ID of the profile. Any subsequent
            calls with the same <code>PayPal-Request-Id</code> request header
            value within a three-hour window returns the HTTP <code>200
            OK</code> 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
            <code>PayPal-Request-Id</code> request header, returns the HTTP
            <code>201 Created</code> status code and a JSON response body that
            shows the profile details and the ID of the profile. Any subsequent
            calls with the same <code>PayPal-Request-Id</code> request header
            value within a three-hour window returns the HTTP <code>200
            OK</code> 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"
        - $ref: "#/components/parameters/content_type"
      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: 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
      parameters:
        - $ref: "#/components/parameters/content_type"
      tags:
        - web-profiles
  /v1/payment-experience/web-profiles/{id}:
    put:
      summary: 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"
        - $ref: "#/components/parameters/content_type"
      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: 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"
        - $ref: "#/components/parameters/content_type"
      requestBody:
        content:
          application/json:
            schema:
              $ref: "#/components/schemas/patch_request"
      security:
        - Oauth2:
            - https://uri.paypal.com/services/payments/payment
        - Oauth2:
            - https://uri.paypal.com/services/payments/realtimepayment
      tags:
        - web-profiles
    get:
      summary: 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"
        - $ref: "#/components/parameters/content_type"
      security:
        - Oauth2:
            - https://uri.paypal.com/services/payments/payment
        - Oauth2:
            - https://uri.paypal.com/services/payments/realtimepayment
      tags:
        - web-profiles
    delete:
      summary: 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"
        - $ref: "#/components/parameters/content_type"
      security:
        - Oauth2:
            - https://uri.paypal.com/services/payments/payment
        - Oauth2:
            - https://uri.paypal.com/services/payments/realtimepayment
      tags:
        - web-profiles
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://github.paypal.com/AppPlatform/payment-experience.WebExperienceProfilesSpecification/blob/master/v1/doc/USERGUIDE.md
servers:
  - url: https://api-m.sandbox.paypal.com
    description: PayPal API Sandbox
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: /api/oauth-proxy
          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.
  responses:
    default:
      description: The default response.
      content:
        application/json:
          schema:
            $ref: "#/components/schemas/error_default"
  schemas:
    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:
          $ref: "#/components/schemas/error_details_list"
      required:
        - name
        - message
        - information_link
    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"
      examples:
        - 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"
      examples:
        - name: SERVICE_UNAVAILABLE
          message: Service Unavailable.
          debug_id: 90957fca61718
          information_link: https://developer.paypal.com/docs/api/orders/v2/#error-SERVICE_UNAVAILABLE
    error_default:
      description: The default error response.
      oneOf:
        - $ref: "#/components/schemas/error_400"
        - $ref: "#/components/schemas/error_401"
        - $ref: "#/components/schemas/error_403"
        - $ref: "#/components/schemas/error_404"
        - $ref: "#/components/schemas/error_409"
        - $ref: "#/components/schemas/error_415"
        - $ref: "#/components/schemas/error_422"
        - $ref: "#/components/schemas/error_500"
        - $ref: "#/components/schemas/error_503"
    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_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_details_list:
      type: array
      description: An array of additional details for the error.
      readOnly: true
      items:
        $ref: "#/components/schemas/error_details-2"
    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_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
    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`.
          x-enumDescriptions:
            - login
            - billing
          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.<br/><br/>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.<br/><br/> 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
          x-enumDescriptions:
            - COMMIT
          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
          x-enumDescriptions:
            - GET
            - POST
          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:<ul><li><code>0</code>. Displays the
            shipping address on the PayPal pages.</li><li><code>1</code>.
            Redacts shipping address fields from the PayPal pages. For digital
            goods, this field is required and must be
            <code>1</code>.</li><li><code>2</code>. Gets the shipping address
            from the customer's account profile.</li></ul>
        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:<ul><li><code>0</code>. Displays the
            shipping address on file.</li><li><code>1</code>. Displays the
            shipping address specified in this call. the customer cannot edit
            this shipping address.</li></ul>
    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
          oneOf:
            - type: string
              enum:
                - add
              description: Depending on the target location reference, completes one of these
                functions:<ul><li><strong>The target location is an array
                index</strong>. Inserts a new value into the array at the
                specified index.</li><li><strong>The target location is an
                object parameter that does not already exist</strong>. Adds a
                new parameter to the object.</li><li><strong>The target location
                is an object parameter that does exist</strong>. Replaces that
                parameter's value.</li></ul>The <code>value</code> parameter
                defines the value to add. For more information, see <a
                href="https://tools.ietf.org/html/rfc6902#section-4.1">4.1.
                add</a>.
            - type: string
              enum:
                - remove
              description: Removes the value at the target location. For the operation to
                succeed, the target location must exist. For more information,
                see <a
                href="https://tools.ietf.org/html/rfc6902#section-4.2">4.2.
                remove</a>.
            - type: string
              enum:
                - replace
              description: Replaces the value at the target location with a new value. The
                operation object must contain a <code>value</code> parameter
                that defines the replacement value. For the operation to
                succeed, the target location must exist. For more information,
                see <a
                href="https://tools.ietf.org/html/rfc6902#section-4.3">4.3.
                replace</a>.
            - type: string
              enum:
                - move
              description: Removes the value at a specified location and adds it to the target
                location. The operation object must contain a <code>from</code>
                parameter, which is a string that contains a JSON pointer value
                that references the location in the target document from which
                to move the value. For the operation to succeed, the
                <code>from</code> location must exist. For more information, see
                <a href="https://tools.ietf.org/html/rfc6902#section-4.4">4.4.
                move</a>.
            - type: string
              enum:
                - copy
              description: Copies the value at a specified location to the target location.
                The operation object must contain a <code>from</code> parameter,
                which is a string that contains a JSON pointer value that
                references the location in the target document from which to
                copy the value. For the operation to succeed, the
                <code>from</code> location must exist. For more information, see
                <a href="https://tools.ietf.org/html/rfc6902#section-4.5">4.5.
                copy</a>.
            - type: string
              enum:
                - test
              description: Tests that a value at the target location is equal to a specified
                value. The operation object must contain a <code>value</code>
                parameter that defines the value to compare to the target
                location's value. For the operation to succeed, the target
                location must be equal to the <code>value</code> value. For
                test, <code>equal</code> indicates that the value at the target
                location and the value that <code>value</code> defines are of
                the same JSON type. The data type of the value determines how
                equality is defined:<table><thead
                align="left"><tr><th>Type</th><th>Considered equal if both
                values</th></tr></thead><tbody
                align="left"><tr><td><strong>strings</strong></td><td>Contain
                the same number of Unicode characters and their code points are
                byte-by-byte
                equal.</td></tr><tr><td><strong>numbers</strong></td><td>Are
                numerically
                equal.</td></tr><tr><td><strong>arrays</strong></td><td>Contain
                the same number of values, and each value is equal to the value
                at the corresponding position in the other array, by using these
                type-specific
                rules.</td></tr><tr><td><strong>objects</strong></td><td>Contain
                the same number of parameters, and each parameter is equal to a
                parameter in the other object, by comparing their keys (as
                strings) and their values (by using these type-specific
                rules).</td></tr><tr><td><strong>literals (<code>false</code>,
                <code>true</code>, and <code>null</code>)</strong></td><td>Are
                the same. The comparison is a logical comparison. For example,
                whitespace between the parameter values of an array is not
                significant. Also, ordering of the serialization of object
                parameters is not significant.</td></tr></tbody></table>For more
                information, see <a
                href="https://tools.ietf.org/html/rfc6902#section-4.6">4.6.
                test</a>.
        path:
          type: string
          description: The <a href="https://tools.ietf.org/html/rfc6901">JSON Pointer</a>
            to the target document location at which to complete the operation.
        value:
          type:
            - number
            - integer
            - string
            - boolean
            - "null"
            - array
            - object
          title: Patch Value
          description: The value to apply. The <code>remove</code> operation does not
            require a value.
        from:
          type: string
          description: The <a href="https://tools.ietf.org/html/rfc6901">JSON Pointer</a>
            to the target document location from which to move the value.
            Required for the <code>move</code> 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"
    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:
      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:
          $ref: "#/components/schemas/flow_config"
        input_fields:
          $ref: "#/components/schemas/input_fields"
        presentation:
          $ref: "#/components/schemas/presentation"
    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"
  parameters:
    paypal_request_id:
      name: PayPal-Request-Id
      in: header
      description: The server stores keys for three hours.
      required: true
      schema:
        type: string
    content_type:
      name: Content-Type
      in: header
      description: Required for operations with a request body. The value is
        application/<format>. Where the 'format' is 'json'.
      required: true
      schema:
        type: string
    id:
      name: id
      in: path
      description: The ID of the profile to delete.
      required: true
      schema:
        type: string
x-errors:
  - name: DUPLICATE_REQUEST_ID
    message: The value of the `PayPal-Request-ID` header has already been used.
    description: The <code>PayPal-Request-ID</code> header contains a duplicate request ID.
  - name: INTERNAL_SERVICE_ERROR
    message: An internal service error has occurred.
    description: The request failed due to an internal server error.
  - name: INVALID_RESOURCE_ID
    message: Invalid profile ID passed.
    description: The profile ID is not valid.
  - name: MALFORMED_REQUEST
    message: The JSON request does not map to the expected resource.
    description: The resource in the request is not valid.
  - name: PERMISSION_DENIED
    message: No permission for the requested operation.
    description: The caller does not have permission to complete this request.
  - name: VALIDATION_ERROR
    message: Invalid data passed.
    description: More details can be found in the details array.
  - name: WRONG_PATCH
    message: The provided patch has errors.
    description: More details can be found in the details array.
