Refunds

This API provides endpoints for managing refunds related to payments. It includes the ability to create, retrieve, and list refunds.

1. List refunds

[GET] /refunds

This endpoint retrieves a list of refunds based on query parameters. It supports filtering, pagination, and sorting.

Request:

const query = {
  page: number,  // Page number for pagination
  limit: number, // Number of items per page
  query: object  // Optional filter conditions
};

Query Parameters:

  • page: The page number for pagination (optional, defaults to 1).

  • limit: The number of refunds to retrieve per page (optional, defaults to 10).

  • query: A comma-separated list of key-value pairs to filter results. The keys will be the refund fields, and values will be used to match corresponding fields (optional).

Response:

{
  "refunds": [ /* Array of refund objects */ ],
  "page": 1,
  "pageSize": 10,
  "totalPages": 5
}

Refund Object Example:

2. Get Refund by ID

[GET] /refunds/:id

This endpoint retrieves a specific refund by its ID.

Request:

  • URL Parameter:

    • id: The ID of the refund to retrieve.

Response:

3. Create Refund

[POST] /refunds

This endpoint creates a new refund for an existing payment.

Request:

Response:

Validation:

  • The request must include a valid paymentId and refundTo address.

  • The paymentId must correspond to a confirmed payment.

  • The refundTo address must be a valid Ethereum address (starts with "0x" and has a length of 42 characters).

  • The refund amount must not exceed the available funds in the receiver’s account.

  • Refunds cannot be processed if the payment has been withdrawn.

Error Responses:

  • 400 Bad Request: Missing required fields or invalid data (e.g., invalid address, insufficient funds).

  • 401 Unauthorized: If the user is not authenticated.

  • 404 Not Found: If the payment or refund does not exist.

  • 500 Internal Server Error: If an unexpected error occurs.

  • 500 Internal Server Error: If an unexpected error occurs.

4. Create Partial Refunds

[POST] /refunds/partial

This endpoint creates a new partial refund for an existing payment.

Request:

Response:

Validation:

  • The request must include a valid paymentId and refundTo address.

  • The paymentId must correspond to a confirmed payment.

  • The refundTo address must be a valid Ethereum address (starts with "0x" and has a length of 42 characters).

  • The refund amount must not exceed the available funds in the receiver’s account.

  • Refunds cannot be processed if the payment has been withdrawn.

Error Responses:

  • 400 Bad Request: Missing required fields or invalid data (e.g., invalid address, insufficient funds).

  • 401 Unauthorized: If the user is not authenticated.

  • 404 Not Found: If the payment or refund does not exist.

  • 500 Internal Server Error: If an unexpected error occurs.

  • 500 Internal Server Error: If an unexpected error occurs.

Última actualización