> ## Documentation Index
> Fetch the complete documentation index at: https://docs.paypal.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# Make offer to resolve dispute

> Makes an offer to the other party to resolve a dispute, by ID. To make this call, the stage in the dispute lifecycle must be `INQUIRY`. If the customer accepts the offer, PayPal automatically makes a refund. Allowed offer_type values for the request is available in dispute details <a href="/docs/api/customer-disputes/v1/#definition-allowed_response_options">allowed response options</a> object.



## OpenAPI

````yaml /api-reference/customer_disputes_v1.json post /v1/customer/disputes/{id}/make-offer
openapi: 3.0.3
info:
  title: Disputes
  description: >-
    Occasionally, something goes wrong with a customer's order. To dispute a
    charge, a customer can create a dispute with PayPal. PayPal merchants,
    partners, and external developers can use the PayPal Disputes API to manage
    customer disputes.<blockquote><strong>Note:</strong> In the live
    environment, merchants cannot create disputes but can only respond to
    customer-created disputes. However, merchants can create disputes in the
    sandbox environment. When you create an app, enable Disputes in the App
    feature options section.</blockquote>A customer can also ask his or her bank
    or credit card company to dispute and reverse a charge, which is known as a
    <i>chargeback</i>. For more information, see <a
    href="https://www.paypal.com/us/brc/article/customer-disputes-claims-chargebacks-bank-reversals">Disputes,
    claims, chargebacks, and bank reversals</a>.<br/><br/>When a customer
    disputes a charge, you can use this API to provide evidence that the charge
    is legitimate. To provide evidence or appeal a dispute, you submit a proof
    of delivery or proof of refund document or notes, which can include
    logs.<br/><br/>Normally, an agent at PayPal creates a dispute, updates the
    dispute status, and settles disputes, but now you can run test cases in the
    sandbox that complete these
    operations.<br/><br/><blockquote><strong>Important:</strong> The create,
    cancel, compute metrics, change reason, and validate eligibility methods are
    available as a limited-release solution at this time. For more information,
    reach out to your PayPal account manager.</blockquote><br/>For details, see
    <a href="/docs/integration/direct/customer-disputes/">Disputes Overview</a>
    documentation.
  version: '1.11'
  contact: {}
servers:
  - url: https://api-m.sandbox.paypal.com
    description: PayPal Sandbox Environment
  - url: https://api-m.paypal.com
    description: PayPal Live Environment
