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.*


@DataContract
open class QboWebhooksRequest
{
    @DataMember(Name="eventNotifications")
    @SerializedName("eventNotifications")
    open var EventNotifications:ArrayList<QBOEventNotification>? = null
}

open class QBOEventNotification
{
    @DataMember(Name="realmId")
    @SerializedName("realmId")
    open var RealmId:String? = null

    @DataMember(Name="dataChangeEvent")
    @SerializedName("dataChangeEvent")
    open var DataChangeEvent:QBODataChangeEvent? = null
}

open class QBODataChangeEvent
{
    @DataMember(Name="entities")
    @SerializedName("entities")
    open var Entities:ArrayList<QBOEntity>? = null
}

open class QBOEntity
{
    @DataMember(Name="name")
    @SerializedName("name")
    open var Name:QBOEntityName? = null

    @DataMember(Name="id")
    @SerializedName("id")
    open var Id:String? = null

    @DataMember(Name="operation")
    @SerializedName("operation")
    open var Operation:QBOOperation? = null

    @DataMember(Name="lastUpdated")
    @SerializedName("lastUpdated")
    open var LastUpdated:Date? = null

    @DataMember(Name="deletedId")
    @SerializedName("deletedId")
    open var DeletedId:String? = null
}

enum class QBOEntityName(val value:Int)
{
    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),
}

enum class QBOOperation
{
    Update,
    Create,
    Merge,
    Delete,
    Emailed,
    Void,
}

Kotlin QboWebhooksRequest DTOs

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

HTTP + JSV

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/jsv
Content-Type: text/jsv
Content-Length: length

{
	eventNotifications: 
	[
		{
			realmId: String,
			dataChangeEvent: 
			{
				entities: 
				[
					{
						name: Customer,
						id: String,
						operation: Update,
						lastUpdated: 0001-01-01,
						deletedId: String
					}
				]
			}
		}
	]
}
HTTP/1.1 200 OK
Content-Type: text/jsv
Content-Length: length

(string)