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_…")