Submit Bulk Job For Validation

This call creates a bulk job and starts the validation process. Note that a bulk job cannot be created if there are any bulk jobs still processing or awaiting processing. Use Cancel Bulk Job to stop an unneeded job.

Request Parameters

PropertyTypeDescriptionRequired
accountUploadTypeEnum:{BulkWriteOff, BulkPayment}The desired job type. See below for details.Yes
dataList of NumbersThe data for the given job. See below for detailsYes

Upload Types

Upload TypeDescriptionData Source
BulkWriteOff (see warning below)Used to fully write off a set of invoices. Writing off an invoice cannot be undoneThe data for this upload is a list of Invoice IDs to be written off
BulkPaymentUsed to create a set of payments.The data for this upload is a list of JSON objects. The JSON is the same as Create Payment

🚧

Elevated Permissions Required

This call will result in a 404 HTTP error when using the "BulkWriteOff" job unless write offs over API have been enabled for your Fusebill account. Contact support if you would like this enabled for your organization.

Examples
curl –X POST https://secure.fusebill.com/v1/BulkApi
-H "Content-Type: application/json" \ 
-H "Authorization: Basic {APIKey}" \ 
-d "{data:[123456,1234567],accountUploadType:\"BulkWriteOff\"}"
//Json Payload
string jsonData =
  "{data:[123456,1234567],accountUploadType:\"BulkWriteOff\"}";
//Setup API key
string apiKey = "{APIKey}";
//Configure URI
WebRequest request = WebRequest.Create("HTTPS://secure.fusebill.com/v1/BulkApi");
//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()))
{
  streamWriter.Write(jsonData);
  streamWriter.Flush();
  streamWriter.Close();
}
//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 = {'data':[123456,123457],'accountUploadType':'BulkWriteOff'}
#Pass in your URI, Payload and Headers
r = requests.post('https://secure.fusebill.com/v1/BulkApi', data=json.dumps(payload), headers=headers)
print(r.content)
{
    "accountUploadType": "BulkWriteOff",
    "data": [
        13789632,
        13789624
    ]
}
Response
{
    "accountId": 9923946,
    "type": "BulkWriteOff",
    "status": "Validated",
    "createdTimestamp": "2020-12-07T14:26:21.0005583Z",
    "completedTimestamp": "2020-12-07T14:26:21.321601Z",
    "totalRecords": 3,
    "successfulRecords": 3,
    "failedRecords": 0,
    "totalProcessedRecords": null,
    "processedRecords": null,
    "failedProcessedRecords": null,
    "importingTimestamp": null,
    "processedTimestamp": null,
    "fileName": "BulkWriteOff-20201207.csv",
    "reference": "Bulk write off",
    "relatedId": null,
    "internalAutomatedFlag": false,
    "modifiedTimestamp": "0001-01-01T00:00:00",
    "id": 373334,
    "uri": null
}
{
    "ErrorId": 0,
    "HttpStatusCode": 400,
    "Errors": [
        {
            "Key": "Api Error",
            "Value": "Cannot validate and create a write off job when there is currently a job in state Validated. Pending Job id: 373334."
        }
    ]
}
Language
Authorization