Voiding or Refunding a Payment

Created by Richard Moore, Modified on Wed, 31 May, 2023 at 12:39 PM by Richard Moore

TABLE OF CONTENTS

Voiding and Refunding Common Questions


Any payment processed through Exact can be either voided, or refunded, either fully or partially.

  • Customers may not receive their funds for 5–10 days after the refunds depending on their bank.

  • More than one refund can be processed against a charge. However, you can’t reimburse a total greater than the original charge amount.

  • Can pre-authorizations be voided?
    • yes, unless there has already been a completion against it.

  • When to use a void rather than a refund? 
    • Merchants should run a List Transactions request to determine the transaction status. If the transaction is approved but not yet settled it should be voided. If it is approved and settled, then a refund must be used.

  • Can a Refund be voided?
    • Refunds can be voided until settled.

  • Can transactions be voided or refunded through the PayFac Dashboard?
    • This is currently unavailable.

  • What about reversing ACH transactions?
    • ACH transactions can be voided, but not refunded.

  • Can transactions be voided or refunded through the PayFac Dashboard?
    • This is currently unavailable.


Processing a Void via the API


Void a specific payment for a given account

1. Start by identifying if the transaction is approved but yet to be settled using the Get Payments for a given account request:

"id": "6463c477950e05978407ae32",
        "paymentId": "6463c477950e05978407ae32",
        "terminalId": "64625a01c816a98a00fdd995",
        "merchantId": "64625a002e31011546388b0c",
        "accountId": "64625a000b46cb07fd21d1d5",
        "type": "payment",
        "status": "completed",
        "approved": true,
        "captured": true,
        "voided": false,
        "refunded": false,
        "settled": false,
        "authorization": "ET197482",
        "amount": 10000,
        "sentToBank": true,
        "createdAt": "2023-05-16T17:59:19.465Z",
        "funded": false,
        "customerId": "64625ab2bcfcc51e1ffa1341",
        "reference": {
            "customerRef": "customerTokenTest",
            "referenceNo": "96381504"
        },
        "currencyCode": "USD",
        "bankResponse": {
            "code": "AA",
            "message": "Approved Transaction"

2. Take the paymentId and authorization and use it for the Void a specific payment for a given account request:    

Note: A void must be for the full amount otherwise an Invalid paymentId message will be returned!

{
  "amount": 10000,
  "authorization": "ET197482"
}

3. The response will show "type": "void" and if successful, "status": "completed".

{
    "id": "64779162264c131d94006319",
    "paymentId": "64779162264c131d94006319",
    "terminalId": "64625a01c816a98a00fdd995",
    "merchantId": "64625a002e31011546388b0c",
    "accountId": "64625a000b46cb07fd21d1d5",
    "type": "void",
    "status": "completed",
    "approved": true,
    "captured": false,
    "voided": false,
    "refunded": false,
    "settled": false,
    "authorization": "ET138304",
    "amount": 10000,
    "sentToBank": true,
    "createdAt": "2023-05-31T18:26:42.339Z",
    "funded": false,
    "currencyCode": "USD",
    "bankResponse": {
        "code": "AA",
        "message": "Approved Transaction"


Processing a Refund via the API


Refund a specific payment for a given account


1. Start by identifying if the transaction is approved and settled using the Get Payments for a given account request:

 "id": "6466973779ec21386cc513d4",
        "paymentId": "6466973779ec21386cc513d4",
        "terminalId": "64625a01c816a98a00fdd995",
        "merchantId": "64625a002e31011546388b0c",
        "accountId": "64625a000b46cb07fd21d1d5",
        "type": "payment",
        "status": "completed",
        "approved": true,
        "captured": true,
        "voided": false,
        "refunded": false,
        "settled": false,
        "authorization": "ET116539",
        "amount": 100,
        "sentToBank": true,
        "createdAt": "2023-05-18T21:23:03.114Z",
        "funded": false,
        "customerId": "64668e4090fd7871007e8ff4",
        "reference": {
            "customerRef": "iancallaghan",
            "referenceNo": "123456"
        },
        "currencyCode": "USD",
        "bankResponse": {
            "code": "AA",
            "message": "Approved Transaction"

2. Take the paymentId and authorization and use it for the Refund a specific payment for a given account request:    

Note: A refund can be for any amount less than the total captured by the original payment.

{
  "amount": 100,
  "authorization": "ET116539"
}

3.  The response will show "type": "refund" and if successful, "status": "completed".

    "id": "6477a119595fde82ee8223f9",
    "paymentId": "6477a119595fde82ee8223f9",
    "terminalId": "64625a01c816a98a00fdd995",
    "merchantId": "64625a002e31011546388b0c",
    "accountId": "64625a000b46cb07fd21d1d5",
    "type": "refund",
    "status": "completed",
    "approved": true,
    "captured": false,
    "voided": false,
    "refunded": false,
    "settled": false,
    "authorization": "RETURN",
    "amount": 100,
    "sentToBank": true,
    "createdAt": "2023-05-31T19:33:45.538Z",
    "funded": false,
    "currencyCode": "USD",
    "bankResponse": {
        "code": "AA",
        "message": "Approved Transaction"
















Was this article helpful?

That’s Great!

Thank you for your feedback

Sorry! We couldn't be helpful

Thank you for your feedback

Let us know how can we improve this article!

Select at least one of the reasons
CAPTCHA verification is required.

Feedback sent

We appreciate your effort and will try to fix the article