Easy Labs
SDKsRubyResources

Disputes

Disputes — methods, parameters, and examples for easy-sdk (gem).

A dispute (a.k.a. chargeback) is a customer's challenge to a transfer. The SDK lets you list and retrieve disputes, mutate their tags, and drive the lifecycle: accept the dispute, upload evidence, or submit your response.

Accessed via client.disputes.

Methods

list(limit: nil, offset: nil, ids: nil)

GET /disputes.

client.disputes.list(limit: 25)

retrieve(id)

GET /disputes/:id.

update(id, tags:)

PATCH /disputes/:id. Mutates tags only.

client.disputes.update("dp_…", tags: { reason: "duplicate", agent: "support@example.com" })

Lifecycle actions

accept(id)

POST /disputes/:id/accept. Concede the dispute.

client.disputes.accept("dp_…")

submit(id)

POST /disputes/:id/submit. Submit your evidence package for review.

client.disputes.submit("dp_…")

upload_evidence(id, **parts)

POST /disputes/:id/evidence. Multipart/form-data upload — pass scalar fields as keyword args and the file as a Net::HTTP::UploadIO (or any IO-like object accepted by the multipart-post gem).

require "net/http/post/multipart"

client.disputes.upload_evidence(
  "dp_…",
  evidence_type: "receipt",
  file:          UploadIO.new(File.open("receipt.pdf"), "application/pdf", "receipt.pdf")
)

list_evidence(id)

GET /disputes/:id/evidence. Every evidence item attached to the dispute.

client.disputes.list_evidence("dp_…")

Object shape

:id, :transfer_id, :reason, :state (NEEDS_RESPONSE, UNDER_REVIEW, WON, LOST, ACCEPTED, …), :amount, :currency, :respond_by, :evidence, :tags, :created_at, …

Webhook events

Subscribe to dispute.created and dispute.updated.

Examples

Build an evidence package and submit it

require "net/http/post/multipart"

File.open("invoice.pdf") do |io|
  client.disputes.upload_evidence(
    "dp_…",
    evidence_type: "invoice",
    file:          UploadIO.new(io, "application/pdf", "invoice.pdf")
  )
end

File.open("shipping_label.pdf") do |io|
  client.disputes.upload_evidence(
    "dp_…",
    evidence_type: "shipping_documentation",
    file:          UploadIO.new(io, "application/pdf", "shipping_label.pdf")
  )
end

client.disputes.submit("dp_…")

Concede a clearly-fraudulent dispute

client.disputes.accept("dp_…")

On this page