QBO Webhooks Listener

<back to all web services

QboWebhooksRequest

The following routes are available for this service:
POST/qbowebhook
import java.math.*;
import java.util.*;
import java.io.InputStream;
import net.servicestack.client.*;
import com.google.gson.annotations.*;
import com.google.gson.reflect.*;

public class dtos
{

    @DataContract
    public static class QboWebhooksRequest
    {
        @DataMember(Name="eventNotifications")
        @SerializedName("eventNotifications")
        public ArrayList<QBOEventNotification> EventNotifications = null;
        
        public ArrayList<QBOEventNotification> getEventNotifications() { return EventNotifications; }
        public QboWebhooksRequest setEventNotifications(ArrayList<QBOEventNotification> value) { this.EventNotifications = value; return this; }
    }

    public static class QBOEventNotification
    {
        @DataMember(Name="realmId")
        @SerializedName("realmId")
        public String RealmId = null;

        @DataMember(Name="dataChangeEvent")
        @SerializedName("dataChangeEvent")
        public QBODataChangeEvent DataChangeEvent = null;
        
        public String getRealmId() { return RealmId; }
        public QBOEventNotification setRealmId(String value) { this.RealmId = value; return this; }
        public QBODataChangeEvent getDataChangeEvent() { return DataChangeEvent; }
        public QBOEventNotification setDataChangeEvent(QBODataChangeEvent value) { this.DataChangeEvent = value; return this; }
    }

    public static class QBODataChangeEvent
    {
        @DataMember(Name="entities")
        @SerializedName("entities")
        public ArrayList<QBOEntity> Entities = null;
        
        public ArrayList<QBOEntity> getEntities() { return Entities; }
        public QBODataChangeEvent setEntities(ArrayList<QBOEntity> value) { this.Entities = value; return this; }
    }

    public static class QBOEntity
    {
        @DataMember(Name="name")
        @SerializedName("name")
        public QBOEntityName Name = null;

        @DataMember(Name="id")
        @SerializedName("id")
        public String Id = null;

        @DataMember(Name="operation")
        @SerializedName("operation")
        public QBOOperation Operation = null;

        @DataMember(Name="lastUpdated")
        @SerializedName("lastUpdated")
        public Date LastUpdated = null;

        @DataMember(Name="deletedId")
        @SerializedName("deletedId")
        public String DeletedId = null;
        
        public QBOEntityName getName() { return Name; }
        public QBOEntity setName(QBOEntityName value) { this.Name = value; return this; }
        public String getId() { return Id; }
        public QBOEntity setId(String value) { this.Id = value; return this; }
        public QBOOperation getOperation() { return Operation; }
        public QBOEntity setOperation(QBOOperation value) { this.Operation = value; return this; }
        public Date getLastUpdated() { return LastUpdated; }
        public QBOEntity setLastUpdated(Date value) { this.LastUpdated = value; return this; }
        public String getDeletedId() { return DeletedId; }
        public QBOEntity setDeletedId(String value) { this.DeletedId = value; return this; }
    }

    public static enum QBOEntityName
    {
        Customer(20),
        Department(21),
        Vendor(21),
        Deposit(22),
        Invoice(23),
        Bill(24),
        Item(24),
        JournalCode(25),
        PurchaseOrder(25),
        JournalEntry(26),
        Estimate(26),
        RefundReceipt(26),
        Employee(27),
        SalesReceipt(27),
        TaxAgency(28),
        Term(29),
        TimeActivity(30),
        Account(30),
        Transfer(31),
        VendorCredit(31),
        CreditMemo(32),
        Purchase(33),
        Currency(33),
        Payment(35),
        PaymentMethod(36),
        BillPayment(36),
        Preferences(37),
        Budget(37),
        Class(38);

        private final int value;
        QBOEntityName(final int intValue) { value = intValue; }
        public int getValue() { return value; }
    }

    public static enum QBOOperation
    {
        Update,
        Create,
        Merge,
        Delete,
        Emailed,
        Void;
    }

}

Java QboWebhooksRequest DTOs

To override the Content-type in your clients, use the HTTP Accept Header, append the .csv suffix or ?format=csv

HTTP + CSV

The following are sample HTTP requests and responses. The placeholders shown need to be replaced with actual values.

POST /qbowebhook HTTP/1.1 
Host: wh.entersecurity.com 
Accept: text/csv
Content-Type: text/csv
Content-Length: length

{"eventNotifications":[{"realmId":"String","dataChangeEvent":{"entities":[{"name":"Customer","id":"String","operation":"Update","lastUpdated":"\/Date(-62135596800000-0000)\/","deletedId":"String"}]}}]}
HTTP/1.1 200 OK
Content-Type: text/csv
Content-Length: length

(string)