Disputes API

Manage transaction disputes raised by customers or their banks.

class djpaystack.api.disputes.DisputeAPI(client)[source]

Bases: BaseAPI

Disputes API

list(per_page: int = 50, page: int | None = None, from_date: str | None = None, to_date: str | None = None, transaction: str | None = None, status: str | None = None) Dict[str, Any][source]

List disputes

fetch(id: str) Dict[str, Any][source]

Fetch dispute

list_transaction_disputes(id: str) Dict[str, Any][source]

List transaction disputes

update(id: str, refund_amount: int, uploaded_filename: str | None = None) Dict[str, Any][source]

Update dispute

add_evidence(id: str, customer_email: str, customer_name: str, customer_phone: str, service_details: str, delivery_address: str | None = None, delivery_date: str | None = None) Dict[str, Any][source]

Add evidence to dispute

get_upload_url(id: str, upload_filename: str) Dict[str, Any][source]

Get upload URL for dispute evidence

resolve(id: str, resolution: str, message: str, refund_amount: int, uploaded_filename: str, evidence: int | None = None) Dict[str, Any][source]

Resolve dispute

export(per_page: int = 50, page: int | None = None, from_date: str | None = None, to_date: str | None = None, transaction: str | None = None, status: str | None = None) Dict[str, Any][source]

Export disputes

Quick Reference

from djpaystack import PaystackClient
client = PaystackClient()

# List disputes
client.disputes.list(page=1, per_page=50)

# Fetch a dispute
client.disputes.fetch(id='123')

# List transaction disputes
client.disputes.list_transaction_disputes(id='txn-123')

# Update a dispute
client.disputes.update(id='123', refund_amount=50000)

# Add evidence
client.disputes.add_evidence(
    id='123',
    customer_email='customer@example.com',
    customer_name='John Doe',
    customer_phone='2348012345678',
    service_details='Order delivered on 2025-01-15',
)

# Get upload URL for evidence files
client.disputes.get_upload_url(id='123')

# Resolve a dispute
client.disputes.resolve(
    id='123',
    resolution='merchant',
    message='Refund issued',
    refund_amount=50000,
)

# Export disputes
client.disputes.export(from_='2025-01-01', to='2025-06-30')

Webhook Events

  • charge.dispute.create — New dispute raised

  • charge.dispute.remind — Dispute deadline reminder

  • charge.dispute.resolve — Dispute resolved