Sync a record to QuickBooks

distru-sync-to-quickbooksWriteQuickBooks

Pushes one record to QuickBooks again, with anything it depends on.

Inputs

Every tool also takes the common inputs.

FieldTypeRequiredDescription
invoiceIdstringNoResolve via distru-search-invoices.
paymentIdstringNoInvoice or purchase payment. Resolve via distru-search-invoice-payments or distru-search-purchase-payments.
creditIdstringNoResolve via distru-search-credits.
purchaseOrderIdstringNoResolve via distru-search-purchase-orders.
quickbooksItemIdstringNoResolve via distru-search-quickbooks-items.

Output

Presence on a nested field assumes its parent exists.

FieldTypePresence
quickbooksActivityobjectAlways
quickbooksActivity.idstringAlways
quickbooksActivity.typeenum
BULK_SYNCSYNC
Always
quickbooksActivity.actionenum
CREATEDELETEINACTIVATEUPDATEVOID
Can be null
quickbooksActivity.statusenum
ERRORPENDINGSYNCED
Always
quickbooksActivity.titlestringAlways
quickbooksActivity.errorstringCan be null
quickbooksActivity.failureReasonenum
DEPENDENCY_GRAPH_CHANGEDDEPRECATEDDUPLICATE_DOCUMENT_NUMBEROTHERQBO_CUSTOMER_EXISTS
Can be null
quickbooksActivity.dismissedAtstringCan be null
quickbooksActivity.insertedAtstringAlways
quickbooksActivity.updatedAtstringAlways
quickbooksActivity.creatorobjectCan be null
quickbooksActivity.creator.idstringAlways
quickbooksActivity.creator.profileobjectAlways
quickbooksActivity.creator.profile.fullNamestringAlways
quickbooksActivity.invoiceobjectCan be null
quickbooksActivity.invoice.idstringAlways
quickbooksActivity.invoice.invoiceNumberstringAlways
quickbooksActivity.invoicePaymentobjectCan be null
quickbooksActivity.invoicePayment.idstringAlways
quickbooksActivity.invoicePayment.paymentNumberstringAlways
quickbooksActivity.creditobjectCan be null
quickbooksActivity.credit.idstringAlways
quickbooksActivity.credit.creditNumberstringAlways
quickbooksActivity.purchaseOrderobjectCan be null
quickbooksActivity.purchaseOrder.idstringAlways
quickbooksActivity.purchaseOrder.purchaseNumberstringAlways
quickbooksActivity.purchasePaymentobjectCan be null
quickbooksActivity.purchasePayment.idstringAlways
quickbooksActivity.purchasePayment.paymentNumberstringAlways
quickbooksActivity.purchasePayment.purchaseOrderobjectCan be null
quickbooksActivity.purchasePayment.purchaseOrder.idstringAlways
quickbooksActivity.purchasePayment.purchaseOrder.purchaseNumberstringAlways
quickbooksActivity.returnobjectCan be null
quickbooksActivity.return.idstringAlways
quickbooksActivity.return.returnNumberstringAlways
quickbooksActivity.taxobjectCan be null
quickbooksActivity.tax.idstringAlways
quickbooksActivity.tax.namestringAlways
quickbooksActivity.paymentMethodobjectCan be null
quickbooksActivity.paymentMethod.idstringAlways
quickbooksActivity.paymentMethod.namestringAlways
quickbooksActivity.quickbooksItemobjectCan be null
quickbooksActivity.quickbooksItem.idstringAlways
quickbooksActivity.quickbooksItem.namestringAlways
quickbooksActivity.entitiesobject[]Always
quickbooksActivity.entities[].entityTypeenum
CREDITINVOICEINVOICE_PAYMENT
Always
quickbooksActivity.entities[].statusenum
ERRORPENDINGSKIPPEDSYNCED
Always
quickbooksActivity.entities[].invoiceobjectCan be null
quickbooksActivity.entities[].invoice.idstringAlways
quickbooksActivity.entities[].invoice.invoiceNumberstringAlways
quickbooksActivity.entities[].invoicePaymentobjectCan be null
quickbooksActivity.entities[].invoicePayment.idstringAlways
quickbooksActivity.entities[].invoicePayment.paymentNumberstringAlways
quickbooksActivity.entities[].creditobjectCan be null
quickbooksActivity.entities[].credit.idstringAlways
quickbooksActivity.entities[].credit.creditNumberstringAlways
What the AI reads

Pushes one record's current Distru data to QuickBooks Online, with the records it depends on that aren't in QuickBooks yet, and returns the activity that tracks the push, as distru-search-quickbooks-activities returns it. Takes exactly one record id. Use it to fix a failed activity or a record whose qbSyncStatus isn't SYNCED; the record is pushed even when already SYNCED. An invoice, invoice payment or credit syncs as one BULK_SYNC whose entities list every record it includes. Dependencies are transitive: an invoice brings its unsynced payments; a payment its invoice, the credits it spends and the overpayment credit it created; a credit the payment that created it and the payments that spend it; and each record brought along brings its own, stopping at records already synced. A voided invoice or invoice payment is voided in QuickBooks instead. A purchase order brings its bill payments that aren't synced; they get their own activities once the bill has synced. A bill payment whose purchase order isn't synced goes through the purchase order, so the returned activity is the purchase order's. It never overwrites a QuickBooks record that has the same document number. The returned activity is PENDING: the push runs in the background, so check it later with distru-search-quickbooks-activities by its id. Rejected with the reason when QuickBooks isn't connected and set up (distru-get-quickbooks-integration), when the QuickBooks settings don't sync that kind of record, when the record can't sync (a draft purchase order, for one), or when a sync of it is already queued.