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 .xml suffix or ?format=xml

HTTP + XML

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: application/xml
Content-Type: application/xml
Content-Length: length

<QboWebhooksRequest xmlns:i="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://schemas.datacontract.org/2004/07/ESI.Service.QBOWebhooksListener">
  <eventNotifications>
    <QBOEventNotification>
      <DataChangeEvent>
        <Entities>
          <QBOEntity>
            <DeletedId>String</DeletedId>
            <Id>String</Id>
            <LastUpdated>0001-01-01T00:00:00</LastUpdated>
            <Name>Customer</Name>
            <Operation>Update</Operation>
          </QBOEntity>
        </Entities>
      </DataChangeEvent>
      <RealmId>String</RealmId>
    </QBOEventNotification>
  </eventNotifications>
</QboWebhooksRequest>
HTTP/1.1 200 OK
Content-Type: application/xml
Content-Length: length

(string)