| 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;
}
}
To override the Content-type in your clients, use the HTTP Accept Header, append the .jsv suffix or ?format=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)