Refund
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.
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”