Create Reversal

This function allows you to create a reversal on a specific customer for a specific amount applied to a specific charge.

URL Parameters

previewBooleanIf true, then the returned JSON will show a preview for the effects of the reversal, but the actual reversal will not occur. This includes the new values for the discountAmount, taxAmount, chargeAmount, and outstandingBalance. False by default.Optional

Request Parameters

chargeIdIntegerThis is the Fusebill charge ID of the charge the reversal will apply against.Yes
reverseChargeAmountDecimalThis is the amount of the reversal.Yes if reverseChargeOption is "Amount" or "NetAmount"
reverseChargeOptionEnum: {Full, Unearned, Amount, NetAmount}This option tells Fusebill how to perform this reversal. The system can reverse all of the charge, the unearned (prorated) value of the charge, a specific amount of the charge, or a specific net amount of the charge. These options correspond to "Full", "Unearned", "Amount", and "NetAmount" respectively.*Yes
referenceStringThis is a custom string. The intended use is to indicate the reason for the reversal.
[Max Length: 500 characters]

* When reversing with the net amount option, the discounts and taxes on the charge may make it impossible to reverse the value as requested. In these cases Fusebill will get as close as possible. Use the preview URL parameter to see what will occur. The value of reverseChargePreview.reversalAmountWarningFlag indicates if the exact amount is impossible.

curl -X POST "" \
	-H "Content-Type: application/json" \
	-H "Authorization: Basic {APIKey}" \
	-d "{chargeId:{chargeId},reverseChargeAmount:5.5,reverseChargeOption:'Amount'}"
//Json Payload
string jsonData = "{chargeId:{chargeId},reverseChargeAmount:5.5,reverseChargeOption:'Amount'}";
//Setup API key
string apiKey = "{APIKey}";
//Configure URI
WebRequest request = WebRequest.Create("HTTPS://");
//Add Content type
request.ContentType = "application/json";
//Add Api key authorization
request.Headers.Add(HttpRequestHeader.Authorization, "Basic " + apiKey);
//Set request method
request.Method = "POST";
//Add the json data to request
using (var streamWriter = new StreamWriter(request.GetRequestStream()))
//Perform the request
var httpResponse = (HttpWebResponse)request.GetResponse();
//Record the response from our request
var result = "";
using (var streamReader = new StreamReader(httpResponse.GetResponseStream()))
  result = streamReader.ReadToEnd();
#Import library JSON
import json
#Import library Requests
import requests
#Pass in a dictionary to the Headers parameter
headers = {'Authorization' : 'Basic {APIKey}', 'Content-Type' : 'application/json'}
#Pass in a dictionary to the Payload parameter
payload = {"chargeId":{id},"reverseChargeAmount":278,"reverseChargeOption":'Amount'}
#Pass in your URI, Payload and Headers
r ='', data=json.dumps(payload), headers=headers)
	"reference":"Accidental product inclusion"
	"reference":"Item arrived with dent"
    "reference": "Accidental product inclusion",
    "amount": 283.330000,
    "originalChargeId": 66799853,
    "id": 66799859,
    "uri": ""
    "reference": "Explanation in Customer Support Ticket #472",
    "amount": 2.00,
    "originalChargeId": 0,
    "reverseChargePreview": {
        "chargeAmount": 200.000000,
        "discountAmount": null,
        "taxAmount": 10.000000,
        "netChargeAmount": 210.000000,
        "netInvoiceAmount": 262.5000,
        "outstandingBalance": 210.0000,
        "reversalAmountWarningFlag": false
    "id": 0,
    "uri": ""
    "ErrorId": 0,
    "HttpStatusCode": 400,
    "Errors": [
            "Key": "reverseCharge.Reference",
            "Value": "The field Reference must be a string with a maximum length of 500."