Explore Knowledge Base

Refund

02. 01. 2025

The system allows initiating “Refund” for the “Purchase via provider” operation, as a separate operation linked to the original one. After the creation, the Refund business process is available in the transaction history, as a separate operation, for both the business user (Individual or Merchant) and service users.

Refund means paying back to a customer unsatisfied with goods or services purchased.

  • Refund can be initiated only if the original transaction has status processed
  • After initiation refund links to an original transaction (in both directions)
  • Currently, refund process is always created in processed status
  • Refund processing is not changing the status of the original transaction
  • After refund creation original operation has refundProcessId
  • In the current implementation, only a full refund is allowed (full refund amount=internalSourceAmount from the original Purchase via provider operation)

Accounting

If refund is initiated for Purchase via provider operation and commission direction was OUT, only the product price that was debited from the customer wallet will be refunded, without commission.

Accounting flow:

  • issue product price amount to gate account
  • issue product price amount to issuing_balance account
  • transfer product price amount from gate account to client account

A Refund operation increases the volume of e-money in circulation.

For these operations, the approach to handling commissions is as follows:

  • The system commission and provider commission are not refunded to the client’s wallet and are not involved in the accounting.

In this case, the amount sent to the provider for settlement includes only the price of the product.

 

Refund

Service Users’ capabilities:

Initiate refund

Role: Administrator or other user with appropriate permission

Parameters to initiate a Refund

  • original transaction ID – ID of the “Purchase via provider” business process to refund
  • refund volume – full or partial (now system supports only full refund)
  • refund amount – to provide amount for partial refund
  • description – additional description for refund reason, etc.

Refund process flow

  • If original operation already has refundId
    • return error “Duplicate transaction”
  • If original operation is not “Processed“
    • return error “Incorrect operation status for refund”
  • If the original operation is in status “Processed“ – initiate a refund for this operation and add refundId in the original operation. The system creates a new operation with type Refund and returns the refund amount to the customer wallet. Due to the defined commission direction for Purchase operation (OUT) the Customer will receive the only product price amount that was debited from his wallet
  • If original operation is not found – return an error

 

View refund process

Role: Administrator or other user with appropriate permission and business user

To get a refund business process Service user can specify Refund in filter “type” POST /transactions/view – the refund business process and original operation business process will be returned in the response.

Also Service user can filter a refund in POST /transactions/view by:

  • refundId  – ID of the refund business process, returns in the processId in response to the create refund API
  • refundStatus – status of the refund business process, currently only processed available

 

View refund details in the original transaction

Role: Administrator or other user with appropriate permission and business user

The refund process is represented in the original operation as a child process (node refundProcess in POST /transactions/view).

The following Refund details are available in original operation (POST /transactions/view):

  • Refund date (process.refundProcess.createdAt)
  • Refund type (process.refundProcess.type)
  • Refund volume – Full
  • Refund number (refundProcess.id)*
  • Refund amount (process.refundProcess.internalDestinationAmount
  • Product ID (process.productId)
  • Commission details  – n/a, currently commission for Refund operation is not supported
  • Refund status (process.refundProcess.status)

* Identifier in refundProcess.id:

  • if operation type: gate_purchase – ID of the refund business process that was created for the original operation
  • if operation type: gate_refund – ID of the original business process that was refunded

APIs to perform Refund operation  

User manual to perform refund operation

Create Refund operation

Role: Administrator or other service user with appropriate permission

  • Perform authorization.
  • Go to “Transactions” section and select “Purchase via provider” operation in “Type” filter.
  • Click on “View details” and “Initiate refund“
  • Specify “Refund volume” (full or partial), “Amount” (if partial refund) and “Description”
  • Press “Refund”

After creation refund operation will be available on the Transaction history with type “Refund”. Also, Refund details will be available in the origin “Purchase via provider” operation details in the section ”Refund/Chargeback details”

Currently, the system supports only full refunds. 

View Refund operations with details

Role: Administrator or other service user with appropriate permission

  • Perform authorization.
  • Go to the “Transactions” section and select “Refund” in the filter “Type”.

Also you can provide refund ID and status in the “Refund ID” and “Refund status filters.

Currently, system supports only “Processed” status for Refund operations

After filter applies the Refunds and original Purchases via provider operation will be displayed on the “Transactions” list  

  • Click on “View details” on the operation with type “Refund” – to see refund process details

Click on “View details” on the operation with type “Purchases via provider” – to original transaction details and refund details in the section ”Refund/Chargeback details”