{"id":623,"date":"2024-06-28T09:11:43","date_gmt":"2024-06-28T16:11:43","guid":{"rendered":"https:\/\/embedded.gusto.com\/blog\/?p=623"},"modified":"2024-06-28T10:11:46","modified_gmt":"2024-06-28T17:11:46","slug":"webhooks-developer-portal","status":"publish","type":"post","link":"https:\/\/embedded.gusto.com\/blog\/webhooks-developer-portal\/","title":{"rendered":"Testing and Managing Webhooks: New in the Dev Portal"},"content":{"rendered":"<h2><b><i>A leap towards self-service<\/i><\/b><\/h2>\n<p><span style=\"font-weight: 400\">Our Embedded Payroll partners want to build robust payroll products that are reliable, performant, and accurate. Building an embedded payroll application is no small feat. We want to embrace any opportunity to accelerate that development process.\u00a0<\/span><\/p>\n<p><span style=\"font-weight: 400\">As we continue to work with new and existing partners, we have seen that there is a great opportunity to build self-service tooling to speed up the development process. In addition to our <\/span><a href=\"https:\/\/docs.gusto.com\/embedded-payroll\/docs\/introduction\"><span style=\"font-weight: 400\">API<\/span><\/a><span style=\"font-weight: 400\"> and our pre-built UI (<\/span><a href=\"https:\/\/docs.gusto.com\/embedded-payroll\/docs\/flows-intro\"><span style=\"font-weight: 400\">Flows<\/span><\/a><span style=\"font-weight: 400\">), we also provide a <\/span><a href=\"https:\/\/dev.gusto.com\/\"><span style=\"font-weight: 400\">developer portal<\/span><\/a><span style=\"font-weight: 400\"> to help partner developers get up and running.\u00a0<\/span><\/p>\n<p><span style=\"font-weight: 400\">I started at Gusto earlier this year. One of my first tasks was to \u201cdogfood\u201d the developer portal and provide feedback given my newbie perspective. It\u2019s a tool that currently supports registering new OAuth applications, fetching API credentials, and creating demo companies, all of which allow partners to make their first API calls. In my exploration, it was clear that there was enormous potential to expand upon the current features and make it a more powerful tool. In fact, some exciting feature work was already underway, and as my first project at Gusto, I was able to contribute to that work.<\/span><\/p>\n<p>&nbsp;<\/p>\n<h2><b><i>Turning challenges into opportunities\u00a0<\/i><\/b><\/h2>\n<p><span style=\"font-weight: 400\">To inform the development of our first self-service features, we turned to our trusted Technical Solutions team. We wanted to learn about partner pain points, and they were the perfect source for first-hand information.<\/span><\/p>\n<p><span style=\"font-weight: 400\">In talking to them, webhooks came up as a common theme. At the time, setting up and testing webhooks was both tedious and confusing. For partners to test notification payloads, our Technical Solutions team had to manually trigger different notifications for them. Additionally, the team was receiving webhook troubleshooting requests that often had simple fixes. Sometimes, the subscription was simply unverified, or there was a spelling error in the URL, or our notification attempts failed because the endpoint would not return a successful 200 status code. In essence, there was a lack of visibility into the different points of failure.\u00a0<\/span><\/p>\n<p><span style=\"font-weight: 400\">These challenges with webhooks provided a great opportunity to kick off our self-service vision for the Developer Portal. Setting up the right webhooks tooling would both relieve our Technical Solutions team from inefficient workflows and remove a major point of friction for our partners.<\/span><\/p>\n<p>&nbsp;<\/p>\n<h2><b><i>Why leverage webhooks?<\/i><\/b><\/h2>\n<p><span style=\"font-weight: 400\">Because our partners are building embedded payroll solutions, there is a need for a real-time feedback mechanism between Gusto and partner applications so that they can serve their customers quickly and accurately.<\/span><\/p>\n<p><span style=\"font-weight: 400\">Let\u2019s use the <\/span><a href=\"https:\/\/docs.gusto.com\/embedded-payroll\/docs\/onboard-a-company\"><span style=\"font-weight: 400\">company onboarding process<\/span><\/a><span style=\"font-weight: 400\"> as an example. Before an employer can run its first payroll through a partner, the company needs to be onboarded onto Gusto\u2019s platform. This process involves several steps. Once a company\u2019s onboarding is complete, Gusto will <\/span><a href=\"https:\/\/docs.gusto.com\/embedded-payroll\/docs\/complete-onboarding\"><span style=\"font-weight: 400\">underwrite the company<\/span><\/a><span style=\"font-weight: 400\"> as part of our risk-analysis process and approve or reject that company. A company cannot run payroll until it has been approved.<\/span><\/p>\n<p><span style=\"font-weight: 400\">As you can imagine, this is a time-sensitive process. Our partner applications need to know whether a company has been approved or rejected ASAP so they can alert employers about the proper next steps. In other words, they need real-time updates about the approval status.\u00a0<\/span><\/p>\n<p><span style=\"font-weight: 400\">So, how does the partner application know when the company has been approved? One option is by <\/span><i><span style=\"font-weight: 400\">polling<\/span><\/i><span style=\"font-weight: 400\"> our Company API. The partner application can periodically send a request to our GET <\/span><a href=\"https:\/\/docs.gusto.com\/embedded-payroll\/reference\/get-v1-companies\"><span style=\"font-weight: 400\">\/v1\/companies\/:company_id<\/span><\/a><span style=\"font-weight: 400\"> endpoint. Eventually, they will receive a response where the\u00a0 <\/span><span style=\"font-weight: 400\">company_status<\/span><span style=\"font-weight: 400\"> for their company is either <\/span><span style=\"font-weight: 400\">Approved <\/span><span style=\"font-weight: 400\">or <\/span><span style=\"font-weight: 400\">Rejected<\/span><span style=\"font-weight: 400\">. This might be fine for a few companies, but this is not a tenable solution at scale.<\/span><\/p>\n<p><span style=\"font-weight: 400\">This is where webhooks can be powerful. Instead of constantly pinging our API for status updates, the partner application can passively wait until we notify them of an approval. By setting up a webhook subscription with a <\/span><a href=\"https:\/\/docs.gusto.com\/embedded-payroll\/docs\/company-events\"><span style=\"font-weight: 400\">\u201cCompany\u201d subscription type<\/span><\/a><span style=\"font-weight: 400\">, they can be alerted for any of the available Company events. Now, imagine the time and resource savings for each event in the <\/span><a href=\"https:\/\/docs.gusto.com\/embedded-payroll\/docs\/webhook-events\"><span style=\"font-weight: 400\">19 subscription types<\/span><\/a><span style=\"font-weight: 400\"> we currently support.\u00a0<\/span><\/p>\n<p><span style=\"font-weight: 400\">\u00a0<\/span><\/p>\n<h2><b><i>How do you set webhooks up?<\/i><\/b><\/h2>\n<p><span style=\"font-weight: 400\">In the background, Gusto constantly produces events, independent of webhook subscriptions. You can fetch those using our <\/span><a href=\"https:\/\/docs.gusto.com\/embedded-payroll\/docs\/webhook-events\"><span style=\"font-weight: 400\">\/v1\/events API<\/span><\/a><span style=\"font-weight: 400\">. If you want your application to be notified about specific event categories (or, <\/span><i><span style=\"font-weight: 400\">subscription types<\/span><\/i><span style=\"font-weight: 400\">), this is where setting up a webhook subscription comes in handy. The events that your subscription receives are a subset of all the events we produce, and you can always update which types your subscription is listening to.<\/span><\/p>\n<p><span style=\"font-weight: 400\">Historically, the way to set up webhook subscriptions has been through the <\/span><a href=\"https:\/\/docs.gusto.com\/embedded-payroll\/reference\/post-v1-webhook-subscription\"><span style=\"font-weight: 400\">Gusto API<\/span><\/a><span style=\"font-weight: 400\">. As a developer, you\u2019d have to use cURL or Postman to create, verify, edit, or delete a subscription through our webhooks endpoints. Setting this up can be a little clunky.\u00a0<\/span><\/p>\n<p><span style=\"font-weight: 400\">As a developer, I had the chance to put myself in the shoes of our partner developers. In my own setup, I experienced first-hand some of the questions that our Technical Solutions team received: How do I know if my subscription is working? Why am I not seeing any events yet? What do the event payloads look like? Is there an easy way to test them? Wait, there\u2019s a verification step? What if I don\u2019t receive an event I was expecting?\u00a0<\/span><\/p>\n<p><span style=\"font-weight: 400\">It\u2019s a unique opportunity to experience the same challenges as your users. With these direct experiences in mind, we set out to build our newest Developer Portal features.\u00a0<\/span><\/p>\n<p>&nbsp;<\/p>\n<h2><b><i>Webhooks in the Developer Portal<\/i><\/b><\/h2>\n<p><span style=\"font-weight: 400\">A few months ago, we <\/span><a href=\"https:\/\/docs.gusto.com\/embedded-payroll\/changelog\/new-self-serve-partner-notification-testing-in-developer-portal\"><span style=\"font-weight: 400\">launched our Test Notifications<\/span><\/a><span style=\"font-weight: 400\"> feature in the Developer Portal, which is available for Demo applications. Shortly after, we released our <\/span><a href=\"https:\/\/docs.gusto.com\/embedded-payroll\/changelog\/new-webhook-subscription-management-in-the-developer-portal\"><span style=\"font-weight: 400\">Webhook Subscription management feature<\/span><\/a><span style=\"font-weight: 400\"> (for both Demo and Production applications). Together, these 2 tabs work in tandem to make managing and testing webhooks with Gusto Embedded intuitive and fast.<\/span><\/p>\n<p>&nbsp;<\/p>\n<p><span style=\"font-weight: 400\">Now, a partner can choose from a list of <\/span><i><span style=\"font-weight: 400\">over 35<\/span><\/i><span style=\"font-weight: 400\"> different notifications to test.\u00a0<\/span><\/p>\n<p><img decoding=\"async\" class=\"alignnone wp-image-625 size-full lazyload\" data-src=\"https:\/\/embeddedblog.wpengine.com\/wp-content\/uploads\/2024\/06\/dev-portal-1.png\" alt=\"dev portal webhooks screenshot 1\" width=\"624\" height=\"320\" data-srcset=\"https:\/\/embeddedblog.wpengine.com\/wp-content\/uploads\/2024\/06\/dev-portal-1.png 624w, https:\/\/embeddedblog.wpengine.com\/wp-content\/uploads\/2024\/06\/dev-portal-1-425x218.png 425w, https:\/\/embeddedblog.wpengine.com\/wp-content\/uploads\/2024\/06\/dev-portal-1-150x77.png 150w\" data-sizes=\"(max-width: 624px) 100vw, 624px\" src=\"data:image\/svg+xml;base64,PHN2ZyB3aWR0aD0iMSIgaGVpZ2h0PSIxIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjwvc3ZnPg==\" style=\"--smush-placeholder-width: 624px; --smush-placeholder-aspect-ratio: 624\/320;\" \/><\/p>\n<p><span style=\"font-weight: 400\">With the Webhook subscriptions tab, developers can easily view all their subscriptions, see their statuses, verify any unverified subscriptions, and quickly edit them to quickly update which subscription types to consume.<\/span><\/p>\n<p><img decoding=\"async\" class=\"alignnone size-full wp-image-626 lazyload\" data-src=\"https:\/\/embeddedblog.wpengine.com\/wp-content\/uploads\/2024\/06\/dev-portal-2.png\" alt=\"dev portal screenshot 2\" width=\"624\" height=\"320\" data-srcset=\"https:\/\/embeddedblog.wpengine.com\/wp-content\/uploads\/2024\/06\/dev-portal-2.png 624w, https:\/\/embeddedblog.wpengine.com\/wp-content\/uploads\/2024\/06\/dev-portal-2-425x218.png 425w, https:\/\/embeddedblog.wpengine.com\/wp-content\/uploads\/2024\/06\/dev-portal-2-150x77.png 150w\" data-sizes=\"(max-width: 624px) 100vw, 624px\" src=\"data:image\/svg+xml;base64,PHN2ZyB3aWR0aD0iMSIgaGVpZ2h0PSIxIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjwvc3ZnPg==\" style=\"--smush-placeholder-width: 624px; --smush-placeholder-aspect-ratio: 624\/320;\" \/><\/p>\n<p><span style=\"font-weight: 400\">Developers can now also gain further insight into the notifications each subscription receives. Below each subscription, we expose a stream of recent events to that subscription, how many attempts were made, whether any of those attempts were successful, and further details by event. There is also a search feature to filter down events by event type.<\/span><\/p>\n<p><img decoding=\"async\" class=\"alignnone size-full wp-image-627 lazyload\" data-src=\"https:\/\/embeddedblog.wpengine.com\/wp-content\/uploads\/2024\/06\/dev-portal-3.png\" alt=\"dev portal screenshot 3\" width=\"624\" height=\"320\" data-srcset=\"https:\/\/embeddedblog.wpengine.com\/wp-content\/uploads\/2024\/06\/dev-portal-3.png 624w, https:\/\/embeddedblog.wpengine.com\/wp-content\/uploads\/2024\/06\/dev-portal-3-425x218.png 425w, https:\/\/embeddedblog.wpengine.com\/wp-content\/uploads\/2024\/06\/dev-portal-3-150x77.png 150w\" data-sizes=\"(max-width: 624px) 100vw, 624px\" src=\"data:image\/svg+xml;base64,PHN2ZyB3aWR0aD0iMSIgaGVpZ2h0PSIxIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjwvc3ZnPg==\" style=\"--smush-placeholder-width: 624px; --smush-placeholder-aspect-ratio: 624\/320;\" \/><\/p>\n<h2><b><i>Looking Forward<\/i><\/b><\/h2>\n<p><span style=\"font-weight: 400\">As developers developing for other developers, we have the unique opportunity to experience firsthand pain points in our development process. We look forward to digging deeper into the usage patterns of our partner developers and expanding our \u201cself-service\u201d vision for the Developer Portal.<\/span><\/p>\n<p>&nbsp;<\/p>\n","protected":false},"excerpt":{"rendered":"<p>A leap towards self-service Our Embedded Payroll partners want to build robust payroll products that are reliable, performant, and accurate&#8230;.<\/p>\n","protected":false},"author":21,"featured_media":624,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"footnotes":""},"categories":[4],"tags":[],"class_list":["post-623","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-developer-perspective"],"acf":{"exclude_from_embedded_resources":false,"popularity":0,"essentiality":0},"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.7 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Testing and Managing Webhooks: New in the Dev Portal - Embedded Blog<\/title>\n<meta name=\"description\" content=\"Learn more about how developers can test and manage notification webhooks right from the Gusto Embedded Developer Portal.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/embedded.gusto.com\/blog\/webhooks-developer-portal\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Testing and Managing Webhooks: New in the Dev Portal - Embedded Blog\" \/>\n<meta property=\"og:description\" content=\"Learn more about how developers can test and manage notification webhooks right from the Gusto Embedded Developer Portal.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/embedded.gusto.com\/blog\/webhooks-developer-portal\/\" \/>\n<meta property=\"og:site_name\" content=\"Embedded Blog\" \/>\n<meta property=\"article:published_time\" content=\"2024-06-28T16:11:43+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2024-06-28T17:11:46+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/embeddedblog.wpengine.com\/wp-content\/uploads\/2024\/06\/EMB-blog-dev-series-webhooks-header-1.png\" \/>\n\t<meta property=\"og:image:width\" content=\"1920\" \/>\n\t<meta property=\"og:image:height\" content=\"1080\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"author\" content=\"Raquel Silva\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Raquel Silva\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"6 minutes\" \/>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Testing and Managing Webhooks: New in the Dev Portal - Embedded Blog","description":"Learn more about how developers can test and manage notification webhooks right from the Gusto Embedded Developer Portal.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/embedded.gusto.com\/blog\/webhooks-developer-portal\/","og_locale":"en_US","og_type":"article","og_title":"Testing and Managing Webhooks: New in the Dev Portal - Embedded Blog","og_description":"Learn more about how developers can test and manage notification webhooks right from the Gusto Embedded Developer Portal.","og_url":"https:\/\/embedded.gusto.com\/blog\/webhooks-developer-portal\/","og_site_name":"Embedded Blog","article_published_time":"2024-06-28T16:11:43+00:00","article_modified_time":"2024-06-28T17:11:46+00:00","og_image":[{"width":1920,"height":1080,"url":"https:\/\/embeddedblog.wpengine.com\/wp-content\/uploads\/2024\/06\/EMB-blog-dev-series-webhooks-header-1.png","type":"image\/png"}],"author":"Raquel Silva","twitter_card":"summary_large_image","twitter_misc":{"Written by":"Raquel Silva","Est. reading time":"6 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/embedded.gusto.com\/blog\/webhooks-developer-portal\/#article","isPartOf":{"@id":"https:\/\/embedded.gusto.com\/blog\/webhooks-developer-portal\/"},"author":{"name":"Raquel Silva","@id":"https:\/\/embedded.gusto.com\/blog\/#\/schema\/person\/621162d90f98db18ab606e08a733c55b"},"headline":"Testing and Managing Webhooks: New in the Dev Portal","datePublished":"2024-06-28T16:11:43+00:00","dateModified":"2024-06-28T17:11:46+00:00","mainEntityOfPage":{"@id":"https:\/\/embedded.gusto.com\/blog\/webhooks-developer-portal\/"},"wordCount":1120,"image":{"@id":"https:\/\/embedded.gusto.com\/blog\/webhooks-developer-portal\/#primaryimage"},"thumbnailUrl":"https:\/\/embeddedblog.wpengine.com\/wp-content\/uploads\/2024\/06\/EMB-blog-dev-series-webhooks-header-1.png","articleSection":["Developer Perspective"],"inLanguage":"en-US"},{"@type":"WebPage","@id":"https:\/\/embedded.gusto.com\/blog\/webhooks-developer-portal\/","url":"https:\/\/embedded.gusto.com\/blog\/webhooks-developer-portal\/","name":"Testing and Managing Webhooks: New in the Dev Portal - Embedded Blog","isPartOf":{"@id":"https:\/\/embedded.gusto.com\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/embedded.gusto.com\/blog\/webhooks-developer-portal\/#primaryimage"},"image":{"@id":"https:\/\/embedded.gusto.com\/blog\/webhooks-developer-portal\/#primaryimage"},"thumbnailUrl":"https:\/\/embeddedblog.wpengine.com\/wp-content\/uploads\/2024\/06\/EMB-blog-dev-series-webhooks-header-1.png","datePublished":"2024-06-28T16:11:43+00:00","dateModified":"2024-06-28T17:11:46+00:00","author":{"@id":"https:\/\/embedded.gusto.com\/blog\/#\/schema\/person\/621162d90f98db18ab606e08a733c55b"},"description":"Learn more about how developers can test and manage notification webhooks right from the Gusto Embedded Developer Portal.","breadcrumb":{"@id":"https:\/\/embedded.gusto.com\/blog\/webhooks-developer-portal\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/embedded.gusto.com\/blog\/webhooks-developer-portal\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/embedded.gusto.com\/blog\/webhooks-developer-portal\/#primaryimage","url":"https:\/\/embeddedblog.wpengine.com\/wp-content\/uploads\/2024\/06\/EMB-blog-dev-series-webhooks-header-1.png","contentUrl":"https:\/\/embeddedblog.wpengine.com\/wp-content\/uploads\/2024\/06\/EMB-blog-dev-series-webhooks-header-1.png","width":1920,"height":1080,"caption":"testing and managing webhooks blog title image"},{"@type":"BreadcrumbList","@id":"https:\/\/embedded.gusto.com\/blog\/webhooks-developer-portal\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/embedded.gusto.com\/blog\/"},{"@type":"ListItem","position":2,"name":"Testing and Managing Webhooks: New in the Dev Portal"}]},{"@type":"WebSite","@id":"https:\/\/embedded.gusto.com\/blog\/#website","url":"https:\/\/embedded.gusto.com\/blog\/","name":"Embedded Blog","description":"","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/embedded.gusto.com\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Person","@id":"https:\/\/embedded.gusto.com\/blog\/#\/schema\/person\/621162d90f98db18ab606e08a733c55b","name":"Raquel Silva","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/embeddedblog.wpengine.com\/wp-content\/uploads\/2024\/06\/Raquel-Silva-113x150.jpg","url":"https:\/\/embeddedblog.wpengine.com\/wp-content\/uploads\/2024\/06\/Raquel-Silva-113x150.jpg","contentUrl":"https:\/\/embeddedblog.wpengine.com\/wp-content\/uploads\/2024\/06\/Raquel-Silva-113x150.jpg","caption":"Raquel Silva"},"description":"Raquel Silva is a software engineer on the Gusto Embedded team, where she focuses on improving the developer experience for our partner developers. Before joining Gusto in 2024, she worked at different startups, including HomeLight and Accompany. She is proudly born and raised in Miami, and currently local to San Francisco.","url":"https:\/\/embedded.gusto.com\/blog\/author\/raquel-silva\/"}]}},"images":{"large":"https:\/\/embeddedblog.wpengine.com\/wp-content\/uploads\/2024\/06\/EMB-blog-dev-series-webhooks-header-1-1120x630.png"},"authorDetails":{"id":21,"name":"Raquel Silva","avatar":"https:\/\/embeddedblog.wpengine.com\/wp-content\/uploads\/2024\/06\/Raquel-Silva-113x150.jpg"},"_links":{"self":[{"href":"https:\/\/embedded.gusto.com\/blog\/wp-json\/wp\/v2\/posts\/623","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/embedded.gusto.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/embedded.gusto.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/embedded.gusto.com\/blog\/wp-json\/wp\/v2\/users\/21"}],"replies":[{"embeddable":true,"href":"https:\/\/embedded.gusto.com\/blog\/wp-json\/wp\/v2\/comments?post=623"}],"version-history":[{"count":0,"href":"https:\/\/embedded.gusto.com\/blog\/wp-json\/wp\/v2\/posts\/623\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/embedded.gusto.com\/blog\/wp-json\/wp\/v2\/media\/624"}],"wp:attachment":[{"href":"https:\/\/embedded.gusto.com\/blog\/wp-json\/wp\/v2\/media?parent=623"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/embedded.gusto.com\/blog\/wp-json\/wp\/v2\/categories?post=623"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/embedded.gusto.com\/blog\/wp-json\/wp\/v2\/tags?post=623"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}