PayPal Disputes API

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.

OpenAPI Specification

paypal-disputes-api-openapi.yml Raw ↑
openapi: 3.0.3
info:
  title: Paypal Subscriptions Authorizations Disputes API
  description: You can use billing plans and subscriptions to create subscriptions that process recurring PayPal payments for physical or digital goods, or services. A plan includes pricing and billing cycle information that defines the amount and frequency of charge for a subscription. You can also define a fixed plan, such as a $5 basic plan or a volume- or graduated-based plan with pricing tiers based on the quantity purchased. For more information, see <a href="/docs/subscriptions/">Subscriptions Overview</a>.
  version: '1.6'
  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: 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.
paths:
  /v1/customer/disputes:
    get:
      summary: Paypal List disputes
      description: Lists disputes with a summary set of details, which shows the <code>dispute_id</code>, <code>reason</code>, <code>status</code>, <code>dispute_state</code>, <code>dispute_life_cycle_stage</code>, <code>dispute_channel</code>, <code>dispute_amount</code>, <code>create_time</code> and <code>update_time</code> fields.<br/><br/>To filter the disputes in the response, specify one or more optional query parameters. To limit the number of disputes in the response, specify the <code>page_size</code> query parameter.<br/><br/>To list multiple disputes, set these query parameters in the request:<ul><li><code>page_size=2</code></li><li><code>start_time</code> instead of <code>disputed_transaction_id</code></li></ul><br/>If the response contains more than two disputes, it lists two disputes and includes a HATEOAS link to the next page of results.
      operationId: disputes.list
      responses:
        '200':
          description: A successful request returns the HTTP <code>200 OK</code> status code and a JSON response body that lists disputes with a full or summary set of details. Default is a summary set of details, which shows the <code>dispute_id</code>, <code>reason</code>, <code>status</code>, <code>dispute_amount</code>, <code>create_time</code>, and <code>update_time</code> fields for each dispute.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/dispute_search'
        '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'
        default:
          description: The error response.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/error'
      parameters:
      - $ref: '#/components/parameters/start_time'
      - $ref: '#/components/parameters/disputed_transaction_id'
      - $ref: '#/components/parameters/page_size'
      - $ref: '#/components/parameters/next_page_token'
      - $ref: '#/components/parameters/dispute_state'
      - $ref: '#/components/parameters/update_time_before'
      - $ref: '#/components/parameters/update_time_after'
      security:
      - Oauth2:
        - https://uri.paypal.com/services/disputes/read-buyer
      - Oauth2:
        - https://uri.paypal.com/services/disputes/read-seller
      - Oauth2:
        - https://uri.paypal.com/services/disputes/read-ebay
      - Oauth2:
        - https://uri.paypal.com/services/disputes/read
      - Oauth2:
        - https://uri.paypal.com/services/disputes/read-partner
      tags:
      - Disputes
  /v1/customer/disputes/{id}:
    get:
      summary: Paypal Show dispute details
      description: Shows details for a dispute, by ID.<blockquote><strong>Note:</strong> The fields that appear in the response depend on the access. For example, if the merchant requests shows dispute details, the customer's email ID does not appear.</blockquote>
      operationId: disputes.get
      responses:
        '200':
          description: A successful request returns the HTTP `200 OK` status code and a JSON response body that shows dispute details.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/dispute'
        '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/disputes/read-buyer
      - Oauth2:
        - https://uri.paypal.com/services/disputes/read-seller
      - Oauth2:
        - https://uri.paypal.com/services/disputes/read-ebay
      - Oauth2:
        - https://uri.paypal.com/services/disputes/read
      - Oauth2:
        - https://uri.paypal.com/services/disputes/read-partner
      tags:
      - Disputes
    patch:
      summary: Paypal Partially update dispute
      description: Partially updates a dispute, by ID. Seller can update the `communication_detail` value or The partner can add the `partner action` information.
      operationId: disputes.patch
      responses:
        '202':
          description: A successfully accepted request returns the HTTP `202 Accepted` status code and a JSON response body that includes a [HATEOAS link](/docs/api/reference/api-responses/#hateoas-links) to the ID of the request. The Clients can choose webhook option as well to receive dispute update notification.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/subsequent_action'
        '204':
          description: A successful request returns the HTTP `204 No Content` status code with no JSON response body.
        '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'
      parameters:
      - $ref: '#/components/parameters/id'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/patch_request'
          multipart/related:
            schema:
              $ref: '#/components/schemas/patch_request'
          multipart/form-data:
            schema:
              $ref: '#/components/schemas/patch_request'
          multipart/mixed:
            schema:
              $ref: '#/components/schemas/patch_request'
      security:
      - Oauth2:
        - https://uri.paypal.com/services/disputes/update-seller
      tags:
      - Disputes
components:
  schemas:
    merchant_contacted_mode:
      type: string
      minLength: 1
      maxLength: 255
      pattern: ^[0-9A-Z_]+$
      title: Merchant Contacted Method
      description: The method used to contact the merchant.
      enum:
      - WEBSITE
      - PHONE
      - EMAIL
      - WRITTEN
      - IN_PERSON
    dispute_reason:
      type: string
      minLength: 1
      maxLength: 255
      pattern: ^[0-9A-Z_]+$
      title: Dispute Reason
      description: The reason for the item-level dispute. For information about the required information for each dispute reason and associated evidence type, see <a href="/docs/integration/direct/customer-disputes/integration-guide/#dispute-reasons">dispute reasons</a>.
      enum:
      - MERCHANDISE_OR_SERVICE_NOT_RECEIVED
      - MERCHANDISE_OR_SERVICE_NOT_AS_DESCRIBED
      - UNAUTHORISED
      - CREDIT_NOT_PROCESSED
      - DUPLICATE_TRANSACTION
      - INCORRECT_AMOUNT
      - PAYMENT_BY_OTHER_MEANS
      - CANCELED_RECURRING_BILLING
      - PROBLEM_WITH_REMITTANCE
      - OTHER
    link_description:
      type: object
      title: Link Description
      description: The request-related [HATEOAS link](/docs/api/reference/api-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
    transaction_info:
      type: object
      title: Transaction Information
      description: The information about the disputed transaction.
      properties:
        buyer_transaction_id:
          type: string
          minLength: 1
          maxLength: 255
          description: The ID, as seen by the customer, for this transaction.
          pattern: ^[A-Za-z0-9-]+$
        seller_transaction_id:
          type: string
          minLength: 1
          maxLength: 255
          description: The ID, as seen by the merchant, for this transaction.
          pattern: ^[A-Za-z0-9-]+$
        reference_id:
          type: string
          minLength: 1
          maxLength: 255
          description: The ID, as seen by the partner, for this transaction.
          pattern: ^[A-Za-z0-9-]+$
        create_time:
          description: The date and time when the transaction was created, in [Internet date and time format](https://tools.ietf.org/html/rfc3339#section-5.6). For example, *`yyyy`*-*`MM`*-*`dd`*`T`*`HH`*:*`mm`*:*`ss`*.*`SSS`*`Z`.
          $ref: '#/components/schemas/date_time'
        transaction_status:
          type: string
          minLength: 1
          maxLength: 255
          pattern: ^[0-9A-Z_]+$
          description: The transaction status.
          enum:
          - COMPLETED
          - UNCLAIMED
          - DENIED
          - FAILED
          - HELD
          - PENDING
          - PARTIALLY_REFUNDED
          - REFUNDED
          - REVERSED
          - CANCELLED
        gross_amount:
          description: The gross amount of the transaction.
          $ref: '#/components/schemas/money'
        gross_asset:
          description: The gross asset of the transaction.
          $ref: '#/components/schemas/cryptocurrency'
        invoice_number:
          type: string
          minLength: 1
          maxLength: 127
          description: The ID of the invoice for the payment.
          pattern: ^[A-Za-z0-9:\-|]+$
        custom:
          type: string
          minLength: 1
          maxLength: 2000
          description: A free-text field that is entered by the merchant during checkout.
        buyer:
          $ref: '#/components/schemas/buyer'
        seller:
          $ref: '#/components/schemas/seller'
        items:
          type: array
          minItems: 1
          maxItems: 100
          readOnly: true
          description: An array of items that were purchased as part of the transaction.
          items:
            $ref: '#/components/schemas/item_info'
        payment_processor:
          $ref: '#/components/schemas/payment_processor'
    offer:
      type: object
      title: Offer
      description: The merchant-proposed offer for a dispute.
      properties:
        buyer_requested_amount:
          description: The customer-requested refund for this dispute.
          $ref: '#/components/schemas/money'
        seller_offered_amount:
          description: The merchant-offered refund for this dispute.
          $ref: '#/components/schemas/money'
        offer_type:
          $ref: '#/components/schemas/offer_type'
        history:
          type: array
          minItems: 1
          maxItems: 1000
          description: An array of history information for an offer.
          items:
            $ref: '#/components/schemas/offer_history'
    seller:
      type: object
      title: Merchant
      description: The details for the merchant who receives the funds and fulfills the order. For example, merchant ID, and contact email address.
      properties:
        email:
          $ref: '#/components/schemas/email_address'
          description: The email address for the merchant's PayPal account.
        merchant_id:
          type: string
          minLength: 1
          maxLength: 255
          description: The PayPal account ID for the merchant.
          pattern: ^[0-9A-Za-z]+$
        name:
          type: string
          minLength: 1
          maxLength: 2000
          pattern: ^[^~!@#$%^*()_{}:|\t\n/]+$
          description: The name of the merchant.
    item_info:
      type: object
      title: Item Information
      description: The information for a purchased item in a disputed transaction.
      properties:
        item_id:
          type: string
          minLength: 1
          maxLength: 255
          pattern: ^[A-Za-z0-9]+$
          description: The item ID. If the merchant provides multiple pieces of evidence and the transaction has multiple item IDs, the merchant can use this value to associate a piece of evidence with an item ID.
        item_name:
          type: string
          minLength: 1
          maxLength: 2000
          description: The item name.
        item_description:
          type: string
          minLength: 1
          maxLength: 2000
          description: The item description.
        item_quantity:
          type: string
          description: The count of the item in the dispute. Must be a whole number.
          minLength: 1
          maxLength: 10
          pattern: ^[1-9][0-9]{0,9}$
        partner_transaction_id:
          type: string
          minLength: 1
          maxLength: 255
          pattern: ^[A-Za-z0-9]+$
          description: The ID of the transaction in the partner system. The partner transaction ID is returned at an item level because the partner might show different transactions for different items in the cart.
        reason:
          $ref: '#/components/schemas/dispute_reason'
        dispute_amount:
          $ref: '#/components/schemas/money'
          description: The amount of the item in the dispute.
          readOnly: true
        notes:
          type: string
          minLength: 1
          maxLength: 2000
          description: Any notes provided with the item.
        item_type:
          $ref: '#/components/schemas/item_type'
        product_details:
          $ref: '#/components/schemas/item_product_details'
        service_details:
          $ref: '#/components/schemas/item_service_details'
        booking_details:
          $ref: '#/components/schemas/item_booking_details'
        digital_download_details:
          $ref: '#/components/schemas/item_digital_download_details'
        cancellation_details:
          $ref: '#/components/schemas/item_cancellation_details'
        agreed_refund_details:
          $ref: '#/components/schemas/item_agreed_refund_details'
    agreed_refund_details:
      type: object
      title: Agreed Refund Details
      description: Details of Agreed Refund between customer and merchant.
      properties:
        merchant_agreed_refund:
          type: boolean
          description: Indicates whether merchant has agreed to refund the buyer or not.
        merchant_agreed_refund_time:
          $ref: '#/components/schemas/date_time'
          description: The date and time proposed by merchant to provide the refund, in [Internet date and time format](https://tools.ietf.org/html/rfc3339#section-5.6).
    dispute_lifecycle_stage:
      type: string
      minLength: 1
      maxLength: 255
      pattern: ^[0-9A-Z_]+$
      readOnly: true
      description: The stage in the dispute lifecycle.
      enum:
      - INQUIRY
      - CHARGEBACK
      - PRE_ARBITRATION
      - ARBITRATION
    cancellation_details:
      type: object
      title: Cancellation Details
      description: The cancellation details.
      properties:
        cancellation_date:
          description: The date and time of the cancellation, in [Internet date and time format](http://tools.ietf.org/html/rfc3339#section-5.6).
          $ref: '#/components/schemas/date_time'
        cancellation_number:
          description: The cancellation number.
          type: string
          minLength: 1
          maxLength: 127
          pattern: ^[A-Za-z0-9]+$
        cancelled:
          type: boolean
          description: Indicates whether the dispute was canceled.
        cancellation_mode:
          description: Indicates the mode used for order cancellation.
          type: string
          minLength: 1
          maxLength: 255
          pattern: ^[0-9A-Z_]+$
          enum:
          - CANCELLED_PAYPAL_BILLING_AGREEMENT
          - WEBSITE
          - PHONE
          - EMAIL
          - WRITTEN
          - IN_PERSON
    subsequent_action:
      title: Subsequent Action
      type: object
      description: The subsequent action.
      properties:
        links:
          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'
            readOnly: true
    email_address:
      type: string
      description: The internationalized email address.<blockquote><strong>Note:</strong> Up to 64 characters are allowed before and 255 characters are allowed after the <code>@</code> sign. However, the generally accepted maximum length for an email address is 254 characters. The pattern verifies that an unquoted <code>@</code> sign exists.</blockquote>
      format: ppaas_common_email_address_v2
      minLength: 3
      maxLength: 254
      pattern: ^.+@[^"\-].+$
    date_time:
      type: string
      description: The date and time, in [Internet date and time format](https://tools.ietf.org/html/rfc3339#section-5.6). Seconds are required while fractional seconds are optional.<blockquote><strong>Note:</strong> The regular expression provides guidance but does not reject all invalid dates.</blockquote>
      format: ppaas_date_time_v3
      minLength: 20
      maxLength: 64
      pattern: ^[0-9]{4}-(0[1-9]|1[0-2])-(0[1-9]|[1-2][0-9]|3[0-1])[T,t]([0-1][0-9]|2[0-3]):[0-5][0-9]:([0-5][0-9]|60)([.][0-9]+)?([Zz]|[+-][0-9]{2}:[0-9]{2})$
    item_agreed_refund_details: {}
    adjudication_type:
      type: string
      minLength: 1
      maxLength: 255
      pattern: ^[0-9A-Z_]+$
      description: The type of adjudication.
      enum:
      - DENY_BUYER
      - PAYOUT_TO_BUYER
      - PAYOUT_TO_SELLER
      - RECOVER_FROM_SELLER
    credit_not_processed:
      type: object
      title: Credit Not Processed
      description: The credit not processed details.
      properties:
        issue_type:
          type: string
          minLength: 1
          maxLength: 255
          pattern: ^[0-9A-Z_]+$
          description: The issue type.
          enum:
          - PRODUCT
          - SERVICE
        expected_refund:
          $ref: '#/components/schemas/money'
        cancellation_details:
          $ref: '#/components/schemas/cancellation_details'
        product_details:
          $ref: '#/components/schemas/product_details'
        service_details:
          $ref: '#/components/schemas/service_details'
        agreed_refund_details:
          $ref: '#/components/schemas/agreed_refund_details'
    item_product_details: {}
    payment_processor: {}
    message:
      type: object
      title: Message
      description: A customer- or merchant-posted message for the dispute.
      properties:
        posted_by:
          type: string
          minLength: 1
          maxLength: 255
          pattern: ^[0-9A-Z_]+$
          description: Indicates whether the customer, merchant, or dispute arbiter posted the message.
          readOnly: true
          enum:
          - BUYER
          - SELLER
          - ARBITER
        time_posted:
          readOnly: true
          $ref: '#/components/schemas/date_time'
          description: The date and time when the message was posted, in [Internet date and time format](https://tools.ietf.org/html/rfc3339#section-5.6).
        content:
          type: string
          description: The message text.
          maxLength: 2000
          minLength: 0
        documents:
          type: array
          readOnly: true
          description: An array of metadata for the documents which contains any additional info about the message posted.
          items:
            $ref: '#/components/schemas/document'
          minItems: 1
          maxItems: 10
    item_digital_download_details: {}
    status:
      type: string
      minLength: 1
      maxLength: 255
      readOnly: true
      pattern: ^[0-9A-Z_]+$
      description: The overall status of the dispute, constant for all the parties involved at anytime during the dispute lifecycle.
      enum:
      - OPEN
      - WAITING_FOR_BUYER_RESPONSE
      - WAITING_FOR_SELLER_RESPONSE
      - UNDER_REVIEW
      - RESOLVED
      - OTHER
    canceled_recurring_billing:
      type: object
      title: Canceled Recurring Billing
      description: The recurring billing canceled details.
      properties:
        expected_refund:
          $ref: '#/components/schemas/money'
        cancellation_details:
          $ref: '#/components/schemas/cancellation_details'
    supporting_info:
      type: object
      title: Supporting Info
      description: A merchant- or customer-submitted supporting information.
      properties:
        notes:
          type: string
          readOnly: true
          description: Any supporting notes.
          minLength: 1
          maxLength: 2000
        documents:
          type: array
          minItems: 1
          maxItems: 100
          readOnly: true
          description: An array of metadata for the documents which were uploaded as supporting information for the dispute.
          items:
            $ref: '#/components/schemas/document'
        source:
          type: string
          minLength: 1
          maxLength: 255
          readOnly: true
          pattern: ^[0-9A-Z_]+$
          description: The source of the Information.
          enum:
          - SUBMITTED_BY_BUYER
          - SUBMITTED_BY_SELLER
          - SUBMITTED_BY_PARTNER
        provided_time:
          readOnly: true
          $ref: '#/components/schemas/date_time'
          description: The date and time when the information was received, in [Internet date and time format](http://tools.ietf.org/html/rfc3339#section-5.6).
        dispute_life_cycle_stage:
          readOnly: true
          description: The dispute life cycle stage for the supporting info.
          $ref: '#/components/schemas/dispute_lifecycle_stage'
    adjudication_reason:
      type: string
      minLength: 1
      maxLength: 255
      pattern: ^[0-9A-Z_]+$
      description: The reason for the adjudication type.
      enum:
      - AMOUNT_DIFFERENCE_EXPECTED_DUE_TO_FEES
      - BILLING_AGREEMENT_CHANGE_DISCLOSED
      - BILLING_AGREEMENT_CHANGE_NOT_DISCLOSED
      - BILLING_AGREEMENT_DATE_CHANGE_DISCLOSED
      - BILLING_AGREEMENT_DATE_CHANGE_NOT_DISCLOSED
      - BUYER_ATTEMPTED_RETURN
      - BUYER_BILLED_ONLY_ONCE
      - BUYER_CANCELLED_CASE
      - BUYER_CANCELLED_SERVICE
      - BUYER_FAILED_TO_DESCRIBE_ISSUE
      - BUYER_HAS_POSSESSION_OF_THE_MERCHANDISE_OR_SERVICE
      - BUYER_MADE_NO_ATTEMPT_TO_RESOLVE_WITH_SELLER
      - BUYER_NOT_IN_POSSESSION_OF_ITEM_TO_RETURN
      - BUYER_PROVIDED_CREDIT_RECEIPT
      - BUYER_RECEIVED_DUPLICATE_REFUND
      - CANCELLED_PER_TERMS_OF_BILLING_AGREEMENT
      - CARD_NOT_STOLEN
      - CARD_NOT_STOLEN_BEFORE_AUTH
      - CUSTOMER_RECOGNIZES_TRANSACTION
      - DECISION_BASED_ON_AVAILABLE_INFORMATION
      - DELIVERY_AFTER_EXPECTED_DELIVERY_DATE
      - DELIVERY_DUE_WITHIN_EXPECTED_DELIVERY_DATE
      - DELIVERY_OR_SERVICE_REFUSED
      - DOCUMENTATION_MATCHES_AMOUNT_CHARGED
      - DOCUMENTATION_MATCHES_AMOUNT_IN_PAYPAL_ACCOUNT
      - DUPLICATE_ADD_FUNDS
      - EFFORTLESS_SELLER_PROTECTION
      - IN_PERSON_DELIVERY
      - INELIGIBLE_BUYER_PROTECTION_POLICY
      - INELIGIBLE_SELLER_PROTECTION_POLICY
      - INQUIRY_OFFER_ITEM_REPLACED
      - INQUIRY_OFFER_PARTIAL_REFUND
      - INQUIRY_OFFER_REFUND_WITH_ITEM_RETURN
      - INQUIRY_OFFER_REFUND_WITH_REPLACEMENT
      - INVALID_APPEAL_REASON
      - INVALID_CHARGEBACK_SELLER_FAVOUR
      - INVALID_DELIVERY_PROOF
      - INVALID_DELIVERY_PROOF_SIGNATURE
      - INVALID_DOCUMENTATION
      - INVALID_PROOF_OF_SHIPMENT
      - INVALID_REFUND_PROOF
      - INVALID_RETURN_DELIVERY_NO_SIGNATURE_PROOF
      - INVALID_RETURN_DELIVERY_PROOF
      - INVALID_TRACKING
      - ITEM_ALTERED_REPAIRED
      - ITEM_NOT_AS_ADVERTISED
      - ITEM_NOT_AS_DESCRIBED
      - ITEM_NOT_DAMAGED
      - ITEM_NOT_DELIVERED
      - ITEM_NOT_RETURNED_TO_SELLER
      - ITEM_NOT_SHIPPED
      - ITEM_OF_DIFFERENT_QUALITY_OR_QUANTITY
      - ITEM_OUT_OF_STOCK_AND_NOT_DELIVERED
      - ITEM_RETURNED_TO_SELLER
      - ITEM_SERVICE_MISREPRESENTED
      - ITEM_SERVICE_NOT_MISREPRESENTED
      - ITEM_SERVICE_RECEIVED_BY_BUYER
      - ITEM_SOLD_AS_DESCRIBED
      - ITEM_VALUE_UNAFFECTED
      - MULTIPLE_APPEALS_WITH_SAME_REASON
      - NO_DOCUMENTATION_FROM_BUYER
      - NO_DOCUMENTATION_SUPPORTING_DUE_OF_CREDIT
      - NO_PROOF_OF_DELIVERY
      - NO_PROOF_OF_DELIVERY_INTANGIBLE
      - NO_PROTECTION_FOR_DIGITAL_GOODS_SERVICE
      - NO_RESPONSE_FROM_BUYER
      - NO_RESPONSE_FROM_BUYER_FOR_ADDITIONAL_INFO_REQUEST
      - NO_SELLER_RESPONSE
      - NO_SELLER_RESPONSE_FOR_ADDITIONAL_INFO_REQUEST
      - NO_VALID_SHIPMENT_PROOF
      - NOT_A_BILLING_ERROR
      - NOT_AN_UNAUTHORIZED_TRANSACTION
      - NOT_DUPLICATE_FUNDS_ADDED_ONCE
      - NOT_DUPLICATE_FUNDS_WITHDRAWN_ONCE
      - NOT_SHIPPED_TO_CORRECT_ADDRESS
      - PARTIAL_REFUND_ISSUED_FOR_MISSING_ITEMS
      - PARTIAL_REFUND_OFFER_ACCEPTED
      - PAYMENT_REVERSED_ALREADY
      - POS_SUBMITTED_INSTEAD_OF_POD
      - PREAUTH_INSTALLMENT_DUE
      - PROOF_OF_BILLING_AFTER_CANCELLATION_ACCEPTED
      - PROOF_OF_DUPLICATE_DENIED_OR_INSUFFICIENT
      - PROOF_OF_INCORRECT_TRANSACTION_AMOUNT_ACCEPTED
      - PROOF_OF_PAID_BY_OTHER_MEANS_NOT_SUBMITTED
      - PROOF_OF_TRACKING_NOT_SUBMITTED
      - PROTECTED_BY_PAYPAL
      - REPRESENTED_BY_PAYPAL
      - SELLER_ACCEPTED_MULTIPLE_PAYMENTS
      - SELLER_AGREED_REFUND_WITHOUT_RETURN
      - SELLER_AGREED_TO_ISSUE_CREDIT
      - SELLER_ISSUED_CREDIT_TO_BUYER
      - SELLER_ISSUED_REFUND
      - SELLER_NOT_REACHABLE
      - SELLER_RECEIVED_PAYMENT_TWICE_OR_FOR_REPLACEMENT
      - SELLER_REFUSED_REFUND
      - SELLER_REFUSED_RETURN
      - SELLER_SURCHARGED_BUYER
      - SERVICE_NOT_COMPLETED_AS_AGREED
      - SHIPPING_COMPANY_WONT_SHIP
      - TRACKING_PROOF_NOT_ENOUGH
      - TRANSACTION_AUTHORIZED_BY_CARDHOLDER
      - TRANSACTION_CANCELLED_AFTER_AUTHORIZATION_DATE
      - TRANSACTION_CANCELLED_BEFORE_SHIPMENT_SERVICE_DATE
      - TRANSACTION_MATCHES_BUYER_SPENDING_PATTERN
      - TRANSACTION_PROCESSED_CORRECTLY
      - TRUSTED_BUYER_PAYOUT
      - UNUSED_SHIPPING_LABEL
      - VALID_PROOF_OF_DELIVERY
      - VALID_PROOF_OF_DELIVERY_WITH_SIGNATURE
      - VALID_PROOF_OF_REFUND
      - VALID_PROOF_SUPPORTING_CLAIM
      - VALID_RETURN_DELIVERY_PROOF
      - VALID_RETURN_DELIVERY_PROOF_WITH_SIGNATURE
      - VALID_SHIPMENT_PROOF
      - VALUE_AFFECTED_SIGNIFICANTLY
      - PROTECTION_POLICY_APPLIES
    money_movement:
      type: object
      title: Money movement
      description: The Money movement details with party.
      properties:
        affected_party:
          type: string
          minLength: 1
          maxLength: 255
          pattern: ^[0-9A-Z_]+$
          description: The affected party in the money movement.
          enum:
          - SELLER
          - BUYER
          - PAYMENT_PROCESSOR
        amount:
          description: The amount transferred as part of the money movement.
          $ref: '#/components/schemas/money'
        asset:
          description: The asset transferred as part of the money movement.
          $ref: '#/components/schemas/cryptocurrency'
        initiated_time:
          description: The date and time when the money movement was initiated, in [Internet date and time format](https://tools.ietf.org/html/rfc3339#section-5.6).
          $ref: '#/components/schemas/date_time'
        type:
          type: string
          minLength: 1
          maxLength: 255
          pattern: ^[0-9A-Z_]+$
          description: The type of the money movement.
          enum:
          - DEBIT
          - CREDIT
        reason:
          description: The reason for the money movement.
          $ref: '#/components/schemas/money_movement_reason'
    merchant_contacted_outcome:
      type: string
      minLength: 1
      maxLength: 255
      pattern: ^[0-9A-Z_]+$
      title: Merchant Contacted Outcome
      description: The outcome when the customer has contacted the merchant.
      enum:
      - NO_RESPONSE
      - FIXED
      - NOT_FIXED
    acknowledgement_type:
      type: string
      title: Allowed Acknowledgement Type
      description: The type of acknowledgement allowed for the merchant after the customer has returned the item. The merchant can update whether the item was received and is as expected or if the item was not received.
      minLength: 1
      maxLength: 255
      pattern: ^[0-9A-Z_]+$
      readOnly: true
      enum:
      - ITEM_RECEIVED
      - ITEM_NOT_RECEIVED
      - DAMAGED
      - EMPTY_PACKAGE_OR_DIFFERENT
      - MISSING_ITEMS
    tracking_info:
      type: object
      title: Tracking Information
      description: The tracking information.
      properties:
        carrier_name:
          type: string
          minLength: 1
          maxLength: 255
          pattern: ^[0-9A-Z_]+$
          description: The name of the shipment carrier for the transaction for this dispute.
          enum:
          - UPS
          - USPS
          - FEDEX
          - AIRBORNE_EXPRESS
          - DHL
          - AIRSURE
          - ROYAL_MAIL
          - PARCELFORCE
          - SWIFTAIR
          - OTHER
          - UK_PARCELFORCE
          - UK_ROYALMAIL_SPECIAL
          - UK_ROYALMAIL_RECORDED
          - UK_ROYALMAIL_INT_SIGNED
          - UK_ROYALMAIL_AIRSURE
          - UK_UPS
          - UK_FEDEX
          - UK_AIRBORNE_EXPRESS
          - UK_DHL
          - UK_OTHER
          - UK_CANNOT_PROV_TRACK
          - UK_CANNOT_PROVIDE_TRACKING
          - CA_CANADA_POST
          - CA_PUROLATOR
          - CA_CANPAR
          - CA_LOOMIS
          - CA_TNT
          - TNT
          - CA_OTHER
          - CA_CANNOT_PROV_TRACK
          - DE_DP_DHL_WITHIN_EUROPE
          - DE_DP_DHL_T_AND_T_EXPRESS
          - DE_DHL_DP_INTL_SHIPMENTS
          - CA_CANNOT_PROVIDE_TRACKING
          - DE_GLS
          - ' DE_DPD_DELISTACK'
          - DE_HERMES
          - DE_UPS
          - DE_FEDEX
          - DE_TNT
          - DE_OTHER
          - FR_CHRONOPOST
 

# --- truncated at 32 KB (110 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/paypal/refs/heads/main/openapi/paypal-disputes-api-openapi.yml