security: []
tags:
  - name: disputes
    description: >-
      Use the `/disputes` resource to list disputes, create disputes, show
      dispute details, and partially a dispute. Normally, an agent at PayPal
      creates disputes but now you can run test cases in the sandbox that create
      disputes.
  - name: disputes-actions
    description: >-
      Use the `/disputes` resource with a dispute ID and an action
      to:<ul><li>Accept a claim.</li><li>Accept an offer to resolve a
      dispute.</li><li>Acknowledge the return of an item related to a
      dispute.</li><li>Settle a dispute.</li><li>Appeal a
      dispute.</li><li>Cancel a dispute.</li><li>Change the reason for a
      dispute.</li><li>Deny an offer to resolve dispute.</li><li>Escalate a
      dispute to a claim.</li><li>Make an offer to resolve a
      dispute.</li><li>Make an offer to resolve a dispute.</li><li>Provide
      evidence for a dispute.</li><li>Provide supporting information for
      dispute.</li><li>In the sandbox, update the dispute status.</li><li>Send a
      message about a dispute to the other party in the dispute.</li><ul>
  - name: referred-disputes
    description: >-
      Use the `/customer/referred-disputes` resource to create a dispute for a
      referred case that was created by a partner or marketplace, show details
      for a referred dispute, by ID, notify referred refunds completed to
      PayPal, notify PayPal about referred dispute adjudication updates, and
      determine the dispute eligibility for referred disputes.
  - name: validate-eligibility
    description: >-
      Use the `/validate-eligibility/` resource to determine whether you can
      create a case for a transaction.
  - name: compute-metrics
    description: Use the `/compute-metrics` resource to provide metrics for all disputes.
  - name: validate-referred-dispute-eligibility
    description: >-
      Use the `/validate-referred-dispute-eligibility` resource to determine
      whether you can create a referred case for a transaction, by encrypted
      transaction ID.
  - name: referred-disputes
    description: >-
      Use the `/referred-disputes` resource to create a dispute for a referred
      case that was created by a partner or marketplace, show details for a
      referred dispute, by ID, notify referred refunds completed to PayPal,
      notify PayPal about referred dispute adjudication updates, and determine
      the dispute eligibility for referred disputes.
  - name: referred-disputes-actions
    description: >-
      Use the `/referred-disputes` resource with a dispute ID and an action to
      notify PayPal about adjudication updates for a referred dispute and notify
      PayPal about a refund for a referred dispute.
  - name: partner-actions
    description: >-
      Use the `/disputes/{id}/partner-actions/` resource to show dispute action
      details and partially update a dispute action.
  - name: search-suggestions
    description: Use the `/search-suggestions` resource to show search suggestions.
  - name: dispute-events
    description: Use the `/dispute-events` resource to send dispute events.
  - name: refund-preference
    description: >-
      Use the `/disputes/{id}/provide-refund-preference` resource to provide
      refund preferences for the dispute.
  - name: return-compensation
    description: >-
      Use the `/disputes/{id}/return-compensation` resource to return the
      compensation on the dispute provided by PayPal to the customer.
externalDocs:
  url: https://developer.paypal.com/docs/api/customer-disputes/v1/
paths:
  /v1/customer/disputes/{id}/make-offer:
    post:
      tags:
        - disputes-actions
      summary: Make offer to resolve dispute
      description: >-
        Makes an offer to the other party to resolve a dispute, by ID. To make
        this call, the stage in the dispute lifecycle must be `INQUIRY`. If the
        customer accepts the offer, PayPal automatically makes a refund. Allowed
        offer_type values for the request is available in dispute details <a
        href="/docs/api/customer-disputes/v1/#definition-allowed_response_options">allowed
        response options</a> object.
      operationId: disputes.make-offer
      parameters:
        - $ref: '#/components/parameters/id'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/make_offer'
            examples:
              make_offer:
                value:
                  note: Offer refund with replacement item.
                  offer_amount:
                    currency_code: USD
                    value: '23'
                  offer_type: REFUND_WITH_REPLACEMENT
          multipart/related:
            schema:
              $ref: '#/components/schemas/make_offer'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/make_offer'
          multipart/mixed:
            schema:
              $ref: '#/components/schemas/make_offer'
      responses:
        '200':
          description: >-
            A successful request returns the HTTP `200 OK` status code and a
            JSON response body that includes a link to the dispute.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/subsequent_action'
        '400':
          description: >-
            The request failed due to a validation error. The request returns
            the HTTP `400 Bad Request` status code.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/error'
        '422':
          description: >-
            The requested action could not be completed. The request returns the
            HTTP `422 Unprocessable Entity` status code.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/error'
        '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/disputes/update-seller
        - Oauth2:
            - https://uri.paypal.com/services/disputes/update-buyer
