NetSuite - Payment refunds
Once a payment has been paid out, it’s eligible to be refunded back to the customer’s bank account through GoCardless. GoCardless supports full and partial refunds, and you can read more about enabling this feature here.
To initiate a refund through NetSuite, you’ll create a credit memo against the relevant invoice, and populate the below fields.
Note: the invoice must have a “paid out” payment against it on the “GoCardless > Transaction information” subtab. If you attempt a refund for a payment that isn’t paid out, it will fail.
| Field | GC Subtab | Description | Editable? |
|---|---|---|---|
| Refund with GoCardless | GoCardless > Request information |
(Required for the Refund initiation) When this checkbox is selected, a refund request will be sent through to GoCardless following the credit memo save. Note: the credit memo must be created against an invoice with a “paid out” GoCardless payment. If it’s created from an invoice without a GoCardless payment, it will fail as refunds need to be created against payments in GoCardless. If it’s created against an invoice with a payment that isn’t in the “paid out” status, it will also fail as non-paid out payments cannot be refunded. |
Y |
| Refund reference | GoCardless > Request information |
(Optional) An optional refund reference can be input before saving a credit memo with the ""Refund with GoCardless"" checkbox selected. When a reference is populated, it will set the refund reference in GoCardless, which appears on the customer's bank statement. |
Y (10 character limit) |
| Items > amount | N/A |
(Required for the Refund initiation) When a credit memo is saved with the "Refund with GoCardless" checkbox selected, the refund request will be sent to GoCardless for the amount on the items tab. This amount can be adjusted in the items section to process a partial refund. |
Y |
The following non-editable fields will also be populated on the credit memo for viewing purposes:
| Field | GC Subtab | Description | Editable? |
|---|---|---|---|
| GoCardless account | GoCardless > Request information |
(Required for Refund initiation) This is auto-populated with the GoCardless configuration record (i.e. account) that's associated with the customer. |
N |
| GoCardless payment ID | GoCardless > Transaction information |
(Required for Refund initiation) This is auto-populated with the GoCardless payment ID from the associated invoice. This is the payment that will be refunded as a result of saving the credit memo with the "Refund with GoCardless" checkbox selected. |
N |
Upon saving the credit memo with “Refund with GoCardless” selected, a warning message will be displayed indicating the credit will be locked to prevent any updates after the refund request is sent to GoCardless for processing.
After the credit memo is saved, the refund will be created in GoCardless within minutes. Once the refund is created in GoCardless -
1. The following fields will be populated credit memo:
| Field | GC Subtab | Description | Editable? |
|---|---|---|---|
| Refund status | GoCardless > Request information | The status of the refund request to GoCardless: Processed: This means the refund request was successfully sent to GoCardless. Failed: This means the refund request to GoCardless failed. The related error message will be displayed in the "Refund error" field. The credit memo will be unlocked when this occurs. |
N |
| Refund error | GoCardless > Request information | When this "Integration status" field is set to "failed", the error message will be displayed in this field to explain why it failed. After the appropriate adjustments have been made, you can re-attempt the refund request by re-saving the credit memo with the "Refund with GoCardless" box selected. | N |
| GoCardless refund ID | GoCardless > Transaction information | The GoCardless refund ID. | N |
| Refund | GoCardless > Transaction information | The NetSuite refund object that’s generated as the result of the GoCardless refund being created. | N |
2. A refund will be created in NetSuite, and linked in the credit memo’s “Refund” field. The transaction will be booked against the Undeposited Funds account.
Troubleshooting missing Refund records:
If the Refund isn’t created in NetSuite after you initiate a GoCardless refund from a credit memo, it could be due to the following:
- The GoCardless Refund failed - if the GoCardless refund request failed, the Refund won’t be created in NetSuite. The GoCardless refund request could fail if you attempted the refund against an invoice without a “paid out” GoCardless payment to refund, you don’t have Refunds enabled in your GoCardless account, or you don’t have an available refund balance in your GoCardless account. You can tell whether the GoCardless refund was successful by checking the Refund status and Refund error fields on the GoCardless > Request information subtab of the credit memo.
- The Undeposited Funds account cannot be found - To create a Refund record in NetSuite, the integration performs a lookup on the configured Undeposited Funds account ID. If an Undeposited Funds account ID wasn’t configured when your integration was set up by GoCardless or a bank account isn’t found using the configured ID, a fallback lookup is performed that searches for an account by the name "Undeposited Funds". If the Undeposited Funds account isn’t found by either method, the Refund object will fail to be created in NetSuite. Please reach out to GoCardless to confirm your Undeposited Funds account ID is configured correctly if this occurs.
- Closed accounting periods - A locked period will prevent the Customer Refund from being created.
-
The NetSuite Refund was created, but it’s not populated on the Credit Memo - this can occur if the credit memo fails to be updated by the integration after the Refund is created in NetSuite. The integration could fail to update the credit memo in one of the below scenarios:
- You have custom mandatory fields to the Credit Memo form that the integration doesn't populate - The integration updates credit memos with a minimal set of fields (GoCardless refund ID, payment ID, refund status, refund error, and NetSuite refund ID). Any additional required fields can cause a creation failure. The “Ignore Mandatory Fields” flag is set to true to prevent these types of issues, but this flag does not bypass all validations (for example, server-side script validation rules). Please review and verify whether there are any credit memo validations that wouldn’t be prevented by the“Ignore Mandatory Fields” setting before using this functionality.
- Closed or locked accounting periods - If the posting period is locked, NetSuite will reject the Credit Memo record update.
Data flow - payment refunds