5. Refund interface
This XML-interface enables Merchant to cancel transaction and return funds to Client. This kind of refund is possible to process up to 01.00 o’clock next day after payment. This interface also used for returning funds out of proceeds of future earnings if this is foreseen by the contract.
Action - https://api.paysoft.solutions/merchants/refund
Method - POST
XML-request format:
<Command>
<LMI_MERCHANT_ID></LMI_MERCHANT_ID>
<LMI_SYS_PAYMENT_ID></LMI_SYS_PAYMENT_ID>
<RefundId></RefundId>
<ActionAmount></ActionAmount>
<RefundAmount></RefundAmount>
<LMI_HASH></LMI_HASH>
</Command>
Name | XML-format | Description |
---|---|---|
Merchant ID | LMI_MERCHANT_ID | Merchant’s POS ID which received a payment from Client. |
Internal payment number in PaySoft system | LMI_SYS_PAYMENT_ID | |
Unique refund request number | RefundId | Refund request number is a unique one in LMIMERCHANT_ID. It may content a letters of Roman alphabet, figures, signs “-" and "" (without inverted commas; a line can’t begin from signs). Maximum lenth of the number - 20 symbols. |
Total payment amount | ActionAmount | |
Cancellation amount | RefundAmount | Refund amount must be less or equal to full amount of payment. Some payment systems support partial payment refunds. |
Control signature | LMI_HASH | Control signature of request which is created by encoding outgoing text of XML-request with blank field LMI_HASH and blank secret key SecretKey using algorithm chosen in Merchant’s cabinet. Received signature is transferred at tag LMI_HASH. The recommended encoding algorithm is SHA256. |
XML-response format:
<?xml version="1.0" encoding="UTF-8"?>
<Response>
<Retval></Retval>
<Retdesc></Retdesc>
<Retdata>
<ResultCode></ResultCode>
<ResultMsg></ResultMsg>
</Retdata>
</Response>
Name | XML-format | Description |
---|---|---|
Operation code of request | Retval | 1 (one) – successful transaction |
Description of operation code | Retdesc | |
Refund code | Retdata/ResultCode | |
Description of refund code | Retdata/ResultMsg |
NOTE! Unlike other interfaces and forms, refund interface has 2 statuses (operation codes). Operation code of request (Retval) indicates successful or unsuccessful refund request, while refund result code (Retdata/ResultCode) indicates successful refunds in payment system.
In case of receiving a non-final response in field Retdata/ResultCode it’s possible to make another request with the same parameters (necessarily with the same RefundId) to get a status of the processed request.
Codes of refund operations
Code | Explanation | Final/non-final |
---|---|---|
600 | Refund was successful | Final |
601 | Transaction not found | Final |
602 | Refund is possible only for successful transactions | Final |
603 | Refund time is over | Final |
604 | Invalid payment amount | Final |
605 | Invalid refund amount | Final |
606 | Refund amount cannot exceed full amount of payment | Final |
607 | Refund operation is being processed | Non-final |
608 | Transaction is already refunded | Final |
609 | Payment system doesn’t support refunds | Final |
610 | Payment system doesn’t support partial refunds | Final |
618 | Invalid ID refund | Final |