components:
  parameters:
    id:
      name: id
      in: path
      description: The ID of the dispute for which to provide the supporting information.
      required: true
      schema:
        type: string
        minLength: 1
        maxLength: 255
        pattern: ^[A-Za-z0-9-]+$
  schemas:
    make_offer:
      type: object
      title: Make Offer Request
      description: A merchant request to make an offer to resolve a dispute.
      properties:
        note:
          type: string
          minLength: 1
          maxLength: 2000
          pattern: ^(.|\r?\n)*$
          description: The merchant's notes about the offer.
        offer_amount:
          $ref: '#/components/schemas/money'
          description: The amount proposed to resolve the dispute.
        return_shipping_address:
          $ref: '#/components/schemas/address_portable'
          description: >-
            The return address for the item. Required when the customer must
            return an item to the merchant for the
            <code>MERCHANDISE_OR_SERVICE_NOT_AS_DESCRIBED</code> dispute reason,
            especially if the refund amount is less than the dispute amount.
        invoice_id:
          type: string
          minLength: 1
          maxLength: 127
          description: >-
            The merchant-provided ID of the invoice for the refund. This
            optional value maps the refund to an invoice ID in the merchant's
            system.
          pattern: ^.*$
        offer_type:
          $ref: '#/components/schemas/offer_type'
      required:
        - note
        - offer_type
    subsequent_action:
      title: Subsequent Action
      type: object
      description: The subsequent action.
      properties:
        links:
          $ref: '#/components/schemas/definitions-link_description_list'
    error:
      type: object
      title: Error
      description: The error details.
      properties:
        name:
          type: string
          description: The human-readable, unique name of the error.
        message:
          type: string
          description: The message that describes the error.
        debug_id:
          type: string
          description: The PayPal internal ID. Used for correlation purposes.
        information_link:
          type: string
          description: >-
            The information link, or URI, that shows detailed information about
            this error for the developer.
          readOnly: true
        details:
          $ref: '#/components/schemas/error_details_list'
        links:
          $ref: '#/components/schemas/link_description_list'
      required:
        - name
        - message
        - debug_id
    money:
      type: object
      title: Money
      description: >-
        The currency and amount for a financial transaction, such as a balance
        or payment due.
      properties:
        currency_code:
          $ref: '#/components/schemas/currency_code'
        value:
          type: string
          description: >-
            The value, which might be:<ul><li>An integer for currencies like
            `JPY` that are not typically fractional.</li><li>A decimal fraction
            for currencies like `TND` that are subdivided into
            thousandths.</li></ul>For the required number of decimal places for
            a currency code, see [Currency
            Codes](/api/rest/reference/currency-codes/).
          maxLength: 32
          pattern: ^((-?[0-9]+)|(-?([0-9]+)?[.][0-9]+))$
      required:
        - currency_code
        - value
    address_portable:
      type: object
      title: Portable Postal Address (Medium-Grained)
      description: >-
        The portable international postal address. Maps to
        [AddressValidationMetadata](https://github.com/googlei18n/libaddressinput/wiki/AddressValidationMetadata)
        and HTML 5.1 [Autofilling form controls: the autocomplete
        attribute](https://www.w3.org/TR/html51/sec-forms.html#autofilling-form-controls-the-autocomplete-attribute).
      properties:
        address_line_1:
          type: string
          description: >-
            The first line of the address. For example, number or street. For
            example, `173 Drury Lane`. Required for data entry and compliance
            and risk checks. Must contain the full address.
          maxLength: 300
        address_line_2:
          type: string
          description: >-
            The second line of the address. For example, suite or apartment
            number.
          maxLength: 300
        address_line_3:
          type: string
          description: >-
            The third line of the address, if needed. For example, a street
            complement for Brazil, direction text, such as `next to Walmart`, or
            a landmark in an Indian address.
          maxLength: 100
        admin_area_4:
          type: string
          description: >-
            The neighborhood, ward, or district. Smaller than
            `admin_area_level_3` or `sub_locality`. Value is:<ul><li>The postal
            sorting code for Guernsey and many French territories, such as
            French Guiana.</li><li>The fine-grained administrative levels in
            China.</li></ul>
          maxLength: 100
        admin_area_3:
          type: string
          description: >-
            A sub-locality, suburb, neighborhood, or district. Smaller than
            `admin_area_level_2`. Value is:<ul><li>Brazil. Suburb, bairro, or
            neighborhood.</li><li>India. Sub-locality or district. Street name
            information is not always available but a sub-locality or district
            can be a very small area.</li></ul>
          maxLength: 100
        admin_area_2:
          type: string
          description: A city, town, or village. Smaller than `admin_area_level_1`.
          maxLength: 120
        admin_area_1:
          type: string
          description: >-
            The highest level sub-division in a country, which is usually a
            province, state, or ISO-3166-2 subdivision. Format for postal
            delivery. For example, `CA` and not `California`. Value, by country,
            is:<ul><li>UK. A county.</li><li>US. A state.</li><li>Canada. A
            province.</li><li>Japan. A prefecture.</li><li>Switzerland. A
            kanton.</li></ul>
          maxLength: 300
        postal_code:
          type: string
          description: >-
            The postal code, which is the zip code or equivalent. Typically
            required for countries with a postal code or an equivalent. See
            [postal code](https://en.wikipedia.org/wiki/Postal_code).
          maxLength: 60
        country_code:
          $ref: '#/components/schemas/country_code'
        address_details:
          $ref: '#/components/schemas/address_details'
      required:
        - country_code
    offer_type:
      type: string
      minLength: 1
      maxLength: 255
      pattern: ^[0-9A-Z_]+$
      title: Offer Type
      description: The merchant-proposed offer type for the dispute.
      x-enumDescriptions:
        - value: REFUND
          description: >-
            The merchant must refund the customer without any item replacement
            or return. This offer type is valid in the inquiry phase and occurs
            when a merchant is willing to refund a specific amount. Buyer
            acceptance is needed for partial refund offers and dispute is auto
            closed for full refunds. Include the <code>offer_amount</code> but
            omit the <code>return_shipping_address</code> parameters from the
            make offer request.
        - value: REFUND_WITH_RETURN
          description: >-
            The customer must return the item to the merchant and then merchant
            will refund the money. This offer type is valid in the inquiry phase
            and occurs when a merchant is willing to refund a specific amount
            and requires the customer to return the item. Include the
            <code>return_shipping_address</code> parameter and the
            <code>offer_amount</code> parameter in the make offer request.
        - value: REFUND_WITH_REPLACEMENT
          description: >-
            The merchant must do a refund and then send a replacement item to
            the customer. This offer type is valid in the inquiry phase when a
            merchant is willing to refund a specific amount and send the
            replacement item. Include the <code>offer_amount</code> parameter in
            the make offer request.
        - value: REPLACEMENT_WITHOUT_REFUND
          description: >-
            The merchant must send a replacement item to the customer with no
            additional refunds. This offer type is valid in the inquiry phase
            when a merchant is willing to replace the item without any refund.
            Omit the <code>offer_amount</code> parameter from the make offer
            request.
      enum:
        - REFUND
        - REFUND_WITH_RETURN
        - REFUND_WITH_REPLACEMENT
        - REPLACEMENT_WITHOUT_REFUND
    definitions-link_description_list:
      type: array
      minItems: 1
      maxItems: 10
      description: >-
        An array of request-related [HATEOAS
        links](/docs/api/reference/api-responses/#hateoas-links/).
      readOnly: true
      items:
        $ref: '#/components/schemas/link_description'
    error_details_list:
      type: array
      description: An array of additional details about the error.
      items:
        $ref: '#/components/schemas/error_details-2'
    link_description_list:
      type: array
      description: >-
        An array of request-related [HATEOAS
        links](/api/rest/responses/#hateoas-links).
      readOnly: true
      items:
        $ref: '#/components/schemas/link_description'
    currency_code:
      description: >-
        The [three-character ISO-4217 currency
        code](/api/rest/reference/currency-codes/) that identifies the currency.
      type: string
      format: ppaas_common_currency_code_v2
      minLength: 3
      maxLength: 3
    country_code:
      type: string
      description: >-
        The [two-character ISO 3166-1 code](/api/rest/reference/country-codes/)
        that identifies the country or region.<blockquote><strong>Note:</strong>
        The country code for Great Britain is <code>GB</code> and not
        <code>UK</code> as used in the top-level domain names for that country.
        Use the `C2` country code for China worldwide for comparable
        uncontrolled price (CUP) method, bank card, and cross-border
        transactions.</blockquote>
      format: ppaas_common_country_code_v2
      maxLength: 2
      minLength: 2
      pattern: ^([A-Z]{2}|C2)$
    address_details:
      type: object
      title: Address Details
      description: >-
        The non-portable additional address details that are sometimes needed
        for compliance, risk, or other scenarios where fine-grain address
        information might be needed. Not portable with common third party and
        open source. Redundant with core fields.<br/>For example,
        `address_portable.address_line_1` is usually a combination of
        `address_details.street_number`, `street_name`, and `street_type`.
      properties:
        street_number:
          type: string
          description: The street number.
          maxLength: 100
        street_name:
          type: string
          description: The street name. Just `Drury` in `Drury Lane`.
          maxLength: 100
        street_type:
          type: string
          description: >-
            The street type. For example, avenue, boulevard, road, or
            expressway.
          maxLength: 100
        delivery_service:
          type: string
          description: >-
            The delivery service. Post office box, bag number, or post office
            name.
          maxLength: 100
        building_name:
          type: string
          description: >-
            A named locations that represents the premise. Usually a building
            name or number or collection of buildings with a common name or
            number. For example, <code>Craven House</code>.
          maxLength: 100
        sub_building:
          type: string
          description: >-
            The first-order entity below a named building or location that
            represents the sub-premises. Usually a single building within a
            collection of buildings with a common name. Can be a flat, story,
            floor, room, or apartment.
          maxLength: 100
    link_description:
      type: object
      title: Link Description
      description: >-
        The request-related [HATEOAS link](/api/rest/responses/#hateoas-links)
        information.
      required:
        - href
        - rel
      properties:
        href:
          type: string
          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.
        rel:
          type: string
          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).
        method:
          type: string
          description: The HTTP method required to make the related call.
          enum:
            - GET
            - POST
            - PUT
            - DELETE
            - HEAD
            - CONNECT
            - OPTIONS
            - PATCH
    error_details-2:
      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:
          type: string
          description: >-
            The location of the field that caused the error. Value is `body`,
            `path`, or `query`.
          default: body
        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
  securitySchemes:
    Oauth2:
      type: oauth2
      description: Oauth 2.0 authentication
      flows:
        clientCredentials:
          tokenUrl: /v1/oauth2/token
          scopes:
            https://uri.paypal.com/services/disputes/read-seller: >-
              This privilege allows client to read and search a disputes of a
              merchant but gets only a limited and allowed set of fields back .
            https://uri.paypal.com/services/disputes/read-buyer: >-
              This privilege allows client to read and search disputes but
              returns a limited and allowed set of fields back.
            https://uri.paypal.com/services/disputes/read-ebay: >-
              This privilege allows client to read and search a disputes of an
              user but gets only a limited and allowed set of fields back to
              ebay.
            https://uri.paypal.com/services/disputes/read: >-
              This privilege allows client to read and search a dispute of an
              user with all fields.
            https://uri.paypal.com/services/disputes/webhooks: This privilege allows webhook platform to read a dispute event
            https://uri.paypal.com/services/disputes/create: >-
              This privilege allows client to validate eligibility and create a
              dispute on his transaction(s).
            https://uri.paypal.com/services/disputes/update-seller: >-
              This privilege allows client to update a dispute (Merchant
              actions).
            https://uri.paypal.com/services/disputes/update-buyer: >-
              This privilege allows client to update a dispute (customer
              actions).
            https://uri.paypal.com/services/referred-disputes/readwrite: >-
              This privilege allows client to read and update a referred
              dispute.
            https://uri.paypal.com/services/disputes/read-partner: >-
              This privilege allows client to read and search disputes but
              returns a limited and allowed set of fields back.
            https://uri.paypal.com/services/disputes/update-partner: >-
              This privilege allows client to update a dispute (Partner
              actions).

````