O slideshow foi denunciado.
Utilizamos seu perfil e dados de atividades no LinkedIn para personalizar e exibir anúncios mais relevantes. Altere suas preferências de anúncios quando desejar.

Developer Day Tech Session at QuickBooks Connect Sydney 2017

133 visualizações

Publicada em

Need help integrating with QuickBooks Online? Check out tech tips and best practices from Vishal and JP.

Publicada em: Tecnologia
  • Entre para ver os comentários

  • Seja a primeira pessoa a gostar disto

Developer Day Tech Session at QuickBooks Connect Sydney 2017

  1. 1. Vishal Aggarwal, Senior Product Manager Jean-Philippe (JP) Lemoussu, Solution Architect VIP Developer Day #QBConnect@QuickBooksAU
  2. 2. #QBConnect@QuickBooksAU 2 Today’s speakers Vishal Aggarwal Senior Product Manager JP Lemoussu Solution Architect
  3. 3. #QBConnect@QuickBooksAU Suggested topics Getting Started and Publishing Apps Webhooks How do I get support? Staying Connected Q&A
  4. 4. Getting Started and Publishing Apps
  5. 5. #QBConnect@QuickBooksAU 5
  6. 6. #QBConnect@QuickBooksAU 6
  7. 7. #QBConnect@QuickBooksAU 7 API Entities Bill BillPayment CreditMemo Deposit Estimate Invoice JournalEntry Payment Purchase PurchaseOrder RefundReceipt SalesReceipt TimeActivity Transfer VendorCredit Account Budget Class CompanyCurrenc y Customer Department Employee Item PaymentMethod TaxAgency TaxCode TaxRate TaxService Term Vendor Lists AccountListDetail AccountPayable AgingReport BalanceSheet CashFlow CustomerBalance CustomerIncome Expensesby Vendor GeneralLedger InventoryValuation ProfitandLoss SalesReports TrialBalance VendorBalance Reporting Attachable Batch ChangeDataCapt ure CompanyInfo Entitlements ExchangeRate Preferences Other QuickBooks APIs Transactions
  8. 8. #QBConnect@QuickBooksAU 8 SDKs Open source Official .Net Java PHP NodeJS Ruby Python Perl Shell scripting
  9. 9. #QBConnect@QuickBooksAU 9 Tools • API Explorer • Postman Collection • Sample Apps • QuickBooks Online Sandbox • Harmony Design System • OAuth Playground • Wasabi (A/B testing)
  10. 10. #QBConnect@QuickBooksAU 10 Harmony design patterns design.quickbooks.com
  11. 11. #QBConnect@QuickBooksAU 11 Publishing - What should I choose?
  12. 12. #QBConnect@QuickBooksAU 12 Technical Requirements UI Components, QuickBooks Data Connections, Sign in with Intuit button, Interaction with apps.com Complete Requirements – Essentials -> Publish and market your app -> Technical Requirements Publishing on QuickBooks App Store Security Requirements App Server Configurations, Attack Vulnerability, QuickBooks Data Usage, Encryption, Sessions/Cookies Complete Requirements – Essentials -> Publish and market your app -> Security Requirements Marketing Requirements App Card Review, Logo and branding, Contact and Support information, etc Complete Requirements – Essentials -> Publish and market your app -> Marketing Requirements
  13. 13. #QBConnect@QuickBooksAU 13 Publishing on QuickBooks App Store
  14. 14. Webhooks
  15. 15. #QBConnect@QuickBooksAU 15 Advantages • PushModelcomparedtoPollModel • Simplifiesintegrationfordevelopers • Improvesuserexperiencewithnearreal-timedata. • Enablesnewerusecases/pusheslimitsofcurrent integration. • LoadreductiononQBO Limitations • ComplicateandIncreasesintegrationcostfordevelopers • Sub-optimalexperienceforSMBsduetodelayindatasync • ContinuouspollingaddsloadondevelopersandQBOservers Overview of Webhooks
  16. 16. #QBConnect@QuickBooksAU 16
  17. 17. #QBConnect@QuickBooksAU 17 eventNotifications Arrayofthenotificationchanges.Althoughthenotificationis designedtoaccommodatemultiplerealmIDs,itonlyusesoneatthis time.Ifyourappisconnectedtomultiplecompanies,youwillreceive multipleeventNotifications(oneperrealmID). Payload Details realmId IdoftheQuickBookscompanythathaschangeddata name Thenameoftheentitytypethathaschanged id Idoftheentitythatchanged operation Typeofchangeexperienced lastUpdated TheupdatedtimestampinUTC deletedId OnlyforMergeevents–TheIdofentitythatwasdeletedandmerged.
  18. 18. #QBConnect@QuickBooksAU 18 Supported Entities/Operations Create Update Delete Merge Void
  19. 19. #QBConnect@QuickBooksAU 19 Reliability Respond Promptly Manage Concurrency Notification Ordering Retry Policy Integration Best Practices
  20. 20. #QBConnect@QuickBooksAU 20 Reliability • In order to compensate for the possibility of missed or dropped packets, make a ChangeDataCapture (CDC) call for each entity received up to the last notification time (as shown in sample app) upon receipt of new notification. • You can additionally make a daily CDC call for all entities to ensure that your database is consistently up to date. Integration Best Practices
  21. 21. #QBConnect@QuickBooksAU 21 Respond Promptly • Your endpoint should respond within three seconds; otherwise, the transaction will time out and be retried. • To make sure you can always respond quickly, do not process the notification payload or perform complex operations within the Webhooks endpoint implementation. • It is a good idea to do the processing on a separate thread asynchronously using a queue. Integration Best Practices
  22. 22. #QBConnect@QuickBooksAU 22 Manage Concurrency • Event notifications are sent for each realmID at a time. • When there are multiple changes happening rapidly, your app may receive notifications frequently. • Care should be taken to process the queue linearly to avoid processing the same changes more than once. Integration Best Practices
  23. 23. #QBConnect@QuickBooksAU 23 Notification Ordering • While we make all effort to send the events in order, it is possible to receive an older event in a subsequent notification. • The event timestamp field in the notification payload is always the source of truth for when an event has occurred. Integration Best Practices
  24. 24. #QBConnect@QuickBooksAU 24 Retry Policy • If the endpoint is down, we will retry progressively (first time after 20 minutes, then again after 30 minutes, and a third time after 50 minutes) and finally drop the message. • The endpoint will become inactive after one day. Integration Best Practices
  25. 25. #QBConnect@QuickBooksAU 25 • API based subscription per company • Configure aggregation period • Event Log Viewer • Capability to replay events Looking into the Future
  26. 26. How Do I Get Support?
  27. 27. #QBConnect@QuickBooksAU 27
  28. 28. #QBConnect@QuickBooksAU 28
  29. 29. #QBConnect@QuickBooksAU 29
  30. 30. #QBConnect@QuickBooksAU 30
  31. 31. #QBConnect@QuickBooksAU 31
  32. 32. #QBConnect@QuickBooksAU 32 1. Subscribe to the news digest 2. Check the Friday hangouts How do I stay connected? 3. Subscribe to the blog
  33. 33. Questions?