{"info":{"_postman_id":"dc6108a3-3a5d-4f19-9e8c-ebf35d48af76","name":"Documentation - Lightspeed Golf Partner API (V2)","description":"<html><head></head><body><h1 id=\"lightspeed-golf-partner-api\">Lightspeed Golf Partner API</h1>\n<p>This is the integration API for Lightspeed Golf (formerly Chronogolf). It lets approved partners read a club's tee sheet, pricing, and customers, and book, modify, check in, and pay for rounds programmatically.</p>\n<p>These docs are written for the developer building the integration. They favor concrete, copy-pasteable examples and call out the mistakes that actually trip people up (see the \"Gotchas &amp; Troubleshooting\" section).</p>\n<h2 id=\"two-versions-and-which-to-use\">Two versions, and which to use</h2>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th></th>\n<th>V1</th>\n<th>V2</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>Base path</td>\n<td><code>/partner_api/v1/...</code></td>\n<td><code>/partner_api/v2/...</code></td>\n</tr>\n<tr>\n<td>Status</td>\n<td><strong>Deprecated.</strong> Existing integrations only; will be retired</td>\n<td><strong>Use this.</strong> Where all features land</td>\n</tr>\n<tr>\n<td>IDs</td>\n<td>Integer Rails ids (<code>85169</code>)</td>\n<td>UUIDs (<code>eaf0448b-7789-460a-a75d-47c66bac39fa</code>)</td>\n</tr>\n<tr>\n<td>Format</td>\n<td>Flat JSON</td>\n<td>JSON:API (<code>data</code> / <code>included</code> / <code>meta</code>)</td>\n</tr>\n<tr>\n<td>Errors</td>\n<td><code>{error:{message}, errors:[{type,message}]}</code></td>\n<td><code>{errors:[{status,code,detail}]}</code></td>\n</tr>\n<tr>\n<td>Pagination</td>\n<td><code>?page=&amp;per_page=</code></td>\n<td><code>?page[number]=&amp;page[size]=</code></td>\n</tr>\n</tbody>\n</table>\n</div><p><strong>New integrations must use V2.</strong> V1 is deprecated: it still answers for existing integrators, but it gets no new endpoints, fields, or fixes, and it will be retired. The same OAuth token works for both versions. V1 and V2 ids are <strong>not</strong> interchangeable: a V1 integer id will 404 on a V2 endpoint and vice-versa.</p>\n<p>Everything in this folder is V2. the \"V1 Reference (Deprecated)\" section exists only to help existing V1 integrators migrate; it is not a guide for new development.</p>\n<h2 id=\"base-urls\">Base URLs</h2>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Environment</th>\n<th>Host</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>Production</td>\n<td><code>https://partner-api.chronogolf.com</code></td>\n</tr>\n<tr>\n<td>Staging</td>\n<td><code>https://partner-staging.chronogolf.com</code></td>\n</tr>\n</tbody>\n</table>\n</div><p>Two things to know:</p>\n<ul>\n<li><p>Use these hosts for both the OAuth token endpoint and all API calls. Your OAuth application is bound to the environment it was issued for, production credentials only work against production, staging only against staging.</p>\n</li>\n<li><p><strong>Staging is a shared, disposable environment.</strong> Its data can be reset or wiped without notice, so don't rely on a staging record persisting. Staging and production credentials are separate (you generally need both).</p>\n</li>\n</ul>\n<p>Every example in these docs uses the staging host so you can run them as-is with staging credentials.</p>\n<h2 id=\"60-second-quickstart-v2\">60-second quickstart (V2)</h2>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-bash\"># 1. Exchange your refresh token for an access token (valid 2 hours).\n#    The response gives you a NEW refresh token. Store it. The old one is now dead. See authentication.md.\ncurl -s -X POST \"https://partner-staging.chronogolf.com/oauth/token\" \\\n  -d \"grant_type=refresh_token\" \\\n  -d \"refresh_token=YOUR_REFRESH_TOKEN\" \\\n  -d \"client_id=YOUR_CLIENT_ID\" \\\n  -d \"client_secret=YOUR_CLIENT_SECRET\"\n# 2. Find the organizations (clubs) your integrator is connected to.\ncurl -s \"https://partner-staging.chronogolf.com/partner_api/v2/organizations\" \\\n  -H \"Authorization: Bearer YOUR_ACCESS_TOKEN\" \\\n  -H \"Accept: application/vnd.api+json\"\n# 3. Read a course's tee sheet for a date, with prices for a player type.\n#    Note the [] on player_types. This matters. See gotchas.md.\ncurl -gs \"https://partner-staging.chronogolf.com/partner_api/v2/organizations/ORG_UUID/teetimes?filter[date]=2026-05-29&amp;filter[course]=COURSE_UUID&amp;custom_params[player_types][]=PLAYER_TYPE_UUID&amp;custom_params[with_pricing]=true\" \\\n  -H \"Authorization: Bearer YOUR_ACCESS_TOKEN\" \\\n  -H \"Accept: application/vnd.api+json\"\n\n</code></pre>\n<p>Booking a round is a 3-step flow, not one call. See the \"Reservations &amp; Booking\" section.</p>\n<h2 id=\"how-the-data-model-is-shaped\">How the data model is shaped</h2>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>Integrator (your credentials)\n  └─ Integrator::Connection  (one per club or management company you're granted)\n       └─ Organization\n            ├─ Club              (a golf facility)\n            │    ├─ Course       (a playable course; a club can have several)\n            │    ├─ AffiliationType / \"player_type\"  (Member, Public, etc.)\n            │    ├─ Product       (green fees, carts, kits, extras)\n            │    ├─ Teetime       (a bookable slot on a course)\n            │    ├─ Customership  (a golfer's membership at this club)\n            │    └─ Reservation   (a booking) → Round (one per player)\n            └─ ManagementCompany  (an MCO that owns several clubs)\n\n</code></pre><h3 id=\"relationships-in-plain-terms\">Relationships in plain terms</h3>\n<p>The tree shows the hierarchy; here's what the important links actually mean and how many of each to expect.</p>\n<p><strong>Organization ↔ customer (this one trips people up).</strong> A \"customer\" in this API is a <strong>Customership</strong>, which is the link between a <em>golfer</em> (a User) and <em>one club</em>. So:</p>\n<ul>\n<li><p>A customer always belongs to <strong>exactly one organization</strong> (club). There's no such thing as a club-less customer.</p>\n</li>\n<li><p>One club has <strong>many</strong> customerships; that's its golfer base.</p>\n</li>\n<li><p>The same person who plays at two of your clubs has <strong>two separate customerships</strong> (two customer UUIDs), one per club, sharing a single underlying User. Their <code>email</code>/name match, but each club's record is independent, with its own player types, accounts, and tags.</p>\n</li>\n<li><p>That's why <code>GET .../customers</code> is scoped to the organization in the URL, and why a management-company URL spans the customerships of all its clubs. See the \"Customers\" section.</p>\n</li>\n</ul>\n<p><strong>Club → course → tee time.</strong> A club has many <strong>courses</strong>; each course has many <strong>tee times</strong> (the bookable slots). A tee time belongs to exactly one course, and a course to exactly one club. Tee-sheet reads are always per-course.</p>\n<p><strong>Reservation → rounds (one round per player).</strong> A <strong>reservation</strong> is a single booking on one tee time. It has <strong>1 to 4 rounds</strong>, one per golfer in the group. A round is one player's spot. Each round carries:</p>\n<ul>\n<li><p>a <strong>player type</strong> (the rate/affiliation it's booked at),</p>\n</li>\n<li><p>either a <strong>customership</strong> (an account golfer) <strong>or</strong> a <strong>guest</strong> (just a name, no account),</p>\n</li>\n<li><p>and its charges as line items: a <strong>green fee</strong>, optionally a <strong>cart</strong>, plus any <strong>kits</strong> and <strong>extras</strong>.</p>\n</li>\n</ul>\n<p>So \"does this round have a cart?\" comes down to whether the round has a cart line: in the API the round's <code>rates.cart_fee</code> is a number if it does and <code>null</code> if it doesn't (carts are also summarized at the reservation level as <code>cart_count</code>). Same idea for kits: if a green fee is sold inside a kit, it shows under <code>kit_fee</code> and the standalone <code>green_fee</code>/<code>cart_fee</code> go <code>null</code>. See the \"Reservations &amp; Booking\" section (\"Round shape and <code>kit_fee</code>\").</p>\n<p><strong>Linked reservations.</strong> When one booking can't fit in a single tee time (a big group, or consecutive slots booked together), it becomes several reservations tied to an origin reservation and exposed as <code>linked_reservations</code>. Cancelling a reservation also cancels its linked ones.</p>\n<p><strong>Player types are per-organization, sometimes inherited.</strong> A player type (affiliation type) belongs to an organization. A club's player types include its own <strong>plus</strong> any inherited from its management company. A golfer's customership can hold several affiliations; the one that applies at booking sets the rate.</p>\n<p><strong>Products and price overrides.</strong> A product (green fee, cart, kit, extra) belongs to a club and is offered on one or more courses. A price override ties together a product + course + player type over a time window, so all three must belong to the same club. See the \"Club Setup &amp; Pricing\" section.</p>\n<p><strong>Tour operator (optional).</strong> A reservation can be attributed to a tour operator. It's the one relationship whose id is an integer, not a UUID.</p>\n<h3 id=\"scoping\">Scoping</h3>\n<p>Your integrator is connected to one or more organizations. <strong>Every list endpoint is automatically scoped to your connected clubs</strong>, so you only ever see your own data. If <code>/organizations</code> returns one club, then <code>page[number]=2</code> being empty is correct, not a bug.</p>\n<p>An organization can be a <strong>Club</strong> or a <strong>ManagementCompany (MCO)</strong>. The URL <code>/v2/organizations/:organization_id/...</code> accepts either. Some endpoints behave differently for an MCO (courses and tee times return an empty list; customers span all clubs under the MCO). See the \"Conventions (read this first)\" section (\"Organizations: Club vs Management Company\").</p>\n<h2 id=\"understanding-ids-and-uuids\">Understanding IDs and UUIDs</h2>\n<p>Almost every V2 identifier is a <strong>UUID</strong>: a 36-character string like <code>a0baaa6a-7a74-44ef-bbd3-d689729c5a67</code> (32 hex digits in <code>8-4-4-4-12</code> groups). We use UUIDs because they're stable, not guessable or enumerable, and don't collide across clubs. V1 used plain integer ids (<code>1234</code>) instead; the two are <strong>not interchangeable</strong>.</p>\n<p>A few things to keep straight:</p>\n<ul>\n<li><p><strong>Every resource has its own UUID.</strong> A reservation, each of its rounds, the tee time, the customer, the course, are all separate UUIDs. Passing a round's UUID to a reservation endpoint (or vice versa) returns 404. Track which is which.</p>\n</li>\n<li><p><strong>In JSON:API, ids show up in two places.</strong> The resource's own id is <code>data.id</code>. A link to another resource is <code>data.relationships..data.id</code>. Both are UUIDs (with the exceptions below).</p>\n</li>\n<li><p><strong>Customership UUID ≠ User UUID.</strong> A \"customer\" in this API is a <em>customership</em> (one golfer at one club), and its UUID is what the customer endpoints use. The same person at two clubs has two customership UUIDs but one underlying User UUID. The User UUID is only exposed (as <code>user_uuid</code>) if your connection is specifically granted it. See the \"Customers\" section (\"What each customer field means\").</p>\n</li>\n<li><p><strong>External / retail IDs are different again.</strong> A golfer's id in a connected POS (their \"retail ID\") is not a Lightspeed UUID; it's exposed separately in the customer's <code>integrators</code> array and <code>house_account_id</code>. See the \"Customers\" section (\"Retail and external IDs (reconciling a golfer with your system or the POS)\").</p>\n</li>\n<li><p><strong>Two non-UUID exceptions:</strong> the <code>tour_operator</code> relationship id is an <strong>integer</strong>, and <code>booking_reference</code> (e.g. <code>9M0B-5S0N</code>) is a human-friendly label, <strong>not</strong> an id you can look a reservation up by (it's filter-only).</p>\n</li>\n</ul>\n<h2 id=\"id-glossary\">ID glossary</h2>\n<p>A single booking touches several different identifiers. Mixing them up is the most common source of 404s.</p>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Identifier</th>\n<th>Example</th>\n<th>Where it comes from</th>\n<th>Where it's used</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>Organization UUID</td>\n<td><code>a0baaa6a-7a74-44ef-bbd3-d689729c5a67</code></td>\n<td><code>GET /organizations</code></td>\n<td>The <code>:organization_id</code> in every V2 URL</td>\n</tr>\n<tr>\n<td>Course UUID</td>\n<td><code>5c9b3b32-0044-4b94-aa95-1b7fc7a202d9</code></td>\n<td><code>GET .../courses</code></td>\n<td><code>filter[course]</code>, product/override relationships</td>\n</tr>\n<tr>\n<td>Player type UUID</td>\n<td><code>aaa2e85e-5e4d-436a-a647-ac8c38b9d9a2</code></td>\n<td><code>GET .../player_types</code></td>\n<td><code>custom_params[player_types][]</code>, round relationships</td>\n</tr>\n<tr>\n<td>Teetime UUID</td>\n<td><code>f7d5a2ea-7744-4cce-bf30-3a2ffad84963</code></td>\n<td><code>GET .../teetimes</code></td>\n<td><code>reservation_request</code> teetime relationship</td>\n</tr>\n<tr>\n<td>Reservation request id</td>\n<td><code>a1c3994c-a291-454d-b38e-79e32288ed4b</code></td>\n<td><code>POST .../reservation_requests</code></td>\n<td>steps 2 and 3 of the booking flow</td>\n</tr>\n<tr>\n<td>Reservation UUID</td>\n<td><code>eaf0448b-7789-460a-a75d-47c66bac39fa</code></td>\n<td><code>POST .../reservations</code> / index</td>\n<td><code>GET/PUT/DELETE .../reservations/:id</code></td>\n</tr>\n<tr>\n<td>Round UUID</td>\n<td><code>bce4c27e-6a77-4790-bb60-d1f5dfdecae0</code></td>\n<td>inside a reservation's <code>rounds</code></td>\n<td>check-ins, payments, round edits</td>\n</tr>\n<tr>\n<td>Booking reference</td>\n<td><code>9M0B-5S0N</code></td>\n<td>reservation attribute</td>\n<td><code>filter[booking_reference]</code> only. Not a primary key</td>\n</tr>\n<tr>\n<td>Customership UUID</td>\n<td><code>544f27c7-4969-4e6c-a178-54c3320b2126</code></td>\n<td><code>GET .../customers</code></td>\n<td>customer endpoints, round relationships</td>\n</tr>\n</tbody>\n</table>\n</div><p>The booking reference is human-friendly and shows up in the club's UI, but you cannot <code>GET /reservations/9M0B-5S0N</code>. Use the UUID, or filter by <code>filter[booking_reference]</code>.</p>\n<h2 id=\"endpoint-reference\">Endpoint reference</h2>\n<ul>\n<li><p>the \"Authentication\" section — OAuth, the single-use refresh token, token lifetime</p>\n</li>\n<li><p>the \"Conventions (read this first)\" section — content type, routing, pagination, filters, includes, errors, scoping</p>\n</li>\n<li><p>the \"Tee Times\" section — reading the tee sheet and prices</p>\n</li>\n<li><p>the \"Reservations &amp; Booking\" section — the 3-step booking flow, updates, cancels, rounds, check-in, payment</p>\n</li>\n<li><p>the \"Customers\" section — reading and pushing golfer records</p>\n</li>\n<li><p>the \"Club Setup &amp; Pricing\" section — club setup and pricing: organizations, courses, player types, products, price overrides</p>\n</li>\n<li><p>the \"Reports\" section — aging report</p>\n</li>\n<li><p>the \"Common Errors Reference\" section — every error message the API returns, and why it happens</p>\n</li>\n<li><p>the \"Gotchas &amp; Troubleshooting\" section — the consolidated list of things that bite people</p>\n</li>\n<li><p>the \"V1 Reference (Deprecated)\" section — the frozen V1 surface</p>\n</li>\n</ul>\n<h2 id=\"support-and-provisioning\">Support and provisioning</h2>\n<p>There's no self-service developer portal yet. Credentials are provisioned by hand.</p>\n<ul>\n<li><p>To get credentials (staging or production), or to add a club to an existing integration, email <a href=\"https://mailto:golf.api@lightspeedhq.com\"><b>golf.api@lightspeedhq.com</b></a>.</p>\n</li>\n<li><p>Staging and production credentials are <strong>separate</strong>. You usually need both.</p>\n</li>\n<li><p>When we connect a new club to your integrator, it can take <strong>up to 5 minutes</strong> to appear in <code>/organizations</code> (the connection list is cached). See the \"Gotchas &amp; Troubleshooting\" section.</p>\n</li>\n</ul>\n<p>The documented rate limit is 200 requests per minute. There are no webhooks today; the recommended pattern for staying in sync is polling with <code>filter[updated_since]</code>. See the \"Conventions (read this first)\" section (\"Polling and rate limits\").</p>\n</body></html>","schema":"https://schema.getpostman.com/json/collection/v2.0.0/collection.json","toc":[{"content":"Lightspeed Golf Partner API","slug":"lightspeed-golf-partner-api"}],"owner":"21108","collectionId":"dc6108a3-3a5d-4f19-9e8c-ebf35d48af76","publishedId":"2sBXwnsrwx","public":true,"customColor":{"top-bar":"FFFFFF","right-sidebar":"303030","highlight":"FF6C37"},"publishDate":"2026-05-29T18:50:29.000Z"},"item":[{"name":"Conventions (read this first)","item":[],"id":"4f775ae1-5c02-4f9d-bf30-6bbbffa6dd11","description":"<h1 id=\"v2-conventions\">V2 conventions</h1>\n<p>Everything in V2 follows these rules unless an endpoint's page says otherwise. Read this once and the rest of the docs get a lot shorter.</p>\n<h2 id=\"content-type-and-the-accept-header-trap\">Content type and the Accept header trap</h2>\n<p>V2 speaks <a href=\"https://jsonapi.org/\">JSON:API</a>. Responses always come back as <code>Content-Type: application/vnd.api+json</code>.</p>\n<p><strong>The V2 routes only match when your <code>Accept</code> header is <code>application/vnd.api+json</code> or <code>application/json</code>.</strong> Anything else, including <code>Accept: */*</code> (which a lot of HTTP libraries send by default) or no <code>Accept</code> header at all, fails to match the V2 route and falls through to a non-API handler. You get an empty <code>403</code> with <code>Content-Type: text/html</code>, which looks nothing like an API error and sends people down the wrong debugging path.</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-bash\"># Works\ncurl ... -H \"Accept: application/vnd.api+json\"   # 200, recommended\ncurl ... -H \"Accept: application/json\"            # 200, also fine\n\n# Does NOT route to V2 (empty 403 text/html)\ncurl ...                                          # no Accept header\ncurl ... -H \"Accept: */*\"                         # wildcard\ncurl ... -H \"Accept: text/html\"\n</code></pre>\n<p><strong>Always send <code>Accept: application/vnd.api+json</code>.</strong> If you're using a client that forces <code>Accept: */*</code>, override it.</p>\n<p>For request bodies on <code>POST</code>/<code>PATCH</code>, send <code>Content-Type: application/vnd.api+json</code> (or <code>application/json</code>) and the JSON:API envelope:</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{ \"data\": { \"type\": \"&lt;resource&gt;\", \"attributes\": { ... }, \"relationships\": { ... } } }\n</code></pre>\n<h2 id=\"routing-shallow-resources\">Routing: shallow resources</h2>\n<p>This one causes a lot of 404s and empty 403s.</p>\n<p>Most V2 resources are declared as <strong>shallow</strong>. The collection actions (<code>index</code>, <code>create</code>) stay nested under the organization, but the member actions (<code>show</code>, <code>update</code>, <code>destroy</code>) live at the <strong>top level</strong>, not under <code>/organizations/:org_id/</code>.</p>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Action</th>\n<th>Path</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>List tee times</td>\n<td><code>GET /partner_api/v2/organizations/:org_id/teetimes</code> ✅</td>\n</tr>\n<tr>\n<td>Show one tee time</td>\n<td><code>GET /partner_api/v2/teetimes/:id</code> ✅</td>\n</tr>\n<tr>\n<td>Show one tee time (nested)</td>\n<td><code>GET /partner_api/v2/organizations/:org_id/teetimes/:id</code> ❌ <strong>does not exist</strong> → empty 403</td>\n</tr>\n</tbody>\n</table>\n</div><p>The same split applies to <code>customers</code>, <code>price_overrides</code>, <code>products</code>, <code>courses</code>, <code>player_types</code>, <code>reservation_requests</code>, <code>round_requests</code>, and <code>payment_confirmations</code>: list/create are nested, show/update/destroy are at <code>/partner_api/v2/&lt;resource&gt;/:id</code>.</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-bash\"># Show a customer: top-level, not nested\ncurl -s \"https://partner-staging.chronogolf.com/partner_api/v2/customers/CUSTOMERSHIP_UUID\" \\\n  -H \"Authorization: Bearer YOUR_ACCESS_TOKEN\" -H \"Accept: application/vnd.api+json\"\n</code></pre>\n<p><strong>Exception: reservations and rounds.</strong> Reservations are declared both ways, so the nested form works for everything:</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>GET    /partner_api/v2/organizations/:org_id/reservations          # list\nPOST   /partner_api/v2/organizations/:org_id/reservations          # create (confirm)\nGET    /partner_api/v2/organizations/:org_id/reservations/:id      # show\nPUT    /partner_api/v2/organizations/:org_id/reservations/:id      # update\nDELETE /partner_api/v2/organizations/:org_id/reservations/:id      # cancel\nGET    /partner_api/v2/organizations/:org_id/reservations/:res_id/rounds/:id   # rounds are nested under a reservation\n</code></pre><h2 id=\"pagination\">Pagination</h2>\n<p>V2 uses JSON:API page params:</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>?page[number]=2&amp;page[size]=50\n</code></pre><ul>\n<li>Default page size is <strong>25</strong>.</li>\n<li>Maximum page size is <strong>100</strong>. Asking for more is <strong>silently clamped</strong> to 100; you won't get an error, you'll just get 100. (Odd edge: <code>page[size]=0</code> also yields 100.)</li>\n<li><code>page[number]</code> is 1-based and floored to 1.</li>\n</ul>\n<p>Every paginated response carries a <code>meta</code> block:</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">\"meta\": { \"page\": 1, \"page_size\": 25, \"total\": 2635, \"total_pages\": 106 }\n</code></pre>\n<p>A few endpoints omit <code>total</code>/<code>total_pages</code> (they return only <code>page</code>/<code>page_size</code>); for those, page until you get an empty <code>data</code> array.</p>\n<h2 id=\"sorting\">Sorting</h2>\n<p><strong>Lists are not sortable.</strong> There is no <code>sort</code> param on <code>teetimes</code>, <code>reservations</code>, <code>customers</code>, <code>courses</code>, <code>player_types</code>, or <code>products</code>; each comes back in a fixed order. The <strong>only</strong> endpoint that accepts <code>sort</code> is the aging report (in the \"Reports\" section). The fixed orders:</p>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Endpoint</th>\n<th>Order</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><code>customers</code></td>\n<td>last name, then first name, then <code>updated_at</code> descending</td>\n</tr>\n<tr>\n<td><code>reservations</code></td>\n<td>creation order (oldest first)</td>\n</tr>\n<tr>\n<td><code>teetimes</code></td>\n<td>start time, then hole</td>\n</tr>\n<tr>\n<td><code>courses</code></td>\n<td>the club's configured course order</td>\n</tr>\n<tr>\n<td><code>products</code></td>\n<td>creation order (oldest first)</td>\n</tr>\n<tr>\n<td><code>player_types</code></td>\n<td>newest first</td>\n</tr>\n</tbody>\n</table>\n</div><p>The customer order is by <strong>name</strong>, not by <code>updated_at</code>, so when you poll with <code>filter[updated_since]</code> and page, you're paging a name-ordered slice. That's stable within a run, but a golfer whose name changes can move position between runs; reconcile on your own id (<code>ref</code>/<code>member_no</code>), not on page position.</p>\n<h2 id=\"dates-times-and-timezones\">Dates, times, and timezones</h2>\n<p>This is the easiest thing to get wrong on a tee-sheet API, so be precise about it.</p>\n<ul>\n<li><strong><code>filter[date]</code>, <code>cut_off_date</code>, and tee-time <code>start_time</code> are the club's <em>local</em> wall-clock values.</strong> <code>filter[date]=2026-05-29</code> means that calendar date at the club; a tee time with <code>start_time: \"06:00\"</code> tees off at 6:00 AM <strong>local to the club</strong>. There's no UTC conversion, the date is matched against the stored tee-sheet date and the time is a bare wall-clock value.</li>\n<li><strong>The club's timezone is not exposed anywhere in the API.</strong> No endpoint returns the club's timezone or UTC offset. To convert the club's local tee times to UTC or your own zone, you need the club's timezone <strong>out of band</strong> (ask the operator / <a href=\"mailto:golf.api@lightspeedhq.com\">golf.api@lightspeedhq.com</a>).</li>\n<li><strong>Record timestamps (<code>created_at</code>, <code>updated_at</code>, <code>cancelled_at</code>) are a different thing.</strong> They're returned as ISO 8601 with an offset, e.g. <code>2026-05-28T14:19:46-04:00</code>. The <em>instant</em> is correct, but <strong>the offset shown is the platform default (US Eastern), not the club's timezone.</strong> A club in London or Phoenix still gets an Eastern (<code>-04:00</code>/<code>-05:00</code>) offset on these fields. So:<ul>\n<li>Treat the timestamp as a correct point in time (parse it offset-and-all).</li>\n<li><strong>Do not infer the club's timezone from that offset</strong>, and don't compare it directly to a tee-time <code>start_time</code> (which is club-local wall clock) without converting through the club's real timezone.</li>\n</ul>\n</li>\n</ul>\n<p>In short: tee-sheet dates/times are club-local wall clock; record timestamps are correct instants displayed in Eastern. The club's actual timezone you supply yourself.</p>\n<h2 id=\"money-currency-and-tax\">Money: currency and tax</h2>\n<ul>\n<li><strong>Amounts are bare numbers with no currency attached.</strong> Tee-time <code>green_fee</code>/<code>subtotal</code>/<code>rates</code>, round <code>price</code>/<code>rates</code>, and price-override <code>price</code> are plain numbers (<code>5.0</code>). The <strong>only</strong> place a currency code appears in the whole API is inside a customer's <code>fnb_spend.currency_code</code>. The club's currency is <strong>not</strong> exposed on the org, course, product, tee-time, or round. Get the club's currency out of band and treat all amounts as being in it.</li>\n<li><strong>Tax: the org's <code>tax_inclusive</code> flag is the only tax signal.</strong> When <code>tax_inclusive</code> is <code>true</code>, every amount the API returns <strong>already includes tax</strong>. When it's <code>false</code>, amounts are <strong>pre-tax</strong>. There is no tax rate and no tax-amount field anywhere, you only get the boolean.</li>\n<li><strong>This matters most for payments.</strong> The <code>payment_confirmations</code> flow validates and records the <strong>sum of the rounds' <code>price</code></strong>, which is on the club's tax basis. So on a <strong>tax-exclusive</strong> club the amount you confirm is the <strong>pre-tax subtotal</strong>, not the tax-inclusive total the golfer actually owes (the tax-inclusive figure is not exposed). On a tax-inclusive club it's the full amount. If you collect money, key your logic off <code>tax_inclusive</code> and add tax yourself for tax-exclusive clubs. See the \"Reservations &amp; Booking\" section (\"Payment confirmation\").</li>\n</ul>\n<h2 id=\"filtering\">Filtering</h2>\n<p>Filters use bracket syntax: <code>filter[field]=value</code>. Array filters repeat with <code>[]</code>: <code>filter[customer][]=uuid1&amp;filter[customer][]=uuid2</code>.</p>\n<p>Each endpoint allows a fixed set of filters. The validation is strict and produces <strong>two different errors that look similar but mean different things</strong>:</p>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>You sent</th>\n<th>Response</th>\n<th>Meaning</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>A filter key the endpoint doesn't define</td>\n<td><code>400</code> <code>{\"errors\":[{\"status\":400,\"code\":\"bad_request\",\"detail\":\"Invalid filter params\"}]}</code></td>\n<td>Typo or unsupported filter</td>\n</tr>\n<tr>\n<td>A <em>restricted</em> filter you aren't granted (e.g. <code>filter[email]</code>)</td>\n<td><code>403</code> <code>{\"errors\":[{\"status\":403,\"code\":\"forbidden\",\"detail\":\"Unauthorized filter.\"}]}</code></td>\n<td>The filter exists, but your connection isn't allowed to use it</td>\n</tr>\n</tbody>\n</table>\n</div><p>If you get the 403, the field is gated per-integrator (see the \"Customers\" section (\"Customer data sharing: you only see what the club shares\")). Contact support to have it enabled on your connection. The 400 means the filter name is wrong; check the endpoint's doc.</p>\n<p>Filter value formats (dates <code>YYYY-MM-DD</code>, timestamps ISO 8601, etc.) are listed per endpoint. A malformed value usually returns a <code>400</code> with a specific message like <code>updated_since must be a valid datetime</code>, so read the <code>detail</code>.</p>\n<h2 id=\"sparse-includes-include\">Sparse includes (<code>include</code>)</h2>\n<p>Related resources can be sideloaded into the top-level <code>included</code> array:</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>?include=rounds,teetime\n</code></pre><ul>\n<li>Each endpoint has a fixed allow-list of includes.</li>\n<li><strong>Unknown or unpermitted includes are silently dropped.</strong> No error. If you asked for <code>include=foo</code> and don't see it, it's not supported on that endpoint.</li>\n<li>Some endpoints apply default includes when you pass none. Those are listed per endpoint.</li>\n</ul>\n<h2 id=\"error-envelopes\">Error envelopes</h2>\n<p>V2 has <strong>two</strong> error shapes. Parse defensively for both.</p>\n<p><strong>Shape A</strong> comes from controlled 4xx (bad filters, bad request, not found, forbidden):</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{ \"errors\": [ { \"status\": \"400\", \"code\": \"bad_request\", \"detail\": \"Invalid filter params\" } ] }\n</code></pre>\n<p><code>status</code> is the numeric code as a string, <code>code</code> is the symbol name, <code>detail</code> is the human message.</p>\n<p><strong>Shape B</strong> comes from validation failures on writes (create/update use cases):</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{ \"error\": { \"message\": \"Green fee can't be blank and Holes is invalid\" },\n  \"errors\": [ { \"message\": \"Green fee can't be blank\" }, { \"message\": \"Holes is invalid\" } ] }\n</code></pre>\n<p>Common statuses:</p>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Status</th>\n<th>When</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><code>400</code></td>\n<td>Bad request: invalid filter, missing/invalid params, bad date, <code>Invalid round request count</code></td>\n</tr>\n<tr>\n<td><code>403</code></td>\n<td>Not permitted: missing ability, unauthorized filter, archived integrator</td>\n</tr>\n<tr>\n<td><code>404</code></td>\n<td>UUID not found, or you hit a nested path that doesn't exist (see shallow routing)</td>\n</tr>\n<tr>\n<td><code>422</code></td>\n<td>Write validation failed (Shape B)</td>\n</tr>\n<tr>\n<td><code>500</code></td>\n<td>Uncaught server error. The notable one: booking a player type that has no price in any active price sheet (see the \"Reservations &amp; Booking\" section (\"Gotcha: empty price sheet returns a 500\"))</td>\n</tr>\n<tr>\n<td><code>503</code></td>\n<td>Endpoint feature-flagged off, or a DB replica timeout. Retry later</td>\n</tr>\n</tbody>\n</table>\n</div><h2 id=\"organizations-club-vs-management-company\">Organizations: Club vs Management Company</h2>\n<p><code>:organization_id</code> resolves to either a <strong>Club</strong> or a <strong>ManagementCompany (MCO)</strong>, both addressed by UUID. Behavior differs:</p>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Endpoint</th>\n<th>Club</th>\n<th>Management Company</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><code>courses</code> index</td>\n<td>full list</td>\n<td><strong>empty array</strong> (unsupported)</td>\n</tr>\n<tr>\n<td><code>teetimes</code> index</td>\n<td>full list</td>\n<td><strong>empty array</strong> (unsupported)</td>\n</tr>\n<tr>\n<td><code>customers</code> index</td>\n<td>that club's customers</td>\n<td>customers across <strong>all</strong> clubs under the MCO that you're connected to</td>\n</tr>\n<tr>\n<td><code>customers</code> create</td>\n<td>works</td>\n<td><strong>not supported</strong> (needs a concrete club)</td>\n</tr>\n<tr>\n<td><code>player_types</code> index</td>\n<td>club types + inherited MCO types</td>\n<td>the MCO's own types only</td>\n</tr>\n</tbody>\n</table>\n</div><p>When an endpoint is \"unsupported\" for an MCO it returns an empty <code>data: []</code> with <code>200</code>, not an error. Don't read that as \"the club has no courses.\" Address a specific <strong>Club</strong> UUID for course and tee-sheet data.</p>\n<p>Call <code>GET /organizations</code> first to see what you're connected to and whether each is a club or an MCO.</p>\n<h2 id=\"scoping\">Scoping</h2>\n<p>Your integrator only ever sees clubs it's connected to. <code>Organization.accessible_by</code> filters every list. Consequences:</p>\n<ul>\n<li><code>/organizations</code> returns your connected clubs plus any clubs under connected management companies.</li>\n<li>An empty page beyond your data is expected, not a bug.</li>\n<li>A newly connected club can take <strong>up to 5 minutes</strong> to appear (the connection list is cached for 5 minutes).</li>\n</ul>\n<p>An <strong>empty <code>data: []</code> has several legitimate meanings</strong>, so don't assume it's an error:</p>\n<ul>\n<li><code>/organizations</code> empty with a working token → your integrator has <strong>no connections yet</strong>; contact support.</li>\n<li><code>courses</code>/<code>teetimes</code> empty for a valid club → either the club <strong>hasn't built that tee sheet / has no future tee times</strong>, or you addressed a <strong>management company</strong> (courses and tee times are unsupported at the MCO level, see above (in this section)).</li>\n<li>An empty page <code>N</code> → you've paged past your data.</li>\n</ul>\n<h2 id=\"polling-and-rate-limits\">Polling and rate limits</h2>\n<p><strong>You can make up to 200 requests per minute.</strong> Exceeding that returns <code>429 Too Many Requests</code>; back off and retry.</p>\n<p>There are no webhooks. To stay in sync, poll with <code>filter[updated_since]=&lt;ISO 8601&gt;</code> on <code>reservations</code> and <code>customers</code> and pull only what changed. Don't pull full history on a loop; for a busy club that's a slow query and you'll hit app-server timeouts (roughly 60 to 90 seconds) that surface as a dropped connection or a <code>503</code>. See the \"Gotchas &amp; Troubleshooting\" section for sizing guidance.</p>\n","_postman_id":"4f775ae1-5c02-4f9d-bf30-6bbbffa6dd11"},{"name":"Authentication","item":[{"name":"Refresh access token (get a Bearer token)","id":"684e7c6c-0926-41fe-acf1-7701c704a394","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[{"key":"Content-Type","value":"application/x-www-form-urlencoded"}],"body":{"mode":"urlencoded","urlencoded":[{"key":"grant_type","value":"refresh_token"},{"key":"refresh_token","value":""},{"key":"client_id","value":""},{"key":"client_secret","value":""}]},"url":"https://partner-staging.chronogolf.com/oauth/token","description":"<p>Exchange your refresh token for an access token (valid 2 hours). The response returns a NEW refresh token; store it immediately and discard the old one (refresh tokens are single-use).</p>\n","urlObject":{"path":["oauth","token"],"host":["https://partner-staging.chronogolf.com"],"query":[],"variable":[]}},"response":[{"id":"379e116d-b0ca-44c0-b5be-9dc79652f9c7","name":"Success","originalRequest":{"method":"POST","header":[{"key":"Content-Type","value":"application/x-www-form-urlencoded"}],"body":{"mode":"urlencoded","urlencoded":[{"key":"grant_type","value":"refresh_token"},{"key":"refresh_token","value":""},{"key":"client_id","value":""},{"key":"client_secret","value":""}]},"url":"https://partner-staging.chronogolf.com/oauth/token","description":"Exchange your refresh token for an access token (valid 2 hours). The response returns a NEW refresh token; store it immediately and discard the old one (refresh tokens are single-use)."},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/vnd.api+json"}],"cookie":[],"responseTime":null,"body":"{\n  \"access_token\": \"EXAMPLE_access_token\",\n  \"token_type\": \"Bearer\",\n  \"expires_in\": 7200,\n  \"refresh_token\": \"EXAMPLE_new_refresh_token_store_this\",\n  \"scope\": \"partner\",\n  \"created_at\": 1779991877\n}"}],"_postman_id":"684e7c6c-0926-41fe-acf1-7701c704a394"}],"id":"41ae10b6-38b4-4297-bd36-2a118b8c912b","description":"<h1 id=\"authentication\">Authentication</h1>\n<p>The Partner API uses OAuth 2.0 with the <strong>refresh-token grant</strong>. You're given a <code>client_id</code>, <code>client_secret</code>, and an initial <code>refresh_token</code> when your integrator is provisioned. The <code>redirect_uri</code> is always <code>urn:ietf:wg:oauth:2.0:oob</code> (there's no browser redirect flow for partners).</p>\n<h2 id=\"the-one-thing-that-breaks-most-integrations\">The one thing that breaks most integrations</h2>\n<p><strong>Refresh tokens are single-use and rotate on every refresh.</strong> Every time you exchange a refresh token for an access token, the response contains a <em>new</em> refresh token, and the one you just used is dead. If you don't persist the new one, your integration is locked out and the only fix is for us to issue you a fresh token by hand.</p>\n<p>This is standard OAuth refresh-token rotation, but it surprises people who treat the refresh token like a permanent API key. It isn't.</p>\n<p>Three rules that follow from this:</p>\n<ol>\n<li><strong>Persist the new <code>refresh_token</code> from every response, atomically, before you make any other call.</strong> Treat it as your most important piece of state.</li>\n<li><strong>Never refresh from two processes at once.</strong> If two workers refresh concurrently, one wins and the other is permanently locked out with the token it tried to use. Put a lock or a singleton refresher in front of it.</li>\n<li><strong>If you lose your refresh token, you can't self-recover.</strong> Email <a href=\"mailto:golf.api@lightspeedhq.com\">golf.api@lightspeedhq.com</a> and we'll generate a new one.</li>\n</ol>\n<h2 id=\"get-an-access-token\">Get an access token</h2>\n<p><code>POST /oauth/token</code>, form-encoded (<code>application/x-www-form-urlencoded</code>):</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-bash\">curl -s -X POST \"https://partner-staging.chronogolf.com/oauth/token\" \\\n  -d \"grant_type=refresh_token\" \\\n  -d \"refresh_token=YOUR_CURRENT_REFRESH_TOKEN\" \\\n  -d \"client_id=YOUR_CLIENT_ID\" \\\n  -d \"client_secret=YOUR_CLIENT_SECRET\"\n</code></pre>\n<p>Response:</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"access_token\": \"EXAMPLE_access_token_use_this_on_api_calls\",\n  \"token_type\": \"Bearer\",\n  \"expires_in\": 7200,\n  \"refresh_token\": \"EXAMPLE_new_refresh_token_store_this_immediately\",\n  \"scope\": \"partner\",\n  \"created_at\": 1779991877\n}\n</code></pre>\n<ul>\n<li><code>access_token</code> is what you put on every API call: <code>Authorization: Bearer &lt;access_token&gt;</code>.</li>\n<li><code>expires_in</code> is <strong>7200 seconds (2 hours)</strong>. This is fixed. Don't guess longer.</li>\n<li><code>refresh_token</code> is your <strong>new</strong> refresh token. Save it. The one you sent is now invalid.</li>\n<li><code>scope</code> must include <code>partner</code>. If it doesn't, your credentials weren't set up for the Partner API; contact support.</li>\n</ul>\n<h2 id=\"token-lifecycle\">Token lifecycle</h2>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>                 use refresh_token (single use)\n   refresh_token ───────────────────────────────▶ access_token (valid 2h)\n        ▲                                                │\n        │ store the NEW refresh_token                    │ make API calls\n        │ returned in the same response                  ▼\n        └──────────────────────────── when access_token expires (401),\n                                       refresh again with the latest refresh_token\n</code></pre><p>A refresh token doesn't expire on a timer; it's invalidated the moment its access token is used to refresh again. So a healthy integration:</p>\n<ol>\n<li>Holds one current refresh token.</li>\n<li>On startup or on a 401, refreshes to get a fresh access token + new refresh token.</li>\n<li>Persists the new refresh token immediately.</li>\n<li>Uses the access token until it 401s, then repeats.</li>\n</ol>\n<p>A common, safe pattern is to refresh proactively a few minutes before the 2-hour mark rather than waiting for the 401.</p>\n<h2 id=\"calling-the-api\">Calling the API</h2>\n<p>Every request needs the bearer token and an <code>Accept</code> header:</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-bash\">curl -s \"https://partner-staging.chronogolf.com/partner_api/v2/organizations\" \\\n  -H \"Authorization: Bearer YOUR_ACCESS_TOKEN\" \\\n  -H \"Accept: application/vnd.api+json\"\n</code></pre>\n<p>The <code>Accept</code> header is not optional for V2. A request with <code>Accept: */*</code> (the default for many HTTP clients) or no <code>Accept</code> header at all will <strong>not</strong> route to V2 and returns a confusing empty <code>403</code>. See the \"Conventions (read this first)\" section (\"Content type and the Accept header trap\").</p>\n<h2 id=\"errors-youll-see-at-the-auth-layer\">Errors you'll see at the auth layer</h2>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Symptom</th>\n<th>Cause</th>\n<th>Fix</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><code>401</code> on an API call</td>\n<td>Access token expired (after 2h) or wrong</td>\n<td>Refresh and retry with the new access token</td>\n</tr>\n<tr>\n<td>OAuth call returns <code>invalid_grant</code></td>\n<td>Refresh token already used, or you sent the old one</td>\n<td>Use the latest refresh token; if lost, contact support</td>\n</tr>\n<tr>\n<td><code>403 Forbidden</code> with valid token</td>\n<td>Your integrator is archived</td>\n<td>Contact support</td>\n</tr>\n<tr>\n<td><code>404</code> / wrong host</td>\n<td>Using the wrong environment host</td>\n<td>Production is <code>partner-api.chronogolf.com</code>, staging is <code>partner-staging.chronogolf.com</code></td>\n</tr>\n<tr>\n<td>Cloudflare \"you have been blocked\" HTML</td>\n<td>Default <code>curl</code>/script user-agent tripped the WAF</td>\n<td>Send a normal <code>User-Agent</code> header</td>\n</tr>\n</tbody>\n</table>\n</div><blockquote>\n<p>Provisioning note: there's no app-registration UI. One integrator gets one set of credentials and can be connected to many clubs (or a whole management company). Adding a club to an existing integrator doesn't change your credentials. Special setups (for example, separate credentials per club, as some on-course hardware vendors need) are possible by request.</p>\n</blockquote>\n","_postman_id":"41ae10b6-38b4-4297-bd36-2a118b8c912b"},{"name":"Club Setup & Pricing","item":[{"name":"List organizations","id":"5e4472be-2679-4034-8192-a8cf529866ed","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[{"key":"Accept","value":"application/vnd.api+json"},{"key":"Authorization","value":"Bearer "}],"url":"https://partner-staging.chronogolf.com/partner_api/v2/organizations","description":"<p>Call this first to discover the clubs/management companies you're connected to.</p>\n","urlObject":{"path":["partner_api","v2","organizations"],"host":["https://partner-staging.chronogolf.com"],"query":[{"disabled":true,"key":"page[size]","value":"25"},{"disabled":true,"key":"page[number]","value":"1"}],"variable":[]}},"response":[{"id":"108b383a-573f-4393-a8e6-7e0e58961943","name":"Success","originalRequest":{"method":"GET","header":[{"key":"Accept","value":"application/vnd.api+json"},{"key":"Authorization","value":"Bearer "}],"url":{"raw":"https://partner-staging.chronogolf.com/partner_api/v2/organizations","host":["https://partner-staging.chronogolf.com"],"path":["partner_api","v2","organizations"],"query":[{"key":"page[size]","value":"25","disabled":true},{"key":"page[number]","value":"1","disabled":true}]},"description":"Call this first to discover the clubs/management companies you're connected to."},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/vnd.api+json"}],"cookie":[],"responseTime":null,"body":"{\n  \"data\": [\n    {\n      \"id\": \"044ba009-d9f2-47c2-90c1-54fcd35996a4\",\n      \"type\": \"organization\",\n      \"attributes\": {\n        \"name\": \"Royal Ontario\",\n        \"online_booking_enabled\": true,\n        \"tax_inclusive\": false\n      },\n      \"relationships\": {\n        \"default_player_type\": {\n          \"data\": {\n            \"id\": \"6d5cfa52-60f9-4109-9a5e-b80269a426f9\",\n            \"type\": \"default_player_type\"\n          }\n        }\n      }\n    }\n  ],\n  \"meta\": {\n    \"page\": 1,\n    \"page_size\": 25,\n    \"total\": 1,\n    \"total_pages\": 1\n  }\n}"}],"_postman_id":"5e4472be-2679-4034-8192-a8cf529866ed"},{"name":"Show organization","id":"cbf19d05-2330-4e02-bc6c-32f44a32a1e2","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[{"key":"Accept","value":"application/vnd.api+json"},{"key":"Authorization","value":"Bearer "}],"url":"https://partner-staging.chronogolf.com/partner_api/v2/organizations/044ba009-d9f2-47c2-90c1-54fcd35996a4","urlObject":{"path":["partner_api","v2","organizations","044ba009-d9f2-47c2-90c1-54fcd35996a4"],"host":["https://partner-staging.chronogolf.com"],"query":[],"variable":[]}},"response":[{"id":"70ed35d3-b1f3-4be5-bf34-92c15e811b06","name":"Success","originalRequest":{"method":"GET","header":[{"key":"Accept","value":"application/vnd.api+json"},{"key":"Authorization","value":"Bearer "}],"url":"https://partner-staging.chronogolf.com/partner_api/v2/organizations/044ba009-d9f2-47c2-90c1-54fcd35996a4"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/vnd.api+json"}],"cookie":[],"responseTime":null,"body":"{\n  \"data\": {\n    \"id\": \"044ba009-d9f2-47c2-90c1-54fcd35996a4\",\n    \"type\": \"organization\",\n    \"attributes\": {\n      \"name\": \"Royal Ontario\",\n      \"online_booking_enabled\": true,\n      \"tax_inclusive\": false\n    },\n    \"relationships\": {\n      \"default_player_type\": {\n        \"data\": {\n          \"id\": \"6d5cfa52-60f9-4109-9a5e-b80269a426f9\",\n          \"type\": \"default_player_type\"\n        }\n      }\n    }\n  }\n}"}],"_postman_id":"cbf19d05-2330-4e02-bc6c-32f44a32a1e2"},{"name":"List courses","id":"5b61d7d1-6eff-4b1d-8118-033298848b06","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[{"key":"Accept","value":"application/vnd.api+json"},{"key":"Authorization","value":"Bearer "}],"url":"https://partner-staging.chronogolf.com/partner_api/v2/organizations/044ba009-d9f2-47c2-90c1-54fcd35996a4/courses","description":"<p>Club only. A management-company URL returns an empty array.</p>\n","urlObject":{"path":["partner_api","v2","organizations","044ba009-d9f2-47c2-90c1-54fcd35996a4","courses"],"host":["https://partner-staging.chronogolf.com"],"query":[],"variable":[]}},"response":[{"id":"a027cd12-df3e-40b3-bcfb-2b74e93d6a16","name":"Success","originalRequest":{"method":"GET","header":[{"key":"Accept","value":"application/vnd.api+json"},{"key":"Authorization","value":"Bearer "}],"url":"https://partner-staging.chronogolf.com/partner_api/v2/organizations/044ba009-d9f2-47c2-90c1-54fcd35996a4/courses","description":"Club only. A management-company URL returns an empty array."},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/vnd.api+json"}],"cookie":[],"responseTime":null,"body":"{\n  \"data\": [\n    {\n      \"id\": \"27c79000-117c-4a8f-8e35-1250deb41338\",\n      \"type\": \"course\",\n      \"attributes\": {\n        \"name\": \"executive course\",\n        \"holes\": 18,\n        \"par\": null,\n        \"distance\": null,\n        \"online_booking_enabled\": true,\n        \"cart_mandatory\": false\n      },\n      \"relationships\": {\n        \"organization\": {\n          \"data\": {\n            \"id\": \"044ba009-d9f2-47c2-90c1-54fcd35996a4\",\n            \"type\": \"organization\"\n          }\n        }\n      }\n    },\n    {\n      \"id\": \"5e7c2077-baae-4fa0-95ea-3ce02124284e\",\n      \"type\": \"course\",\n      \"attributes\": {\n        \"name\": \"Royal Ontario\",\n        \"holes\": 18,\n        \"par\": null,\n        \"distance\": null,\n        \"online_booking_enabled\": true,\n        \"cart_mandatory\": false\n      },\n      \"relationships\": {\n        \"organization\": {\n          \"data\": {\n            \"id\": \"044ba009-d9f2-47c2-90c1-54fcd35996a4\",\n            \"type\": \"organization\"\n          }\n        }\n      }\n    }\n  ],\n  \"meta\": {\n    \"page\": 1,\n    \"page_size\": 25,\n    \"total\": 2,\n    \"total_pages\": 1\n  }\n}"}],"_postman_id":"5b61d7d1-6eff-4b1d-8118-033298848b06"},{"name":"Show course","id":"eb318cd7-d054-4e4d-a310-3b854ee9e7ae","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[{"key":"Accept","value":"application/vnd.api+json"},{"key":"Authorization","value":"Bearer "}],"url":"https://partner-staging.chronogolf.com/partner_api/v2/courses/5e7c2077-baae-4fa0-95ea-3ce02124284e","urlObject":{"path":["partner_api","v2","courses","5e7c2077-baae-4fa0-95ea-3ce02124284e"],"host":["https://partner-staging.chronogolf.com"],"query":[],"variable":[]}},"response":[{"id":"68035de9-17db-4622-8fa7-9d2aeb042448","name":"Success","originalRequest":{"method":"GET","header":[{"key":"Accept","value":"application/vnd.api+json"},{"key":"Authorization","value":"Bearer "}],"url":"https://partner-staging.chronogolf.com/partner_api/v2/courses/5e7c2077-baae-4fa0-95ea-3ce02124284e"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/vnd.api+json"}],"cookie":[],"responseTime":null,"body":"{\n  \"data\": {\n    \"id\": \"5e7c2077-baae-4fa0-95ea-3ce02124284e\",\n    \"type\": \"course\",\n    \"attributes\": {\n      \"name\": \"Royal Ontario\",\n      \"holes\": 18,\n      \"par\": null,\n      \"distance\": null,\n      \"online_booking_enabled\": true,\n      \"cart_mandatory\": false\n    },\n    \"relationships\": {\n      \"organization\": {\n        \"data\": {\n          \"id\": \"044ba009-d9f2-47c2-90c1-54fcd35996a4\",\n          \"type\": \"organization\"\n        }\n      }\n    }\n  }\n}"}],"_postman_id":"eb318cd7-d054-4e4d-a310-3b854ee9e7ae"},{"name":"List player types","id":"101fcf6c-5569-4ed6-8dea-ad726ddd91d2","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[{"key":"Accept","value":"application/vnd.api+json"},{"key":"Authorization","value":"Bearer "}],"url":"https://partner-staging.chronogolf.com/partner_api/v2/organizations/044ba009-d9f2-47c2-90c1-54fcd35996a4/player_types","description":"<p>Includes the club's own types plus those inherited from its management company.</p>\n","urlObject":{"path":["partner_api","v2","organizations","044ba009-d9f2-47c2-90c1-54fcd35996a4","player_types"],"host":["https://partner-staging.chronogolf.com"],"query":[],"variable":[]}},"response":[{"id":"8aee49cb-dda9-46ac-a21c-effd2d569847","name":"Success","originalRequest":{"method":"GET","header":[{"key":"Accept","value":"application/vnd.api+json"},{"key":"Authorization","value":"Bearer "}],"url":"https://partner-staging.chronogolf.com/partner_api/v2/organizations/044ba009-d9f2-47c2-90c1-54fcd35996a4/player_types","description":"Includes the club's own types plus those inherited from its management company."},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/vnd.api+json"}],"cookie":[],"responseTime":null,"body":"{\n  \"data\": [\n    {\n      \"id\": \"3b84cd17-fffb-44f9-8570-a690231af66d\",\n      \"type\": \"player_type\",\n      \"attributes\": {\n        \"name\": \"Junior\",\n        \"default_player_role\": \"member\",\n        \"booking_range\": 7\n      },\n      \"relationships\": {\n        \"organization\": {\n          \"data\": {\n            \"id\": \"044ba009-d9f2-47c2-90c1-54fcd35996a4\",\n            \"type\": \"organization\"\n          }\n        }\n      }\n    },\n    {\n      \"id\": \"baa84806-9a09-44ec-91c1-af04ffacf08d\",\n      \"type\": \"player_type\",\n      \"attributes\": {\n        \"name\": \"Twilight Member\",\n        \"default_player_role\": \"member\",\n        \"booking_range\": 7\n      },\n      \"relationships\": {\n        \"organization\": {\n          \"data\": {\n            \"id\": \"044ba009-d9f2-47c2-90c1-54fcd35996a4\",\n            \"type\": \"organization\"\n          }\n        }\n      }\n    }\n  ],\n  \"meta\": {\n    \"page\": 1,\n    \"page_size\": 25,\n    \"total\": 5,\n    \"total_pages\": 1\n  }\n}"}],"_postman_id":"101fcf6c-5569-4ed6-8dea-ad726ddd91d2"},{"name":"Show player type","id":"f049480d-90d5-4fc9-97b6-8483e678e72a","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[{"key":"Accept","value":"application/vnd.api+json"},{"key":"Authorization","value":"Bearer "}],"url":"https://partner-staging.chronogolf.com/partner_api/v2/player_types/3b84cd17-fffb-44f9-8570-a690231af66d","urlObject":{"path":["partner_api","v2","player_types","3b84cd17-fffb-44f9-8570-a690231af66d"],"host":["https://partner-staging.chronogolf.com"],"query":[],"variable":[]}},"response":[{"id":"448a2b71-13af-45e4-93bc-6727cb387d0a","name":"Success","originalRequest":{"method":"GET","header":[{"key":"Accept","value":"application/vnd.api+json"},{"key":"Authorization","value":"Bearer "}],"url":"https://partner-staging.chronogolf.com/partner_api/v2/player_types/3b84cd17-fffb-44f9-8570-a690231af66d"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/vnd.api+json"}],"cookie":[],"responseTime":null,"body":"{\n  \"data\": {\n    \"id\": \"3b84cd17-fffb-44f9-8570-a690231af66d\",\n    \"type\": \"player_type\",\n    \"attributes\": {\n      \"name\": \"Junior\",\n      \"default_player_role\": \"member\",\n      \"booking_range\": 7\n    },\n    \"relationships\": {\n      \"organization\": {\n        \"data\": {\n          \"id\": \"044ba009-d9f2-47c2-90c1-54fcd35996a4\",\n          \"type\": \"organization\"\n        }\n      }\n    }\n  }\n}"}],"_postman_id":"f049480d-90d5-4fc9-97b6-8483e678e72a"},{"name":"List products","id":"ec5944a4-b6d4-493d-90e4-010598587b6f","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[{"key":"Accept","value":"application/vnd.api+json"},{"key":"Authorization","value":"Bearer "}],"url":"https://partner-staging.chronogolf.com/partner_api/v2/organizations/044ba009-d9f2-47c2-90c1-54fcd35996a4/products","urlObject":{"path":["partner_api","v2","organizations","044ba009-d9f2-47c2-90c1-54fcd35996a4","products"],"host":["https://partner-staging.chronogolf.com"],"query":[{"disabled":true,"key":"filter[product_type][]","value":"green_fee"},{"disabled":true,"key":"include","value":"courses"}],"variable":[]}},"response":[{"id":"42f77f49-2294-495a-9d8a-f14ccb73c086","name":"Success","originalRequest":{"method":"GET","header":[{"key":"Accept","value":"application/vnd.api+json"},{"key":"Authorization","value":"Bearer "}],"url":{"raw":"https://partner-staging.chronogolf.com/partner_api/v2/organizations/044ba009-d9f2-47c2-90c1-54fcd35996a4/products","host":["https://partner-staging.chronogolf.com"],"path":["partner_api","v2","organizations","044ba009-d9f2-47c2-90c1-54fcd35996a4","products"],"query":[{"key":"filter[product_type][]","value":"green_fee","disabled":true},{"key":"include","value":"courses","disabled":true}]}},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/vnd.api+json"}],"cookie":[],"responseTime":null,"body":"{\n  \"data\": [\n    {\n      \"id\": \"3cf714ee-ebfb-46d8-9073-24b94526d88f\",\n      \"type\": \"product\",\n      \"attributes\": {\n        \"name\": \"18 holes\",\n        \"product_type\": \"green_fee\",\n        \"state\": \"active\",\n        \"price\": null,\n        \"bookable_holes\": 18\n      },\n      \"relationships\": {\n        \"organization\": {\n          \"data\": {\n            \"id\": \"044ba009-d9f2-47c2-90c1-54fcd35996a4\",\n            \"type\": \"organization\"\n          }\n        },\n        \"courses\": {\n          \"data\": [\n            {\n              \"id\": \"5e7c2077-baae-4fa0-95ea-3ce02124284e\",\n              \"type\": \"course\"\n            }\n          ]\n        }\n      }\n    },\n    {\n      \"id\": \"7ba8d3bd-13ed-4ed7-ba5c-17f6bbfae205\",\n      \"type\": \"product\",\n      \"attributes\": {\n        \"name\": \"9 holes\",\n        \"product_type\": \"green_fee\",\n        \"state\": \"active\",\n        \"price\": null,\n        \"bookable_holes\": 9\n      },\n      \"relationships\": {\n        \"organization\": {\n          \"data\": {\n            \"id\": \"044ba009-d9f2-47c2-90c1-54fcd35996a4\",\n            \"type\": \"organization\"\n          }\n        },\n        \"courses\": {\n          \"data\": [\n            {\n              \"id\": \"5e7c2077-baae-4fa0-95ea-3ce02124284e\",\n              \"type\": \"course\"\n            }\n          ]\n        }\n      }\n    }\n  ],\n  \"meta\": {\n    \"page\": 1,\n    \"page_size\": 25,\n    \"total\": 4,\n    \"total_pages\": 1\n  }\n}"}],"_postman_id":"ec5944a4-b6d4-493d-90e4-010598587b6f"},{"name":"Show product","id":"2bf66b08-2262-4890-9041-b66d4507253d","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[{"key":"Accept","value":"application/vnd.api+json"},{"key":"Authorization","value":"Bearer "}],"url":"https://partner-staging.chronogolf.com/partner_api/v2/products/3cf714ee-ebfb-46d8-9073-24b94526d88f","urlObject":{"path":["partner_api","v2","products","3cf714ee-ebfb-46d8-9073-24b94526d88f"],"host":["https://partner-staging.chronogolf.com"],"query":[],"variable":[]}},"response":[{"id":"bca0b1c5-45d6-4b1c-9172-86856bdd4be0","name":"Success","originalRequest":{"method":"GET","header":[{"key":"Accept","value":"application/vnd.api+json"},{"key":"Authorization","value":"Bearer "}],"url":"https://partner-staging.chronogolf.com/partner_api/v2/products/3cf714ee-ebfb-46d8-9073-24b94526d88f"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/vnd.api+json"}],"cookie":[],"responseTime":null,"body":"{\n  \"data\": {\n    \"id\": \"3cf714ee-ebfb-46d8-9073-24b94526d88f\",\n    \"type\": \"product\",\n    \"attributes\": {\n      \"name\": \"18 holes\",\n      \"product_type\": \"green_fee\",\n      \"state\": \"active\",\n      \"price\": null,\n      \"bookable_holes\": 18\n    },\n    \"relationships\": {\n      \"organization\": {\n        \"data\": {\n          \"id\": \"044ba009-d9f2-47c2-90c1-54fcd35996a4\",\n          \"type\": \"organization\"\n        }\n      },\n      \"courses\": {\n        \"data\": [\n          {\n            \"id\": \"5e7c2077-baae-4fa0-95ea-3ce02124284e\",\n            \"type\": \"course\"\n          }\n        ]\n      }\n    }\n  }\n}"}],"_postman_id":"2bf66b08-2262-4890-9041-b66d4507253d"},{"name":"List price overrides","id":"8b642525-003b-4a2d-9a0f-5f7fa54a5499","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[{"key":"Accept","value":"application/vnd.api+json"},{"key":"Authorization","value":"Bearer "}],"url":"https://partner-staging.chronogolf.com/partner_api/v2/organizations/044ba009-d9f2-47c2-90c1-54fcd35996a4/price_overrides","urlObject":{"path":["partner_api","v2","organizations","044ba009-d9f2-47c2-90c1-54fcd35996a4","price_overrides"],"host":["https://partner-staging.chronogolf.com"],"query":[],"variable":[]}},"response":[{"id":"0e8e12ce-08e8-48b6-8acc-e0372ae7ca9e","name":"Success","originalRequest":{"method":"GET","header":[{"key":"Accept","value":"application/vnd.api+json"},{"key":"Authorization","value":"Bearer "}],"url":"https://partner-staging.chronogolf.com/partner_api/v2/organizations/044ba009-d9f2-47c2-90c1-54fcd35996a4/price_overrides"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/vnd.api+json"}],"cookie":[],"responseTime":null,"body":"{\n  \"data\": [],\n  \"meta\": {\n    \"page\": 1,\n    \"page_size\": 25,\n    \"total\": 0,\n    \"total_pages\": 0\n  }\n}"}],"_postman_id":"8b642525-003b-4a2d-9a0f-5f7fa54a5499"},{"name":"Show price override","id":"9d5fe0f7-8f96-445d-98f6-2937363e0151","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[{"key":"Accept","value":"application/vnd.api+json"},{"key":"Authorization","value":"Bearer "}],"url":"https://partner-staging.chronogolf.com/partner_api/v2/price_overrides/","urlObject":{"path":["partner_api","v2","price_overrides",""],"host":["https://partner-staging.chronogolf.com"],"query":[],"variable":[]}},"response":[{"id":"ef26ac94-8ae6-4d47-b08e-47401d3f8347","name":"Success","originalRequest":{"method":"GET","header":[{"key":"Accept","value":"application/vnd.api+json"},{"key":"Authorization","value":"Bearer "}],"url":"https://partner-staging.chronogolf.com/partner_api/v2/price_overrides/"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/vnd.api+json"}],"cookie":[],"responseTime":null,"body":"{\n  \"data\": {\n    \"id\": \"ad75615f-2aad-4f7f-b0af-6f289cea8fac\",\n    \"type\": \"price_override\",\n    \"attributes\": {\n      \"starts_at\": \"2027-07-01T06:00:00.000-04:00\",\n      \"ends_at\": \"2027-07-07T20:00:00.000-04:00\",\n      \"duration\": 568800.0,\n      \"price\": \"39.0\"\n    },\n    \"relationships\": {\n      \"course\": {\n        \"data\": {\n          \"id\": \"5e7c2077-baae-4fa0-95ea-3ce02124284e\",\n          \"type\": \"course\"\n        }\n      },\n      \"player_type\": {\n        \"data\": {\n          \"id\": \"3b84cd17-fffb-44f9-8570-a690231af66d\",\n          \"type\": \"player_type\"\n        }\n      },\n      \"product\": {\n        \"data\": {\n          \"id\": \"3cf714ee-ebfb-46d8-9073-24b94526d88f\",\n          \"type\": \"product\"\n        }\n      }\n    }\n  }\n}"}],"_postman_id":"9d5fe0f7-8f96-445d-98f6-2937363e0151"},{"name":"Create price override","id":"7dedca94-0321-48e4-a739-4a7f25a5b7d2","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[{"key":"Accept","value":"application/vnd.api+json"},{"key":"Authorization","value":"Bearer "},{"key":"Content-Type","value":"application/vnd.api+json"}],"body":{"mode":"raw","raw":"{\n  \"data\": {\n    \"type\": \"price_override\",\n    \"attributes\": {\n      \"starts_at\": \"2026-07-01T06:00:00-04:00\",\n      \"ends_at\": \"2026-07-07T20:00:00-04:00\",\n      \"price\": 39.0\n    },\n    \"relationships\": {\n      \"course\": {\n        \"data\": {\n          \"type\": \"course\",\n          \"id\": \"5e7c2077-baae-4fa0-95ea-3ce02124284e\"\n        }\n      },\n      \"player_type\": {\n        \"data\": {\n          \"type\": \"player_type\",\n          \"id\": \"3b84cd17-fffb-44f9-8570-a690231af66d\"\n        }\n      },\n      \"product\": {\n        \"data\": {\n          \"type\": \"product\",\n          \"id\": \"3cf714ee-ebfb-46d8-9073-24b94526d88f\"\n        }\n      }\n    }\n  }\n}","options":{"raw":{"language":"json"}}},"url":"https://partner-staging.chronogolf.com/partner_api/v2/organizations/044ba009-d9f2-47c2-90c1-54fcd35996a4/price_overrides","description":"<p>course + player_type + product must all belong to the same club. The club must have overrides enabled for it to affect pricing.</p>\n","urlObject":{"path":["partner_api","v2","organizations","044ba009-d9f2-47c2-90c1-54fcd35996a4","price_overrides"],"host":["https://partner-staging.chronogolf.com"],"query":[],"variable":[]}},"response":[{"id":"c6762cbe-d24c-4fb0-bdbb-f9c49d54785f","name":"Created","originalRequest":{"method":"POST","header":[{"key":"Accept","value":"application/vnd.api+json"},{"key":"Authorization","value":"Bearer "},{"key":"Content-Type","value":"application/vnd.api+json"}],"body":{"mode":"raw","raw":"{\n  \"data\": {\n    \"type\": \"price_override\",\n    \"attributes\": {\n      \"starts_at\": \"2026-07-01T06:00:00-04:00\",\n      \"ends_at\": \"2026-07-07T20:00:00-04:00\",\n      \"price\": 39.0\n    },\n    \"relationships\": {\n      \"course\": {\n        \"data\": {\n          \"type\": \"course\",\n          \"id\": \"5e7c2077-baae-4fa0-95ea-3ce02124284e\"\n        }\n      },\n      \"player_type\": {\n        \"data\": {\n          \"type\": \"player_type\",\n          \"id\": \"3b84cd17-fffb-44f9-8570-a690231af66d\"\n        }\n      },\n      \"product\": {\n        \"data\": {\n          \"type\": \"product\",\n          \"id\": \"3cf714ee-ebfb-46d8-9073-24b94526d88f\"\n        }\n      }\n    }\n  }\n}","options":{"raw":{"language":"json"}}},"url":"https://partner-staging.chronogolf.com/partner_api/v2/organizations/044ba009-d9f2-47c2-90c1-54fcd35996a4/price_overrides","description":"course + player_type + product must all belong to the same club. The club must have overrides enabled for it to affect pricing."},"status":"Created","code":201,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/vnd.api+json"}],"cookie":[],"responseTime":null,"body":"{\n  \"data\": {\n    \"id\": \"ad75615f-2aad-4f7f-b0af-6f289cea8fac\",\n    \"type\": \"price_override\",\n    \"attributes\": {\n      \"starts_at\": \"2027-07-01T06:00:00.000-04:00\",\n      \"ends_at\": \"2027-07-07T20:00:00.000-04:00\",\n      \"duration\": 568800.0,\n      \"price\": \"39.0\"\n    },\n    \"relationships\": {\n      \"course\": {\n        \"data\": {\n          \"id\": \"5e7c2077-baae-4fa0-95ea-3ce02124284e\",\n          \"type\": \"course\"\n        }\n      },\n      \"player_type\": {\n        \"data\": {\n          \"id\": \"3b84cd17-fffb-44f9-8570-a690231af66d\",\n          \"type\": \"player_type\"\n        }\n      },\n      \"product\": {\n        \"data\": {\n          \"id\": \"3cf714ee-ebfb-46d8-9073-24b94526d88f\",\n          \"type\": \"product\"\n        }\n      }\n    }\n  }\n}"}],"_postman_id":"7dedca94-0321-48e4-a739-4a7f25a5b7d2"},{"name":"Update price override","id":"c5a58a0e-bdb9-403c-bfdb-558cb473910b","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"PUT","header":[{"key":"Accept","value":"application/vnd.api+json"},{"key":"Authorization","value":"Bearer "},{"key":"Content-Type","value":"application/vnd.api+json"}],"body":{"mode":"raw","raw":"{\n  \"data\": {\n    \"type\": \"price_override\",\n    \"attributes\": {\n      \"price\": 42.0\n    }\n  }\n}","options":{"raw":{"language":"json"}}},"url":"https://partner-staging.chronogolf.com/partner_api/v2/price_overrides/","urlObject":{"path":["partner_api","v2","price_overrides",""],"host":["https://partner-staging.chronogolf.com"],"query":[],"variable":[]}},"response":[{"id":"685ffa6e-ce8d-4f63-9d3f-6e67f7a7b8b2","name":"Success","originalRequest":{"method":"PUT","header":[{"key":"Accept","value":"application/vnd.api+json"},{"key":"Authorization","value":"Bearer "},{"key":"Content-Type","value":"application/vnd.api+json"}],"body":{"mode":"raw","raw":"{\n  \"data\": {\n    \"type\": \"price_override\",\n    \"attributes\": {\n      \"price\": 42.0\n    }\n  }\n}","options":{"raw":{"language":"json"}}},"url":"https://partner-staging.chronogolf.com/partner_api/v2/price_overrides/"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/vnd.api+json"}],"cookie":[],"responseTime":null,"body":"{\n  \"data\": {\n    \"id\": \"ad75615f-2aad-4f7f-b0af-6f289cea8fac\",\n    \"type\": \"price_override\",\n    \"attributes\": {\n      \"starts_at\": \"2027-07-01T06:00:00.000-04:00\",\n      \"ends_at\": \"2027-07-07T20:00:00.000-04:00\",\n      \"duration\": 568800.0,\n      \"price\": \"42.0\"\n    },\n    \"relationships\": {\n      \"course\": {\n        \"data\": {\n          \"id\": \"5e7c2077-baae-4fa0-95ea-3ce02124284e\",\n          \"type\": \"course\"\n        }\n      },\n      \"player_type\": {\n        \"data\": {\n          \"id\": \"3b84cd17-fffb-44f9-8570-a690231af66d\",\n          \"type\": \"player_type\"\n        }\n      },\n      \"product\": {\n        \"data\": {\n          \"id\": \"3cf714ee-ebfb-46d8-9073-24b94526d88f\",\n          \"type\": \"product\"\n        }\n      }\n    }\n  }\n}"}],"_postman_id":"c5a58a0e-bdb9-403c-bfdb-558cb473910b"},{"name":"Delete price override","id":"01925231-a022-40f8-b229-8e871dd520d2","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"DELETE","header":[{"key":"Accept","value":"application/vnd.api+json"},{"key":"Authorization","value":"Bearer "}],"url":"https://partner-staging.chronogolf.com/partner_api/v2/price_overrides/","description":"<p>Hard delete. Returns 204.</p>\n","urlObject":{"path":["partner_api","v2","price_overrides",""],"host":["https://partner-staging.chronogolf.com"],"query":[],"variable":[]}},"response":[{"id":"86c78356-4ae3-49b8-9a5d-088dbc7f8597","name":"No Content","originalRequest":{"method":"DELETE","header":[{"key":"Accept","value":"application/vnd.api+json"},{"key":"Authorization","value":"Bearer "}],"url":"https://partner-staging.chronogolf.com/partner_api/v2/price_overrides/","description":"Hard delete. Returns 204."},"status":"No Content","code":204,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/vnd.api+json"}],"cookie":[],"responseTime":null,"body":""}],"_postman_id":"01925231-a022-40f8-b229-8e871dd520d2"}],"id":"d68de023-3e41-4c87-beb7-31e69c69aec8","description":"<h1 id=\"club-setup-and-pricing\">Club setup and pricing</h1>\n<p>A club's setup and pricing: the read-only reference data you fetch to discover IDs and config (organizations, courses, player types, products), plus price overrides for changing pricing. All of these are scoped to your connected clubs.</p>\n<h2 id=\"organizations\">Organizations</h2>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>GET /partner_api/v2/organizations          # list what you're connected to\nGET /partner_api/v2/organizations/:id       # one org\n</code></pre><p><strong>Call this first.</strong> It tells you which clubs (and management companies) your integrator can reach, and gives you the UUIDs that go in every other URL.</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{ \"data\": [ {\n  \"id\": \"a0baaa6a-7a74-44ef-bbd3-d689729c5a67\",\n  \"type\": \"organization\",\n  \"attributes\": { \"name\": \"Test Facility\", \"online_booking_enabled\": true, \"tax_inclusive\": false },\n  \"relationships\": { \"default_player_type\": { \"data\": { \"id\": \"8f7eb176-...\", \"type\": \"default_player_type\" } } }\n} ], \"meta\": { \"page\": 1, \"page_size\": 25, \"total\": 1, \"total_pages\": 1 } }\n</code></pre>\n<ul>\n<li><code>tax_inclusive</code> tells you whether prices include tax (only present for clubs).</li>\n<li><code>default_player_type</code> is the type used when you book without specifying one.</li>\n<li>If this returns one club, an empty <code>page[number]=2</code> is expected, not a bug.</li>\n</ul>\n<h2 id=\"courses\">Courses</h2>\n<p>A <strong>course</strong> is a single playable layout that golfers book and tee off on. A club has <strong>one or more</strong> courses, and a course belongs to exactly one club.</p>\n<p>Most clubs have several. Courses are how a facility splits up its playable layouts, for example:</p>\n<ul>\n<li>A 36-hole club with two named 18s: \"Blue Course\" and \"Red Course\".</li>\n<li>An 18-hole club that also sells its two nines separately: \"Front Nine\" and \"Back Nine\".</li>\n<li>A resort with a flagship and a short course: \"Championship Course\" and \"The Academy 9\".</li>\n</ul>\n<p>Each course has its own tee sheet, its own tee times, and its own pricing. So whenever you read availability or book, you do it <strong>per course</strong>, not per club: <code>filter[course]</code> on tee times, the <code>course</code> relationship on a booking, and product/price-override scoping are all course-level. Call <code>GET .../courses</code> first to get the course UUIDs for a club, then drive everything else off those.</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>GET /partner_api/v2/organizations/:org_id/courses     # list (Club only)\nGET /partner_api/v2/courses/:id                         # show (shallow, top level)\n</code></pre><pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{ \"data\": [ {\n  \"id\": \"add536d6-1563-49b3-ae00-04161398a746\",\n  \"type\": \"course\",\n  \"attributes\": { \"name\": \"Noteefy Test\", \"holes\": 18, \"par\": null, \"distance\": null,\n    \"online_booking_enabled\": true, \"cart_mandatory\": false },\n  \"relationships\": { \"organization\": { \"data\": { \"id\": \"ORG_UUID\", \"type\": \"organization\" } } }\n} ] }\n</code></pre>\n<p><code>cart_mandatory: true</code> matters for pricing: on those courses a tee time with no cart price set comes back restricted. Listing courses for a <strong>management company</strong> returns an empty array (use a Club UUID).</p>\n<h2 id=\"player-types-affiliation-types\">Player types (affiliation types)</h2>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>GET /partner_api/v2/organizations/:org_id/player_types    # list\nGET /partner_api/v2/player_types/:id                        # show (shallow)\n</code></pre><p>\"Player type\" and \"affiliation type\" are the same thing (V1 called them affiliation types). These are your pricing/eligibility buckets: Member, Public, Resident, and so on.</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{ \"data\": [ {\n  \"id\": \"aaa2e85e-5e4d-436a-a647-ac8c38b9d9a2\",\n  \"type\": \"player_type\",\n  \"attributes\": { \"name\": \"TestRate\", \"default_player_role\": \"member\", \"booking_range\": 7 },\n  \"relationships\": { \"organization\": { \"data\": { \"id\": \"ORG_UUID\", \"type\": \"organization\" } } }\n} ] }\n</code></pre>\n<ul>\n<li><code>booking_range</code> is how many days in advance this type can book. It's why a tee-sheet query past that window returns a <code>422</code> (see the \"Tee Times\" section (\"Booking-window restrictions\")).</li>\n<li><code>default_player_role</code> is <code>member</code> or <code>public</code>.</li>\n<li>For a <strong>Club</strong>, the list includes types inherited from its management company. For a <strong>management company</strong> URL, you get only the MCO's own types.</li>\n</ul>\n<p>Use the player type UUID in <code>custom_params[player_types][]</code> (tee-time pricing) and in round/customer relationships.</p>\n<h2 id=\"products\">Products</h2>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>GET /partner_api/v2/organizations/:org_id/products    # list\nGET /partner_api/v2/products/:id                        # show (shallow)\n</code></pre><p>Green fees, carts, kits, and extras.</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{ \"data\": [ {\n  \"id\": \"f36b85b4-9a21-478f-9595-633f7124b642\",\n  \"type\": \"product\",\n  \"attributes\": { \"name\": \"Round of golf (18 holes)\", \"product_type\": \"green_fee\",\n    \"state\": \"active\", \"price\": 50.0, \"bookable_holes\": 18 },\n  \"relationships\": {\n    \"organization\": { \"data\": { \"id\": \"ORG_UUID\", \"type\": \"organization\" } },\n    \"courses\": { \"data\": [ { \"id\": \"COURSE_UUID\", \"type\": \"course\" } ] }\n  }\n} ] }\n</code></pre>\n<ul>\n<li><code>product_type</code> is one of <code>green_fee</code>, <code>cart</code>, <code>extra</code>, <code>kit</code>.</li>\n<li><code>bookable_holes</code> is only meaningful for green fees and carts.</li>\n<li>Filters (all array-valued): <code>filter[product_type][]</code>, <code>filter[course][]</code>, <code>filter[bookable_holes][]</code>.</li>\n<li>Includes: <code>courses</code>, <code>kit_lines</code>.</li>\n</ul>\n<p>Use product UUIDs in round-request <code>extras</code>/<code>kits</code> and in price overrides.</p>\n<h2 id=\"price-overrides\">Price overrides</h2>\n<p>Override the price of a product, for a player type, on a course, over a time window.</p>\n<h3 id=\"what-a-price-override-actually-does-and-what-it-doesnt\">What a price override actually does (and what it doesn't)</h3>\n<p>Read this before you create one. A price override is a <strong>broad, shared pricing rule, not a per-booking adjustment.</strong></p>\n<p>When you create an override, you're changing the price for <strong>everyone who matches the criteria</strong>: that product + that player type + that course, for any tee time inside the time window. Every booking made for that combination, through <em>any</em> channel, gets the new price. That includes:</p>\n<ul>\n<li>The club's own staff booking in the Lightspeed UI.</li>\n<li>Golfers booking on the club's public website / widget.</li>\n<li>Your own API bookings.</li>\n</ul>\n<p>It also shows up in the club's interface: the rate they see for that player type/time/course <strong>changes to your overridden price</strong>, because you've edited the underlying pricing, not just your view of it. So an override is a real, club-visible change to how that slot is priced for that audience. Treat it like editing the club's rate sheet, because that's effectively what it is. (Confirm with the club operator before changing live pricing, and remember overrides only take effect if the club has overrides enabled, see below.)</p>\n<p><strong>If instead you just want to set the price of one specific booking</strong> (charge this one reservation a custom green fee or cart fee, without touching anyone else's price), that's a <strong>different path</strong>: set <code>green_fee</code> / <code>cart_fee</code> per round when you book (on the round request) or afterwards (on the round). Those are per-round amounts that affect only that one reservation and are invisible to everyone else's pricing. See the \"Reservations &amp; Booking\" section (\"The 3-step booking flow\"). Use a <strong>price override</strong> to change a rate for a whole audience/time; use <strong>per-round fees</strong> to price a single booking.</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>GET    /partner_api/v2/organizations/:org_id/price_overrides     # list / create are nested\nPOST   /partner_api/v2/organizations/:org_id/price_overrides\nGET    /partner_api/v2/price_overrides/:id                        # show / update / destroy are shallow\nPUT    /partner_api/v2/price_overrides/:id\nDELETE /partner_api/v2/price_overrides/:id\n</code></pre><pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-bash\">curl -gs -X POST \"https://partner-staging.chronogolf.com/partner_api/v2/organizations/ORG_UUID/price_overrides\" \\\n  -H \"Authorization: Bearer YOUR_ACCESS_TOKEN\" \\\n  -H \"Accept: application/vnd.api+json\" -H \"Content-Type: application/vnd.api+json\" \\\n  -d '{ \"data\": {\n    \"type\": \"price_override\",\n    \"attributes\": { \"starts_at\": \"2026-07-01T06:00:00-04:00\", \"ends_at\": \"2026-07-07T20:00:00-04:00\", \"price\": 39.0 },\n    \"relationships\": {\n      \"course\":      { \"data\": { \"type\": \"course\", \"id\": \"COURSE_UUID\" } },\n      \"player_type\": { \"data\": { \"type\": \"player_type\", \"id\": \"PLAYER_TYPE_UUID\" } },\n      \"product\":     { \"data\": { \"type\": \"product\", \"id\": \"PRODUCT_UUID\" } }\n    }\n  } }'\n</code></pre>\n<p>Response includes the override (note <code>price</code> comes back as a <strong>string</strong>, <code>\"39.0\"</code>, unlike tee-time rates which are numbers):</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{ \"data\": { \"type\": \"price_override\", \"attributes\": {\n  \"starts_at\": \"2026-07-01T06:00:00.000-04:00\", \"ends_at\": \"2026-07-07T20:00:00.000-04:00\",\n  \"duration\": 568800.0, \"price\": \"39.0\" }, \"relationships\": { ... } } }\n</code></pre>\n<h3 id=\"three-ways-this-bites-you\">Three ways this bites you</h3>\n<p><strong>1. The club must have price overrides enabled, or your override does nothing.</strong> Create returns <code>201</code> and persists the override <strong>regardless</strong> of the club's setting. But if the club hasn't enabled overrides, the booking flow ignores it. There's no warning in the response. If you create overrides and prices don't change, confirm with the club operator that overrides are turned on.</p>\n<p>To see overrides actually applied to prices, list tee times with both <code>custom_params[with_pricing]=true</code> and <code>custom_params[with_overrides]=true</code>.</p>\n<p><strong>2. The course, player type, and product must all belong to the same club.</strong> A mismatch fails validation: <code>Affiliation type must match club</code>, <code>Course must match club</code>. Management-company-level player types are not supported for overrides (they belong to the MCO, not the club, so they fail the \"must match club\" check).</p>\n<p><strong>3. There's no bulk endpoint.</strong> One override per request.</p>\n<p>Side effect to be aware of: creating or updating an override publishes a realtime event to the club's UI (the operator sees the product update live). Deleting an override (<code>DELETE /price_overrides/:id</code>) is a hard delete and returns <code>204</code>.</p>\n","_postman_id":"d68de023-3e41-4c87-beb7-31e69c69aec8"},{"name":"Tee Times","item":[{"name":"List tee times (with pricing)","id":"9789bff6-6b43-465f-9159-4c425d10e3ef","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[{"key":"Accept","value":"application/vnd.api+json"},{"key":"Authorization","value":"Bearer "}],"url":"https://partner-staging.chronogolf.com/partner_api/v2/organizations/044ba009-d9f2-47c2-90c1-54fcd35996a4/teetimes?filter[date]=2026-05-29&filter[course]=5e7c2077-baae-4fa0-95ea-3ce02124284e&custom_params[player_types][]=3b84cd17-fffb-44f9-8570-a690231af66d&custom_params[with_pricing]=true","description":"<p>Read a course's tee sheet for a date. Use custom_params[player_types][] (array notation!) and custom_params[with_pricing]=true to get rates.</p>\n","urlObject":{"path":["partner_api","v2","organizations","044ba009-d9f2-47c2-90c1-54fcd35996a4","teetimes"],"host":["https://partner-staging.chronogolf.com"],"query":[{"key":"filter[date]","value":"2026-05-29"},{"key":"filter[course]","value":"5e7c2077-baae-4fa0-95ea-3ce02124284e"},{"key":"custom_params[player_types][]","value":"3b84cd17-fffb-44f9-8570-a690231af66d"},{"key":"custom_params[with_pricing]","value":"true"},{"disabled":true,"key":"filter[including_blocked]","value":"true"},{"disabled":true,"key":"filter[including_events]","value":"true"}],"variable":[]}},"response":[{"id":"a5dce31f-c123-40a3-aa12-2ba635ad64cb","name":"Success","originalRequest":{"method":"GET","header":[{"key":"Accept","value":"application/vnd.api+json"},{"key":"Authorization","value":"Bearer "}],"url":{"raw":"https://partner-staging.chronogolf.com/partner_api/v2/organizations/044ba009-d9f2-47c2-90c1-54fcd35996a4/teetimes?filter[date]=2026-05-29&filter[course]=5e7c2077-baae-4fa0-95ea-3ce02124284e&custom_params[player_types][]=3b84cd17-fffb-44f9-8570-a690231af66d&custom_params[with_pricing]=true","host":["https://partner-staging.chronogolf.com"],"path":["partner_api","v2","organizations","044ba009-d9f2-47c2-90c1-54fcd35996a4","teetimes"],"query":[{"key":"filter[date]","value":"2026-05-29"},{"key":"filter[course]","value":"5e7c2077-baae-4fa0-95ea-3ce02124284e"},{"key":"custom_params[player_types][]","value":"3b84cd17-fffb-44f9-8570-a690231af66d"},{"key":"custom_params[with_pricing]","value":"true"},{"key":"filter[including_blocked]","value":"true","disabled":true},{"key":"filter[including_events]","value":"true","disabled":true}]},"description":"Read a course's tee sheet for a date. Use custom_params[player_types][] (array notation!) and custom_params[with_pricing]=true to get rates."},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/vnd.api+json"}],"cookie":[],"responseTime":null,"body":"{\n  \"data\": [\n    {\n      \"id\": \"8c92c8eb-d7e7-4537-be7a-de5db466391b\",\n      \"type\": \"teetime\",\n      \"attributes\": {\n        \"blocked\": false,\n        \"date\": \"2026-05-29\",\n        \"hole\": 1,\n        \"format\": \"normal\",\n        \"start_time\": \"06:00\",\n        \"free_slots\": 4,\n        \"subtotal\": 0.0,\n        \"restrictions\": [],\n        \"rates\": [\n          {\n            \"player_type_id\": \"3b84cd17-fffb-44f9-8570-a690231af66d\",\n            \"green_fee\": 0.0,\n            \"half_cart\": 18.0,\n            \"one_person_cart\": null,\n            \"subtotal\": 0.0\n          }\n        ]\n      },\n      \"relationships\": {\n        \"course\": {\n          \"data\": {\n            \"id\": \"5e7c2077-baae-4fa0-95ea-3ce02124284e\",\n            \"type\": \"course\"\n          }\n        },\n        \"event\": {\n          \"data\": null\n        }\n      }\n    },\n    {\n      \"id\": \"2bd13006-bbf3-4167-bcb1-f3607f502bef\",\n      \"type\": \"teetime\",\n      \"attributes\": {\n        \"blocked\": false,\n        \"date\": \"2026-05-29\",\n        \"hole\": 1,\n        \"format\": \"normal\",\n        \"start_time\": \"06:09\",\n        \"free_slots\": 4,\n        \"subtotal\": 0.0,\n        \"restrictions\": [],\n        \"rates\": [\n          {\n            \"player_type_id\": \"3b84cd17-fffb-44f9-8570-a690231af66d\",\n            \"green_fee\": 0.0,\n            \"half_cart\": 18.0,\n            \"one_person_cart\": null,\n            \"subtotal\": 0.0\n          }\n        ]\n      },\n      \"relationships\": {\n        \"course\": {\n          \"data\": {\n            \"id\": \"5e7c2077-baae-4fa0-95ea-3ce02124284e\",\n            \"type\": \"course\"\n          }\n        },\n        \"event\": {\n          \"data\": null\n        }\n      }\n    }\n  ],\n  \"meta\": {\n    \"page\": 1,\n    \"page_size\": 25,\n    \"total\": 81,\n    \"total_pages\": 4\n  }\n}"},{"id":"fc4a1c33-9f18-4ae8-9e9e-e6121b54491e","name":"Error: outside booking window (422)","originalRequest":{"method":"GET","header":[{"key":"Accept","value":"application/vnd.api+json"},{"key":"Authorization","value":"Bearer "}],"url":{"raw":"https://partner-staging.chronogolf.com/partner_api/v2/organizations/044ba009-d9f2-47c2-90c1-54fcd35996a4/teetimes?filter[date]=2026-07-28&filter[course]=5e7c2077-baae-4fa0-95ea-3ce02124284e&custom_params[player_types][]=3b84cd17-fffb-44f9-8570-a690231af66d&custom_params[with_pricing]=true","host":["https://partner-staging.chronogolf.com"],"path":["partner_api","v2","organizations","044ba009-d9f2-47c2-90c1-54fcd35996a4","teetimes"],"query":[{"key":"filter[date]","value":"2026-07-28"},{"key":"filter[course]","value":"5e7c2077-baae-4fa0-95ea-3ce02124284e"},{"key":"custom_params[player_types][]","value":"3b84cd17-fffb-44f9-8570-a690231af66d"},{"key":"custom_params[with_pricing]","value":"true"}]},"description":"Read a course's tee sheet for a date. Use custom_params[player_types][] (array notation!) and custom_params[with_pricing]=true to get rates."},"status":"Unprocessable Entity","code":422,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/vnd.api+json"}],"cookie":[],"responseTime":null,"body":"{\n  \"errors\": [\n    {\n      \"status\": 422,\n      \"code\": \"unprocessable_entity\",\n      \"detail\": [\n        \"You are out of your booking range. The player type \\\"Member 5 days\\\" can only book 7 days in advance.\"\n      ]\n    }\n  ]\n}"},{"id":"4c81d3d5-81fa-4d90-9ba0-cdb18540d170","name":"Error: past date (422)","originalRequest":{"method":"GET","header":[{"key":"Accept","value":"application/vnd.api+json"},{"key":"Authorization","value":"Bearer "}],"url":{"raw":"https://partner-staging.chronogolf.com/partner_api/v2/organizations/044ba009-d9f2-47c2-90c1-54fcd35996a4/teetimes?filter[date]=2025-01-02&filter[course]=5e7c2077-baae-4fa0-95ea-3ce02124284e&custom_params[player_types][]=3b84cd17-fffb-44f9-8570-a690231af66d&custom_params[with_pricing]=true","host":["https://partner-staging.chronogolf.com"],"path":["partner_api","v2","organizations","044ba009-d9f2-47c2-90c1-54fcd35996a4","teetimes"],"query":[{"key":"filter[date]","value":"2025-01-02"},{"key":"filter[course]","value":"5e7c2077-baae-4fa0-95ea-3ce02124284e"},{"key":"custom_params[player_types][]","value":"3b84cd17-fffb-44f9-8570-a690231af66d"},{"key":"custom_params[with_pricing]","value":"true"}]},"description":"Read a course's tee sheet for a date. Use custom_params[player_types][] (array notation!) and custom_params[with_pricing]=true to get rates."},"status":"Unprocessable Entity","code":422,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/vnd.api+json"}],"cookie":[],"responseTime":null,"body":"{\n  \"errors\": [\n    {\n      \"status\": 422,\n      \"code\": \"unprocessable_entity\",\n      \"detail\": [\n        \"You cannot request tee times on a past date.\"\n      ]\n    }\n  ]\n}"}],"_postman_id":"9789bff6-6b43-465f-9159-4c425d10e3ef"},{"name":"Show a tee time","id":"293c1e9e-55b9-4476-ad69-fb36c28bc7ee","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[{"key":"Accept","value":"application/vnd.api+json"},{"key":"Authorization","value":"Bearer "}],"url":"https://partner-staging.chronogolf.com/partner_api/v2/teetimes/8c92c8eb-d7e7-4537-be7a-de5db466391b","description":"<p>Shallow route (top-level, NOT nested under organizations). Accepts the same custom_params as the list for pricing.</p>\n","urlObject":{"path":["partner_api","v2","teetimes","8c92c8eb-d7e7-4537-be7a-de5db466391b"],"host":["https://partner-staging.chronogolf.com"],"query":[],"variable":[]}},"response":[{"id":"42604419-e333-4227-82c2-c2d900f618fa","name":"Success","originalRequest":{"method":"GET","header":[{"key":"Accept","value":"application/vnd.api+json"},{"key":"Authorization","value":"Bearer "}],"url":"https://partner-staging.chronogolf.com/partner_api/v2/teetimes/8c92c8eb-d7e7-4537-be7a-de5db466391b","description":"Shallow route (top-level, NOT nested under organizations). Accepts the same custom_params as the list for pricing."},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/vnd.api+json"}],"cookie":[],"responseTime":null,"body":"{\n  \"data\": {\n    \"id\": \"8c92c8eb-d7e7-4537-be7a-de5db466391b\",\n    \"type\": \"teetime\",\n    \"attributes\": {\n      \"blocked\": false,\n      \"date\": \"2026-05-29\",\n      \"hole\": 1,\n      \"format\": \"normal\",\n      \"start_time\": \"06:00\",\n      \"free_slots\": 4\n    },\n    \"relationships\": {\n      \"course\": {\n        \"data\": {\n          \"id\": \"5e7c2077-baae-4fa0-95ea-3ce02124284e\",\n          \"type\": \"course\"\n        }\n      },\n      \"event\": {\n        \"data\": null\n      }\n    }\n  }\n}"}],"_postman_id":"293c1e9e-55b9-4476-ad69-fb36c28bc7ee"},{"name":"Generate tee times (SENSITIVE)","id":"a594221d-1c1e-4d99-9333-5ea9664d2c81","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[{"key":"Accept","value":"application/vnd.api+json"},{"key":"Authorization","value":"Bearer "},{"key":"Content-Type","value":"application/vnd.api+json"}],"body":{"mode":"raw","raw":"{\n  \"selector\": {\n    \"course_id\": \"5e7c2077-baae-4fa0-95ea-3ce02124284e\",\n    \"format\": \"standard\",\n    \"start_date\": \"2026-08-01\",\n    \"times\": [\n      \"07:00\",\n      \"07:09\",\n      \"07:18\",\n      \"07:27\"\n    ]\n  }\n}","options":{"raw":{"language":"json"}}},"url":"https://partner-staging.chronogolf.com/partner_api/v2/organizations/044ba009-d9f2-47c2-90c1-54fcd35996a4/teetimes","description":"<p>Edits the club's live tee sheet. Uses a 'selector' object (NOT the JSON:API data envelope). Generates into empty parts of the sheet only. Returns 202 Accepted (async). Coordinate with the club operator.</p>\n","urlObject":{"path":["partner_api","v2","organizations","044ba009-d9f2-47c2-90c1-54fcd35996a4","teetimes"],"host":["https://partner-staging.chronogolf.com"],"query":[],"variable":[]}},"response":[{"id":"88bc8685-bb44-4aac-97e0-f9c50a0a9ae1","name":"Standard format (explicit start times)","originalRequest":{"method":"POST","header":[{"key":"Accept","value":"application/vnd.api+json"},{"key":"Authorization","value":"Bearer "},{"key":"Content-Type","value":"application/vnd.api+json"}],"body":{"mode":"raw","raw":"{\n  \"selector\": {\n    \"course_id\": \"5e7c2077-baae-4fa0-95ea-3ce02124284e\",\n    \"format\": \"standard\",\n    \"start_date\": \"2026-08-01\",\n    \"times\": [\n      \"07:00\",\n      \"07:09\",\n      \"07:18\",\n      \"07:27\"\n    ]\n  }\n}","options":{"raw":{"language":"json"}}},"url":"https://partner-staging.chronogolf.com/partner_api/v2/organizations/044ba009-d9f2-47c2-90c1-54fcd35996a4/teetimes","description":"Edits the club's live tee sheet. Uses a 'selector' object (NOT the JSON:API data envelope). Generates into empty parts of the sheet only. Returns 202 Accepted (async). Coordinate with the club operator."},"status":"Accepted","code":202,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/vnd.api+json"}],"cookie":[],"responseTime":null,"body":"{}"},{"id":"a9fc9660-9e40-48eb-922e-b85335d48281","name":"Shotgun start (synchronized)","originalRequest":{"method":"POST","header":[{"key":"Accept","value":"application/vnd.api+json"},{"key":"Authorization","value":"Bearer "},{"key":"Content-Type","value":"application/vnd.api+json"}],"body":{"mode":"raw","raw":"{\n  \"selector\": {\n    \"course_id\": \"5e7c2077-baae-4fa0-95ea-3ce02124284e\",\n    \"format\": \"shotgun\",\n    \"start_date\": \"2026-08-01\",\n    \"start_time\": \"08:00\",\n    \"foursomes_per_hole\": 2\n  }\n}","options":{"raw":{"language":"json"}}},"url":"https://partner-staging.chronogolf.com/partner_api/v2/organizations/044ba009-d9f2-47c2-90c1-54fcd35996a4/teetimes","description":"Edits the club's live tee sheet. Uses a 'selector' object (NOT the JSON:API data envelope). Generates into empty parts of the sheet only. Returns 202 Accepted (async). Coordinate with the club operator."},"status":"Accepted","code":202,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/vnd.api+json"}],"cookie":[],"responseTime":null,"body":"{}"},{"id":"99249703-3460-44af-86bc-c9b64cc72370","name":"Crossover (front and back nines)","originalRequest":{"method":"POST","header":[{"key":"Accept","value":"application/vnd.api+json"},{"key":"Authorization","value":"Bearer "},{"key":"Content-Type","value":"application/vnd.api+json"}],"body":{"mode":"raw","raw":"{\n  \"selector\": {\n    \"course_id\": \"5e7c2077-baae-4fa0-95ea-3ce02124284e\",\n    \"format\": \"crossover\",\n    \"start_date\": \"2026-08-01\",\n    \"start_time\": \"07:00\",\n    \"end_time\": \"15:00\",\n    \"interval\": 9,\n    \"front_back\": true\n  }\n}","options":{"raw":{"language":"json"}}},"url":"https://partner-staging.chronogolf.com/partner_api/v2/organizations/044ba009-d9f2-47c2-90c1-54fcd35996a4/teetimes","description":"Edits the club's live tee sheet. Uses a 'selector' object (NOT the JSON:API data envelope). Generates into empty parts of the sheet only. Returns 202 Accepted (async). Coordinate with the club operator."},"status":"Accepted","code":202,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/vnd.api+json"}],"cookie":[],"responseTime":null,"body":"{}"}],"_postman_id":"a594221d-1c1e-4d99-9333-5ea9664d2c81"},{"name":"Delete tee times for a date (SENSITIVE)","id":"6a54c69b-3de3-436d-9f15-56e4711acbf4","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"DELETE","header":[{"key":"Accept","value":"application/vnd.api+json"},{"key":"Authorization","value":"Bearer "}],"url":"https://partner-staging.chronogolf.com/partner_api/v2/organizations/044ba009-d9f2-47c2-90c1-54fcd35996a4/teetimes?course_id=5e7c2077-baae-4fa0-95ea-3ce02124284e&date=2026-08-01","description":"<p>Deletes ALL tee times for that course on that date (the whole day's sheet for the course). Blocked if any tee time has an active booking. There is no single-tee-time delete.</p>\n","urlObject":{"path":["partner_api","v2","organizations","044ba009-d9f2-47c2-90c1-54fcd35996a4","teetimes"],"host":["https://partner-staging.chronogolf.com"],"query":[{"key":"course_id","value":"5e7c2077-baae-4fa0-95ea-3ce02124284e"},{"key":"date","value":"2026-08-01"}],"variable":[]}},"response":[{"id":"5e778521-022d-4664-9194-873d8b44d973","name":"Success","originalRequest":{"method":"DELETE","header":[{"key":"Accept","value":"application/vnd.api+json"},{"key":"Authorization","value":"Bearer "}],"url":{"raw":"https://partner-staging.chronogolf.com/partner_api/v2/organizations/044ba009-d9f2-47c2-90c1-54fcd35996a4/teetimes?course_id=5e7c2077-baae-4fa0-95ea-3ce02124284e&date=2026-08-01","host":["https://partner-staging.chronogolf.com"],"path":["partner_api","v2","organizations","044ba009-d9f2-47c2-90c1-54fcd35996a4","teetimes"],"query":[{"key":"course_id","value":"5e7c2077-baae-4fa0-95ea-3ce02124284e"},{"key":"date","value":"2026-08-01"}]},"description":"Deletes ALL tee times for that course on that date (the whole day's sheet for the course). Blocked if any tee time has an active booking. There is no single-tee-time delete."},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/vnd.api+json"}],"cookie":[],"responseTime":null,"body":""}],"_postman_id":"6a54c69b-3de3-436d-9f15-56e4711acbf4"}],"id":"8ca89120-7e72-45b7-bed0-d2eba3e1136c","description":"<h1 id=\"tee-times\">Tee times</h1>\n<p>Reading the tee sheet: what's available, when, and for how much. This is usually the first thing an integration does and it has the most pricing footguns, so read the pricing (in this section) section carefully.</p>\n<h2 id=\"list-tee-times\">List tee times</h2>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>GET /partner_api/v2/organizations/:org_id/teetimes\n</code></pre><pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-bash\">curl -gs \"https://partner-staging.chronogolf.com/partner_api/v2/organizations/ORG_UUID/teetimes?filter[date]=2026-05-29&amp;filter[course]=COURSE_UUID\" \\\n  -H \"Authorization: Bearer YOUR_ACCESS_TOKEN\" \\\n  -H \"Accept: application/vnd.api+json\"\n</code></pre>\n<p>(The <code>-g</code> on curl disables <code>[]</code> glob expansion so the brackets pass through. Real HTTP clients don't need it.)</p>\n<h3 id=\"filters\">Filters</h3>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Filter</th>\n<th>Format</th>\n<th>Default</th>\n<th>Notes</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><code>filter[date]</code></td>\n<td><code>YYYY-MM-DD</code></td>\n<td>today</td>\n<td>The tee-sheet day. A malformed date returns <code>400 Invalid date. Expected format: yyyy-mm-dd HH:MM:SS</code></td>\n</tr>\n<tr>\n<td><code>filter[course]</code></td>\n<td>course UUID</td>\n<td>all active courses</td>\n<td>Restrict to one course. Unknown UUID → 404</td>\n</tr>\n<tr>\n<td><code>filter[including_blocked]</code></td>\n<td><code>true</code></td>\n<td>excluded</td>\n<td>Set to <code>true</code> to include blocked/admin-held times</td>\n</tr>\n<tr>\n<td><code>filter[including_events]</code></td>\n<td><code>true</code></td>\n<td>excluded</td>\n<td>Set to <code>true</code> to include event tee times. Also adds an <code>event_blocked</code> attribute to each result</td>\n</tr>\n</tbody>\n</table>\n</div><h3 id=\"response\">Response</h3>\n<p>Without pricing, each tee time is lean:</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n  \"data\": [\n    {\n      \"id\": \"f7d5a2ea-7744-4cce-bf30-3a2ffad84963\",\n      \"type\": \"teetime\",\n      \"attributes\": {\n        \"blocked\": false,\n        \"date\": \"2026-05-29\",\n        \"hole\": 1,\n        \"format\": \"normal\",\n        \"start_time\": \"06:00\",\n        \"free_slots\": 4\n      },\n      \"relationships\": {\n        \"course\": { \"data\": { \"id\": \"5c9b3b32-0044-4b94-aa95-1b7fc7a202d9\", \"type\": \"course\" } },\n        \"event\":  { \"data\": null }\n      }\n    }\n  ],\n  \"meta\": { \"page\": 1, \"page_size\": 25, \"total\": 81, \"total_pages\": 4 }\n}\n</code></pre>\n<ul>\n<li><code>start_time</code> is <code>HH:MM</code>, no seconds.</li>\n<li><code>free_slots</code> is open spots (max 4 per slot, minus booked rounds). A frozen slot reports <code>0</code>.</li>\n<li><code>hole</code> is the starting hole; <code>format</code> is the slot format (<code>normal</code>, etc.).</li>\n</ul>\n<p><code>include=course,event</code> are the only supported includes.</p>\n<h2 id=\"pricing-with_pricing-and-player-types\">Pricing: <code>with_pricing</code> and player types</h2>\n<p>Two things have to be right to get prices back, and both are easy to get wrong.</p>\n<h3 id=\"1-you-must-ask-for-pricing\">1. You must ask for pricing</h3>\n<p>Prices, subtotals, and restrictions are <strong>omitted unless</strong> you pass <code>custom_params[with_pricing]=true</code>. If you're wondering \"where are the prices,\" this is why. The bare list (above) never includes them.</p>\n<h3 id=\"2-player_types-must-use-array-notation-\">2. <code>player_types</code> must use array notation <code>[]</code></h3>\n<p>This is the single most common Partner API mistake. The parameter is <code>custom_params[player_types][]</code> (an array), <strong>not</strong> <code>custom_params[player_types]</code> (a scalar).</p>\n<p>If you send the scalar form, Rails strong-params <strong>silently drops the value</strong> (the schema expects an array), and the API falls back to your connection's default player type, which is usually \"Public.\" So you get prices and restrictions for a player type you never asked for, every UUID you send appears to be \"ignored,\" and you chase a pricing bug that isn't there.</p>\n<p><strong>Wrong</strong> (scalar, value dropped, falls back to default):</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-bash\">curl -gs \"https://partner-staging.chronogolf.com/partner_api/v2/organizations/ORG_UUID/teetimes?custom_params[player_types]=aaa2e85e-5e4d-436a-a647-ac8c38b9d9a2&amp;custom_params[with_pricing]=true&amp;filter[course]=COURSE_UUID&amp;filter[date]=2026-05-29\" \\\n  -H \"Authorization: Bearer YOUR_ACCESS_TOKEN\" -H \"Accept: application/vnd.api+json\"\n</code></pre>\n<p>Returns no rates and a restriction for the fallback type:</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">\"attributes\": {\n  ...,\n  \"subtotal\": [\"The following players don't have the right to play at that time: Public\"],\n  \"restrictions\": [\"The following players don't have the right to play at that time: Public\"],\n  \"rates\": []\n}\n</code></pre>\n<p><strong>Right</strong> (array notation):</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-bash\">curl -gs \"https://partner-staging.chronogolf.com/partner_api/v2/organizations/ORG_UUID/teetimes?custom_params[player_types][]=aaa2e85e-5e4d-436a-a647-ac8c38b9d9a2&amp;custom_params[with_pricing]=true&amp;filter[course]=COURSE_UUID&amp;filter[date]=2026-05-29\" \\\n  -H \"Authorization: Bearer YOUR_ACCESS_TOKEN\" -H \"Accept: application/vnd.api+json\"\n</code></pre>\n<p>Returns real pricing, and the <code>player_type_id</code> in the response echoes the UUID you sent:</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">\"attributes\": {\n  \"blocked\": false,\n  \"date\": \"2026-05-29\",\n  \"hole\": 1,\n  \"format\": \"normal\",\n  \"start_time\": \"06:00\",\n  \"free_slots\": 4,\n  \"subtotal\": 5.0,\n  \"restrictions\": [],\n  \"rates\": [\n    {\n      \"player_type_id\": \"aaa2e85e-5e4d-436a-a647-ac8c38b9d9a2\",\n      \"green_fee\": 5.0,\n      \"half_cart\": null,\n      \"one_person_cart\": null,\n      \"subtotal\": 5.0\n    }\n  ]\n}\n</code></pre>\n<p>Repeat the key per player to price a group: <code>...&amp;custom_params[player_types][]=UUID_A&amp;custom_params[player_types][]=UUID_B</code>.</p>\n<h3 id=\"all-pricing-related-custom-params\">All pricing-related custom params</h3>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Param</th>\n<th>Form</th>\n<th>Default</th>\n<th>Effect</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><code>custom_params[with_pricing]</code></td>\n<td><code>true</code></td>\n<td>off</td>\n<td>Adds <code>subtotal</code>, <code>restrictions</code>, <code>rates</code> to each tee time</td>\n</tr>\n<tr>\n<td><code>custom_params[player_types][]</code></td>\n<td>array of UUIDs</td>\n<td>your connection's default type, repeated <code>player_count</code> times</td>\n<td>The types to price and check play rights for</td>\n</tr>\n<tr>\n<td><code>custom_params[player_count]</code></td>\n<td>integer</td>\n<td>the number of <code>player_types[]</code> sent, else 1</td>\n<td>Number of players. If you send both, <code>player_count</code> wins</td>\n</tr>\n<tr>\n<td><code>custom_params[holes]</code></td>\n<td>integer</td>\n<td>course default</td>\n<td>Holes to price (9 vs 18 pricing)</td>\n</tr>\n<tr>\n<td><code>custom_params[with_overrides]</code></td>\n<td><code>true</code></td>\n<td>off</td>\n<td>Apply active price overrides to the returned prices. Only works if the club has price overrides enabled (see the \"Club Setup &amp; Pricing\" section (\"Price overrides\"))</td>\n</tr>\n</tbody>\n</table>\n</div><p>(You may see <code>custom_params[blocked]</code> mentioned elsewhere. It's accepted but has <strong>no effect</strong> on this endpoint, it's vestigial. To include blocked tee times, use the <code>filter[including_blocked]=true</code> filter above, not a custom param.)</p>\n<p>Amounts here are bare numbers in the club's currency with no currency code attached, and they're tax-inclusive or tax-exclusive per the org's <code>tax_inclusive</code> flag. See money: currency and tax (in the \"Conventions (read this first)\" section). The <code>date</code> and <code>start_time</code> are the club's local wall-clock values, see dates, times, and timezones (in the \"Conventions (read this first)\" section).</p>\n<h3 id=\"reading-subtotal-and-restrictions\">Reading <code>subtotal</code> and <code>restrictions</code></h3>\n<p><code>subtotal</code> is <strong>polymorphic</strong>, which trips up strict parsers:</p>\n<ul>\n<li>Bookable: a number (<code>5.0</code>).</li>\n<li>Restricted: an <strong>array of restriction message strings</strong> (the same content as <code>restrictions</code>).</li>\n<li>No capacity left: <code>[\"This tee time may no longer be available, please try again.\"]</code>.</li>\n</ul>\n<p>This tee-time <code>subtotal</code> is <strong>not</strong> the same field as a round's <code>rates.subtotal</code> in a reservation response (which is a per-round figure that's often <code>null</code>). Same name, different shape and meaning, see the \"Reservations &amp; Booking\" section (\"Round shape and <code>kit_fee</code>\").</p>\n<p>So check <code>restrictions</code> first. If it's a non-empty array, treat the slot as not bookable for that player set and don't try to parse <code>subtotal</code> as a number. Common restriction messages:</p>\n<ul>\n<li><code>The following players don't have the right to play at that time: &lt;type&gt;</code> — that player type can't play this slot/time.</li>\n<li><code>Single players are not allowed to book online onto a fully empty tee time. ...</code></li>\n<li><code>This course has mandatory carts, but no cart price has been set ...</code></li>\n</ul>\n<p>In <code>rates</code>, <code>half_cart</code> and <code>one_person_cart</code> are <code>null</code> when the course doesn't price carts that way. <code>subtotal</code> per rate includes the mandatory cart when the course requires one.</p>\n<h2 id=\"booking-window-restrictions\">Booking-window restrictions</h2>\n<p>Each player type has a \"book this many days in advance\" window. Listing tee times <strong>outside</strong> a player type's window doesn't return an empty list, it returns a <code>422</code> for the whole request, with the restriction message.</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{ \"errors\": [ { \"status\": \"422\", \"code\": \"unprocessable_entity\",\n  \"detail\": \"...\" } ] }\n</code></pre>\n<p>When you query with multiple player types, the <strong>most restrictive</strong> (shortest) window applies to the whole call.</p>\n<p>Workaround pattern, if you need to surface inventory further out than a member type allows: ask the club to create a long-window player type (sometimes named \"Lottery\" or similar) purely for inventory discovery, list with that, then book with the real player type. Booking itself is not gated by the listing window the way the listing is.</p>\n<h2 id=\"tee-times-are-future-only-past-dates-→-422\">Tee times are future-only (past dates → 422)</h2>\n<p>The tee-sheet endpoint only serves today and the future. A <code>filter[date]</code> in the past returns a <code>422</code> with a distinct message:</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{ \"errors\": [ { \"status\": \"422\", \"code\": \"unprocessable_entity\",\n  \"detail\": [\"You cannot request tee times on a past date.\"] } ] }\n</code></pre>\n<p>So you can't read historical or already-played inventory from <code>teetimes</code> (it's a different error than the booking-window 422 above). <strong>For history, \"did this slot get played\", utilization reporting, etc., use the reservations index (in the \"Reservations &amp; Booking\" section) instead</strong>, which has no past-date block and supports <code>filter[date]</code> / <code>filter[from_date]</code> into the past.</p>\n<p><strong>But \"today\" returns the <em>whole</em> day, including times that have already passed.</strong> The past-date block is on the date, not the clock. A request for today's date returns every slot from the morning onward regardless of the current time, e.g. at 10:23 AM the list still includes the 06:00, 06:09, … slots (verified). There's no \"future-only within today\" filter. If you only want still-playable times today, <strong>filter the returned <code>start_time</code> against the current time yourself</strong> (in the club's local timezone, see timezones (in the \"Conventions (read this first)\" section)).</p>\n<h2 id=\"show-one-tee-time\">Show one tee time</h2>\n<p>Remember shallow routing (in the \"Conventions (read this first)\" section): show is at the <strong>top level</strong>, not nested.</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-bash\"># Works\ncurl -gs \"https://partner-staging.chronogolf.com/partner_api/v2/teetimes/f7d5a2ea-7744-4cce-bf30-3a2ffad84963\" \\\n  -H \"Authorization: Bearer YOUR_ACCESS_TOKEN\" -H \"Accept: application/vnd.api+json\"\n\n# Returns an empty 403, the path doesn't exist:\n# GET /partner_api/v2/organizations/ORG_UUID/teetimes/f7d5a2ea-...\n</code></pre>\n<p><code>show</code> accepts the same <code>custom_params</code> as the list for pricing.</p>\n<blockquote>\n<p><strong>Two different 403s on tee-time detail.</strong> An <em>empty</em> <code>403</code> (HTML, no JSON) means you hit the nested path that doesn't exist (above). A <code>403</code> with a JSON body <code>\"Forbidden: You don't have permission to access this resource.\"</code> on the correct top-level path means <strong>that tee time's course isn't connected to your integrator</strong>, access is gated per course, so the same call can work for one course and 403 for another. If detail 403s for a specific course while others work, that course needs to be added to your connection (contact support); it's not a bug in your request.</p>\n</blockquote>\n<h2 id=\"management-companies\">Management companies</h2>\n<p>Listing tee times for a <strong>management company</strong> UUID returns an empty <code>data: []</code> (it's unsupported at the MCO level). Always use a specific <strong>Club</strong> UUID for tee sheets.</p>\n<h2 id=\"creating-and-deleting-tee-times\">Creating and deleting tee times</h2>\n<p>Any integrator connected to a club can <strong>generate and delete tee-sheet inventory</strong>, not just read it and book it. There's no feature flag or special permission; if you can reach the club, you can do this.</p>\n<blockquote>\n<p><strong>This is the most dangerous thing in the API. Treat it with care.</strong> You're editing the club's actual tee sheet, the same inventory their staff and public booking site rely on. A bad generate can create overlapping or wrong-priced times; a delete wipes a day's tee times for a course. <strong>The responsibility for not breaking a club's operation is yours.</strong> Coordinate with the club operator before generating or deleting live inventory, and test on staging first. The guardrails below stop the worst mistakes, but they don't make this safe to run blind.</p>\n</blockquote>\n<h3 id=\"generate-tee-times\">Generate tee times</h3>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>POST /partner_api/v2/organizations/:org_id/teetimes\n</code></pre><p>This endpoint does <strong>not</strong> use the JSON:API <code>data</code> envelope. It takes a <code>selector</code> object describing how to lay out the tee times:</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-bash\">curl -gs -X POST \"https://partner-staging.chronogolf.com/partner_api/v2/organizations/ORG_UUID/teetimes\" \\\n  -H \"Authorization: Bearer YOUR_ACCESS_TOKEN\" \\\n  -H \"Accept: application/vnd.api+json\" -H \"Content-Type: application/vnd.api+json\" \\\n  -d '{ \"selector\": {\n    \"course_id\": \"COURSE_UUID\",\n    \"format\": \"standard\",\n    \"start_date\": \"2026-08-01\",\n    \"times\": [\"07:00\", \"07:09\", \"07:18\", \"07:27\"]\n  } }'\n</code></pre>\n<p><strong>Success returns <code>202 Accepted</code></strong>, not <code>201</code>, with a body of <code>{}</code> (an empty JSON object, not zero bytes). Generation runs asynchronously, so a 202 means \"accepted for processing,\" not \"done.\" Don't assert on <code>201</code>, and if you check the body, expect <code>{}</code> rather than an empty string.</p>\n<h4 id=\"selector-fields\"><code>selector</code> fields</h4>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Field</th>\n<th>Required</th>\n<th>Default</th>\n<th>Meaning</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><code>course_id</code></td>\n<td><strong>yes</strong></td>\n<td>—</td>\n<td>The course UUID to generate on</td>\n</tr>\n<tr>\n<td><code>format</code></td>\n<td>no</td>\n<td><code>standard</code></td>\n<td><code>standard</code>, <code>shotgun</code>, or <code>crossover</code> (see below). An unrecognized value falls back to <code>standard</code></td>\n</tr>\n<tr>\n<td><code>start_date</code></td>\n<td><strong>yes</strong></td>\n<td>—</td>\n<td>First day to generate (<code>YYYY-MM-DD</code>)</td>\n</tr>\n<tr>\n<td><code>end_date</code></td>\n<td>no</td>\n<td><code>start_date</code></td>\n<td>Generate across a date range. Must be ≥ <code>start_date</code></td>\n</tr>\n<tr>\n<td><code>times</code></td>\n<td>for <code>standard</code></td>\n<td>—</td>\n<td>Array of <code>\"HH:MM\"</code> start times, one tee time per entry</td>\n</tr>\n<tr>\n<td><code>start_time</code> / <code>end_time</code></td>\n<td>no</td>\n<td><code>00:00</code> / <code>24:00</code></td>\n<td>Time window for non-standard formats</td>\n</tr>\n<tr>\n<td><code>interval</code></td>\n<td>no</td>\n<td><code>9</code></td>\n<td>Minutes between tee times</td>\n</tr>\n<tr>\n<td><code>foursomes_per_hole</code></td>\n<td>for <code>shotgun</code></td>\n<td><code>1</code></td>\n<td>Groups per hole; must be <code>1</code>, <code>2</code>, or <code>3</code></td>\n</tr>\n<tr>\n<td><code>crossover_foursomes</code></td>\n<td>no</td>\n<td><code>30</code></td>\n<td>Foursome count for crossover</td>\n</tr>\n<tr>\n<td><code>front_back</code></td>\n<td>no</td>\n<td><code>false</code></td>\n<td>Crossover starting on both #1 and #10</td>\n</tr>\n<tr>\n<td><code>recurring</code></td>\n<td>no</td>\n<td><code>never</code></td>\n<td><code>never</code>, <code>everyday</code>, or <code>weekly</code></td>\n</tr>\n<tr>\n<td><code>weekdays</code></td>\n<td>for <code>weekly</code></td>\n<td><code>[]</code></td>\n<td>Days to generate on when <code>recurring</code> is <code>weekly</code></td>\n</tr>\n</tbody>\n</table>\n</div><h4 id=\"the-three-formats\">The three formats</h4>\n<ul>\n<li><strong><code>standard</code></strong> — you list the exact start times in <code>times</code> (e.g. <code>[\"07:00\",\"07:09\",\"07:18\"]</code>), and each becomes one tee time. The most precise option, and the one most integrations want. <code>times</code> is required for this format.</li>\n<li><strong><code>shotgun</code></strong> — every group tees off simultaneously from different holes (a shotgun start). <code>foursomes_per_hole</code> (1, 2, or 3) sets how many groups stack on each hole. Uses <code>start_time</code> rather than a <code>times</code> list.</li>\n<li><strong><code>crossover</code></strong> — groups start on both the front (#1) and back (#10) nines and cross over. <code>front_back: true</code> selects the front/back crossover; <code>crossover_foursomes</code> and <code>interval</code> control spacing.</li>\n</ul>\n<p>(Internally these map to <code>custom</code> / <code>synchronized</code> / <code>crossover</code>, but you send the names above.)</p>\n<h4 id=\"what-you-can-and-cant-do-validation-rules\">What you can and can't do (validation rules)</h4>\n<p>The request is rejected (with the message shown) if:</p>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Rule</th>\n<th>Error</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><code>course_id</code> missing/invalid</td>\n<td><code>Course not found for course_id</code></td>\n</tr>\n<tr>\n<td><code>format</code> not one of standard/shotgun/crossover</td>\n<td><code>Value for format must be standard, shotgun, or crossover</code></td>\n</tr>\n<tr>\n<td><code>standard</code> format with no <code>times</code></td>\n<td><code>Missing times parameter. Times array must be provided for the standard format</code></td>\n</tr>\n<tr>\n<td>More than <strong>160</strong> tee times in a day (<code>standard</code>)</td>\n<td><code>Number of teetimes exceeds the limit of 160 per day</code></td>\n</tr>\n<tr>\n<td><code>start_date</code> in the past</td>\n<td><code>Can only create teetimes in the future</code></td>\n</tr>\n<tr>\n<td><code>start_date</code> more than <strong>2 years</strong> out</td>\n<td><code>Cannot create teetimes for more than 2 years in advance</code></td>\n</tr>\n<tr>\n<td><code>shotgun</code> with <code>foursomes_per_hole</code> not in {1,2,3}</td>\n<td><code>Value for foursomes_per_hole can only be 1, 2, 3</code></td>\n</tr>\n<tr>\n<td>Tee times <strong>already exist</strong> for that course/date</td>\n<td><code>There are already teetimes for this date on this course</code></td>\n</tr>\n<tr>\n<td>New times <strong>overlap</strong> existing times on that date</td>\n<td><code>Teetimes overlap with existing teetimes on this date</code></td>\n</tr>\n<tr>\n<td><code>start_date</code> after <code>end_date</code>, or <code>start_time</code> after <code>end_time</code></td>\n<td>invalid date / time</td>\n</tr>\n<tr>\n<td>The range would clobber an <strong>existing reservation</strong></td>\n<td>overlapping-reservation error</td>\n</tr>\n</tbody>\n</table>\n</div><p>In short: you generate into <strong>empty</strong> parts of the tee sheet. You can't double-generate a date, overlap existing times, exceed 160/day, work in the past, or go past 2 years. You can't regenerate over slots that already have bookings.</p>\n<h3 id=\"delete-tee-times\">Delete tee times</h3>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>DELETE /partner_api/v2/organizations/:org_id/teetimes?course_id=COURSE_UUID&amp;date=YYYY-MM-DD\n</code></pre><pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-bash\">curl -gs -X DELETE \"https://partner-staging.chronogolf.com/partner_api/v2/organizations/ORG_UUID/teetimes?course_id=COURSE_UUID&amp;date=2026-08-01\" \\\n  -H \"Authorization: Bearer YOUR_ACCESS_TOKEN\" -H \"Accept: application/vnd.api+json\"\n</code></pre>\n<p><strong>This deletes every tee time for that course on that date</strong>, the whole day's tee sheet for the course, not a single slot. There is no \"delete one tee time\" endpoint; deletion is by course + date.</p>\n<p>The one hard guardrail: <strong>you cannot delete tee times that have active bookings.</strong> If any tee time in that course/date has a reservation with live rounds, the whole delete is rejected (and rolled back) with a forbidden-deletion message naming the conflicting booking. Cancel the reservations first if you really intend to tear the day down. Empty and already-cancelled reservations are cleaned up as part of the delete.</p>\n<p>Because this removes inventory the club may be actively selling, it's the single most disruptive call in the API. Confirm with the operator before using it on production.</p>\n","_postman_id":"8ca89120-7e72-45b7-bed0-d2eba3e1136c"},{"name":"Reservations & Booking","item":[{"name":"1. Create reservation request","id":"0174cf4a-fc14-4071-800b-7617355fd213","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[{"key":"Accept","value":"application/vnd.api+json"},{"key":"Authorization","value":"Bearer "},{"key":"Content-Type","value":"application/vnd.api+json"}],"body":{"mode":"raw","raw":"{\n  \"data\": {\n    \"type\": \"reservation_request\",\n    \"attributes\": {\n      \"holes\": 18,\n      \"cart_count\": 0,\n      \"note\": \"Booked via Acme\"\n    },\n    \"relationships\": {\n      \"teetime\": {\n        \"data\": {\n          \"type\": \"teetime\",\n          \"id\": \"8c92c8eb-d7e7-4537-be7a-de5db466391b\"\n        }\n      }\n    }\n  }\n}","options":{"raw":{"language":"json"}}},"url":"https://partner-staging.chronogolf.com/partner_api/v2/organizations/044ba009-d9f2-47c2-90c1-54fcd35996a4/reservation_requests","description":"<p>Step 1 of the 3-step booking flow. Save the returned id for steps 2 and 3.</p>\n","urlObject":{"path":["partner_api","v2","organizations","044ba009-d9f2-47c2-90c1-54fcd35996a4","reservation_requests"],"host":["https://partner-staging.chronogolf.com"],"query":[],"variable":[]}},"response":[{"id":"07a67798-3c39-4485-b5b2-d922a56e3d2a","name":"Created","originalRequest":{"method":"POST","header":[{"key":"Accept","value":"application/vnd.api+json"},{"key":"Authorization","value":"Bearer "},{"key":"Content-Type","value":"application/vnd.api+json"}],"body":{"mode":"raw","raw":"{\n  \"data\": {\n    \"type\": \"reservation_request\",\n    \"attributes\": {\n      \"holes\": 18,\n      \"cart_count\": 0,\n      \"note\": \"Booked via Acme\"\n    },\n    \"relationships\": {\n      \"teetime\": {\n        \"data\": {\n          \"type\": \"teetime\",\n          \"id\": \"8c92c8eb-d7e7-4537-be7a-de5db466391b\"\n        }\n      }\n    }\n  }\n}","options":{"raw":{"language":"json"}}},"url":"https://partner-staging.chronogolf.com/partner_api/v2/organizations/044ba009-d9f2-47c2-90c1-54fcd35996a4/reservation_requests","description":"Step 1 of the 3-step booking flow. Save the returned id for steps 2 and 3."},"status":"Created","code":201,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/vnd.api+json"}],"cookie":[],"responseTime":null,"body":"{\n  \"data\": {\n    \"id\": \"2449686b-dfa0-4aa9-ac03-0ae61d1a1e19\",\n    \"type\": \"reservation_request\",\n    \"attributes\": {\n      \"holes\": 18,\n      \"note\": null,\n      \"cart_count\": 0\n    },\n    \"relationships\": {\n      \"round_requests\": {\n        \"data\": []\n      },\n      \"organization\": {\n        \"data\": {\n          \"id\": \"044ba009-d9f2-47c2-90c1-54fcd35996a4\",\n          \"type\": \"organization\"\n        }\n      },\n      \"teetime\": {\n        \"data\": {\n          \"id\": \"8c92c8eb-d7e7-4537-be7a-de5db466391b\",\n          \"type\": \"teetime\"\n        }\n      },\n      \"tour_operator\": {\n        \"data\": null\n      }\n    }\n  }\n}"}],"_postman_id":"0174cf4a-fc14-4071-800b-7617355fd213"},{"name":"Show reservation request","id":"9c207f6e-7734-49b1-9b00-cef5482cbe42","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[{"key":"Accept","value":"application/vnd.api+json"},{"key":"Authorization","value":"Bearer "}],"url":"https://partner-staging.chronogolf.com/partner_api/v2/reservation_requests/","description":"<p>Inspect a draft and its round_requests before confirming. Shallow route.</p>\n","urlObject":{"path":["partner_api","v2","reservation_requests",""],"host":["https://partner-staging.chronogolf.com"],"query":[],"variable":[]}},"response":[{"id":"c2183aa4-399e-4ec2-9838-8aafc8ae50be","name":"Success","originalRequest":{"method":"GET","header":[{"key":"Accept","value":"application/vnd.api+json"},{"key":"Authorization","value":"Bearer "}],"url":"https://partner-staging.chronogolf.com/partner_api/v2/reservation_requests/","description":"Inspect a draft and its round_requests before confirming. Shallow route."},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/vnd.api+json"}],"cookie":[],"responseTime":null,"body":"{\n  \"data\": {\n    \"id\": \"2449686b-dfa0-4aa9-ac03-0ae61d1a1e19\",\n    \"type\": \"reservation_request\",\n    \"attributes\": {\n      \"holes\": 18,\n      \"note\": null,\n      \"cart_count\": 0\n    },\n    \"relationships\": {\n      \"round_requests\": {\n        \"data\": []\n      },\n      \"organization\": {\n        \"data\": {\n          \"id\": \"044ba009-d9f2-47c2-90c1-54fcd35996a4\",\n          \"type\": \"organization\"\n        }\n      },\n      \"teetime\": {\n        \"data\": {\n          \"id\": \"8c92c8eb-d7e7-4537-be7a-de5db466391b\",\n          \"type\": \"teetime\"\n        }\n      },\n      \"tour_operator\": {\n        \"data\": null\n      }\n    }\n  }\n}"}],"_postman_id":"9c207f6e-7734-49b1-9b00-cef5482cbe42"},{"name":"2. Create round request (one per player)","id":"a280e8d0-2889-44dd-9fad-6e73df995242","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[{"key":"Accept","value":"application/vnd.api+json"},{"key":"Authorization","value":"Bearer "},{"key":"Content-Type","value":"application/vnd.api+json"}],"body":{"mode":"raw","raw":"{\n  \"data\": {\n    \"type\": \"round_request\",\n    \"attributes\": {\n      \"guest\": {\n        \"first_name\": \"Doc\",\n        \"last_name\": \"Tester\"\n      }\n    },\n    \"relationships\": {\n      \"reservation_request\": {\n        \"data\": {\n          \"type\": \"reservation_request\",\n          \"id\": \"\"\n        }\n      },\n      \"player_type\": {\n        \"data\": {\n          \"type\": \"player_type\",\n          \"id\": \"3b84cd17-fffb-44f9-8570-a690231af66d\"\n        }\n      }\n    }\n  }\n}","options":{"raw":{"language":"json"}}},"url":"https://partner-staging.chronogolf.com/partner_api/v2/organizations/044ba009-d9f2-47c2-90c1-54fcd35996a4/round_requests","description":"<p>Step 2. Repeat per player (1 to 4). Use guest OR a customer relationship.</p>\n","urlObject":{"path":["partner_api","v2","organizations","044ba009-d9f2-47c2-90c1-54fcd35996a4","round_requests"],"host":["https://partner-staging.chronogolf.com"],"query":[],"variable":[]}},"response":[{"id":"76a5833b-2ec2-4e06-b63e-20f36d87d730","name":"Guest player","originalRequest":{"method":"POST","header":[{"key":"Accept","value":"application/vnd.api+json"},{"key":"Authorization","value":"Bearer "},{"key":"Content-Type","value":"application/vnd.api+json"}],"body":{"mode":"raw","raw":"{\n  \"data\": {\n    \"type\": \"round_request\",\n    \"attributes\": {\n      \"guest\": {\n        \"first_name\": \"Doc\",\n        \"last_name\": \"Tester\"\n      }\n    },\n    \"relationships\": {\n      \"reservation_request\": {\n        \"data\": {\n          \"type\": \"reservation_request\",\n          \"id\": \"\"\n        }\n      },\n      \"player_type\": {\n        \"data\": {\n          \"type\": \"player_type\",\n          \"id\": \"3b84cd17-fffb-44f9-8570-a690231af66d\"\n        }\n      }\n    }\n  }\n}","options":{"raw":{"language":"json"}}},"url":"https://partner-staging.chronogolf.com/partner_api/v2/organizations/044ba009-d9f2-47c2-90c1-54fcd35996a4/round_requests","description":"Step 2. Repeat per player (1 to 4). Use guest OR a customer relationship."},"status":"Created","code":201,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/vnd.api+json"}],"cookie":[],"responseTime":null,"body":"{\n  \"data\": {\n    \"id\": \"488efb7f-d385-4473-b2c6-5131af019d73\",\n    \"type\": \"round_request\",\n    \"attributes\": {\n      \"guest\": {\n        \"first_name\": \"Ex\",\n        \"last_name\": \"Ample\"\n      },\n      \"cart_fee\": null,\n      \"green_fee\": null,\n      \"extras\": null,\n      \"kits\": null\n    },\n    \"relationships\": {\n      \"reservation_request\": {\n        \"data\": {\n          \"id\": \"2449686b-dfa0-4aa9-ac03-0ae61d1a1e19\",\n          \"type\": \"reservation_request\"\n        }\n      },\n      \"player_type\": {\n        \"data\": {\n          \"id\": \"3b84cd17-fffb-44f9-8570-a690231af66d\",\n          \"type\": \"player_type\"\n        }\n      },\n      \"customer\": {\n        \"data\": null\n      }\n    }\n  }\n}"},{"id":"dbc21314-00a8-4a92-ad14-a2a06cf23c13","name":"Booking an existing customer (default pricing)","originalRequest":{"method":"POST","header":[{"key":"Accept","value":"application/vnd.api+json"},{"key":"Authorization","value":"Bearer "},{"key":"Content-Type","value":"application/vnd.api+json"}],"body":{"mode":"raw","raw":"{\n  \"data\": {\n    \"type\": \"round_request\",\n    \"attributes\": {\n      \"extras\": []\n    },\n    \"relationships\": {\n      \"reservation_request\": {\n        \"data\": {\n          \"type\": \"reservation_request\",\n          \"id\": \"\"\n        }\n      },\n      \"player_type\": {\n        \"data\": {\n          \"type\": \"player_type\",\n          \"id\": \"3b84cd17-fffb-44f9-8570-a690231af66d\"\n        }\n      },\n      \"customer\": {\n        \"data\": {\n          \"type\": \"customer\",\n          \"id\": \"\"\n        }\n      }\n    }\n  }\n}","options":{"raw":{"language":"json"}}},"url":"https://partner-staging.chronogolf.com/partner_api/v2/organizations/044ba009-d9f2-47c2-90c1-54fcd35996a4/round_requests","description":"Step 2. Repeat per player (1 to 4). Use guest OR a customer relationship."},"status":"Created","code":201,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/vnd.api+json"}],"cookie":[],"responseTime":null,"body":"{\n  \"data\": {\n    \"id\": \"dce00fe6-c7a7-4951-b67a-d69bf4b7ac0f\",\n    \"type\": \"round_request\",\n    \"attributes\": {\n      \"guest\": null,\n      \"cart_fee\": null,\n      \"green_fee\": null,\n      \"extras\": [],\n      \"kits\": null\n    },\n    \"relationships\": {\n      \"reservation_request\": {\n        \"data\": {\n          \"id\": \"a01e6018-8066-49ae-bd4c-6e13c9db9c78\",\n          \"type\": \"reservation_request\"\n        }\n      },\n      \"player_type\": {\n        \"data\": {\n          \"id\": \"6d5cfa52-60f9-4109-9a5e-b80269a426f9\",\n          \"type\": \"player_type\"\n        }\n      },\n      \"customer\": {\n        \"data\": {\n          \"id\": \"b2c3ea22-0df4-45ae-bf62-9567a0af295f\",\n          \"type\": \"customer\"\n        }\n      }\n    }\n  }\n}"},{"id":"8243ec1e-55ce-4d53-9642-71f2dd30a928","name":"With green_fee / cart_fee override","originalRequest":{"method":"POST","header":[{"key":"Accept","value":"application/vnd.api+json"},{"key":"Authorization","value":"Bearer "},{"key":"Content-Type","value":"application/vnd.api+json"}],"body":{"mode":"raw","raw":"{\n  \"data\": {\n    \"type\": \"round_request\",\n    \"attributes\": {\n      \"green_fee\": 55.0,\n      \"cart_fee\": 20.0,\n      \"guest\": {\n        \"first_name\": \"Override\",\n        \"last_name\": \"Example\"\n      }\n    },\n    \"relationships\": {\n      \"reservation_request\": {\n        \"data\": {\n          \"type\": \"reservation_request\",\n          \"id\": \"\"\n        }\n      },\n      \"player_type\": {\n        \"data\": {\n          \"type\": \"player_type\",\n          \"id\": \"3b84cd17-fffb-44f9-8570-a690231af66d\"\n        }\n      }\n    }\n  }\n}","options":{"raw":{"language":"json"}}},"url":"https://partner-staging.chronogolf.com/partner_api/v2/organizations/044ba009-d9f2-47c2-90c1-54fcd35996a4/round_requests","description":"Step 2. Repeat per player (1 to 4). Use guest OR a customer relationship."},"status":"Created","code":201,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/vnd.api+json"}],"cookie":[],"responseTime":null,"body":"{\n  \"data\": {\n    \"id\": \"36dc8f8c-7317-476e-bff0-36a18ebfa8b0\",\n    \"type\": \"round_request\",\n    \"attributes\": {\n      \"guest\": {\n        \"first_name\": \"Override\",\n        \"last_name\": \"Example\"\n      },\n      \"cart_fee\": \"20.0\",\n      \"green_fee\": \"55.0\",\n      \"extras\": null,\n      \"kits\": null\n    },\n    \"relationships\": {\n      \"reservation_request\": {\n        \"data\": {\n          \"id\": \"b6fc4401-20c4-48e6-97ec-6dda25a3c211\",\n          \"type\": \"reservation_request\"\n        }\n      },\n      \"player_type\": {\n        \"data\": {\n          \"id\": \"6d5cfa52-60f9-4109-9a5e-b80269a426f9\",\n          \"type\": \"player_type\"\n        }\n      },\n      \"customer\": {\n        \"data\": null\n      }\n    }\n  }\n}"},{"id":"cbd08758-a738-450a-9ebb-9f213147e588","name":"With extras (add-on products)","originalRequest":{"method":"POST","header":[{"key":"Accept","value":"application/vnd.api+json"},{"key":"Authorization","value":"Bearer "},{"key":"Content-Type","value":"application/vnd.api+json"}],"body":{"mode":"raw","raw":"{\n  \"data\": {\n    \"type\": \"round_request\",\n    \"attributes\": {\n      \"guest\": {\n        \"first_name\": \"Extras\",\n        \"last_name\": \"Example\"\n      },\n      \"extras\": [\n        \"EXTRA_PRODUCT_UUID\",\n        \"ANOTHER_EXTRA_PRODUCT_UUID\"\n      ]\n    },\n    \"relationships\": {\n      \"reservation_request\": {\n        \"data\": {\n          \"type\": \"reservation_request\",\n          \"id\": \"\"\n        }\n      },\n      \"player_type\": {\n        \"data\": {\n          \"type\": \"player_type\",\n          \"id\": \"3b84cd17-fffb-44f9-8570-a690231af66d\"\n        }\n      }\n    }\n  }\n}","options":{"raw":{"language":"json"}}},"url":"https://partner-staging.chronogolf.com/partner_api/v2/organizations/044ba009-d9f2-47c2-90c1-54fcd35996a4/round_requests","description":"Step 2. Repeat per player (1 to 4). Use guest OR a customer relationship."},"status":"Created","code":201,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/vnd.api+json"}],"cookie":[],"responseTime":null,"body":"{\n  \"data\": {\n    \"id\": \"2f5d2a39-9301-4ae7-ba84-45f642f7b4ef\",\n    \"type\": \"round_request\",\n    \"attributes\": {\n      \"guest\": {\n        \"first_name\": \"Extras\",\n        \"last_name\": \"Example\"\n      },\n      \"cart_fee\": null,\n      \"green_fee\": null,\n      \"extras\": [\n        \"ad796e5e-3197-4186-ad6d-2df33a845e23\",\n        \"a920d02b-5b5d-49dd-bdbf-0e42aca4d9e6\"\n      ],\n      \"kits\": null\n    },\n    \"relationships\": {\n      \"reservation_request\": {\n        \"data\": {\n          \"id\": \"45515f12-0476-4c11-80d4-77cfbb07e55c\",\n          \"type\": \"reservation_request\"\n        }\n      },\n      \"player_type\": {\n        \"data\": {\n          \"id\": \"6d5cfa52-60f9-4109-9a5e-b80269a426f9\",\n          \"type\": \"player_type\"\n        }\n      },\n      \"customer\": {\n        \"data\": null\n      }\n    }\n  }\n}"},{"id":"3f27ce7e-bf97-454d-8a96-3a8b36a79622","name":"With a kit (bundled product)","originalRequest":{"method":"POST","header":[{"key":"Accept","value":"application/vnd.api+json"},{"key":"Authorization","value":"Bearer "},{"key":"Content-Type","value":"application/vnd.api+json"}],"body":{"mode":"raw","raw":"{\n  \"data\": {\n    \"type\": \"round_request\",\n    \"attributes\": {\n      \"guest\": {\n        \"first_name\": \"Kit\",\n        \"last_name\": \"Example\"\n      },\n      \"kits\": [\n        \"KIT_PRODUCT_UUID\"\n      ]\n    },\n    \"relationships\": {\n      \"reservation_request\": {\n        \"data\": {\n          \"type\": \"reservation_request\",\n          \"id\": \"\"\n        }\n      },\n      \"player_type\": {\n        \"data\": {\n          \"type\": \"player_type\",\n          \"id\": \"3b84cd17-fffb-44f9-8570-a690231af66d\"\n        }\n      }\n    }\n  }\n}","options":{"raw":{"language":"json"}}},"url":"https://partner-staging.chronogolf.com/partner_api/v2/organizations/044ba009-d9f2-47c2-90c1-54fcd35996a4/round_requests","description":"Step 2. Repeat per player (1 to 4). Use guest OR a customer relationship."},"status":"Created","code":201,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/vnd.api+json"}],"cookie":[],"responseTime":null,"body":"{\n  \"data\": {\n    \"id\": \"d04fc7c2-4a3f-4634-b79a-ecdeed341dd1\",\n    \"type\": \"round_request\",\n    \"attributes\": {\n      \"guest\": {\n        \"first_name\": \"Kit\",\n        \"last_name\": \"Example\"\n      },\n      \"cart_fee\": null,\n      \"green_fee\": null,\n      \"extras\": null,\n      \"kits\": [\n        \"a63f2b48-6759-4953-be09-02aacab90b33\"\n      ]\n    },\n    \"relationships\": {\n      \"reservation_request\": {\n        \"data\": {\n          \"id\": \"45515f12-0476-4c11-80d4-77cfbb07e55c\",\n          \"type\": \"reservation_request\"\n        }\n      },\n      \"player_type\": {\n        \"data\": {\n          \"id\": \"6d5cfa52-60f9-4109-9a5e-b80269a426f9\",\n          \"type\": \"player_type\"\n        }\n      },\n      \"customer\": {\n        \"data\": null\n      }\n    }\n  }\n}"}],"_postman_id":"a280e8d0-2889-44dd-9fad-6e73df995242"},{"name":"Show round request","id":"23db0682-4079-44f5-b44b-25605f022c6e","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[{"key":"Accept","value":"application/vnd.api+json"},{"key":"Authorization","value":"Bearer "}],"url":"https://partner-staging.chronogolf.com/partner_api/v2/round_requests/","urlObject":{"path":["partner_api","v2","round_requests",""],"host":["https://partner-staging.chronogolf.com"],"query":[],"variable":[]}},"response":[{"id":"57a5d274-9430-44c6-8467-d7f6492c4c44","name":"Success","originalRequest":{"method":"GET","header":[{"key":"Accept","value":"application/vnd.api+json"},{"key":"Authorization","value":"Bearer "}],"url":"https://partner-staging.chronogolf.com/partner_api/v2/round_requests/"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/vnd.api+json"}],"cookie":[],"responseTime":null,"body":"{\n  \"data\": {\n    \"id\": \"488efb7f-d385-4473-b2c6-5131af019d73\",\n    \"type\": \"round_request\",\n    \"attributes\": {\n      \"guest\": {\n        \"last_name\": \"Ample\",\n        \"first_name\": \"Ex\"\n      },\n      \"cart_fee\": null,\n      \"green_fee\": null,\n      \"extras\": null,\n      \"kits\": null\n    },\n    \"relationships\": {\n      \"reservation_request\": {\n        \"data\": {\n          \"id\": \"2449686b-dfa0-4aa9-ac03-0ae61d1a1e19\",\n          \"type\": \"reservation_request\"\n        }\n      },\n      \"player_type\": {\n        \"data\": {\n          \"id\": \"3b84cd17-fffb-44f9-8570-a690231af66d\",\n          \"type\": \"player_type\"\n        }\n      },\n      \"customer\": {\n        \"data\": null\n      }\n    }\n  }\n}"}],"_postman_id":"23db0682-4079-44f5-b44b-25605f022c6e"},{"name":"Delete round request","id":"431b2c11-c468-40e7-9005-f58dcc8d26d2","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"DELETE","header":[{"key":"Accept","value":"application/vnd.api+json"},{"key":"Authorization","value":"Bearer "}],"url":"https://partner-staging.chronogolf.com/partner_api/v2/round_requests/","description":"<p>Drop a player from the draft before confirming. Returns 204.</p>\n","urlObject":{"path":["partner_api","v2","round_requests",""],"host":["https://partner-staging.chronogolf.com"],"query":[],"variable":[]}},"response":[{"id":"96156cf0-b28e-49b2-b902-c837cb2904ae","name":"No Content","originalRequest":{"method":"DELETE","header":[{"key":"Accept","value":"application/vnd.api+json"},{"key":"Authorization","value":"Bearer "}],"url":"https://partner-staging.chronogolf.com/partner_api/v2/round_requests/","description":"Drop a player from the draft before confirming. Returns 204."},"status":"No Content","code":204,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/vnd.api+json"}],"cookie":[],"responseTime":null,"body":""}],"_postman_id":"431b2c11-c468-40e7-9005-f58dcc8d26d2"},{"name":"3. Confirm reservation","id":"3fc9fcf6-90e1-470f-b931-09f4e554a93c","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[{"key":"Accept","value":"application/vnd.api+json"},{"key":"Authorization","value":"Bearer "},{"key":"Content-Type","value":"application/vnd.api+json"}],"body":{"mode":"raw","raw":"{\n  \"data\": {\n    \"type\": \"reservation\",\n    \"relationships\": {\n      \"reservation_request\": {\n        \"data\": {\n          \"type\": \"reservation_request\",\n          \"id\": \"\"\n        }\n      }\n    }\n  }\n}","options":{"raw":{"language":"json"}}},"url":"https://partner-staging.chronogolf.com/partner_api/v2/organizations/044ba009-d9f2-47c2-90c1-54fcd35996a4/reservations","description":"<p>Step 3. Confirms the draft into a real reservation. Returns the reservation + rounds.</p>\n","urlObject":{"path":["partner_api","v2","organizations","044ba009-d9f2-47c2-90c1-54fcd35996a4","reservations"],"host":["https://partner-staging.chronogolf.com"],"query":[],"variable":[]}},"response":[{"id":"24fe56a0-86ad-40d6-9dd6-5884db664c4f","name":"Single-course booking","originalRequest":{"method":"POST","header":[{"key":"Accept","value":"application/vnd.api+json"},{"key":"Authorization","value":"Bearer "},{"key":"Content-Type","value":"application/vnd.api+json"}],"body":{"mode":"raw","raw":"{\n  \"data\": {\n    \"type\": \"reservation\",\n    \"relationships\": {\n      \"reservation_request\": {\n        \"data\": {\n          \"type\": \"reservation_request\",\n          \"id\": \"\"\n        }\n      }\n    }\n  }\n}","options":{"raw":{"language":"json"}}},"url":"https://partner-staging.chronogolf.com/partner_api/v2/organizations/044ba009-d9f2-47c2-90c1-54fcd35996a4/reservations","description":"Step 3. Confirms the draft into a real reservation. Returns the reservation + rounds."},"status":"Created","code":201,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/vnd.api+json"}],"cookie":[],"responseTime":null,"body":"{\n  \"data\": {\n    \"id\": \"67b1790f-ab1c-4990-8738-4b739084e561\",\n    \"type\": \"reservation\",\n    \"attributes\": {\n      \"booking_reference\": \"7T6K-7N2X\",\n      \"cart_count\": 0,\n      \"holes\": 18,\n      \"note\": \"example booking\",\n      \"state\": \"confirmed\",\n      \"source\": \"partner\",\n      \"medium\": \"partner_api\",\n      \"cancelled_at\": null,\n      \"created_at\": \"2026-05-28T16:21:01-04:00\",\n      \"updated_at\": \"2026-05-28T16:21:01-04:00\"\n    },\n    \"relationships\": {\n      \"teetime\": {\n        \"data\": {\n          \"id\": \"8c92c8eb-d7e7-4537-be7a-de5db466391b\",\n          \"type\": \"teetime\"\n        }\n      },\n      \"organization\": {\n        \"data\": {\n          \"id\": \"044ba009-d9f2-47c2-90c1-54fcd35996a4\",\n          \"type\": \"organization\"\n        }\n      },\n      \"booker\": {\n        \"data\": null\n      },\n      \"tour_operator\": {\n        \"data\": null\n      },\n      \"rounds\": {\n        \"data\": [\n          {\n            \"id\": \"4ca7ddb5-b24d-49be-82ce-62273d659667\",\n            \"type\": \"round\"\n          }\n        ]\n      },\n      \"linked_reservations\": {\n        \"data\": []\n      }\n    }\n  },\n  \"included\": [\n    {\n      \"id\": \"4ca7ddb5-b24d-49be-82ce-62273d659667\",\n      \"type\": \"round\",\n      \"attributes\": {\n        \"state\": \"reserved\",\n        \"created_at\": \"2026-05-28T16:21:01.236-04:00\",\n        \"updated_at\": \"2026-05-28T16:21:01.236-04:00\",\n        \"cancelled_at\": null,\n        \"price\": 0.0,\n        \"paid\": false,\n        \"guest\": {\n          \"last_name\": \"Round\",\n          \"first_name\": \"Pay\"\n        },\n        \"extras\": [],\n        \"kits\": [],\n        \"rates\": {\n          \"green_fee\": 0.0,\n          \"cart_fee\": null,\n          \"extra_fee\": 0,\n          \"kit_fee\": 0,\n          \"subtotal\": null\n        }\n      },\n      \"relationships\": {\n        \"organization\": {\n          \"data\": {\n            \"id\": \"044ba009-d9f2-47c2-90c1-54fcd35996a4\",\n            \"type\": \"organization\"\n          }\n        },\n        \"reservation\": {\n          \"data\": {\n            \"id\": \"67b1790f-ab1c-4990-8738-4b739084e561\",\n            \"type\": \"reservation\"\n          }\n        },\n        \"player_type\": {\n          \"data\": {\n            \"id\": \"3b84cd17-fffb-44f9-8570-a690231af66d\",\n            \"type\": \"player_type\"\n          }\n        },\n        \"customer\": {\n          \"data\": null\n        }\n      }\n    },\n    {\n      \"id\": \"8c92c8eb-d7e7-4537-be7a-de5db466391b\",\n      \"type\": \"teetime\",\n      \"attributes\": {\n        \"blocked\": false,\n        \"date\": \"2026-05-29\",\n        \"hole\": 1,\n        \"format\": \"normal\",\n        \"start_time\": \"06:00\",\n        \"free_slots\": 3\n      },\n      \"relationships\": {\n        \"course\": {\n          \"data\": {\n            \"id\": \"5e7c2077-baae-4fa0-95ea-3ce02124284e\",\n            \"type\": \"course\"\n          }\n        },\n        \"event\": {\n          \"data\": null\n        }\n      }\n    }\n  ]\n}"},{"id":"d7e6a368-0eea-4adf-a779-422444a9d41a","name":"2x9 booking (creates a linked back-nine reservation)","originalRequest":{"method":"POST","header":[{"key":"Accept","value":"application/vnd.api+json"},{"key":"Authorization","value":"Bearer "},{"key":"Content-Type","value":"application/vnd.api+json"}],"body":{"mode":"raw","raw":"{\n  \"data\": {\n    \"type\": \"reservation\",\n    \"relationships\": {\n      \"reservation_request\": {\n        \"data\": {\n          \"type\": \"reservation_request\",\n          \"id\": \"\"\n        }\n      }\n    }\n  }\n}","options":{"raw":{"language":"json"}}},"url":"https://partner-staging.chronogolf.com/partner_api/v2/organizations/044ba009-d9f2-47c2-90c1-54fcd35996a4/reservations","description":"Step 3. Confirms the draft into a real reservation. Returns the reservation + rounds."},"status":"Created","code":201,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/vnd.api+json"}],"cookie":[],"responseTime":null,"body":"{\n  \"data\": {\n    \"id\": \"4a7191cc-ae84-4155-87be-1b967248ffd6\",\n    \"type\": \"reservation\",\n    \"attributes\": {\n      \"booking_reference\": \"4E0V-2N6Y\",\n      \"cart_count\": 0,\n      \"holes\": 18,\n      \"note\": \"2x9 example\",\n      \"state\": \"confirmed\",\n      \"source\": \"partner\",\n      \"medium\": \"partner_api\",\n      \"cancelled_at\": null,\n      \"created_at\": \"2026-05-28T17:15:58-04:00\",\n      \"updated_at\": \"2026-05-28T17:15:58-04:00\"\n    },\n    \"relationships\": {\n      \"teetime\": {\n        \"data\": {\n          \"id\": \"dd50a140-57c9-4417-9890-598b05600399\",\n          \"type\": \"teetime\"\n        }\n      },\n      \"organization\": {\n        \"data\": {\n          \"id\": \"044ba009-d9f2-47c2-90c1-54fcd35996a4\",\n          \"type\": \"organization\"\n        }\n      },\n      \"booker\": {\n        \"data\": null\n      },\n      \"tour_operator\": {\n        \"data\": null\n      },\n      \"rounds\": {\n        \"data\": [\n          {\n            \"id\": \"ef2a61ee-828c-4ff0-86e6-cb62335738c8\",\n            \"type\": \"round\"\n          }\n        ]\n      },\n      \"linked_reservations\": {\n        \"data\": [\n          {\n            \"id\": \"5f40e46d-c923-4fcd-abd9-17153ae0bb3e\",\n            \"type\": \"linked_reservation\"\n          }\n        ]\n      }\n    }\n  },\n  \"included\": [\n    {\n      \"id\": \"ef2a61ee-828c-4ff0-86e6-cb62335738c8\",\n      \"type\": \"round\",\n      \"attributes\": {\n        \"state\": \"reserved\",\n        \"created_at\": \"2026-05-28T17:15:58.936-04:00\",\n        \"updated_at\": \"2026-05-28T17:15:58.936-04:00\",\n        \"cancelled_at\": null,\n        \"price\": 50.0,\n        \"paid\": false,\n        \"guest\": {\n          \"last_name\": \"Over\",\n          \"first_name\": \"Cross\"\n        },\n        \"extras\": [],\n        \"kits\": [],\n        \"rates\": {\n          \"green_fee\": 50.0,\n          \"cart_fee\": null,\n          \"extra_fee\": 0,\n          \"kit_fee\": 0,\n          \"subtotal\": null\n        }\n      },\n      \"relationships\": {\n        \"organization\": {\n          \"data\": {\n            \"id\": \"044ba009-d9f2-47c2-90c1-54fcd35996a4\",\n            \"type\": \"organization\"\n          }\n        },\n        \"reservation\": {\n          \"data\": {\n            \"id\": \"4a7191cc-ae84-4155-87be-1b967248ffd6\",\n            \"type\": \"reservation\"\n          }\n        },\n        \"player_type\": {\n          \"data\": {\n            \"id\": \"3b84cd17-fffb-44f9-8570-a690231af66d\",\n            \"type\": \"player_type\"\n          }\n        },\n        \"customer\": {\n          \"data\": null\n        }\n      }\n    },\n    {\n      \"id\": \"dd50a140-57c9-4417-9890-598b05600399\",\n      \"type\": \"teetime\",\n      \"attributes\": {\n        \"blocked\": false,\n        \"date\": \"2026-05-29\",\n        \"hole\": 1,\n        \"format\": \"normal\",\n        \"start_time\": \"06:00\",\n        \"free_slots\": 3\n      },\n      \"relationships\": {\n        \"course\": {\n          \"data\": {\n            \"id\": \"967b9e5a-e497-41f8-8e60-b705f7adbc0a\",\n            \"type\": \"course\"\n          }\n        },\n        \"event\": {\n          \"data\": null\n        }\n      }\n    },\n    {\n      \"id\": \"5f40e46d-c923-4fcd-abd9-17153ae0bb3e\",\n      \"type\": \"linked_reservation\",\n      \"attributes\": {\n        \"booking_reference\": \"9L9M-3G7M\",\n        \"cart_count\": 0,\n        \"holes\": 18,\n        \"note\": \"2x9 example\",\n        \"state\": \"confirmed\",\n        \"source\": \"partner\",\n        \"medium\": \"partner_api\",\n        \"cancelled_at\": null,\n        \"created_at\": \"2026-05-28T17:15:58-04:00\",\n        \"updated_at\": \"2026-05-28T17:15:58-04:00\"\n      },\n      \"relationships\": {\n        \"teetime\": {\n          \"data\": {\n            \"id\": \"81fed13c-3d0a-4cd0-80f5-3e57d9ef0210\",\n            \"type\": \"teetime\"\n          }\n        },\n        \"organization\": {\n          \"data\": {\n            \"id\": \"044ba009-d9f2-47c2-90c1-54fcd35996a4\",\n            \"type\": \"organization\"\n          }\n        },\n        \"booker\": {\n          \"data\": null\n        },\n        \"tour_operator\": {\n          \"data\": null\n        },\n        \"rounds\": {\n          \"data\": [\n            {\n              \"id\": \"496b9852-18bb-4723-b48d-1cbc1a8980b3\",\n              \"type\": \"round\"\n            }\n          ]\n        },\n        \"linked_reservations\": {\n          \"data\": []\n        }\n      }\n    }\n  ]\n}"},{"id":"7f019799-3d41-47e2-9b24-7fb96339a492","name":"Error: already confirmed / safe retry (404)","originalRequest":{"method":"POST","header":[{"key":"Accept","value":"application/vnd.api+json"},{"key":"Authorization","value":"Bearer "},{"key":"Content-Type","value":"application/vnd.api+json"}],"body":{"mode":"raw","raw":"{\n  \"data\": {\n    \"type\": \"reservation\",\n    \"relationships\": {\n      \"reservation_request\": {\n        \"data\": {\n          \"type\": \"reservation_request\",\n          \"id\": \"\"\n        }\n      }\n    }\n  }\n}","options":{"raw":{"language":"json"}}},"url":"https://partner-staging.chronogolf.com/partner_api/v2/organizations/044ba009-d9f2-47c2-90c1-54fcd35996a4/reservations","description":"Step 3. Confirms the draft into a real reservation. Returns the reservation + rounds."},"status":"Not Found","code":404,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/vnd.api+json"}],"cookie":[],"responseTime":null,"body":"{\n  \"errors\": [\n    {\n      \"status\": 404,\n      \"code\": \"not_found\",\n      \"detail\": \"The requested entity was not found.\"\n    }\n  ]\n}"},{"id":"49160fe0-e753-4d16-83ac-1ddfbbb79134","name":"With a cart (cart_count set in step 1)","originalRequest":{"method":"POST","header":[{"key":"Accept","value":"application/vnd.api+json"},{"key":"Authorization","value":"Bearer "},{"key":"Content-Type","value":"application/vnd.api+json"}],"body":{"mode":"raw","raw":"{\n  \"data\": {\n    \"type\": \"reservation\",\n    \"relationships\": {\n      \"reservation_request\": {\n        \"data\": {\n          \"type\": \"reservation_request\",\n          \"id\": \"\"\n        }\n      }\n    }\n  }\n}","options":{"raw":{"language":"json"}}},"url":"https://partner-staging.chronogolf.com/partner_api/v2/organizations/044ba009-d9f2-47c2-90c1-54fcd35996a4/reservations","description":"Step 3. Confirms the draft into a real reservation. Returns the reservation + rounds."},"status":"Created","code":201,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/vnd.api+json"}],"cookie":[],"responseTime":null,"body":"{\n  \"data\": {\n    \"id\": \"a4dc0f11-26bd-4587-9193-01c6b5205f35\",\n    \"type\": \"reservation\",\n    \"attributes\": {\n      \"booking_reference\": \"3J6O-9Y2E\",\n      \"cart_count\": 1,\n      \"holes\": 18,\n      \"note\": \"With a cart\",\n      \"state\": \"confirmed\",\n      \"source\": \"partner\",\n      \"medium\": \"partner_api\",\n      \"cancelled_at\": null,\n      \"created_at\": \"2026-05-29T10:31:07-04:00\",\n      \"updated_at\": \"2026-05-29T10:31:07-04:00\"\n    },\n    \"relationships\": {\n      \"teetime\": {\n        \"data\": {\n          \"id\": \"3a75fd55-1897-4038-8d89-17cb9abb24e5\",\n          \"type\": \"teetime\"\n        }\n      },\n      \"organization\": {\n        \"data\": {\n          \"id\": \"044ba009-d9f2-47c2-90c1-54fcd35996a4\",\n          \"type\": \"organization\"\n        }\n      },\n      \"booker\": {\n        \"data\": null\n      },\n      \"tour_operator\": {\n        \"data\": null\n      },\n      \"rounds\": {\n        \"data\": [\n          {\n            \"id\": \"0d40e2ee-d6d0-4d69-a736-a2467c54765e\",\n            \"type\": \"round\"\n          }\n        ]\n      },\n      \"linked_reservations\": {\n        \"data\": []\n      }\n    }\n  },\n  \"included\": [\n    {\n      \"id\": \"0d40e2ee-d6d0-4d69-a736-a2467c54765e\",\n      \"type\": \"round\",\n      \"attributes\": {\n        \"state\": \"reserved\",\n        \"created_at\": \"2026-05-29T10:31:07.682-04:00\",\n        \"updated_at\": \"2026-05-29T10:31:07.682-04:00\",\n        \"cancelled_at\": null,\n        \"price\": 78.0,\n        \"paid\": false,\n        \"guest\": {\n          \"last_name\": \"Booking\",\n          \"first_name\": \"Cart\"\n        },\n        \"extras\": [],\n        \"kits\": [],\n        \"rates\": {\n          \"green_fee\": 60.0,\n          \"cart_fee\": 18.0,\n          \"extra_fee\": 0,\n          \"kit_fee\": 0,\n          \"subtotal\": null\n        }\n      },\n      \"relationships\": {\n        \"organization\": {\n          \"data\": {\n            \"id\": \"044ba009-d9f2-47c2-90c1-54fcd35996a4\",\n            \"type\": \"organization\"\n          }\n        },\n        \"reservation\": {\n          \"data\": {\n            \"id\": \"a4dc0f11-26bd-4587-9193-01c6b5205f35\",\n            \"type\": \"reservation\"\n          }\n        },\n        \"player_type\": {\n          \"data\": {\n            \"id\": \"6d5cfa52-60f9-4109-9a5e-b80269a426f9\",\n            \"type\": \"player_type\"\n          }\n        },\n        \"customer\": {\n          \"data\": null\n        }\n      }\n    },\n    {\n      \"id\": \"3a75fd55-1897-4038-8d89-17cb9abb24e5\",\n      \"type\": \"teetime\",\n      \"attributes\": {\n        \"blocked\": false,\n        \"date\": \"2026-05-30\",\n        \"hole\": 1,\n        \"format\": \"normal\",\n        \"start_time\": \"06:00\",\n        \"free_slots\": 3\n      },\n      \"relationships\": {\n        \"course\": {\n          \"data\": {\n            \"id\": \"5e7c2077-baae-4fa0-95ea-3ce02124284e\",\n            \"type\": \"course\"\n          }\n        },\n        \"event\": {\n          \"data\": null\n        }\n      }\n    }\n  ]\n}"}],"_postman_id":"3fc9fcf6-90e1-470f-b931-09f4e554a93c"},{"name":"List reservations","id":"ee483311-4c7c-4b99-a851-75a1721e4244","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[{"key":"Accept","value":"application/vnd.api+json"},{"key":"Authorization","value":"Bearer "}],"url":"https://partner-staging.chronogolf.com/partner_api/v2/organizations/044ba009-d9f2-47c2-90c1-54fcd35996a4/reservations?filter[updated_since]=2026-05-01T00:00:00Z&page[size]=50","description":"<p>Poll with filter[updated_since] to sync. cancelled_at can be set while state is still confirmed.</p>\n","urlObject":{"path":["partner_api","v2","organizations","044ba009-d9f2-47c2-90c1-54fcd35996a4","reservations"],"host":["https://partner-staging.chronogolf.com"],"query":[{"key":"filter[updated_since]","value":"2026-05-01T00:00:00Z"},{"key":"page[size]","value":"50"},{"disabled":true,"key":"filter[date]","value":"2026-05-29"},{"disabled":true,"key":"filter[course]","value":"5e7c2077-baae-4fa0-95ea-3ce02124284e"},{"disabled":true,"key":"filter[booking_reference]","value":"9M0B-5S0N"}],"variable":[]}},"response":[{"id":"ad107ff6-ff10-40a5-8d98-1b5533c03546","name":"Success","originalRequest":{"method":"GET","header":[{"key":"Accept","value":"application/vnd.api+json"},{"key":"Authorization","value":"Bearer "}],"url":{"raw":"https://partner-staging.chronogolf.com/partner_api/v2/organizations/044ba009-d9f2-47c2-90c1-54fcd35996a4/reservations?filter[updated_since]=2026-05-01T00:00:00Z&page[size]=50","host":["https://partner-staging.chronogolf.com"],"path":["partner_api","v2","organizations","044ba009-d9f2-47c2-90c1-54fcd35996a4","reservations"],"query":[{"key":"filter[updated_since]","value":"2026-05-01T00:00:00Z"},{"key":"page[size]","value":"50"},{"key":"filter[date]","value":"2026-05-29","disabled":true},{"key":"filter[course]","value":"5e7c2077-baae-4fa0-95ea-3ce02124284e","disabled":true},{"key":"filter[booking_reference]","value":"9M0B-5S0N","disabled":true}]},"description":"Poll with filter[updated_since] to sync. cancelled_at can be set while state is still confirmed."},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/vnd.api+json"}],"cookie":[],"responseTime":null,"body":"{\n  \"data\": [\n    {\n      \"id\": \"5d9a7a6a-be8f-4be1-883c-9b1e2ec11d91\",\n      \"type\": \"reservation\",\n      \"attributes\": {\n        \"booking_reference\": \"R70745\",\n        \"cart_count\": 0,\n        \"holes\": 18,\n        \"note\": null,\n        \"state\": \"confirmed\",\n        \"source\": null,\n        \"medium\": \"web\",\n        \"cancelled_at\": null,\n        \"created_at\": \"2017-11-21T13:38:26-05:00\",\n        \"updated_at\": \"2017-11-21T13:45:58-05:00\"\n      },\n      \"relationships\": {\n        \"teetime\": {\n          \"data\": {\n            \"id\": \"7fac9f17-d134-4749-b9cb-99c973674870\",\n            \"type\": \"teetime\"\n          }\n        },\n        \"organization\": {\n          \"data\": {\n            \"id\": \"044ba009-d9f2-47c2-90c1-54fcd35996a4\",\n            \"type\": \"organization\"\n          }\n        },\n        \"booker\": {\n          \"data\": {\n            \"id\": \"1f49bcac-811e-4fb7-a66f-9aa86bde5336\",\n            \"type\": \"customer\"\n          }\n        },\n        \"tour_operator\": {\n          \"data\": null\n        },\n        \"rounds\": {\n          \"data\": [\n            {\n              \"id\": \"d40542e4-f345-450b-9cbc-3f9876f4e33a\",\n              \"type\": \"round\"\n            },\n            {\n              \"id\": \"726ef905-6d84-46f6-950f-d5f4a98bbca3\",\n              \"type\": \"round\"\n            },\n            {\n              \"id\": \"75ba50b6-9417-493d-bb5e-8b446a226293\",\n              \"type\": \"round\"\n            }\n          ]\n        },\n        \"linked_reservations\": {\n          \"data\": []\n        }\n      }\n    }\n  ],\n  \"included\": [\n    {\n      \"id\": \"d40542e4-f345-450b-9cbc-3f9876f4e33a\",\n      \"type\": \"round\",\n      \"attributes\": {\n        \"state\": \"arrived\",\n        \"created_at\": \"2017-11-21T13:38:26.409-05:00\",\n        \"updated_at\": \"2017-11-21T13:45:50.335-05:00\",\n        \"cancelled_at\": null,\n        \"price\": 0.0,\n        \"paid\": false,\n        \"guest\": null,\n        \"extras\": [],\n        \"kits\": [],\n        \"rates\": {\n          \"green_fee\": null,\n          \"cart_fee\": null,\n          \"extra_fee\": 0,\n          \"kit_fee\": 0,\n          \"subtotal\": null\n        }\n      },\n      \"relationships\": {\n        \"organization\": {\n          \"data\": {\n            \"id\": \"044ba009-d9f2-47c2-90c1-54fcd35996a4\",\n            \"type\": \"organization\"\n          }\n        },\n        \"reservation\": {\n          \"data\": {\n            \"id\": \"5d9a7a6a-be8f-4be1-883c-9b1e2ec11d91\",\n            \"type\": \"reservation\"\n          }\n        },\n        \"player_type\": {\n          \"data\": {\n            \"id\": \"6d5cfa52-60f9-4109-9a5e-b80269a426f9\",\n            \"type\": \"player_type\"\n          }\n        },\n        \"customer\": {\n          \"data\": {\n            \"id\": \"be85de46-d0b9-4b06-acc2-76d61b07b277\",\n            \"type\": \"customership\"\n          }\n        }\n      }\n    },\n    {\n      \"id\": \"726ef905-6d84-46f6-950f-d5f4a98bbca3\",\n      \"type\": \"round\",\n      \"attributes\": {\n        \"state\": \"reserved\",\n        \"created_at\": \"2017-11-21T13:38:26.476-05:00\",\n        \"updated_at\": \"2017-11-21T13:38:26.476-05:00\",\n        \"cancelled_at\": null,\n        \"price\": 0.0,\n        \"paid\": false,\n        \"guest\": {},\n        \"extras\": [],\n        \"kits\": [],\n        \"rates\": {\n          \"green_fee\": null,\n          \"cart_fee\": null,\n          \"extra_fee\": 0,\n          \"kit_fee\": 0,\n          \"subtotal\": null\n        }\n      },\n      \"relationships\": {\n        \"organization\": {\n          \"data\": {\n            \"id\": \"044ba009-d9f2-47c2-90c1-54fcd35996a4\",\n            \"type\": \"organization\"\n          }\n        },\n        \"reservation\": {\n          \"data\": {\n            \"id\": \"5d9a7a6a-be8f-4be1-883c-9b1e2ec11d91\",\n            \"type\": \"reservation\"\n          }\n        },\n        \"player_type\": {\n          \"data\": {\n            \"id\": \"6d5cfa52-60f9-4109-9a5e-b80269a426f9\",\n            \"type\": \"player_type\"\n          }\n        },\n        \"customer\": {\n          \"data\": null\n        }\n      }\n    },\n    {\n      \"id\": \"75ba50b6-9417-493d-bb5e-8b446a226293\",\n      \"type\": \"round\",\n      \"attributes\": {\n        \"state\": \"reserved\",\n        \"created_at\": \"2017-11-21T13:38:26.491-05:00\",\n        \"updated_at\": \"2017-11-21T13:38:26.491-05:00\",\n        \"cancelled_at\": null,\n        \"price\": 0.0,\n        \"paid\": false,\n        \"guest\": {},\n        \"extras\": [],\n        \"kits\": [],\n        \"rates\": {\n          \"green_fee\": null,\n          \"cart_fee\": null,\n          \"extra_fee\": 0,\n          \"kit_fee\": 0,\n          \"subtotal\": null\n        }\n      },\n      \"relationships\": {\n        \"organization\": {\n          \"data\": {\n            \"id\": \"044ba009-d9f2-47c2-90c1-54fcd35996a4\",\n            \"type\": \"organization\"\n          }\n        },\n        \"reservation\": {\n          \"data\": {\n            \"id\": \"5d9a7a6a-be8f-4be1-883c-9b1e2ec11d91\",\n            \"type\": \"reservation\"\n          }\n        },\n        \"player_type\": {\n          \"data\": {\n            \"id\": \"6d5cfa52-60f9-4109-9a5e-b80269a426f9\",\n            \"type\": \"player_type\"\n          }\n        },\n        \"customer\": {\n          \"data\": null\n        }\n      }\n    },\n    {\n      \"id\": \"7fac9f17-d134-4749-b9cb-99c973674870\",\n      \"type\": \"teetime\",\n      \"attributes\": {\n        \"blocked\": false,\n        \"date\": \"2017-11-21\",\n        \"hole\": 1,\n        \"format\": \"normal\",\n        \"start_time\": \"13:39\",\n        \"free_slots\": 1\n      },\n      \"relationships\": {\n        \"course\": {\n          \"data\": {\n            \"id\": \"5e7c2077-baae-4fa0-95ea-3ce02124284e\",\n            \"type\": \"course\"\n          }\n        },\n        \"event\": {\n          \"data\": null\n        }\n      }\n    }\n  ],\n  \"meta\": {\n    \"page\": 1,\n    \"page_size\": 1,\n    \"total\": 55,\n    \"total_pages\": 55\n  }\n}"},{"id":"7fda8d80-cff2-42dc-a43d-1c62e130084a","name":"Error: unknown filter (400)","originalRequest":{"method":"GET","header":[{"key":"Accept","value":"application/vnd.api+json"},{"key":"Authorization","value":"Bearer "}],"url":{"raw":"https://partner-staging.chronogolf.com/partner_api/v2/organizations/044ba009-d9f2-47c2-90c1-54fcd35996a4/reservations?filter[bogus]=x","host":["https://partner-staging.chronogolf.com"],"path":["partner_api","v2","organizations","044ba009-d9f2-47c2-90c1-54fcd35996a4","reservations"],"query":[{"key":"filter[bogus]","value":"x"}]},"description":"Poll with filter[updated_since] to sync. cancelled_at can be set while state is still confirmed."},"status":"Bad Request","code":400,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/vnd.api+json"}],"cookie":[],"responseTime":null,"body":"{\n  \"errors\": [\n    {\n      \"status\": 400,\n      \"code\": \"bad_request\",\n      \"detail\": \"Invalid filter params\"\n    }\n  ]\n}"}],"_postman_id":"ee483311-4c7c-4b99-a851-75a1721e4244"},{"name":"Show reservation","id":"5e19c5f2-85c8-40e3-b2d5-7cbba475974e","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[{"key":"Accept","value":"application/vnd.api+json"},{"key":"Authorization","value":"Bearer "}],"url":"https://partner-staging.chronogolf.com/partner_api/v2/organizations/044ba009-d9f2-47c2-90c1-54fcd35996a4/reservations/","urlObject":{"path":["partner_api","v2","organizations","044ba009-d9f2-47c2-90c1-54fcd35996a4","reservations",""],"host":["https://partner-staging.chronogolf.com"],"query":[],"variable":[]}},"response":[{"id":"94d41723-c962-4d16-a152-dae07ca8462d","name":"Success","originalRequest":{"method":"GET","header":[{"key":"Accept","value":"application/vnd.api+json"},{"key":"Authorization","value":"Bearer "}],"url":"https://partner-staging.chronogolf.com/partner_api/v2/organizations/044ba009-d9f2-47c2-90c1-54fcd35996a4/reservations/"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/vnd.api+json"}],"cookie":[],"responseTime":null,"body":"{\n  \"data\": {\n    \"id\": \"5d9a7a6a-be8f-4be1-883c-9b1e2ec11d91\",\n    \"type\": \"reservation\",\n    \"attributes\": {\n      \"booking_reference\": \"R70745\",\n      \"cart_count\": 0,\n      \"holes\": 18,\n      \"note\": null,\n      \"state\": \"confirmed\",\n      \"source\": null,\n      \"medium\": \"web\",\n      \"cancelled_at\": null,\n      \"created_at\": \"2017-11-21T13:38:26-05:00\",\n      \"updated_at\": \"2017-11-21T13:45:58-05:00\"\n    },\n    \"relationships\": {\n      \"teetime\": {\n        \"data\": {\n          \"id\": \"7fac9f17-d134-4749-b9cb-99c973674870\",\n          \"type\": \"teetime\"\n        }\n      },\n      \"organization\": {\n        \"data\": {\n          \"id\": \"044ba009-d9f2-47c2-90c1-54fcd35996a4\",\n          \"type\": \"organization\"\n        }\n      },\n      \"booker\": {\n        \"data\": {\n          \"id\": \"1f49bcac-811e-4fb7-a66f-9aa86bde5336\",\n          \"type\": \"customer\"\n        }\n      },\n      \"tour_operator\": {\n        \"data\": null\n      },\n      \"rounds\": {\n        \"data\": [\n          {\n            \"id\": \"d40542e4-f345-450b-9cbc-3f9876f4e33a\",\n            \"type\": \"round\"\n          },\n          {\n            \"id\": \"726ef905-6d84-46f6-950f-d5f4a98bbca3\",\n            \"type\": \"round\"\n          },\n          {\n            \"id\": \"75ba50b6-9417-493d-bb5e-8b446a226293\",\n            \"type\": \"round\"\n          }\n        ]\n      },\n      \"linked_reservations\": {\n        \"data\": []\n      }\n    }\n  },\n  \"included\": [\n    {\n      \"id\": \"d40542e4-f345-450b-9cbc-3f9876f4e33a\",\n      \"type\": \"round\",\n      \"attributes\": {\n        \"state\": \"arrived\",\n        \"created_at\": \"2017-11-21T13:38:26.409-05:00\",\n        \"updated_at\": \"2017-11-21T13:45:50.335-05:00\",\n        \"cancelled_at\": null,\n        \"price\": 0.0,\n        \"paid\": false,\n        \"guest\": null,\n        \"extras\": [],\n        \"kits\": [],\n        \"rates\": {\n          \"green_fee\": null,\n          \"cart_fee\": null,\n          \"extra_fee\": 0,\n          \"kit_fee\": 0,\n          \"subtotal\": null\n        }\n      },\n      \"relationships\": {\n        \"organization\": {\n          \"data\": {\n            \"id\": \"044ba009-d9f2-47c2-90c1-54fcd35996a4\",\n            \"type\": \"organization\"\n          }\n        },\n        \"reservation\": {\n          \"data\": {\n            \"id\": \"5d9a7a6a-be8f-4be1-883c-9b1e2ec11d91\",\n            \"type\": \"reservation\"\n          }\n        },\n        \"player_type\": {\n          \"data\": {\n            \"id\": \"6d5cfa52-60f9-4109-9a5e-b80269a426f9\",\n            \"type\": \"player_type\"\n          }\n        },\n        \"customer\": {\n          \"data\": {\n            \"id\": \"be85de46-d0b9-4b06-acc2-76d61b07b277\",\n            \"type\": \"customership\"\n          }\n        }\n      }\n    },\n    {\n      \"id\": \"726ef905-6d84-46f6-950f-d5f4a98bbca3\",\n      \"type\": \"round\",\n      \"attributes\": {\n        \"state\": \"reserved\",\n        \"created_at\": \"2017-11-21T13:38:26.476-05:00\",\n        \"updated_at\": \"2017-11-21T13:38:26.476-05:00\",\n        \"cancelled_at\": null,\n        \"price\": 0.0,\n        \"paid\": false,\n        \"guest\": {},\n        \"extras\": [],\n        \"kits\": [],\n        \"rates\": {\n          \"green_fee\": null,\n          \"cart_fee\": null,\n          \"extra_fee\": 0,\n          \"kit_fee\": 0,\n          \"subtotal\": null\n        }\n      },\n      \"relationships\": {\n        \"organization\": {\n          \"data\": {\n            \"id\": \"044ba009-d9f2-47c2-90c1-54fcd35996a4\",\n            \"type\": \"organization\"\n          }\n        },\n        \"reservation\": {\n          \"data\": {\n            \"id\": \"5d9a7a6a-be8f-4be1-883c-9b1e2ec11d91\",\n            \"type\": \"reservation\"\n          }\n        },\n        \"player_type\": {\n          \"data\": {\n            \"id\": \"6d5cfa52-60f9-4109-9a5e-b80269a426f9\",\n            \"type\": \"player_type\"\n          }\n        },\n        \"customer\": {\n          \"data\": null\n        }\n      }\n    },\n    {\n      \"id\": \"75ba50b6-9417-493d-bb5e-8b446a226293\",\n      \"type\": \"round\",\n      \"attributes\": {\n        \"state\": \"reserved\",\n        \"created_at\": \"2017-11-21T13:38:26.491-05:00\",\n        \"updated_at\": \"2017-11-21T13:38:26.491-05:00\",\n        \"cancelled_at\": null,\n        \"price\": 0.0,\n        \"paid\": false,\n        \"guest\": {},\n        \"extras\": [],\n        \"kits\": [],\n        \"rates\": {\n          \"green_fee\": null,\n          \"cart_fee\": null,\n          \"extra_fee\": 0,\n          \"kit_fee\": 0,\n          \"subtotal\": null\n        }\n      },\n      \"relationships\": {\n        \"organization\": {\n          \"data\": {\n            \"id\": \"044ba009-d9f2-47c2-90c1-54fcd35996a4\",\n            \"type\": \"organization\"\n          }\n        },\n        \"reservation\": {\n          \"data\": {\n            \"id\": \"5d9a7a6a-be8f-4be1-883c-9b1e2ec11d91\",\n            \"type\": \"reservation\"\n          }\n        },\n        \"player_type\": {\n          \"data\": {\n            \"id\": \"6d5cfa52-60f9-4109-9a5e-b80269a426f9\",\n            \"type\": \"player_type\"\n          }\n        },\n        \"customer\": {\n          \"data\": null\n        }\n      }\n    },\n    {\n      \"id\": \"7fac9f17-d134-4749-b9cb-99c973674870\",\n      \"type\": \"teetime\",\n      \"attributes\": {\n        \"blocked\": false,\n        \"date\": \"2017-11-21\",\n        \"hole\": 1,\n        \"format\": \"normal\",\n        \"start_time\": \"13:39\",\n        \"free_slots\": 1\n      },\n      \"relationships\": {\n        \"course\": {\n          \"data\": {\n            \"id\": \"5e7c2077-baae-4fa0-95ea-3ce02124284e\",\n            \"type\": \"course\"\n          }\n        },\n        \"event\": {\n          \"data\": null\n        }\n      }\n    }\n  ]\n}"}],"_postman_id":"5e19c5f2-85c8-40e3-b2d5-7cbba475974e"},{"name":"Update reservation","id":"135b026d-ae2a-42ad-9759-21675626370c","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"PUT","header":[{"key":"Accept","value":"application/vnd.api+json"},{"key":"Authorization","value":"Bearer "},{"key":"Content-Type","value":"application/vnd.api+json"}],"body":{"mode":"raw","raw":"{\n  \"data\": {\n    \"type\": \"reservation\",\n    \"attributes\": {\n      \"note\": \"Late arrival\",\n      \"holes\": 9\n    },\n    \"relationships\": {\n      \"teetime\": {\n        \"data\": {\n          \"type\": \"teetime\",\n          \"id\": \"8c92c8eb-d7e7-4537-be7a-de5db466391b\"\n        }\n      }\n    }\n  }\n}","options":{"raw":{"language":"json"}}},"url":"https://partner-staging.chronogolf.com/partner_api/v2/organizations/044ba009-d9f2-47c2-90c1-54fcd35996a4/reservations/","description":"<p>Change note/holes/cart_count, move to a different teetime, or set tour_operator.</p>\n","urlObject":{"path":["partner_api","v2","organizations","044ba009-d9f2-47c2-90c1-54fcd35996a4","reservations",""],"host":["https://partner-staging.chronogolf.com"],"query":[],"variable":[]}},"response":[{"id":"884298d5-42f2-4483-bcd7-1ba7cc366ab7","name":"Success","originalRequest":{"method":"PUT","header":[{"key":"Accept","value":"application/vnd.api+json"},{"key":"Authorization","value":"Bearer "},{"key":"Content-Type","value":"application/vnd.api+json"}],"body":{"mode":"raw","raw":"{\n  \"data\": {\n    \"type\": \"reservation\",\n    \"attributes\": {\n      \"note\": \"Late arrival\",\n      \"holes\": 9\n    },\n    \"relationships\": {\n      \"teetime\": {\n        \"data\": {\n          \"type\": \"teetime\",\n          \"id\": \"8c92c8eb-d7e7-4537-be7a-de5db466391b\"\n        }\n      }\n    }\n  }\n}","options":{"raw":{"language":"json"}}},"url":"https://partner-staging.chronogolf.com/partner_api/v2/organizations/044ba009-d9f2-47c2-90c1-54fcd35996a4/reservations/","description":"Change note/holes/cart_count, move to a different teetime, or set tour_operator."},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/vnd.api+json"}],"cookie":[],"responseTime":null,"body":"{\n  \"data\": {\n    \"id\": \"67b1790f-ab1c-4990-8738-4b739084e561\",\n    \"type\": \"reservation\",\n    \"attributes\": {\n      \"booking_reference\": \"7T6K-7N2X\",\n      \"cart_count\": 0,\n      \"holes\": 9,\n      \"note\": \"updated via API\",\n      \"state\": \"confirmed\",\n      \"source\": \"partner\",\n      \"medium\": \"partner_api\",\n      \"cancelled_at\": null,\n      \"created_at\": \"2026-05-28T16:21:01-04:00\",\n      \"updated_at\": \"2026-05-28T16:21:04-04:00\"\n    },\n    \"relationships\": {\n      \"teetime\": {\n        \"data\": {\n          \"id\": \"8c92c8eb-d7e7-4537-be7a-de5db466391b\",\n          \"type\": \"teetime\"\n        }\n      },\n      \"organization\": {\n        \"data\": {\n          \"id\": \"044ba009-d9f2-47c2-90c1-54fcd35996a4\",\n          \"type\": \"organization\"\n        }\n      },\n      \"booker\": {\n        \"data\": null\n      },\n      \"tour_operator\": {\n        \"data\": null\n      },\n      \"rounds\": {\n        \"data\": [\n          {\n            \"id\": \"4ca7ddb5-b24d-49be-82ce-62273d659667\",\n            \"type\": \"round\"\n          },\n          {\n            \"id\": \"b8b1ec96-c462-47f1-8823-4ef5cba15ea0\",\n            \"type\": \"round\"\n          }\n        ]\n      },\n      \"linked_reservations\": {\n        \"data\": []\n      }\n    }\n  },\n  \"included\": [\n    {\n      \"id\": \"4ca7ddb5-b24d-49be-82ce-62273d659667\",\n      \"type\": \"round\",\n      \"attributes\": {\n        \"state\": \"reserved\",\n        \"created_at\": \"2026-05-28T16:21:01.236-04:00\",\n        \"updated_at\": \"2026-05-28T16:21:01.236-04:00\",\n        \"cancelled_at\": null,\n        \"price\": 10.0,\n        \"paid\": false,\n        \"guest\": {\n          \"last_name\": \"Round\",\n          \"first_name\": \"Pay\"\n        },\n        \"extras\": [],\n        \"kits\": [],\n        \"rates\": {\n          \"green_fee\": 10.0,\n          \"cart_fee\": null,\n          \"extra_fee\": 0,\n          \"kit_fee\": 0,\n          \"subtotal\": null\n        }\n      },\n      \"relationships\": {\n        \"organization\": {\n          \"data\": {\n            \"id\": \"044ba009-d9f2-47c2-90c1-54fcd35996a4\",\n            \"type\": \"organization\"\n          }\n        },\n        \"reservation\": {\n          \"data\": {\n            \"id\": \"67b1790f-ab1c-4990-8738-4b739084e561\",\n            \"type\": \"reservation\"\n          }\n        },\n        \"player_type\": {\n          \"data\": {\n            \"id\": \"3b84cd17-fffb-44f9-8570-a690231af66d\",\n            \"type\": \"player_type\"\n          }\n        },\n        \"customer\": {\n          \"data\": null\n        }\n      }\n    },\n    {\n      \"id\": \"b8b1ec96-c462-47f1-8823-4ef5cba15ea0\",\n      \"type\": \"round\",\n      \"attributes\": {\n        \"state\": \"reserved\",\n        \"created_at\": \"2026-05-28T16:21:01.626-04:00\",\n        \"updated_at\": \"2026-05-28T16:21:02.903-04:00\",\n        \"cancelled_at\": \"2026-05-28T16:21:02.886-04:00\",\n        \"price\": 0.0,\n        \"paid\": false,\n        \"guest\": {\n          \"last_name\": \"Player\",\n          \"first_name\": \"Added\"\n        },\n        \"extras\": [],\n        \"kits\": [],\n        \"rates\": {\n          \"green_fee\": null,\n          \"cart_fee\": null,\n          \"extra_fee\": 0,\n          \"kit_fee\": 0,\n          \"subtotal\": null\n        }\n      },\n      \"relationships\": {\n        \"organization\": {\n          \"data\": {\n            \"id\": \"044ba009-d9f2-47c2-90c1-54fcd35996a4\",\n            \"type\": \"organization\"\n          }\n        },\n        \"reservation\": {\n          \"data\": {\n            \"id\": \"67b1790f-ab1c-4990-8738-4b739084e561\",\n            \"type\": \"reservation\"\n          }\n        },\n        \"player_type\": {\n          \"data\": {\n            \"id\": \"3b84cd17-fffb-44f9-8570-a690231af66d\",\n            \"type\": \"player_type\"\n          }\n        },\n        \"customer\": {\n          \"data\": null\n        }\n      }\n    },\n    {\n      \"id\": \"8c92c8eb-d7e7-4537-be7a-de5db466391b\",\n      \"type\": \"teetime\",\n      \"attributes\": {\n        \"blocked\": false,\n        \"date\": \"2026-05-29\",\n        \"hole\": 1,\n        \"format\": \"normal\",\n        \"start_time\": \"06:00\",\n        \"free_slots\": 3\n      },\n      \"relationships\": {\n        \"course\": {\n          \"data\": {\n            \"id\": \"5e7c2077-baae-4fa0-95ea-3ce02124284e\",\n            \"type\": \"course\"\n          }\n        },\n        \"event\": {\n          \"data\": null\n        }\n      }\n    }\n  ]\n}"}],"_postman_id":"135b026d-ae2a-42ad-9759-21675626370c"},{"name":"Cancel reservation (soft)","id":"1f1dd5a1-464b-4ccd-ae30-42181391feca","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"DELETE","header":[{"key":"Accept","value":"application/vnd.api+json"},{"key":"Authorization","value":"Bearer "}],"url":"https://partner-staging.chronogolf.com/partner_api/v2/organizations/044ba009-d9f2-47c2-90c1-54fcd35996a4/reservations/","description":"<p>Soft cancel: sets cancelled_at, returns 204. The reservation still appears in the index.</p>\n","urlObject":{"path":["partner_api","v2","organizations","044ba009-d9f2-47c2-90c1-54fcd35996a4","reservations",""],"host":["https://partner-staging.chronogolf.com"],"query":[],"variable":[]}},"response":[{"id":"b0a868f2-cca2-416a-ab9b-b9ade7e413a2","name":"No Content","originalRequest":{"method":"DELETE","header":[{"key":"Accept","value":"application/vnd.api+json"},{"key":"Authorization","value":"Bearer "}],"url":"https://partner-staging.chronogolf.com/partner_api/v2/organizations/044ba009-d9f2-47c2-90c1-54fcd35996a4/reservations/","description":"Soft cancel: sets cancelled_at, returns 204. The reservation still appears in the index."},"status":"No Content","code":204,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/vnd.api+json"}],"cookie":[],"responseTime":null,"body":""}],"_postman_id":"1f1dd5a1-464b-4ccd-ae30-42181391feca"},{"name":"List rounds","id":"6a8344ef-3eab-4c51-83b4-a43ae07a37ca","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[{"key":"Accept","value":"application/vnd.api+json"},{"key":"Authorization","value":"Bearer "}],"url":"https://partner-staging.chronogolf.com/partner_api/v2/organizations/044ba009-d9f2-47c2-90c1-54fcd35996a4/reservations//rounds","urlObject":{"path":["partner_api","v2","organizations","044ba009-d9f2-47c2-90c1-54fcd35996a4","reservations","","rounds"],"host":["https://partner-staging.chronogolf.com"],"query":[],"variable":[]}},"response":[{"id":"95e25616-e008-4dbe-b68d-e94e61ca60fc","name":"Success","originalRequest":{"method":"GET","header":[{"key":"Accept","value":"application/vnd.api+json"},{"key":"Authorization","value":"Bearer "}],"url":"https://partner-staging.chronogolf.com/partner_api/v2/organizations/044ba009-d9f2-47c2-90c1-54fcd35996a4/reservations//rounds"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/vnd.api+json"}],"cookie":[],"responseTime":null,"body":"{\n  \"data\": [\n    {\n      \"id\": \"d40542e4-f345-450b-9cbc-3f9876f4e33a\",\n      \"type\": \"round\",\n      \"attributes\": {\n        \"state\": \"arrived\",\n        \"created_at\": \"2017-11-21T13:38:26.409-05:00\",\n        \"updated_at\": \"2017-11-21T13:45:50.335-05:00\",\n        \"cancelled_at\": null,\n        \"price\": 0.0,\n        \"paid\": false,\n        \"guest\": null,\n        \"extras\": [],\n        \"kits\": [],\n        \"rates\": {\n          \"green_fee\": null,\n          \"cart_fee\": null,\n          \"extra_fee\": 0,\n          \"kit_fee\": 0,\n          \"subtotal\": null\n        }\n      },\n      \"relationships\": {\n        \"organization\": {\n          \"data\": {\n            \"id\": \"044ba009-d9f2-47c2-90c1-54fcd35996a4\",\n            \"type\": \"organization\"\n          }\n        },\n        \"reservation\": {\n          \"data\": {\n            \"id\": \"5d9a7a6a-be8f-4be1-883c-9b1e2ec11d91\",\n            \"type\": \"reservation\"\n          }\n        },\n        \"player_type\": {\n          \"data\": {\n            \"id\": \"6d5cfa52-60f9-4109-9a5e-b80269a426f9\",\n            \"type\": \"player_type\"\n          }\n        },\n        \"customer\": {\n          \"data\": {\n            \"id\": \"be85de46-d0b9-4b06-acc2-76d61b07b277\",\n            \"type\": \"customership\"\n          }\n        }\n      }\n    },\n    {\n      \"id\": \"726ef905-6d84-46f6-950f-d5f4a98bbca3\",\n      \"type\": \"round\",\n      \"attributes\": {\n        \"state\": \"reserved\",\n        \"created_at\": \"2017-11-21T13:38:26.476-05:00\",\n        \"updated_at\": \"2017-11-21T13:38:26.476-05:00\",\n        \"cancelled_at\": null,\n        \"price\": 0.0,\n        \"paid\": false,\n        \"guest\": {},\n        \"extras\": [],\n        \"kits\": [],\n        \"rates\": {\n          \"green_fee\": null,\n          \"cart_fee\": null,\n          \"extra_fee\": 0,\n          \"kit_fee\": 0,\n          \"subtotal\": null\n        }\n      },\n      \"relationships\": {\n        \"organization\": {\n          \"data\": {\n            \"id\": \"044ba009-d9f2-47c2-90c1-54fcd35996a4\",\n            \"type\": \"organization\"\n          }\n        },\n        \"reservation\": {\n          \"data\": {\n            \"id\": \"5d9a7a6a-be8f-4be1-883c-9b1e2ec11d91\",\n            \"type\": \"reservation\"\n          }\n        },\n        \"player_type\": {\n          \"data\": {\n            \"id\": \"6d5cfa52-60f9-4109-9a5e-b80269a426f9\",\n            \"type\": \"player_type\"\n          }\n        },\n        \"customer\": {\n          \"data\": null\n        }\n      }\n    }\n  ],\n  \"meta\": {\n    \"page\": 1,\n    \"page_size\": 25,\n    \"total\": 3,\n    \"total_pages\": 1\n  }\n}"}],"_postman_id":"6a8344ef-3eab-4c51-83b4-a43ae07a37ca"},{"name":"Show round","id":"4e889dbb-3239-47e9-8658-c3617d107c12","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[{"key":"Accept","value":"application/vnd.api+json"},{"key":"Authorization","value":"Bearer "}],"url":"https://partner-staging.chronogolf.com/partner_api/v2/organizations/044ba009-d9f2-47c2-90c1-54fcd35996a4/reservations//rounds/","urlObject":{"path":["partner_api","v2","organizations","044ba009-d9f2-47c2-90c1-54fcd35996a4","reservations","","rounds",""],"host":["https://partner-staging.chronogolf.com"],"query":[],"variable":[]}},"response":[{"id":"94029ab5-0473-41ff-bf9a-213559dd9949","name":"Success","originalRequest":{"method":"GET","header":[{"key":"Accept","value":"application/vnd.api+json"},{"key":"Authorization","value":"Bearer "}],"url":"https://partner-staging.chronogolf.com/partner_api/v2/organizations/044ba009-d9f2-47c2-90c1-54fcd35996a4/reservations//rounds/"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/vnd.api+json"}],"cookie":[],"responseTime":null,"body":"{\n  \"data\": {\n    \"id\": \"d40542e4-f345-450b-9cbc-3f9876f4e33a\",\n    \"type\": \"round\",\n    \"attributes\": {\n      \"state\": \"arrived\",\n      \"created_at\": \"2017-11-21T13:38:26.409-05:00\",\n      \"updated_at\": \"2017-11-21T13:45:50.335-05:00\",\n      \"cancelled_at\": null,\n      \"price\": 0.0,\n      \"paid\": false,\n      \"guest\": null,\n      \"extras\": [],\n      \"kits\": [],\n      \"rates\": {\n        \"green_fee\": null,\n        \"cart_fee\": null,\n        \"extra_fee\": 0,\n        \"kit_fee\": 0,\n        \"subtotal\": null\n      }\n    },\n    \"relationships\": {\n      \"organization\": {\n        \"data\": {\n          \"id\": \"044ba009-d9f2-47c2-90c1-54fcd35996a4\",\n          \"type\": \"organization\"\n        }\n      },\n      \"reservation\": {\n        \"data\": {\n          \"id\": \"5d9a7a6a-be8f-4be1-883c-9b1e2ec11d91\",\n          \"type\": \"reservation\"\n        }\n      },\n      \"player_type\": {\n        \"data\": {\n          \"id\": \"6d5cfa52-60f9-4109-9a5e-b80269a426f9\",\n          \"type\": \"player_type\"\n        }\n      },\n      \"customer\": {\n        \"data\": {\n          \"id\": \"be85de46-d0b9-4b06-acc2-76d61b07b277\",\n          \"type\": \"customership\"\n        }\n      }\n    }\n  }\n}"}],"_postman_id":"4e889dbb-3239-47e9-8658-c3617d107c12"},{"name":"Add round","id":"3e5d0295-bda1-4fab-a48c-85be844f68e5","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[{"key":"Accept","value":"application/vnd.api+json"},{"key":"Authorization","value":"Bearer "},{"key":"Content-Type","value":"application/vnd.api+json"}],"body":{"mode":"raw","raw":"{\n  \"data\": {\n    \"type\": \"round\",\n    \"attributes\": {\n      \"guest\": {\n        \"first_name\": \"New\",\n        \"last_name\": \"Player\"\n      }\n    },\n    \"relationships\": {\n      \"player_type\": {\n        \"data\": {\n          \"type\": \"player_type\",\n          \"id\": \"3b84cd17-fffb-44f9-8570-a690231af66d\"\n        }\n      }\n    }\n  }\n}","options":{"raw":{"language":"json"}}},"url":"https://partner-staging.chronogolf.com/partner_api/v2/organizations/044ba009-d9f2-47c2-90c1-54fcd35996a4/reservations//rounds","description":"<p>Add a player to a confirmed reservation.</p>\n","urlObject":{"path":["partner_api","v2","organizations","044ba009-d9f2-47c2-90c1-54fcd35996a4","reservations","","rounds"],"host":["https://partner-staging.chronogolf.com"],"query":[],"variable":[]}},"response":[{"id":"42f4fa71-84f4-4b68-8a5a-3c9782cea6c5","name":"Created","originalRequest":{"method":"POST","header":[{"key":"Accept","value":"application/vnd.api+json"},{"key":"Authorization","value":"Bearer "},{"key":"Content-Type","value":"application/vnd.api+json"}],"body":{"mode":"raw","raw":"{\n  \"data\": {\n    \"type\": \"round\",\n    \"attributes\": {\n      \"guest\": {\n        \"first_name\": \"New\",\n        \"last_name\": \"Player\"\n      }\n    },\n    \"relationships\": {\n      \"player_type\": {\n        \"data\": {\n          \"type\": \"player_type\",\n          \"id\": \"3b84cd17-fffb-44f9-8570-a690231af66d\"\n        }\n      }\n    }\n  }\n}","options":{"raw":{"language":"json"}}},"url":"https://partner-staging.chronogolf.com/partner_api/v2/organizations/044ba009-d9f2-47c2-90c1-54fcd35996a4/reservations//rounds","description":"Add a player to a confirmed reservation."},"status":"Created","code":201,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/vnd.api+json"}],"cookie":[],"responseTime":null,"body":"{\n  \"data\": {\n    \"id\": \"67b1790f-ab1c-4990-8738-4b739084e561\",\n    \"type\": \"reservation\",\n    \"attributes\": {\n      \"booking_reference\": \"7T6K-7N2X\",\n      \"cart_count\": 0,\n      \"holes\": 18,\n      \"note\": \"example booking\",\n      \"state\": \"confirmed\",\n      \"source\": \"partner\",\n      \"medium\": \"partner_api\",\n      \"cancelled_at\": null,\n      \"created_at\": \"2026-05-28T16:21:01-04:00\",\n      \"updated_at\": \"2026-05-28T16:21:01-04:00\"\n    },\n    \"relationships\": {\n      \"teetime\": {\n        \"data\": {\n          \"id\": \"8c92c8eb-d7e7-4537-be7a-de5db466391b\",\n          \"type\": \"teetime\"\n        }\n      },\n      \"organization\": {\n        \"data\": {\n          \"id\": \"044ba009-d9f2-47c2-90c1-54fcd35996a4\",\n          \"type\": \"organization\"\n        }\n      },\n      \"booker\": {\n        \"data\": null\n      },\n      \"tour_operator\": {\n        \"data\": null\n      },\n      \"rounds\": {\n        \"data\": [\n          {\n            \"id\": \"4ca7ddb5-b24d-49be-82ce-62273d659667\",\n            \"type\": \"round\"\n          },\n          {\n            \"id\": \"b8b1ec96-c462-47f1-8823-4ef5cba15ea0\",\n            \"type\": \"round\"\n          }\n        ]\n      },\n      \"linked_reservations\": {\n        \"data\": []\n      }\n    }\n  }\n}"}],"_postman_id":"3e5d0295-bda1-4fab-a48c-85be844f68e5"},{"name":"Update round","id":"efd4c2ef-4a27-4a2c-9a74-54bd754b8227","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"PUT","header":[{"key":"Accept","value":"application/vnd.api+json"},{"key":"Authorization","value":"Bearer "},{"key":"Content-Type","value":"application/vnd.api+json"}],"body":{"mode":"raw","raw":"{\n  \"data\": {\n    \"type\": \"round\",\n    \"attributes\": {\n      \"green_fee\": 45.0\n    },\n    \"relationships\": {\n      \"player_type\": {\n        \"data\": {\n          \"type\": \"player_type\",\n          \"id\": \"3b84cd17-fffb-44f9-8570-a690231af66d\"\n        }\n      }\n    }\n  }\n}","options":{"raw":{"language":"json"}}},"url":"https://partner-staging.chronogolf.com/partner_api/v2/organizations/044ba009-d9f2-47c2-90c1-54fcd35996a4/reservations//rounds/","description":"<p>Change green_fee/cart_fee/guest/extra_lines, swap customership, or change player_type.</p>\n","urlObject":{"path":["partner_api","v2","organizations","044ba009-d9f2-47c2-90c1-54fcd35996a4","reservations","","rounds",""],"host":["https://partner-staging.chronogolf.com"],"query":[],"variable":[]}},"response":[{"id":"0f2f63e0-7e17-4599-b826-01f978a1dcbf","name":"Success","originalRequest":{"method":"PUT","header":[{"key":"Accept","value":"application/vnd.api+json"},{"key":"Authorization","value":"Bearer "},{"key":"Content-Type","value":"application/vnd.api+json"}],"body":{"mode":"raw","raw":"{\n  \"data\": {\n    \"type\": \"round\",\n    \"attributes\": {\n      \"green_fee\": 45.0\n    },\n    \"relationships\": {\n      \"player_type\": {\n        \"data\": {\n          \"type\": \"player_type\",\n          \"id\": \"3b84cd17-fffb-44f9-8570-a690231af66d\"\n        }\n      }\n    }\n  }\n}","options":{"raw":{"language":"json"}}},"url":"https://partner-staging.chronogolf.com/partner_api/v2/organizations/044ba009-d9f2-47c2-90c1-54fcd35996a4/reservations//rounds/","description":"Change green_fee/cart_fee/guest/extra_lines, swap customership, or change player_type."},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/vnd.api+json"}],"cookie":[],"responseTime":null,"body":"{\n  \"data\": {\n    \"id\": \"67b1790f-ab1c-4990-8738-4b739084e561\",\n    \"type\": \"reservation\",\n    \"attributes\": {\n      \"booking_reference\": \"7T6K-7N2X\",\n      \"cart_count\": 0,\n      \"holes\": 18,\n      \"note\": \"example booking\",\n      \"state\": \"confirmed\",\n      \"source\": \"partner\",\n      \"medium\": \"partner_api\",\n      \"cancelled_at\": null,\n      \"created_at\": \"2026-05-28T16:21:01-04:00\",\n      \"updated_at\": \"2026-05-28T16:21:01-04:00\"\n    },\n    \"relationships\": {\n      \"teetime\": {\n        \"data\": {\n          \"id\": \"8c92c8eb-d7e7-4537-be7a-de5db466391b\",\n          \"type\": \"teetime\"\n        }\n      },\n      \"organization\": {\n        \"data\": {\n          \"id\": \"044ba009-d9f2-47c2-90c1-54fcd35996a4\",\n          \"type\": \"organization\"\n        }\n      },\n      \"booker\": {\n        \"data\": null\n      },\n      \"tour_operator\": {\n        \"data\": null\n      },\n      \"rounds\": {\n        \"data\": [\n          {\n            \"id\": \"4ca7ddb5-b24d-49be-82ce-62273d659667\",\n            \"type\": \"round\"\n          },\n          {\n            \"id\": \"b8b1ec96-c462-47f1-8823-4ef5cba15ea0\",\n            \"type\": \"round\"\n          }\n        ]\n      },\n      \"linked_reservations\": {\n        \"data\": []\n      }\n    }\n  }\n}"}],"_postman_id":"efd4c2ef-4a27-4a2c-9a74-54bd754b8227"},{"name":"Delete round","id":"66e69b39-48a4-4796-be50-654f52bb9901","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"DELETE","header":[{"key":"Accept","value":"application/vnd.api+json"},{"key":"Authorization","value":"Bearer "}],"url":"https://partner-staging.chronogolf.com/partner_api/v2/organizations/044ba009-d9f2-47c2-90c1-54fcd35996a4/reservations//rounds/","description":"<p>Remove a player from a confirmed reservation. Returns the updated reservation.</p>\n","urlObject":{"path":["partner_api","v2","organizations","044ba009-d9f2-47c2-90c1-54fcd35996a4","reservations","","rounds",""],"host":["https://partner-staging.chronogolf.com"],"query":[],"variable":[]}},"response":[{"id":"abdbf821-c67b-48b3-aa62-92c545db20e3","name":"Success","originalRequest":{"method":"DELETE","header":[{"key":"Accept","value":"application/vnd.api+json"},{"key":"Authorization","value":"Bearer "}],"url":"https://partner-staging.chronogolf.com/partner_api/v2/organizations/044ba009-d9f2-47c2-90c1-54fcd35996a4/reservations//rounds/","description":"Remove a player from a confirmed reservation. Returns the updated reservation."},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/vnd.api+json"}],"cookie":[],"responseTime":null,"body":"{\n  \"data\": {\n    \"id\": \"67b1790f-ab1c-4990-8738-4b739084e561\",\n    \"type\": \"reservation\",\n    \"attributes\": {\n      \"booking_reference\": \"7T6K-7N2X\",\n      \"cart_count\": 0,\n      \"holes\": 18,\n      \"note\": \"example booking\",\n      \"state\": \"confirmed\",\n      \"source\": \"partner\",\n      \"medium\": \"partner_api\",\n      \"cancelled_at\": null,\n      \"created_at\": \"2026-05-28T16:21:01-04:00\",\n      \"updated_at\": \"2026-05-28T16:21:01-04:00\"\n    },\n    \"relationships\": {\n      \"teetime\": {\n        \"data\": {\n          \"id\": \"8c92c8eb-d7e7-4537-be7a-de5db466391b\",\n          \"type\": \"teetime\"\n        }\n      },\n      \"organization\": {\n        \"data\": {\n          \"id\": \"044ba009-d9f2-47c2-90c1-54fcd35996a4\",\n          \"type\": \"organization\"\n        }\n      },\n      \"booker\": {\n        \"data\": null\n      },\n      \"tour_operator\": {\n        \"data\": null\n      },\n      \"rounds\": {\n        \"data\": [\n          {\n            \"id\": \"4ca7ddb5-b24d-49be-82ce-62273d659667\",\n            \"type\": \"round\"\n          },\n          {\n            \"id\": \"b8b1ec96-c462-47f1-8823-4ef5cba15ea0\",\n            \"type\": \"round\"\n          }\n        ]\n      },\n      \"linked_reservations\": {\n        \"data\": []\n      }\n    }\n  }\n}"}],"_postman_id":"66e69b39-48a4-4796-be50-654f52bb9901"},{"name":"Check in rounds","id":"1f2b4e8a-32af-49b2-ba38-87f9c7ca9d67","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[{"key":"Accept","value":"application/vnd.api+json"},{"key":"Authorization","value":"Bearer "},{"key":"Content-Type","value":"application/vnd.api+json"}],"body":{"mode":"raw","raw":"{\n  \"data\": {\n    \"type\": \"check_in\",\n    \"relationships\": {\n      \"rounds\": {\n        \"data\": [\n          {\n            \"type\": \"round\",\n            \"id\": \"\"\n          }\n        ]\n      }\n    }\n  }\n}","options":{"raw":{"language":"json"}}},"url":"https://partner-staging.chronogolf.com/partner_api/v2/organizations/044ba009-d9f2-47c2-90c1-54fcd35996a4/check_ins","description":"<p>Mark one or more rounds as arrived. Batches multiple rounds. Rounds must be paid.</p>\n","urlObject":{"path":["partner_api","v2","organizations","044ba009-d9f2-47c2-90c1-54fcd35996a4","check_ins"],"host":["https://partner-staging.chronogolf.com"],"query":[],"variable":[]}},"response":[{"id":"eb6cadaf-4c1e-4633-a198-b2cc0cf616c9","name":"Created","originalRequest":{"method":"POST","header":[{"key":"Accept","value":"application/vnd.api+json"},{"key":"Authorization","value":"Bearer "},{"key":"Content-Type","value":"application/vnd.api+json"}],"body":{"mode":"raw","raw":"{\n  \"data\": {\n    \"type\": \"check_in\",\n    \"relationships\": {\n      \"rounds\": {\n        \"data\": [\n          {\n            \"type\": \"round\",\n            \"id\": \"\"\n          }\n        ]\n      }\n    }\n  }\n}","options":{"raw":{"language":"json"}}},"url":"https://partner-staging.chronogolf.com/partner_api/v2/organizations/044ba009-d9f2-47c2-90c1-54fcd35996a4/check_ins","description":"Mark one or more rounds as arrived. Batches multiple rounds. Rounds must be paid."},"status":"Created","code":201,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/vnd.api+json"}],"cookie":[],"responseTime":null,"body":""}],"_postman_id":"1f2b4e8a-32af-49b2-ba38-87f9c7ca9d67"},{"name":"Confirm payment","id":"a6396c52-4f17-4ccf-92d4-41983732a1bd","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[{"key":"Accept","value":"application/vnd.api+json"},{"key":"Authorization","value":"Bearer "},{"key":"Content-Type","value":"application/vnd.api+json"}],"body":{"mode":"raw","raw":"{\n  \"data\": {\n    \"type\": \"payment_confirmation\",\n    \"attributes\": {\n      \"amount\": 60.0,\n      \"reference\": \"acme-txn-12345\"\n    },\n    \"relationships\": {\n      \"rounds\": {\n        \"data\": [\n          {\n            \"type\": \"round\",\n            \"id\": \"\"\n          }\n        ]\n      }\n    }\n  }\n}","options":{"raw":{"language":"json"}}},"url":"https://partner-staging.chronogolf.com/partner_api/v2/organizations/044ba009-d9f2-47c2-90c1-54fcd35996a4/payment_confirmations","description":"<p>Record an external payment against rounds and mark them paid. amount must equal the rounds' summed amount.</p>\n","urlObject":{"path":["partner_api","v2","organizations","044ba009-d9f2-47c2-90c1-54fcd35996a4","payment_confirmations"],"host":["https://partner-staging.chronogolf.com"],"query":[],"variable":[]}},"response":[{"id":"bf487a6a-8b7b-4926-aacf-485490d88c6c","name":"Created","originalRequest":{"method":"POST","header":[{"key":"Accept","value":"application/vnd.api+json"},{"key":"Authorization","value":"Bearer "},{"key":"Content-Type","value":"application/vnd.api+json"}],"body":{"mode":"raw","raw":"{\n  \"data\": {\n    \"type\": \"payment_confirmation\",\n    \"attributes\": {\n      \"amount\": 60.0,\n      \"reference\": \"acme-txn-12345\"\n    },\n    \"relationships\": {\n      \"rounds\": {\n        \"data\": [\n          {\n            \"type\": \"round\",\n            \"id\": \"\"\n          }\n        ]\n      }\n    }\n  }\n}","options":{"raw":{"language":"json"}}},"url":"https://partner-staging.chronogolf.com/partner_api/v2/organizations/044ba009-d9f2-47c2-90c1-54fcd35996a4/payment_confirmations","description":"Record an external payment against rounds and mark them paid. amount must equal the rounds' summed amount."},"status":"Created","code":201,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/vnd.api+json"}],"cookie":[],"responseTime":null,"body":"{\n  \"data\": {\n    \"id\": \"c24166a5-c797-4037-96bf-b800e9441669\",\n    \"type\": \"payment_confirmation\",\n    \"attributes\": {\n      \"amount\": 60.0,\n      \"reference\": \"example-txn-77\"\n    },\n    \"relationships\": {\n      \"rounds\": {\n        \"data\": [\n          {\n            \"id\": \"d8cf7fee-cbe1-4e9c-ab21-a57f59f4d61d\",\n            \"type\": \"round\"\n          }\n        ]\n      }\n    }\n  }\n}"},{"id":"519f442b-794f-4239-8a7c-e90fdd26864a","name":"Error: amount doesn't match rounds (400)","originalRequest":{"method":"POST","header":[{"key":"Accept","value":"application/vnd.api+json"},{"key":"Authorization","value":"Bearer "},{"key":"Content-Type","value":"application/vnd.api+json"}],"body":{"mode":"raw","raw":"{\n  \"data\": {\n    \"type\": \"payment_confirmation\",\n    \"attributes\": {\n      \"amount\": 0.01,\n      \"reference\": \"acme-txn-12345\"\n    },\n    \"relationships\": {\n      \"rounds\": {\n        \"data\": [\n          {\n            \"type\": \"round\",\n            \"id\": \"\"\n          }\n        ]\n      }\n    }\n  }\n}","options":{"raw":{"language":"json"}}},"url":"https://partner-staging.chronogolf.com/partner_api/v2/organizations/044ba009-d9f2-47c2-90c1-54fcd35996a4/payment_confirmations","description":"Record an external payment against rounds and mark them paid. amount must equal the rounds' summed amount."},"status":"Bad Request","code":400,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/vnd.api+json"}],"cookie":[],"responseTime":null,"body":"{\n  \"errors\": [\n    {\n      \"status\": 400,\n      \"code\": \"bad_request\",\n      \"detail\": \"Price does not match with summed amount\"\n    }\n  ]\n}"}],"_postman_id":"a6396c52-4f17-4ccf-92d4-41983732a1bd"},{"name":"Show payment confirmation","id":"d9e1eb6a-9590-4e1c-a632-682ed8396c39","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[{"key":"Accept","value":"application/vnd.api+json"},{"key":"Authorization","value":"Bearer "}],"url":"https://partner-staging.chronogolf.com/partner_api/v2/payment_confirmations/","urlObject":{"path":["partner_api","v2","payment_confirmations",""],"host":["https://partner-staging.chronogolf.com"],"query":[],"variable":[]}},"response":[{"id":"b36e54bf-aeec-4d06-b95b-74dd3516dcc3","name":"Success","originalRequest":{"method":"GET","header":[{"key":"Accept","value":"application/vnd.api+json"},{"key":"Authorization","value":"Bearer "}],"url":"https://partner-staging.chronogolf.com/partner_api/v2/payment_confirmations/"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/vnd.api+json"}],"cookie":[],"responseTime":null,"body":"{\n  \"data\": {\n    \"id\": \"c24166a5-c797-4037-96bf-b800e9441669\",\n    \"type\": \"payment_confirmation\",\n    \"attributes\": {\n      \"amount\": 60.0,\n      \"reference\": \"example-txn-77\"\n    },\n    \"relationships\": {\n      \"rounds\": {\n        \"data\": [\n          {\n            \"id\": \"d8cf7fee-cbe1-4e9c-ab21-a57f59f4d61d\",\n            \"type\": \"round\"\n          }\n        ]\n      }\n    }\n  }\n}"}],"_postman_id":"d9e1eb6a-9590-4e1c-a632-682ed8396c39"}],"id":"9285a21e-57eb-4a64-a47a-12009da35d23","description":"<h1 id=\"reservations\">Reservations</h1>\n<p>Booking, modifying, cancelling, checking in, and paying for rounds. This is the densest part of the API. The thing to internalize first: <strong>creating a booking in V2 is three POSTs, not one.</strong></p>\n<h2 id=\"the-3-step-booking-flow\">The 3-step booking flow</h2>\n<p>A booking is built as a draft (\"reservation request\") that you add players to (\"round requests\"), then confirm into a real reservation. The flow mirrors the multi-step funnel the Lightspeed web booking screen uses.</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>1. POST .../reservation_requests   →  creates the draft, returns a request id\n2. POST .../round_requests         →  add one round per player (1 to 4 rounds)\n3. POST .../reservations           →  confirm the draft into a real reservation\n</code></pre><p>The whole flow below is verified end-to-end against staging. IDs are real staging test values so you can follow along.</p>\n<h3 id=\"step-1--create-the-reservation-request\">Step 1 — create the reservation request</h3>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>POST /partner_api/v2/organizations/:org_id/reservation_requests\n</code></pre><pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-bash\">curl -gs -X POST \"https://partner-staging.chronogolf.com/partner_api/v2/organizations/ORG_UUID/reservation_requests\" \\\n  -H \"Authorization: Bearer YOUR_ACCESS_TOKEN\" \\\n  -H \"Accept: application/vnd.api+json\" \\\n  -H \"Content-Type: application/vnd.api+json\" \\\n  -d '{\n    \"data\": {\n      \"type\": \"reservation_request\",\n      \"attributes\": { \"holes\": 18, \"cart_count\": 0, \"note\": \"Booked via Acme\" },\n      \"relationships\": {\n        \"teetime\": { \"data\": { \"type\": \"teetime\", \"id\": \"TEETIME_UUID\" } }\n      }\n    }\n  }'\n</code></pre>\n<p>Attributes: <code>holes</code>, <code>cart_count</code>, <code>note</code> (all optional). Relationships: <code>teetime</code> (required), <code>tour_operator</code> (optional, see tour operators (in this section)).</p>\n<blockquote>\n<p><strong><code>note</code> is a reservation note, and it's the only note you can read or write.</strong> The <code>note</code> you set here attaches to the booking and shows on the reservation in the club's UI (set it on the reservation request, or later via reservation update (in this section)). It is <strong>not</strong> the same as the club's <strong>tee-sheet public notes</strong>, which are <strong>not exposed by the API at all</strong>, there's no endpoint to read or write tee-sheet notes (confirmed with support).</p>\n</blockquote>\n<blockquote>\n<p><strong>Carts.</strong> Set <code>cart_count</code> here to add carts to the booking (verified: <code>cart_count: 1</code> produced a round with a <code>cart_fee</code>). A cart only attaches if the <strong>course has a cart product with a price for the booking's player type</strong>; if it doesn't, your <code>cart_count</code> is silently ignored and the confirmed reservation comes back with <code>cart_count: 0</code>. So <code>cart_count: 0</code> on the response means \"no cart line was built\" (no cart product/price for that player type), not that your request was malformed. The reservation's <code>cart_count</code> reflects the carts actually built, not what you asked for. (You can also set a per-round <code>cart_fee</code> on a round_request, but the reservation-level <code>cart_count</code> is the simpler path.)</p>\n</blockquote>\n<p>Response <code>201</code>:</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{ \"data\": {\n  \"id\": \"a1c3994c-a291-454d-b38e-79e32288ed4b\",\n  \"type\": \"reservation_request\",\n  \"attributes\": { \"holes\": 18, \"note\": \"Booked via Acme\", \"cart_count\": 0 },\n  \"relationships\": {\n    \"round_requests\": { \"data\": [] },\n    \"teetime\": { \"data\": { \"id\": \"TEETIME_UUID\", \"type\": \"teetime\" } },\n    \"tour_operator\": { \"data\": null }\n  }\n}}\n</code></pre>\n<p><strong>Grab <code>data.id</code> (<code>a1c3994c-...</code>). That's the request id you use in steps 2 and 3.</strong> It comes back as a UUID and is accepted as-is downstream.</p>\n<h3 id=\"step-2--add-a-round-request-per-player\">Step 2 — add a round request per player</h3>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>POST /partner_api/v2/organizations/:org_id/round_requests\n</code></pre><p>One call per player, 1 to 4 total.</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-bash\">curl -gs -X POST \"https://partner-staging.chronogolf.com/partner_api/v2/organizations/ORG_UUID/round_requests\" \\\n  -H \"Authorization: Bearer YOUR_ACCESS_TOKEN\" \\\n  -H \"Accept: application/vnd.api+json\" \\\n  -H \"Content-Type: application/vnd.api+json\" \\\n  -d '{\n    \"data\": {\n      \"type\": \"round_request\",\n      \"attributes\": { \"guest\": { \"first_name\": \"Doc\", \"last_name\": \"Tester\" } },\n      \"relationships\": {\n        \"reservation_request\": { \"data\": { \"type\": \"reservation_request\", \"id\": \"a1c3994c-a291-454d-b38e-79e32288ed4b\" } },\n        \"player_type\":         { \"data\": { \"type\": \"player_type\", \"id\": \"PLAYER_TYPE_UUID\" } }\n      }\n    }\n  }'\n</code></pre>\n<p>Relationships:</p>\n<ul>\n<li><code>reservation_request</code> (required) — the id from step 1.</li>\n<li><code>player_type</code> (required-ish) — the affiliation type for this player. If omitted, your connection's default is used. Must belong to the organization or you'll get a validation error.</li>\n<li><code>customer</code> (optional) — a Customership UUID, to book an existing golfer instead of a guest.</li>\n</ul>\n<p>Attributes:</p>\n<ul>\n<li><code>guest</code> — <code>{ first_name, last_name }</code> for a player who isn't an account holder. Use this <strong>or</strong> the <code>customer</code> relationship.</li>\n<li><code>green_fee</code>, <code>cart_fee</code> — <strong>optional price overrides</strong> for this round (numbers). Omit them and the round is priced from the club's price sheet (the default for the player type). You only send these to charge something other than the standard rate.</li>\n<li><code>extras</code> — array of extra-product UUIDs.</li>\n<li><code>kits</code> — array of kit-product UUIDs (a round can only carry one green fee, so don't combine a green-fee kit with a green fee).</li>\n</ul>\n<p><strong>You do not need to send <code>green_fee</code></strong> to book at standard pricing, omit it and the price sheet default applies (verified: an account-customer round with no <code>green_fee</code> confirms at the default rate). There's one quirk, though: <strong><code>attributes</code> must be present and non-empty.</strong> A body with no <code>attributes</code> (or <code>\"attributes\": {}</code>) returns <code>400 param is missing or the value is empty: attributes</code>. A <code>guest</code> booking satisfies this automatically (it carries the guest object). For an <strong>account customer at default pricing</strong> (where you're only setting the <code>customer</code> relationship and no override), include a harmless non-empty attribute, the simplest is <code>\"attributes\": { \"extras\": [] }</code>, see the \"Booking an existing customer (default pricing)\" example on this request. The guest, existing-customer, and price-override examples are all on the round_request request as separate examples.</p>\n<p>Response <code>201</code> echoes the round request (the <code>customer</code> relationship is populated when you booked an account holder; <code>guest</code> is populated when you sent guest details). Repeat for each player. You can also <code>DELETE /partner_api/v2/round_requests/:id</code> to drop a player from the draft before confirming.</p>\n<h3 id=\"step-3--confirm-into-a-reservation\">Step 3 — confirm into a reservation</h3>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>POST /partner_api/v2/organizations/:org_id/reservations\n</code></pre><pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-bash\">curl -gs -X POST \"https://partner-staging.chronogolf.com/partner_api/v2/organizations/ORG_UUID/reservations\" \\\n  -H \"Authorization: Bearer YOUR_ACCESS_TOKEN\" \\\n  -H \"Accept: application/vnd.api+json\" \\\n  -H \"Content-Type: application/vnd.api+json\" \\\n  -d '{\n    \"data\": {\n      \"type\": \"reservation\",\n      \"relationships\": {\n        \"reservation_request\": { \"data\": { \"type\": \"reservation_request\", \"id\": \"a1c3994c-a291-454d-b38e-79e32288ed4b\" } }\n      }\n    }\n  }'\n</code></pre>\n<p>Response <code>201</code> returns the confirmed reservation with its rounds (and the tee time) sideloaded:</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{ \"data\": {\n    \"id\": \"eaf0448b-7789-460a-a75d-47c66bac39fa\",\n    \"type\": \"reservation\",\n    \"attributes\": {\n      \"booking_reference\": \"9M0B-5S0N\",\n      \"cart_count\": 0, \"holes\": 18, \"note\": \"Booked via Acme\",\n      \"state\": \"confirmed\", \"source\": \"partner\", \"medium\": \"partner_api\",\n      \"cancelled_at\": null,\n      \"created_at\": \"2026-05-28T14:19:46-04:00\",\n      \"updated_at\": \"2026-05-28T14:19:46-04:00\"\n    },\n    \"relationships\": {\n      \"teetime\":  { \"data\": { \"id\": \"TEETIME_UUID\", \"type\": \"teetime\" } },\n      \"booker\":   { \"data\": null },\n      \"tour_operator\": { \"data\": null },\n      \"rounds\":   { \"data\": [ { \"id\": \"bce4c27e-6a77-4790-bb60-d1f5dfdecae0\", \"type\": \"round\" } ] },\n      \"linked_reservations\": { \"data\": [] }\n    }\n  },\n  \"included\": [\n    { \"id\": \"bce4c27e-...\", \"type\": \"round\", \"attributes\": {\n        \"state\": \"reserved\", \"price\": 5.0, \"paid\": false,\n        \"guest\": { \"first_name\": \"Doc\", \"last_name\": \"Tester\" },\n        \"extras\": [], \"kits\": [],\n        \"rates\": { \"green_fee\": 5.0, \"cart_fee\": null, \"extra_fee\": 0, \"kit_fee\": 0, \"subtotal\": null }\n    }, \"relationships\": { \"player_type\": { \"data\": { \"id\": \"PLAYER_TYPE_UUID\", \"type\": \"player_type\" } }, ... } }\n  ]\n}\n</code></pre>\n<p><strong>Save <code>data.id</code> (the reservation UUID) and the round UUIDs.</strong> You need them to modify, cancel, check in, or pay. Confirming consumes inventory: the tee time's <code>free_slots</code> drops accordingly.</p>\n<h3 id=\"rules-and-limits\">Rules and limits</h3>\n<ul>\n<li><strong>1 to 4 round requests</strong> per reservation. Outside that range, step 3 returns <code>400 {\"detail\":\"Invalid round request count\"}</code>.</li>\n<li>The reservation request's club must match the organization in the URL, or you get <code>400 Request club is not matching actual organization.</code></li>\n<li>Bookings made this way are tagged <code>source: \"partner\"</code>, <code>medium: \"partner_api\"</code>.</li>\n</ul>\n<h3 id=\"inspecting-a-draft-before-you-confirm\">Inspecting a draft before you confirm</h3>\n<p>If you build a draft across several calls, you can read it back before step 3. Both use the <strong>shallow</strong> top-level path (not nested under the organization).</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-bash\"># The draft, with the list of round requests attached to it\ncurl -gs \"https://partner-staging.chronogolf.com/partner_api/v2/reservation_requests/REQUEST_ID\" \\\n  -H \"Authorization: Bearer YOUR_ACCESS_TOKEN\" -H \"Accept: application/vnd.api+json\"\n\n# A single round request\ncurl -gs \"https://partner-staging.chronogolf.com/partner_api/v2/round_requests/ROUND_REQUEST_ID\" \\\n  -H \"Authorization: Bearer YOUR_ACCESS_TOKEN\" -H \"Accept: application/vnd.api+json\"\n</code></pre>\n<p>The reservation-request response lists its <code>round_requests</code>, so you can confirm you've added the players you intended before confirming:</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{ \"data\": {\n  \"id\": \"ea38cc2f-2e7e-4919-864a-3b6301f27c41\",\n  \"type\": \"reservation_request\",\n  \"attributes\": { \"holes\": 18, \"note\": null, \"cart_count\": 0 },\n  \"relationships\": {\n    \"round_requests\": { \"data\": [ { \"id\": \"bf491688-...\", \"type\": \"round_request\" } ] },\n    \"teetime\": { \"data\": { \"id\": \"f7d5a2ea-...\", \"type\": \"teetime\" } },\n    \"tour_operator\": { \"data\": null }\n  }\n}}\n</code></pre>\n<h3 id=\"gotcha-empty-price-sheet-returns-a-500\">Gotcha: empty price sheet returns a 500</h3>\n<p>If a round request uses a player type that has <strong>no price defined in any active price sheet</strong> for that course and time, step 3 fails with a <strong><code>500</code></strong> (a tax calculation blows up on the missing amount). The web back office tolerates this by treating the price as 0; the API does not.</p>\n<p>This is current, intended behavior, not a transient error. Fix it on the club side: either add a price-sheet entry for that player type, or book with a player type that has pricing. If you can, validate pricing first by listing the tee time <code>with_pricing</code> (a player type with no price shows up with no rate / a restriction).</p>\n<h3 id=\"gotcha-requests-dont-freeze-inventory\">Gotcha: requests don't freeze inventory</h3>\n<p>Creating a reservation request does <strong>not</strong> lock the slot the way the web funnel does. Two integrators (or an integrator and a walk-in) can race for the same tee time between your step 1 and step 3. Build for the confirm step (step 3) failing on a now-full slot, and keep the gap between request and confirm short.</p>\n<h3 id=\"retrying-a-confirm-safely-timeouts-and-idempotency\">Retrying a confirm safely (timeouts and idempotency)</h3>\n<p>There are no idempotency keys in this API, but the confirm step (step 3) is <strong>safe to retry</strong>, which is what matters for the scary case: <em>you POST the confirm, it times out, and you never see the response, did it book?</em></p>\n<p>Verified behavior: <strong>re-POSTing the confirm with the same <code>reservation_request</code> id will not create a duplicate.</strong> Confirming consumes the reservation request, so:</p>\n<ul>\n<li>If your first confirm <strong>didn't</strong> actually go through, the retry returns <strong><code>201</code></strong> and books it.</li>\n<li>If your first confirm <strong>did</strong> go through (you just lost the response), the retry returns <strong><code>404</code> \"The requested entity was not found.\"</strong> because that reservation request was already consumed. No second reservation is created.</li>\n</ul>\n<p>So the rule is simple: <strong>on a lost or timed-out confirm, retry it once.</strong> <code>201</code> means it booked on the retry; <code>404</code> means it had already booked on the first attempt.</p>\n<p>Recovering the reservation you can't see (the <code>404</code> case): the API doesn't expose a <code>reservation_request → reservation</code> link, so you can't look the booking up by the request id. Query <code>GET /reservations</code> with <code>filter[updated_since]</code> set to just before your attempt (or <code>filter[date]</code> + <code>filter[course]</code>) and match the new reservation by tee time, start time, and the guest/customer you booked.</p>\n<p>The earlier steps differ: re-POSTing <strong>reservation_request</strong> or <strong>round_request</strong> creates <strong>duplicate drafts</strong> (they aren't idempotent). That's harmless, drafts hold no inventory and never become bookings on their own, but only the confirm matters, and it's the safe one.</p>\n<h2 id=\"booking-by-tee-sheet-format-shotgun-crossover-and-2x9\">Booking by tee-sheet format: shotgun, crossover, and 2x9</h2>\n<p>Most bookings are one tee time → one reservation. Two tee-sheet formats are worth calling out, and one of them is the only case where a single booking produces <strong>more than one</strong> reservation.</p>\n<h3 id=\"shotgun\">Shotgun</h3>\n<p>A shotgun tee time (every group starts at once from a different hole) books exactly like a normal one: reservation_request against that tee time → round_requests → confirm. Nothing special, one tee time, one reservation. The starting hole is whatever the group is assigned.</p>\n<h3 id=\"crossover--2x9-18-holes-across-two-nines\">Crossover / 2x9 (18 holes across two nines)</h3>\n<p>A \"2x9\" is an 18-hole round played as a front nine then a back nine, either two passes of one 9-hole course, or two different 9-hole courses paired together (a crossover). On the tee sheet this is <strong>two</strong> tee times: one starting on the front (hole 1) and one on the back (hole 10).</p>\n<p><strong>You still book it as a single booking.</strong> Create one reservation_request against the <strong>front-nine</strong> tee time, add your round_requests, and confirm. The API detects the 2x9 setup and <strong>automatically creates a second, linked \"return\" reservation for the back nine.</strong> You don't, and through the partner flow can't, book the back nine separately.</p>\n<p>The confirmed reservation comes back with <strong><code>linked_reservations</code> populated</strong> (one entry: the back-nine reservation). Each reservation points at its own tee time on its own course: the origin on the <strong>Front 9</strong> course, the linked one on the <strong>Back 9</strong> course. (When the back nine is a replay of a single 18-hole course rather than a separate course, the back tee time is hole 10 of that same course.)</p>\n<p><strong>Both reservations report <code>holes: 18</code></strong> (verified live). The back-nine reservation is a copy that carries the same <code>holes</code> value, it is <em>not</em> split into 9 + 9. So don't sum <code>holes</code> across the linked pair; each one represents the same 18-hole round from its nine's perspective.</p>\n<p>What to know:</p>\n<ul>\n<li><strong>It's automatic.</strong> Book the front-nine tee time once; the system builds the back-nine reservation. The split is triggered when the tee time is a crossover/front_back slot and you book the course's hole count, or when you book twice the course's hole count (18 on a 9-hole course, which is the 2x9 case).</li>\n<li><strong>The return reservation is hidden from the index but fetchable directly.</strong> <code>GET /reservations</code> excludes return reservations, so a 2x9 booking shows as <strong>one</strong> row in the list, with its back nine hanging off <code>linked_reservations</code>. You can still <code>GET /reservations/:id</code> the back-nine reservation by its UUID; it's just filtered out of the list. Reach it via the origin's <code>linked_reservations</code>.</li>\n<li><strong>Cancelling cascades.</strong> <code>DELETE</code> on the origin cancels its linked return too (verified).</li>\n<li><strong>Detecting a 2x9 booking:</strong> <code>linked_reservations</code> is a non-empty array. Traverse into it for the back-nine tee time and course.</li>\n</ul>\n<blockquote>\n<p>Verified live against a 2x9 staging setup (a Front 9 course paired with a Back 9 course): booking <strong>18 holes on a Front 9 tee time</strong> produced one origin reservation (Front 9, hole 1, <code>holes: 18</code>) plus one linked reservation (Back 9, <code>holes: 18</code>). The linked reservation was excluded from <code>GET /reservations</code> but returned a <code>200</code> when fetched directly by UUID, and cancelling the origin cancelled it too. See the \"2x9 booking (creates a linked back-nine reservation)\" example on the Confirm reservation request in the Postman collection.</p>\n</blockquote>\n<h4 id=\"where-to-find-the-return-course-and-the-timing-gap\">Where to find the return course and the timing gap</h4>\n<p>Two things you might expect on the courses endpoint are <strong>not</strong> there: the API does <strong>not</strong> expose which course the back nine lands on, nor the front/back duration (\"how much later\"). The <code>courses</code> endpoint returns only <code>name</code>, <code>holes</code>, <code>par</code>, <code>distance</code>, <code>online_booking_enabled</code>, <code>cart_mandatory</code>. The return-course link and the duration settings exist internally but aren't surfaced anywhere in the API. So you <strong>can't tell from <code>/courses</code> how a club is configured for 2x9 before you book.</strong></p>\n<p>You discover both <strong>after booking</strong>, from the origin reservation's <code>linked_reservations</code>:</p>\n<ul>\n<li><strong>Return course</strong> — follow the back-nine (linked) reservation → its <code>teetime</code> → that teetime's <code>course</code> relationship. Compare it to the front tee time's course:<ul>\n<li><strong>Different course id</strong> → the club is configured front 9 → <strong>back 9</strong> (two paired 9-hole courses).</li>\n<li><strong>Same course id</strong> → it's a <strong>replay</strong> of the same nine (front 9 → front 9 again, later).</li>\n</ul>\n</li>\n<li><strong>The timing (\"later\") gap</strong> — read the back-nine tee time's <code>start_time</code> and compare it to the front's. That gap is the club's duration setting in effect; the setting itself isn't exposed, but the resulting back-nine start time is. (Verified example: Front 9 tee time at <code>06:00</code>, its auto-created Back 9 tee time at <code>08:06</code>.)</li>\n</ul>\n<p>If you need the 2x9 layout <em>before</em> booking (to display it, say), you'll have to get it from the club out of band, the API only reveals it once a reservation exists.</p>\n<h4 id=\"27-hole-and-other-multi-nine-courses\">27-hole and other multi-nine courses</h4>\n<p>27-hole courses behave the same way: booking 18 holes attaches you to the first available nine and <strong>auto-creates the return reservation on the second nine</strong>, you don't pick the combination. The catch is the same as 2x9 but bites harder: the tee-time list shows the first nine as available (with prices), so a slot looks bookable, but the <strong>return nine may have no spot</strong> at the rotation offset (e.g. ~2.5 hours later), and you only find out when <strong>confirm fails</strong>. You can't query availability for both nines in one request, and you can't pre-check the return nine. So for multi-nine courses, treat a successful tee-time listing as \"the first nine is open\" only, and be ready for the confirm to fail on the return nine even when availability looked fine.</p>\n<h2 id=\"read-reservations\">Read reservations</h2>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>GET /partner_api/v2/organizations/:org_id/reservations\n</code></pre><pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-bash\">curl -gs \"https://partner-staging.chronogolf.com/partner_api/v2/organizations/ORG_UUID/reservations?filter[updated_since]=2026-05-01T00:00:00Z&amp;page[size]=50\" \\\n  -H \"Authorization: Bearer YOUR_ACCESS_TOKEN\" -H \"Accept: application/vnd.api+json\"\n</code></pre>\n<h3 id=\"filters\">Filters</h3>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Filter</th>\n<th>Format</th>\n<th>Notes</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><code>filter[date]</code></td>\n<td><code>YYYY-MM-DD</code></td>\n<td>Reservations on a single play date</td>\n</tr>\n<tr>\n<td><code>filter[from_date]</code></td>\n<td><code>YYYY-MM-DD</code></td>\n<td>Reservations on or after this date. Not mutually exclusive with <code>date</code>; if you pass both, both apply (don't)</td>\n</tr>\n<tr>\n<td><code>filter[course]</code></td>\n<td>course UUID</td>\n<td>Reservations on that course</td>\n</tr>\n<tr>\n<td><code>filter[customer]</code></td>\n<td>Customership UUID(s), repeatable with <code>[]</code></td>\n<td>Reservations for a customer. A customer with the same email at multiple clubs resolves to several customerships; the index scope still limits results to your connected clubs</td>\n</tr>\n<tr>\n<td><code>filter[updated_since]</code></td>\n<td>ISO 8601</td>\n<td>Everything changed since a timestamp. <strong>Use this for syncing.</strong></td>\n</tr>\n<tr>\n<td><code>filter[booking_reference]</code></td>\n<td>string</td>\n<td>Exact match. <strong>Returns at most 1 result</strong></td>\n</tr>\n</tbody>\n</table>\n</div><p>Includes: <code>rounds</code>, <code>rounds.customer</code>, <code>rounds.player_type</code>, <code>teetime</code>, <code>linked_reservations</code>. Defaults: <code>rounds</code>, <code>teetime</code>.</p>\n<h3 id=\"performance\">Performance</h3>\n<p>The reservations index eager-loads a deep graph (rounds, products, kits, customerships, financial accounts, and more) to avoid N+1s. That's heavy for big clubs: a club with thousands of reservations can take 10 to 30 seconds for an unfiltered pull, and the app server will cut a request that runs too long. <strong>Don't pull full history on a schedule.</strong> Poll with <code>filter[updated_since]</code> and pull deltas. For backfills, page through by date range.</p>\n<h3 id=\"reading-history-and-staying-in-sync\">Reading history and staying in sync</h3>\n<ul>\n<li><strong>This is where you read the past.</strong> Unlike tee times (future-only, see the \"Tee Times\" section), the reservations index has no past-date block: <code>filter[date]</code> and <code>filter[from_date]</code> work into the past, so historical reservations are queryable.</li>\n<li><strong><code>filter[updated_since]</code> tracks round/status changes, including check-ins.</strong> A round change (including a check-in) bumps the reservation's <code>updated_at</code> (verified live), so a delta poll catches it. Use <code>updated_since</code> for incremental sync, and a periodic reconcile by play date (<code>filter[date]</code>) as a backstop.</li>\n<li><strong><code>teetime</code> can be <code>null</code>.</strong> A reservation's <code>teetime</code> relationship may come back <code>null</code> (a confirmed reservation whose tee time was later removed, or legacy data), handle that case. Note <code>filter[date]</code>, <code>filter[from_date]</code>, and <code>filter[course]</code> all join through the tee time, so a <strong>null-teetime reservation won't appear in those filtered pulls</strong>; it only shows up in a plain <code>updated_since</code> or unfiltered query. Keep that in mind when reconciling counts.</li>\n</ul>\n<h3 id=\"response\">Response</h3>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{ \"data\": [ {\n  \"type\": \"reservation\",\n  \"attributes\": {\n    \"booking_reference\": \"R63041\", \"cart_count\": 0, \"holes\": 9, \"note\": null,\n    \"state\": \"confirmed\", \"source\": \"partner\", \"medium\": \"partner_api\",\n    \"cancelled_at\": \"2025-12-12T02:31:10-05:00\",\n    \"created_at\": \"2016-10-01T08:16:51-04:00\", \"updated_at\": \"2025-12-12T02:31:10-05:00\"\n  },\n  \"relationships\": { \"teetime\": {...}, \"booker\": {...}, \"rounds\": {...}, \"linked_reservations\": {...} }\n} ], \"meta\": { ... } }\n</code></pre>\n<p>Note <code>cancelled_at</code> can be set while <code>state</code> is still <code>confirmed</code>. A cancelled reservation <strong>stays in the index</strong>; filter it out yourself by checking <code>cancelled_at</code>.</p>\n<h3 id=\"round-shape-and-kit_fee\">Round shape and <code>kit_fee</code></h3>\n<p>Each round serializes a <code>rates</code> breakdown:</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">\"rates\": { \"green_fee\": 5.0, \"cart_fee\": null, \"extra_fee\": 0, \"kit_fee\": 0, \"subtotal\": null }\n</code></pre>\n<p>Heads up on kits: when a round's green fee or cart is sold <strong>inside a kit</strong>, the standalone <code>green_fee</code> and <code>cart_fee</code> come back <code>null</code> and the amount lands in <code>kit_fee</code> instead. You lose the green/cart split on the round response. If you need that breakdown for reporting, get it from the kit's contents or from the club. <code>subtotal</code> is only populated when the round has the full set of line types resolved, so it's often <code>null</code>; use <code>price</code> (the round's total amount) as the reliable per-round figure.</p>\n<blockquote>\n<p>Don't confuse this with the tee-time <code>subtotal</code>. A round's <code>rates.subtotal</code> (here, a per-round figure that's often <code>null</code>) is a <strong>different field</strong> from the tee-time <code>subtotal</code> in the \"Tee Times\" section (\"Reading <code>subtotal</code> and <code>restrictions</code>\") (which is a number when bookable, or an array of restriction strings when not). Same name, different response shapes and meaning. The <code>price</code>/<code>rates</code> amounts here follow the club's tax basis, see money: currency and tax (in the \"Conventions (read this first)\" section).</p>\n</blockquote>\n<h2 id=\"show-update-cancel\">Show, update, cancel</h2>\n<p>These use the <strong>nested</strong> path (reservations are the exception to shallow routing).</p>\n<h3 id=\"show\">Show</h3>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-bash\">curl -gs \"https://partner-staging.chronogolf.com/partner_api/v2/organizations/ORG_UUID/reservations/RES_UUID\" \\\n  -H \"Authorization: Bearer YOUR_ACCESS_TOKEN\" -H \"Accept: application/vnd.api+json\"\n</code></pre>\n<h3 id=\"update\">Update</h3>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>PUT /partner_api/v2/organizations/:org_id/reservations/:id\n</code></pre><pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-bash\">curl -gs -X PUT \"https://partner-staging.chronogolf.com/partner_api/v2/organizations/ORG_UUID/reservations/RES_UUID\" \\\n  -H \"Authorization: Bearer YOUR_ACCESS_TOKEN\" \\\n  -H \"Accept: application/vnd.api+json\" -H \"Content-Type: application/vnd.api+json\" \\\n  -d '{ \"data\": {\n    \"type\": \"reservation\",\n    \"attributes\": { \"note\": \"Late arrival\", \"holes\": 9 },\n    \"relationships\": { \"teetime\": { \"data\": { \"type\": \"teetime\", \"id\": \"NEW_TEETIME_UUID\" } } }\n  } }'\n</code></pre>\n<p>Updatable attributes: <code>note</code>, <code>holes</code>. Updatable relationships: <code>teetime</code> (<strong>this moves the booking to a different slot</strong>), <code>tour_operator</code>. Only the fields you send change. (<code>cart_count</code> is accepted by the endpoint but <strong>not applied</strong> on update, you can't change carts via a reservation PUT.)</p>\n<blockquote>\n<p><strong>Update validates loosely, it can silently no-op.</strong> A <code>PUT</code> returns <code>200</code> even when nothing changed: unsupported/unknown attributes are dropped, and an invalid or foreign relationship id (a <code>teetime</code>/<code>tour_operator</code> UUID that doesn't resolve) is <strong>silently ignored</strong> rather than erroring (verified: a PUT with a bogus attribute and a non-existent teetime id returned <code>200</code> and changed only the valid fields). Same on round update (an unresolvable <code>customership</code>/<code>player_type</code> id is ignored). So a <code>200</code> does <strong>not</strong> guarantee your change applied, <strong>read the resource back and confirm</strong> the field actually changed.</p>\n</blockquote>\n<h3 id=\"cancel-soft\">Cancel (soft)</h3>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>DELETE /partner_api/v2/organizations/:org_id/reservations/:id\n</code></pre><p>Returns <code>204</code>. This is a <strong>soft cancel</strong>: it sets <code>cancelled_at</code> (and cancels any linked reservations), but the reservation still exists and still shows up in the index. It is not a hard delete. Verified: after delete, the record returns with <code>cancelled_at</code> populated and <code>state</code> still <code>confirmed</code>.</p>\n<h2 id=\"editing-rounds-on-a-confirmed-reservation\">Editing rounds on a confirmed reservation</h2>\n<p>You can add, change, or remove individual rounds after confirmation. Rounds are nested under their reservation:</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>GET    /partner_api/v2/organizations/:org_id/reservations/:res_id/rounds\nGET    /partner_api/v2/organizations/:org_id/reservations/:res_id/rounds/:id\nPOST   /partner_api/v2/organizations/:org_id/reservations/:res_id/rounds        # add a player\nPUT    /partner_api/v2/organizations/:org_id/reservations/:res_id/rounds/:id    # change a round\nDELETE /partner_api/v2/organizations/:org_id/reservations/:res_id/rounds/:id    # remove a player\n</code></pre><p>Round attributes: <code>green_fee</code>, <code>cart_fee</code>, <code>guest {first_name,last_name}</code>, <code>extra_lines [{uuid, price}]</code>. Round relationships: <code>customership</code> (swap the golfer on the round), <code>player_type</code> (change the rate). Add/update/delete all return the <strong>updated reservation</strong> (delete returns the reservation, not a bare 204). Deleting the last round isn't a substitute for cancelling; cancel the reservation instead.</p>\n<blockquote>\n<p>Older support threads said individual rounds can't be deleted. That's outdated. Per-round add/edit/delete works today.</p>\n</blockquote>\n<h2 id=\"check-in\">Check-in</h2>\n<p>Mark one or more rounds as arrived:</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>POST /partner_api/v2/organizations/:org_id/check_ins\n</code></pre><pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-bash\">curl -gs -X POST \"https://partner-staging.chronogolf.com/partner_api/v2/organizations/ORG_UUID/check_ins\" \\\n  -H \"Authorization: Bearer YOUR_ACCESS_TOKEN\" \\\n  -H \"Accept: application/vnd.api+json\" -H \"Content-Type: application/vnd.api+json\" \\\n  -d '{ \"data\": { \"type\": \"check_in\", \"relationships\": {\n    \"rounds\": { \"data\": [\n      { \"type\": \"round\", \"id\": \"ROUND_UUID_1\" },\n      { \"type\": \"round\", \"id\": \"ROUND_UUID_2\" }\n    ] }\n  } } }'\n</code></pre>\n<p>Batches multiple rounds in one call. Returns <code>201</code> (empty body) on success. The rounds move to <code>arrived</code>. Failure modes:</p>\n<ul>\n<li><code>400 rounds must be paid to be checked in</code> — a round still requires payment.</li>\n<li><code>400 one or more rounds is already checked in</code> — at least one round isn't in the <code>reserved</code> state.</li>\n</ul>\n<p>All rounds must belong to the organization in the URL.</p>\n<h2 id=\"payment-confirmation\">Payment confirmation</h2>\n<p>Record an external payment against rounds (the integrator collected the money) and mark them paid:</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>POST /partner_api/v2/organizations/:org_id/payment_confirmations\n</code></pre><pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-bash\">curl -gs -X POST \"https://partner-staging.chronogolf.com/partner_api/v2/organizations/ORG_UUID/payment_confirmations\" \\\n  -H \"Authorization: Bearer YOUR_ACCESS_TOKEN\" \\\n  -H \"Accept: application/vnd.api+json\" -H \"Content-Type: application/vnd.api+json\" \\\n  -d '{ \"data\": { \"type\": \"payment_confirmation\",\n    \"attributes\": { \"amount\": 10.0, \"reference\": \"acme-txn-12345\" },\n    \"relationships\": { \"rounds\": { \"data\": [\n      { \"type\": \"round\", \"id\": \"ROUND_UUID_1\" },\n      { \"type\": \"round\", \"id\": \"ROUND_UUID_2\" }\n    ] } } } }'\n</code></pre>\n<ul>\n<li><code>amount</code> must equal the summed amount of the rounds (within $0.01), or you get <code>400 Price does not match with summed amount</code>.</li>\n<li><code>reference</code> is your external transaction id; it's stored and echoed back.</li>\n<li>All rounds must be in the <strong>same club</strong>, none already paid.</li>\n</ul>\n<p>Returns <code>201</code> with a <code>payment_confirmation</code> resource (<code>amount</code>, <code>reference</code>, and the rounds). Fetch one later at the top-level shallow path <code>GET /partner_api/v2/payment_confirmations/:id</code>.</p>\n<blockquote>\n<p><strong>Tax basis matters here.</strong> The <code>amount</code> you send (and that gets recorded) must equal the sum of the rounds' <code>price</code>, which is on the club's tax basis. On a <strong>tax-inclusive</strong> club that's the full amount the golfer owes. On a <strong>tax-exclusive</strong> club it's the <strong>pre-tax subtotal</strong>, the tax-inclusive total is not exposed anywhere, so don't assume <code>amount</code> is what you should charge a card. Check the org's <code>tax_inclusive</code> flag and add tax yourself for tax-exclusive clubs. See money: currency and tax (in the \"Conventions (read this first)\" section).</p>\n</blockquote>\n<h2 id=\"tour-operators\">Tour operators</h2>\n<p>Reservation requests, reservations, and reservation updates all accept a <code>tour_operator</code> relationship. <strong>Its id is an integer, not a UUID</strong> (tour operators predate the UUID convention):</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">\"relationships\": { \"tour_operator\": { \"data\": { \"type\": \"tour_operator\", \"id\": \"42\" } } }\n</code></pre>\n<p>There's no \"reservations by tour operator\" filter today.</p>\n","_postman_id":"9285a21e-57eb-4a64-a47a-12009da35d23"},{"name":"Customers","item":[{"name":"List customers","id":"ae3c82bf-5652-4c7a-9130-87742a14f040","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[{"key":"Accept","value":"application/vnd.api+json"},{"key":"Authorization","value":"Bearer "}],"url":"https://partner-staging.chronogolf.com/partner_api/v2/organizations/044ba009-d9f2-47c2-90c1-54fcd35996a4/customers?filter[updated_since]=2026-05-01T00:00:00Z&page[size]=50","description":"<p>Poll with filter[updated_since]. Without filter[archived] you get active AND archived.</p>\n","urlObject":{"path":["partner_api","v2","organizations","044ba009-d9f2-47c2-90c1-54fcd35996a4","customers"],"host":["https://partner-staging.chronogolf.com"],"query":[{"key":"filter[updated_since]","value":"2026-05-01T00:00:00Z"},{"key":"page[size]","value":"50"},{"disabled":true,"key":"filter[archived]","value":"false"},{"disabled":true,"key":"filter[last_name]","value":"Smith"},{"disabled":true,"key":"include","value":"address"}],"variable":[]}},"response":[{"id":"eafdddd8-af76-47d7-8357-c632b635475e","name":"Success","originalRequest":{"method":"GET","header":[{"key":"Accept","value":"application/vnd.api+json"},{"key":"Authorization","value":"Bearer "}],"url":{"raw":"https://partner-staging.chronogolf.com/partner_api/v2/organizations/044ba009-d9f2-47c2-90c1-54fcd35996a4/customers?filter[updated_since]=2026-05-01T00:00:00Z&page[size]=50","host":["https://partner-staging.chronogolf.com"],"path":["partner_api","v2","organizations","044ba009-d9f2-47c2-90c1-54fcd35996a4","customers"],"query":[{"key":"filter[updated_since]","value":"2026-05-01T00:00:00Z"},{"key":"page[size]","value":"50"},{"key":"filter[archived]","value":"false","disabled":true},{"key":"filter[last_name]","value":"Smith","disabled":true},{"key":"include","value":"address","disabled":true}]},"description":"Poll with filter[updated_since]. Without filter[archived] you get active AND archived."},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/vnd.api+json"}],"cookie":[],"responseTime":null,"body":"{\n  \"data\": [\n    {\n      \"id\": \"b2c3ea22-0df4-45ae-bf62-9567a0af295f\",\n      \"type\": \"customer\",\n      \"attributes\": {\n        \"first_name\": \"Mark\",\n        \"last_name\": \"Stevens\",\n        \"ref\": \"IP4NZ937\",\n        \"member_no\": \"695B\",\n        \"bag_number\": \"117\",\n        \"marketing_consent\": false,\n        \"activation_state\": null,\n        \"date_of_birth\": \"1981-05-06\",\n        \"email\": \"mstevens@gmail.com\",\n        \"gender\": 0,\n        \"phone\": \"5143334567\",\n        \"created_at\": \"2017-11-21T02:34:01-05:00\",\n        \"updated_at\": \"2026-05-28T16:34:01-04:00\",\n        \"archived_at\": null,\n        \"prefers_to_be_hidden\": false,\n        \"default_player_type_id\": \"6d5cfa52-60f9-4109-9a5e-b80269a426f9\",\n        \"tags\": [],\n        \"extended_data\": {\n          \"Special Information\": \"Watch out for his backswing\",\n          \"Spouse\": \"Sally Stevens\"\n        },\n        \"integrators\": {\n          \"data\": [\n            {\n              \"id\": \"805\",\n              \"type\": \"integration\",\n              \"attributes\": {\n                \"integration\": \"lightspeed_retail\"\n              }\n            }\n          ]\n        },\n        \"house_account_id\": null,\n        \"family_account_primary_customer_id\": null,\n        \"fnb_spend\": null\n      },\n      \"relationships\": {\n        \"address\": {\n          \"data\": {\n            \"id\": \"66632d03-47c0-4681-97c5-2b38c29ecea7\",\n            \"type\": \"address\"\n          }\n        },\n        \"organization\": {\n          \"data\": {\n            \"id\": \"044ba009-d9f2-47c2-90c1-54fcd35996a4\",\n            \"type\": \"organization\"\n          }\n        },\n        \"subscriptions\": {\n          \"data\": []\n        },\n        \"player_types\": {\n          \"data\": [\n            {\n              \"id\": \"6d5cfa52-60f9-4109-9a5e-b80269a426f9\",\n              \"type\": \"player_type\"\n            }\n          ]\n        }\n      }\n    }\n  ],\n  \"meta\": {\n    \"page\": 1,\n    \"page_size\": 25,\n    \"total\": 1,\n    \"total_pages\": 1\n  }\n}"}],"_postman_id":"ae3c82bf-5652-4c7a-9130-87742a14f040"},{"name":"Show customer","id":"cf529572-e740-4ee7-b66e-9d657c38dc6b","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[{"key":"Accept","value":"application/vnd.api+json"},{"key":"Authorization","value":"Bearer "}],"url":"https://partner-staging.chronogolf.com/partner_api/v2/customers/?organization_id=044ba009-d9f2-47c2-90c1-54fcd35996a4","description":"<p>Shallow route. organization_id is REQUIRED here or you get 404. include=extended_data surfaces custom fields if granted.</p>\n","urlObject":{"path":["partner_api","v2","customers",""],"host":["https://partner-staging.chronogolf.com"],"query":[{"key":"organization_id","value":"044ba009-d9f2-47c2-90c1-54fcd35996a4"},{"disabled":true,"key":"include","value":"extended_data"}],"variable":[]}},"response":[{"id":"b3df7f42-7fac-417e-a0e9-e5bb6d498a37","name":"Success","originalRequest":{"method":"GET","header":[{"key":"Accept","value":"application/vnd.api+json"},{"key":"Authorization","value":"Bearer "}],"url":{"raw":"https://partner-staging.chronogolf.com/partner_api/v2/customers/?organization_id=044ba009-d9f2-47c2-90c1-54fcd35996a4","host":["https://partner-staging.chronogolf.com"],"path":["partner_api","v2","customers",""],"query":[{"key":"organization_id","value":"044ba009-d9f2-47c2-90c1-54fcd35996a4"},{"key":"include","value":"extended_data","disabled":true}]},"description":"Shallow route. organization_id is REQUIRED here or you get 404. include=extended_data surfaces custom fields if granted."},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/vnd.api+json"}],"cookie":[],"responseTime":null,"body":"{\n  \"data\": {\n    \"id\": \"b2c3ea22-0df4-45ae-bf62-9567a0af295f\",\n    \"type\": \"customer\",\n    \"attributes\": {\n      \"first_name\": \"Mark\",\n      \"last_name\": \"Stevens\",\n      \"ref\": \"IP4NZ937\",\n      \"member_no\": \"695B\",\n      \"bag_number\": \"114\",\n      \"marketing_consent\": false,\n      \"activation_state\": null,\n      \"date_of_birth\": \"1981-05-06\",\n      \"email\": \"mstevens@gmail.com\",\n      \"gender\": 0,\n      \"phone\": \"5143334567\",\n      \"created_at\": \"2017-11-21T02:34:01-05:00\",\n      \"updated_at\": \"2026-05-28T16:31:52-04:00\",\n      \"archived_at\": null,\n      \"prefers_to_be_hidden\": false,\n      \"default_player_type_id\": \"6d5cfa52-60f9-4109-9a5e-b80269a426f9\",\n      \"tags\": [],\n      \"extended_data\": {\n        \"Special Information\": \"Watch out for his backswing\",\n        \"Spouse\": \"Sally Stevens\"\n      },\n      \"integrators\": {\n        \"data\": [\n          {\n            \"id\": \"805\",\n            \"type\": \"integration\",\n            \"attributes\": {\n              \"integration\": \"lightspeed_retail\"\n            }\n          }\n        ]\n      },\n      \"house_account_id\": null,\n      \"family_account_primary_customer_id\": null,\n      \"fnb_spend\": null\n    },\n    \"relationships\": {\n      \"address\": {\n        \"data\": {\n          \"id\": \"66632d03-47c0-4681-97c5-2b38c29ecea7\",\n          \"type\": \"address\"\n        }\n      },\n      \"organization\": {\n        \"data\": {\n          \"id\": \"044ba009-d9f2-47c2-90c1-54fcd35996a4\",\n          \"type\": \"organization\"\n        }\n      },\n      \"subscriptions\": {\n        \"data\": []\n      },\n      \"player_types\": {\n        \"data\": [\n          {\n            \"id\": \"6d5cfa52-60f9-4109-9a5e-b80269a426f9\",\n            \"type\": \"player_type\"\n          }\n        ]\n      }\n    }\n  }\n}"}],"_postman_id":"cf529572-e740-4ee7-b66e-9d657c38dc6b"},{"name":"Create customer","id":"b5d08294-ee4d-4082-ab21-39e61bd05a29","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[{"key":"Accept","value":"application/vnd.api+json"},{"key":"Authorization","value":"Bearer "},{"key":"Content-Type","value":"application/vnd.api+json"}],"body":{"mode":"raw","raw":"{\n  \"data\": {\n    \"type\": \"customer\",\n    \"attributes\": {\n      \"first_name\": \"Jamie\",\n      \"last_name\": \"Rivera\",\n      \"phone\": \"+15145551234\",\n      \"member_no\": \"M-204\",\n      \"tags\": [\n        \"acme-import\"\n      ]\n    },\n    \"relationships\": {\n      \"player_type\": {\n        \"data\": {\n          \"type\": \"player_type\",\n          \"id\": \"3b84cd17-fffb-44f9-8570-a690231af66d\"\n        }\n      }\n    }\n  }\n}","options":{"raw":{"language":"json"}}},"url":"https://partner-staging.chronogolf.com/partner_api/v2/organizations/044ba009-d9f2-47c2-90c1-54fcd35996a4/customers","description":"<p>Requires last_name plus one of email or phone. Email domains are validated for real. Create is find-or-attach (see docs).</p>\n","urlObject":{"path":["partner_api","v2","organizations","044ba009-d9f2-47c2-90c1-54fcd35996a4","customers"],"host":["https://partner-staging.chronogolf.com"],"query":[],"variable":[]}},"response":[{"id":"522a9bfc-9e84-42d9-9f6d-31fd88ff2c88","name":"Created","originalRequest":{"method":"POST","header":[{"key":"Accept","value":"application/vnd.api+json"},{"key":"Authorization","value":"Bearer "},{"key":"Content-Type","value":"application/vnd.api+json"}],"body":{"mode":"raw","raw":"{\n  \"data\": {\n    \"type\": \"customer\",\n    \"attributes\": {\n      \"first_name\": \"Jamie\",\n      \"last_name\": \"Rivera\",\n      \"phone\": \"+15145551234\",\n      \"member_no\": \"M-204\",\n      \"tags\": [\n        \"acme-import\"\n      ]\n    },\n    \"relationships\": {\n      \"player_type\": {\n        \"data\": {\n          \"type\": \"player_type\",\n          \"id\": \"3b84cd17-fffb-44f9-8570-a690231af66d\"\n        }\n      }\n    }\n  }\n}","options":{"raw":{"language":"json"}}},"url":"https://partner-staging.chronogolf.com/partner_api/v2/organizations/044ba009-d9f2-47c2-90c1-54fcd35996a4/customers","description":"Requires last_name plus one of email or phone. Email domains are validated for real. Create is find-or-attach (see docs)."},"status":"Created","code":201,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/vnd.api+json"}],"cookie":[],"responseTime":null,"body":"{\n  \"data\": {\n    \"id\": \"14af1228-677e-41cf-8e5c-3619e7b3a92f\",\n    \"type\": \"customer\",\n    \"attributes\": {\n      \"first_name\": \"Example\",\n      \"last_name\": \"Customer\",\n      \"ref\": \"6J3S-9D6J\",\n      \"member_no\": null,\n      \"bag_number\": null,\n      \"marketing_consent\": null,\n      \"activation_state\": \"pending\",\n      \"created_at\": \"2026-05-28T16:21:05-04:00\",\n      \"updated_at\": \"2026-05-28T16:21:05-04:00\",\n      \"archived_at\": null,\n      \"prefers_to_be_hidden\": false,\n      \"default_player_type_id\": \"3b84cd17-fffb-44f9-8570-a690231af66d\",\n      \"tags\": [],\n      \"integrators\": {\n        \"data\": []\n      },\n      \"house_account_id\": null,\n      \"family_account_primary_customer_id\": null,\n      \"fnb_spend\": null\n    },\n    \"relationships\": {\n      \"organization\": {\n        \"data\": {\n          \"id\": \"044ba009-d9f2-47c2-90c1-54fcd35996a4\",\n          \"type\": \"organization\"\n        }\n      },\n      \"subscriptions\": {\n        \"data\": []\n      },\n      \"player_types\": {\n        \"data\": [\n          {\n            \"id\": \"3b84cd17-fffb-44f9-8570-a690231af66d\",\n            \"type\": \"player_type\"\n          }\n        ]\n      }\n    }\n  }\n}"},{"id":"fdc02704-c9f9-4674-aafd-d0fb589c296a","name":"Error: last name + email/phone required (400)","originalRequest":{"method":"POST","header":[{"key":"Accept","value":"application/vnd.api+json"},{"key":"Authorization","value":"Bearer "},{"key":"Content-Type","value":"application/vnd.api+json"}],"body":{"mode":"raw","raw":"{\n  \"data\": {\n    \"type\": \"customer\",\n    \"attributes\": {\n      \"first_name\": \"NoLast\"\n    }\n  }\n}","options":{"raw":{"language":"json"}}},"url":"https://partner-staging.chronogolf.com/partner_api/v2/organizations/044ba009-d9f2-47c2-90c1-54fcd35996a4/customers","description":"Requires last_name plus one of email or phone. Email domains are validated for real. Create is find-or-attach (see docs)."},"status":"Bad Request","code":400,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/vnd.api+json"}],"cookie":[],"responseTime":null,"body":"{\n  \"errors\": [\n    {\n      \"status\": 400,\n      \"code\": \"bad_request\",\n      \"detail\": \"Last name can't be blank, You need to enter either an email, a phone or a username\"\n    }\n  ]\n}"}],"_postman_id":"b5d08294-ee4d-4082-ab21-39e61bd05a29"},{"name":"Update customer (incl. set player type)","id":"4dd8c577-fd34-41dd-96ea-1ac3c450487d","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"PATCH","header":[{"key":"Accept","value":"application/vnd.api+json"},{"key":"Authorization","value":"Bearer "},{"key":"Content-Type","value":"application/vnd.api+json"}],"body":{"mode":"raw","raw":"{\n  \"data\": {\n    \"type\": \"customer\",\n    \"id\": \"\",\n    \"attributes\": {\n      \"member_no\": \"M-204\"\n    },\n    \"relationships\": {\n      \"player_type\": {\n        \"data\": {\n          \"type\": \"player_type\",\n          \"id\": \"3b84cd17-fffb-44f9-8570-a690231af66d\"\n        }\n      }\n    }\n  }\n}","options":{"raw":{"language":"json"}}},"url":"https://partner-staging.chronogolf.com/partner_api/v2/customers/?organization_id=044ba009-d9f2-47c2-90c1-54fcd35996a4","description":"<p>data.id must match the URL id. attributes must be non-empty even for a relationship-only change. Email can't change once the customer is active.</p>\n","urlObject":{"path":["partner_api","v2","customers",""],"host":["https://partner-staging.chronogolf.com"],"query":[{"key":"organization_id","value":"044ba009-d9f2-47c2-90c1-54fcd35996a4"}],"variable":[]}},"response":[{"id":"e36c7a3d-7748-4008-9c6a-4572669999b0","name":"Success","originalRequest":{"method":"PATCH","header":[{"key":"Accept","value":"application/vnd.api+json"},{"key":"Authorization","value":"Bearer "},{"key":"Content-Type","value":"application/vnd.api+json"}],"body":{"mode":"raw","raw":"{\n  \"data\": {\n    \"type\": \"customer\",\n    \"id\": \"\",\n    \"attributes\": {\n      \"member_no\": \"M-204\"\n    },\n    \"relationships\": {\n      \"player_type\": {\n        \"data\": {\n          \"type\": \"player_type\",\n          \"id\": \"3b84cd17-fffb-44f9-8570-a690231af66d\"\n        }\n      }\n    }\n  }\n}","options":{"raw":{"language":"json"}}},"url":{"raw":"https://partner-staging.chronogolf.com/partner_api/v2/customers/?organization_id=044ba009-d9f2-47c2-90c1-54fcd35996a4","host":["https://partner-staging.chronogolf.com"],"path":["partner_api","v2","customers",""],"query":[{"key":"organization_id","value":"044ba009-d9f2-47c2-90c1-54fcd35996a4"}]},"description":"data.id must match the URL id. attributes must be non-empty even for a relationship-only change. Email can't change once the customer is active."},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/vnd.api+json"}],"cookie":[],"responseTime":null,"body":"{\n  \"data\": {\n    \"id\": \"b2c3ea22-0df4-45ae-bf62-9567a0af295f\",\n    \"type\": \"customer\",\n    \"attributes\": {\n      \"first_name\": \"Mark\",\n      \"last_name\": \"Stevens\",\n      \"ref\": \"IP4NZ937\",\n      \"member_no\": \"695B\",\n      \"bag_number\": \"117\",\n      \"marketing_consent\": false,\n      \"activation_state\": null,\n      \"date_of_birth\": \"1981-05-06\",\n      \"email\": \"mstevens@gmail.com\",\n      \"gender\": 0,\n      \"phone\": \"5143334567\",\n      \"created_at\": \"2017-11-21T02:34:01-05:00\",\n      \"updated_at\": \"2026-05-28T16:34:01-04:00\",\n      \"archived_at\": null,\n      \"prefers_to_be_hidden\": false,\n      \"default_player_type_id\": \"6d5cfa52-60f9-4109-9a5e-b80269a426f9\",\n      \"tags\": [],\n      \"integrators\": {\n        \"data\": [\n          {\n            \"id\": \"805\",\n            \"type\": \"integration\",\n            \"attributes\": {\n              \"integration\": \"lightspeed_retail\"\n            }\n          }\n        ]\n      },\n      \"house_account_id\": null,\n      \"family_account_primary_customer_id\": null,\n      \"fnb_spend\": null\n    },\n    \"relationships\": {\n      \"address\": {\n        \"data\": {\n          \"id\": \"66632d03-47c0-4681-97c5-2b38c29ecea7\",\n          \"type\": \"address\"\n        }\n      },\n      \"organization\": {\n        \"data\": {\n          \"id\": \"044ba009-d9f2-47c2-90c1-54fcd35996a4\",\n          \"type\": \"organization\"\n        }\n      },\n      \"subscriptions\": {\n        \"data\": []\n      },\n      \"player_types\": {\n        \"data\": [\n          {\n            \"id\": \"6d5cfa52-60f9-4109-9a5e-b80269a426f9\",\n            \"type\": \"player_type\"\n          }\n        ]\n      }\n    }\n  }\n}"}],"_postman_id":"4dd8c577-fd34-41dd-96ea-1ac3c450487d"}],"id":"7858e2c5-78e0-4937-ba6e-28478700d679","description":"<h1 id=\"customers\">Customers</h1>\n<p>Reading golfer records and pushing your own (the common CRM-sync use case). A \"customer\" here is a <strong>Customership</strong>: a golfer's membership at one club. The same person at two clubs has two customerships, each with its own UUID.</p>\n<h2 id=\"list-customers\">List customers</h2>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>GET /partner_api/v2/organizations/:org_id/customers\n</code></pre><pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-bash\">curl -gs \"https://partner-staging.chronogolf.com/partner_api/v2/organizations/ORG_UUID/customers?filter[updated_since]=2026-05-01T00:00:00Z&amp;page[size]=50\" \\\n  -H \"Authorization: Bearer YOUR_ACCESS_TOKEN\" -H \"Accept: application/vnd.api+json\"\n</code></pre>\n<h3 id=\"filters\">Filters</h3>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Filter</th>\n<th>Format</th>\n<th>Notes</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><code>filter[first_name]</code> / <code>filter[last_name]</code></td>\n<td>string</td>\n<td>Exact match</td>\n</tr>\n<tr>\n<td><code>filter[updated_since]</code></td>\n<td>ISO 8601</td>\n<td>For syncing. Bad value → <code>400 updated_since must be a valid datetime</code></td>\n</tr>\n<tr>\n<td><code>filter[archived]</code></td>\n<td><code>true</code> / <code>false</code></td>\n<td><code>true</code> → archived only, <code>false</code> → active only. <strong>If you omit it, you get both</strong> (see below)</td>\n</tr>\n<tr>\n<td><code>filter[default_player_role]</code></td>\n<td><code>member</code> or <code>public</code></td>\n<td>Anything else → <code>400 The provided default_player_role must be either member or public</code></td>\n</tr>\n<tr>\n<td><code>filter[player_types][]</code></td>\n<td>array of player-type UUIDs</td>\n<td>Customers with any of those types. Unknown UUID → <code>400 One or more player types do not exist for that club</code></td>\n</tr>\n<tr>\n<td><code>filter[email]</code></td>\n<td>exact, case-insensitive</td>\n<td><strong>Restricted.</strong> See below</td>\n</tr>\n<tr>\n<td><code>filter[phone]</code></td>\n<td>exact</td>\n<td><strong>Restricted.</strong> See below</td>\n</tr>\n</tbody>\n</table>\n</div><p><strong>The <code>archived</code> default is \"both,\" not \"active.\"</strong> Listing without <code>filter[archived]</code> returns active and archived customers mixed together (archived ones carry an <code>archived_at</code>). If you only want active golfers, pass <code>filter[archived]=false</code>.</p>\n<p>Includes: <code>address</code>, <code>organization</code>, <code>player_types</code>, <code>subscriptions</code>. Plus a special <code>include=extended_data</code> flag that surfaces the club's custom fields (in this section) (if your connection is granted that field).</p>\n<blockquote>\n<p><strong>Memberships are read-only here.</strong> The <code>subscriptions</code> include returns a golfer's active membership-granting subscription so you can <em>see</em> it, but there is <strong>no Partner API endpoint to sell, create, or renew a membership</strong>. If your integration needs to purchase memberships for golfers, that's not supported through the API today; talk to <a href=\"mailto:golf.api@lightspeedhq.com\">golf.api@lightspeedhq.com</a> about the use case. You <em>can</em>, however, set a golfer's player type, which is how membership integrations grant access. See setting a customer's player type (in this section).</p>\n</blockquote>\n<h3 id=\"response\">Response</h3>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{ \"data\": [ {\n  \"id\": \"544f27c7-4969-4e6c-a178-54c3320b2126\",\n  \"type\": \"customer\",\n  \"attributes\": {\n    \"first_name\": \"Tuan\", \"last_name\": \"01\", \"ref\": \"3QQ7-WWZH\",\n    \"member_no\": null, \"bag_number\": null, \"marketing_consent\": false,\n    \"activation_state\": \"pending\",\n    \"created_at\": \"2023-07-25T03:41:12-04:00\",\n    \"updated_at\": \"2024-09-03T08:42:41-04:00\",\n    \"archived_at\": \"2024-09-03T08:42:41-04:00\",\n    \"prefers_to_be_hidden\": false,\n    \"default_player_type_id\": \"8f7eb176-809c-4550-95f7-6e3aa1a10a94\",\n    \"tags\": [],\n    \"integrators\": { \"data\": [] },\n    \"house_account_id\": null,\n    \"family_account_primary_customer_id\": null,\n    \"fnb_spend\": null\n  },\n  \"relationships\": {\n    \"organization\":  { \"data\": { \"id\": \"ORG_UUID\", \"type\": \"organization\" } },\n    \"subscriptions\": { \"data\": [] },\n    \"player_types\":  { \"data\": [] }\n  }\n} ], \"meta\": { \"page\": 1, \"page_size\": 1, \"total\": 2635, \"total_pages\": 2635 } }\n</code></pre>\n<p>The resource <code>id</code> is the <strong>Customership UUID</strong>. That's what you pass to round relationships and to <code>GET /customers/:id</code>. It is not the underlying user id. (If your connection is granted <code>user_uuid</code>, the user's UUID appears as a separate <code>user_uuid</code> attribute.)</p>\n<h3 id=\"what-each-customer-field-means\">What each customer field means</h3>\n<p>The customer payload mixes Lightspeed Golf's own identifiers, the golfer's profile, and links out to other systems. Here's what each attribute is.</p>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Field</th>\n<th>What it is</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><code>id</code> (resource id)</td>\n<td>The <strong>Customership UUID</strong> — this golfer at this club. The primary key for the customer endpoints</td>\n</tr>\n<tr>\n<td><code>first_name</code> / <code>last_name</code></td>\n<td>Name, read from the underlying user record. Always visible</td>\n</tr>\n<tr>\n<td><code>ref</code></td>\n<td>Lightspeed Golf's own human-readable customer reference (e.g. <code>3QQ7-WWZH</code>). An internal LS Golf code, <strong>not</strong> a POS id</td>\n</tr>\n<tr>\n<td><code>member_no</code></td>\n<td>The membership number the <strong>club</strong> assigns. Free text, club-defined</td>\n</tr>\n<tr>\n<td><code>bag_number</code></td>\n<td>Bag-storage number, club-defined</td>\n</tr>\n<tr>\n<td><code>marketing_consent</code></td>\n<td>Whether the golfer opted into marketing</td>\n</tr>\n<tr>\n<td><code>activation_state</code></td>\n<td>The user account's state, e.g. <code>pending</code> (golfer hasn't activated the account) or <code>active</code></td>\n</tr>\n<tr>\n<td><code>prefers_to_be_hidden</code></td>\n<td><code>true</code> if the golfer is hidden from the tee sheet or the member directory</td>\n</tr>\n<tr>\n<td><code>default_player_type_id</code></td>\n<td>The <strong>player-type UUID</strong> currently active for this golfer at this club (falls back to the club default). See the caveat below, <strong>don't assume it's a bookable type</strong></td>\n</tr>\n<tr>\n<td><code>created_at</code> / <code>updated_at</code> / <code>archived_at</code></td>\n<td>Timestamps (ISO 8601). <code>archived_at</code> is set only when the customer is archived</td>\n</tr>\n<tr>\n<td><code>tags</code></td>\n<td>Your <strong>integrator-scoped</strong> tags (plus the club's own tags if you're granted the <code>tags</code> field). See tags are integrator-scoped (in this section)</td>\n</tr>\n<tr>\n<td><code>extended_data</code></td>\n<td>The club's <strong>custom fields</strong> for this golfer, as a <code>{name: value}</code> map. Read-only; needs the field shared <em>and</em> <code>?include=extended_data</code>. See custom fields (in this section)</td>\n</tr>\n<tr>\n<td><code>family_account_primary_customer_id</code></td>\n<td>If this golfer is on a family account, the id of the family's primary customer</td>\n</tr>\n<tr>\n<td><code>fnb_spend</code></td>\n<td>The F&amp;B minimum object, or <code>null</code>. See F&amp;B minimums (in this section)</td>\n</tr>\n<tr>\n<td><code>date_of_birth</code>, <code>email</code>, <code>gender</code>, <code>phone</code></td>\n<td><strong>Restricted.</strong> Only present if the club shares them with you. See data sharing (in this section)</td>\n</tr>\n<tr>\n<td><code>user_uuid</code></td>\n<td>The underlying <strong>User UUID</strong> (one person, across clubs), distinct from the customership UUID. Only present if specifically granted</td>\n</tr>\n</tbody>\n</table>\n</div><blockquote>\n<p><strong><code>default_player_type_id</code> is not guaranteed to be bookable.</strong> It reflects the golfer's current affiliation, but that can be an archived or non-online-bookable player type. Booking a round_request validates the <code>player_type</code> against the club's <em>active, bookable</em> types, so feeding <code>default_player_type_id</code> straight into a round_request can return a <code>404</code>. To be safe, resolve it against <code>GET /player_types</code> (in the \"Club Setup &amp; Pricing\" section) and fall back to a valid bookable type (or the org's default) before booking.</p>\n</blockquote>\n<h3 id=\"retail-and-external-ids-reconciling-a-golfer-with-your-system-or-the-pos\">Retail and external IDs (reconciling a golfer with your system or the POS)</h3>\n<p>Two fields link a golfer to identifiers outside Lightspeed Golf. This is what you use to match a Lightspeed golfer to their record in a connected POS or in your own system.</p>\n<p><strong><code>integrators</code></strong> — the golfer's IDs in connected external systems. It's an array; each entry's <code>id</code> is the golfer's identifier <strong>in that system</strong> (the \"remote id\"), and <code>integration</code> names the system (the vendor). Shape:</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">\"integrators\": { \"data\": [\n  { \"id\": \"RETAIL-CUSTOMER-12345\", \"type\": \"integration\",\n    \"attributes\": { \"integration\": \"lightspeed_retail\" } }\n] }\n</code></pre>\n<p>So \"the customer's retail ID\" is the <code>id</code> of the <code>integrators</code> entry whose <code>integration</code> is the retail/POS system. An empty <code>\"data\": []</code> means the golfer isn't linked to any external system (common on fresh or staging records, so the field came back empty in our staging tests).</p>\n<p><strong><code>house_account_id</code></strong> — despite the name, this is the golfer's <strong>K-Series <code>housekeeper_id</code></strong> for their house account (v2 house accounts only). It's named <code>house_account_id</code> in the API to avoid leaking the internal term, but functionally it's the K-Series customer link. <code>null</code> if the golfer has no v2 house account. Use it to join to K-Series data.</p>\n<h3 id=\"custom-fields-extended_data\">Custom fields (<code>extended_data</code>)</h3>\n<p>Clubs can define their own <strong>custom fields</strong> on golfers (a club-defined name plus a value, e.g. \"Locker\", \"Handicap index\", \"Member since\"). The API exposes the values for a golfer as the <strong><code>extended_data</code></strong> attribute: a flat map of <code>{ \"&lt;field name&gt;\": \"&lt;value&gt;\" }</code>.</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">\"extended_data\": { \"Locker\": \"A4\", \"Handicap index\": \"12.3\", \"Member since\": \"2019\" }\n</code></pre>\n<p>Two things gate it, and you need <strong>both</strong>:</p>\n<ol>\n<li>The <code>extended_data</code> field must be <strong>shared with your connection</strong> (it's one of the restricted fields, off by default, see below).</li>\n<li>You must explicitly <strong>ask for it</strong> with <code>?include=extended_data</code> on the request. Without that flag the attribute is omitted even when you're granted it.</li>\n</ol>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-bash\">curl -gs \"https://partner-staging.chronogolf.com/partner_api/v2/customers/CUSTOMERSHIP_UUID?organization_id=ORG_UUID&amp;include=extended_data\" \\\n  -H \"Authorization: Bearer YOUR_ACCESS_TOKEN\" -H \"Accept: application/vnd.api+json\"\n</code></pre>\n<p><code>extended_data</code> is <strong>read-only</strong> through the API. You can read a club's custom-field values, but there's no Partner API field to set or create them; custom fields are defined and populated on the Lightspeed side. (Note: <code>extended_data</code> is the field whose name comes from the club's configuration, so the keys you see vary by club. It's a snapshot of values, not the field definitions.)</p>\n<h3 id=\"customer-data-sharing-you-only-see-what-the-club-shares\">Customer data sharing: you only see what the club shares</h3>\n<p>This is the single most important thing to understand about reading customers, and it surprises people: <strong>the club controls which personal-data fields your integration is allowed to see.</strong> It's a per-connection sharing setting on our side, set per club. If a field isn't shared with you, it simply doesn't appear in the response, with <strong>no error and no flag telling you it was withheld.</strong></p>\n<p>The gated (sharable) fields are:</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>gender, date_of_birth, email, phone, address, tags, extended_data\n</code></pre><p>By default these are <strong>off</strong>: hidden in the response and not filterable. So a fresh integration that hasn't had fields enabled will read customers back with no email, no phone, no date of birth, and so on.</p>\n<p>What's <strong>always</strong> visible (never gated): <code>first_name</code>, <code>last_name</code>, <code>ref</code>, <code>member_no</code>, <code>bag_number</code>, <code>marketing_consent</code>, <code>activation_state</code>, the player-type ids, account ids, and the timestamps. So names always come through; it's the contact and demographic fields that depend on the club's sharing settings.</p>\n<p>Two consequences to design for:</p>\n<ul>\n<li><strong>A missing field doesn't mean the golfer has no value for it.</strong> It usually means your connection isn't granted that field at that club. Don't treat an absent <code>email</code> as \"this customer has no email.\"</li>\n<li><strong>Filtering on a field you aren't granted is a hard error, not a silent skip.</strong> <code>filter[email]</code> or <code>filter[phone]</code> without the grant returns <code>403 Unauthorized filter.</code> (which is distinct from the <code>400 Invalid filter params</code> you'd get for a misspelled filter name).</li>\n</ul>\n<p>The same setting decides whether you can write a field too: it's how the club consents to your integration handling its golfers' personal data.</p>\n<p>To have fields enabled (or to check what's currently shared with you), email <a href=\"mailto:golf.api@lightspeedhq.com\">golf.api@lightspeedhq.com</a>. It's configured per club, so the same integration can see <code>email</code> at one club and not at another.</p>\n<h3 id=\"performance\">Performance</h3>\n<p>The index eager-loads accounts, tags, affiliations, and more. Same advice as reservations: <strong>poll with <code>filter[updated_since]</code></strong> rather than sweeping the whole list. A large club has tens of thousands of customerships (the staging test club has 2,635), and unfiltered pulls can intermittently time out.</p>\n<p>The list isn't sortable; it's always ordered by <strong>last name, then first name, then <code>updated_at</code> descending</strong>. Because the primary sort is name (not <code>updated_at</code>), reconcile records on your own key (<code>ref</code>/<code>member_no</code>), not on page position. See Sorting (in the \"Conventions (read this first)\" section).</p>\n<h3 id=\"merged-customers-a-stored-uuid-can-break\">Merged customers (a stored UUID can break)</h3>\n<p>Clubs deduplicate golfers by <strong>merging</strong> two customer records into one. When that happens:</p>\n<ul>\n<li>The <strong>absorbed</strong> record drops out of the list, merged users are excluded from the index (including <code>updated_since</code> pulls), so it just stops appearing, with <strong>no \"merged\" flag</strong> to tell you why.</li>\n<li>The surviving record keeps going, and the absorbed record's data (e.g. its email) can move onto the survivor, so the same email can show up under a different customer UUID than before.</li>\n<li>Fetching the <strong>absorbed record's old UUID</strong> directly (<code>GET /customers/:id</code>) can return a <strong>500</strong>, not a clean 404.</li>\n</ul>\n<p>So a customership UUID you stored is <strong>not permanent</strong>, a merge can make it vanish from the list and error on direct fetch. <strong>Reconcile on a stable key you control</strong> (<code>ref</code>, <code>member_no</code>, or email) rather than trusting a cached UUID, and treat a customer that disappeared from <code>updated_since</code> (with no archive and no cancellation) as possibly merged. There's no API to detect or perform a merge; it's a club-side action.</p>\n<h2 id=\"show-one-customer\">Show one customer</h2>\n<p>Shallow route, top level. <strong><code>?organization_id=</code> is required here.</strong> Without it the call returns <code>404</code> (verified), because the shallow route has no other way to know which club's context to apply, and that context also decides which restricted fields you can see:</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-bash\">curl -gs \"https://partner-staging.chronogolf.com/partner_api/v2/customers/CUSTOMERSHIP_UUID?organization_id=ORG_UUID\" \\\n  -H \"Authorization: Bearer YOUR_ACCESS_TOKEN\" -H \"Accept: application/vnd.api+json\"\n</code></pre>\n<h2 id=\"create-a-customer\">Create a customer</h2>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>POST /partner_api/v2/organizations/:org_id/customers\n</code></pre><pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-bash\">curl -gs -X POST \"https://partner-staging.chronogolf.com/partner_api/v2/organizations/ORG_UUID/customers\" \\\n  -H \"Authorization: Bearer YOUR_ACCESS_TOKEN\" \\\n  -H \"Accept: application/vnd.api+json\" -H \"Content-Type: application/vnd.api+json\" \\\n  -d '{ \"data\": {\n    \"type\": \"customer\",\n    \"attributes\": {\n      \"first_name\": \"Jamie\", \"last_name\": \"Rivera\",\n      \"email\": \"jamie@example.com\", \"phone\": \"+15145551234\",\n      \"date_of_birth\": \"1985-04-12\", \"gender\": \"female\",\n      \"member_no\": \"M-204\", \"bag_number\": \"B12\",\n      \"address\": { \"address_one\": \"1 Fairway Rd\", \"city\": \"Montreal\", \"country_code\": \"CA\", \"state_code\": \"QC\", \"postcode\": \"H2X1Y4\" },\n      \"tags\": [\"vip\", \"acme-import\"]\n    },\n    \"relationships\": {\n      \"player_type\": { \"data\": { \"type\": \"player_type\", \"id\": \"PLAYER_TYPE_UUID\" } }\n    }\n  } }'\n</code></pre>\n<h3 id=\"minimum-required-fields\">Minimum required fields</h3>\n<p>To create a customer you must send:</p>\n<ul>\n<li><strong><code>last_name</code></strong> (required). Missing it returns <code>400 Last name can't be blank</code>. <code>first_name</code> is <strong>optional</strong>.</li>\n<li><strong>One of <code>email</code> or <code>phone</code></strong> (required). Missing both returns <code>400 You need to enter either an email, a phone or a username</code>.</li>\n</ul>\n<p>That backend error message mentions \"username,\" but <strong><code>username</code> is not an accepted Partner API field</strong>. If you send it, it's silently dropped and won't satisfy the requirement. In practice: send an email or a phone.</p>\n<p>So the smallest valid create is <code>last_name</code> + (<code>email</code> or <code>phone</code>).</p>\n<p>Other rules:</p>\n<ul>\n<li><code>data.type</code> <strong>must</strong> be <code>\"customer\"</code>, else <code>400 Type must be customer</code>.</li>\n<li><strong>Email domains are validated for real.</strong> Placeholder domains like <code>example.com</code> are rejected with <code>400 This doesn't seem like a valid email domain. Double check and try again.</code> Use a real address or send a <code>phone</code> instead.</li>\n<li><code>player_type</code> (optional) must belong to the organization, else <code>400 Player type is invalid for this organization.</code> If you don't send one, your connection's default player type for that club is used.</li>\n<li>Creating against a <strong>management company</strong> URL doesn't work; customers are created against a concrete club.</li>\n</ul>\n<p>Permitted attributes: <code>first_name</code>, <code>last_name</code>, <code>email</code>, <code>phone</code>, <code>date_of_birth</code>, <code>gender</code>, <code>member_no</code>, <code>bag_number</code>, <code>address</code> (<code>address_one</code>, <code>address_two</code>, <code>city</code>, <code>country_code</code>, <code>state_code</code>, <code>postcode</code>), <code>tags</code>, <code>fnb_spend</code> (<code>minimum_spend_cents</code>, <code>current_spend_cents</code>, <code>period_start_date</code>, <code>period_end_date</code>).</p>\n<p>Returns <code>201</code> with the new customer and a <code>Location</code> header pointing at <code>/partner_api/v2/customers/:uuid</code>.</p>\n<h3 id=\"how-create-matches-an-existing-golfer-find-or-attach-and-what-it-ignores\">How create matches an existing golfer (find-or-attach, and what it ignores)</h3>\n<p>\"Create\" is really <strong>find-or-attach</strong>, not always insert. Before creating anyone, it looks for an existing person, in this order:</p>\n<ol>\n<li>an explicit <code>user_id</code> (not sent on the API create path),</li>\n<li>an <strong>exact <code>email</code></strong> match,</li>\n<li>an exact <strong><code>first_name</code> + <code>last_name</code> + <code>phone</code></strong> match (all three).</li>\n</ol>\n<p>What happens depends on what it finds:</p>\n<ul>\n<li><strong>No match</strong> → a brand-new golfer is created from exactly what you sent, then given a membership at the club.</li>\n<li><strong>Match, but not yet a customer at this club</strong> → a new membership is attached to the <strong>existing</strong> person. Their existing profile wins: an already-set <code>email</code> or <code>phone</code> is <strong>not</strong> overwritten, and the <code>first_name</code>/<code>last_name</code>/<code>date_of_birth</code>/<code>gender</code> you sent are <strong>ignored</strong> for an existing user. The only user fields that get filled are <code>email</code>/<code>phone</code>, and only if they were <strong>blank</strong> on the existing record.</li>\n<li><strong>Match, and already an active customer at this club</strong> → rejected with <code>400 User is already customer of the club</code>.</li>\n</ul>\n<p>So the specific case you might worry about, <strong>send an <code>email</code> that matches an existing user plus a <em>different</em> <code>phone</code></strong>: there's <strong>no error</strong>. The email matched, so it isn't touched; and because the existing user already has a phone, the phone you sent is <strong>silently dropped</strong>. You get back the existing golfer with their <strong>original</strong> phone, not the one you submitted. (If the existing user happened to have no phone, then your phone is set.)</p>\n<p>Two practical consequences:</p>\n<ul>\n<li><strong>Don't assume the create response echoes what you sent.</strong> If the golfer already existed, you get their canonical record back, which may differ from your payload (different phone, name, etc.). Diff the response against what you sent if that matters to you.</li>\n<li>Customership-level fields (<code>member_no</code>, <code>bag_number</code>, player type, <code>address</code>, <code>fnb_spend</code>, your <code>tags</code>) <strong>do</strong> apply to the new membership regardless, those are attached fresh. It's the shared <em>user</em> identity (name, email, phone, dob, gender) that's preserved from the existing record.</li>\n<li>To actually change an existing golfer's details, use <strong>update</strong>, not create, and remember you can't change an active golfer's email (in this section).</li>\n</ul>\n<h3 id=\"tags-are-integrator-scoped-the-club-cant-see-them\">Tags are integrator-scoped (the club can't see them)</h3>\n<p>The <code>tags</code> you send on create/update are stored as <strong>integrator tags</strong>, scoped to your connection. They are <em>your</em> private labels:</p>\n<ul>\n<li><strong>The club's staff do not see them in the Lightspeed UI.</strong> They're tagged by your connection, not added to the golfer's club-visible tags.</li>\n<li>Other integrators don't see them either. You only ever read back your own.</li>\n<li>They're the standard way to mark \"these records came from us\" or carry your own segmentation in a CRM-push integration.</li>\n</ul>\n<p>This is the one customer label you can <strong>write</strong>. Contrast with <code>extended_data</code> (custom fields), which is club-owned and read-only. If you read a customer and the <code>tags</code> array also contains the <em>club's</em> own tags, that only happens when your connection is granted the <code>tags</code> field; otherwise you see just your own integrator tags.</p>\n<h2 id=\"update-a-customer\">Update a customer</h2>\n<p>Shallow route, top level:</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>PATCH /partner_api/v2/customers/:id?organization_id=:org_id\n</code></pre><p>Include <code>?organization_id=</code> here too, so the update is applied in the right club's context.</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-bash\">curl -gs -X PATCH \"https://partner-staging.chronogolf.com/partner_api/v2/customers/CUSTOMERSHIP_UUID?organization_id=ORG_UUID\" \\\n  -H \"Authorization: Bearer YOUR_ACCESS_TOKEN\" \\\n  -H \"Accept: application/vnd.api+json\" -H \"Content-Type: application/vnd.api+json\" \\\n  -d '{ \"data\": {\n    \"type\": \"customer\",\n    \"id\": \"CUSTOMERSHIP_UUID\",\n    \"attributes\": { \"phone\": \"+15145559999\" }\n  } }'\n</code></pre>\n<p>Two requirements people miss:</p>\n<ul>\n<li><code>data.id</code> <strong>must equal the <code>:id</code> in the URL</strong>, else <code>400 ID does not match route</code>.</li>\n<li><code>data.type</code> must be <code>\"customer\"</code>, else <code>400 Type must be customer</code>.</li>\n</ul>\n<p>Same attribute set as create. Sending the <code>player_type</code> relationship sets (or clears, if null) the customer's affiliation type.</p>\n<blockquote>\n<p>Trailing-slash gotcha: don't append a trailing slash to the POST/PATCH URL. Some HTTP clients follow the resulting redirect by switching to <code>GET</code>, so your \"create\" silently turns into a \"list.\" Post to the canonical path with no trailing slash.</p>\n</blockquote>\n<blockquote>\n<p>Update re-validates the whole record. A <code>PATCH</code> runs full validation on the customer, not just the fields you sent. So if a record has a pre-existing invalid value (a bad email domain, say), an unrelated update can fail with that record's validation error. Fix the offending field in the same request.</p>\n</blockquote>\n<blockquote>\n<p><strong>There's no delete and no archive for customers via the API.</strong> The customers resource exposes only <code>index</code>, <code>show</code>, <code>create</code>, and <code>update</code>, there is <strong>no <code>DELETE</code>/destroy</strong> endpoint. And <code>archived</code> is not a writable attribute: sending <code>\"archived\": true</code> (or <code>false</code>) returns <code>200</code> but is silently ignored, so <code>archived_at</code> doesn't change (verified). So once a customer exists, you can't remove or archive it through the API at all, both are club-UI actions. Related: a customer who <strong>is</strong> archived (in the UI) can't be attached to a <code>round_request</code>, the booking returns a <code>404</code> because archived customerships are excluded from the lookup. Unarchive them in the UI (or book a different customer) first. (That 404 is from the code; I couldn't reproduce it live since the API won't archive a customer for me to test against.)</p>\n</blockquote>\n<h3 id=\"you-can-only-change-a-customers-email-while-theyre-pending\">You can only change a customer's email while they're pending</h3>\n<p>A customer's <code>activation_state</code> is <code>pending</code> until the golfer activates their account (logs in for the first time); after that it's <code>active</code>. Email updates depend on which state they're in:</p>\n<ul>\n<li><strong>Pending</strong> → you can update the email freely.</li>\n<li><strong>Active</strong> → you <strong>cannot</strong> change an existing email. The update is rejected with <code>400 Cannot update email for an active user</code>.</li>\n</ul>\n<p>The reason: an active golfer has logged into their account, and their email <em>is</em> their login. Changing it would lock them out. So this is blocked for the Partner API <strong>and</strong> for the club's own staff in the Lightspeed UI, it's a shared rule, not a partner-only restriction.</p>\n<p>Two edge cases the guard allows: setting an email on a customer who has none yet works even when they're active, and re-sending the same email they already have is a no-op (not an error). Every other field on an active customer updates normally; only the email is locked. If you need to change an active golfer's email, that's a support/account-recovery flow, not an API update.</p>\n<h2 id=\"setting-a-customers-player-type-the-membership-integration-pattern\">Setting a customer's player type (the membership-integration pattern)</h2>\n<p>You can't manage subscriptions through the API, but you <strong>can</strong> set a customer's player type. That's the hook third-party membership and subscription systems use: they own the billing and renewals on their side, then flip the golfer to the appropriate <strong>member</strong> player type on the Lightspeed side through this API. The player type is what grants the golfer their rate and access.</p>\n<p>Set it via the <code>player_type</code> relationship on create or update:</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-bash\">curl -gs -X PATCH \"https://partner-staging.chronogolf.com/partner_api/v2/customers/CUSTOMERSHIP_UUID?organization_id=ORG_UUID\" \\\n  -H \"Authorization: Bearer YOUR_ACCESS_TOKEN\" \\\n  -H \"Accept: application/vnd.api+json\" -H \"Content-Type: application/vnd.api+json\" \\\n  -d '{ \"data\": {\n    \"type\": \"customer\",\n    \"id\": \"CUSTOMERSHIP_UUID\",\n    \"attributes\": { \"member_no\": \"M-204\" },\n    \"relationships\": { \"player_type\": { \"data\": { \"type\": \"player_type\", \"id\": \"MEMBER_PLAYER_TYPE_UUID\" } } }\n  } }'\n</code></pre>\n<p>Verified live: creating a customer with one player type and then PATCHing to another changes their active player type (the serializer's <code>default_player_type_id</code> returns the new one). The change rewrites the customer's single active affiliation in place; player types don't stack.</p>\n<h3 id=\"gotcha-update-needs-a-non-empty-attributes\">Gotcha: update needs a non-empty <code>attributes</code></h3>\n<p>Even when the only thing you want to change is the <code>player_type</code> <em>relationship</em>, the update endpoint still requires a non-empty <code>data.attributes</code>. Sending <code>\"attributes\": {}</code> returns <code>400 param is missing or the value is empty: attributes</code>. Include at least one attribute (re-sending an existing value like <code>member_no</code> is fine), as in the example above.</p>\n<h3 id=\"when-the-current-type-is-granted-by-a-subscription-you-cant-change-it\">When the current type is granted by a subscription, you can't change it</h3>\n<p>The one case where setting a player type fails: if the customer's <strong>current</strong> player type is one granted by an <strong>active Lightspeed-side subscription</strong>, the API refuses to move them off it. You get:</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{ \"errors\": [ { \"status\": \"400\", \"code\": \"bad_request\",\n  \"detail\": \"This affiliation cannot be changed since it is managed by a subscription\" } ] }\n</code></pre>\n<p>and the whole update rolls back (no partial change).</p>\n<p>The important nuance, straight from the code: the block keys on the customer's <strong>current</strong> type being subscription-granted, not on whether they have a subscription at all.</p>\n<ul>\n<li>Current type <strong>is</strong> granted by an active subscription → you <strong>cannot</strong> change it via the API. The subscription has to be cancelled/expired on the Lightspeed side first.</li>\n<li>Current type is <strong>not</strong> subscription-granted (even if the golfer holds some other subscription) → the change goes through.</li>\n</ul>\n<p>So the clean division of labor is: your system owns membership/billing state, and you set the player type on golfers whose Lightspeed type isn't already locked by a Lightspeed-managed subscription. There's no background job that re-asserts the subscription's type; Lightspeed only grants or revokes it when the subscription itself starts or stops.</p>\n<blockquote>\n<p>Verification note: the successful change is verified live against staging. The subscription-guard error is traced from the code (<code>Affiliation::ChangeAffiliationType</code>), since the staging facility had no subscription-backed customer to reproduce it against.</p>\n</blockquote>\n<h2 id=\"food-and-beverage-minimums-fnb_spend\">Food and beverage minimums (<code>fnb_spend</code>)</h2>\n<blockquote>\n<p><strong>Tread lightly here.</strong> F&amp;B minimums are exposed on the API, but the feature was generally built for a specific partner's workflow, not as a general-purpose field. If you're not that partner, don't write to <code>fnb_spend</code> without checking with <a href=\"mailto:golf.api@lightspeedhq.com\">golf.api@lightspeedhq.com</a> first. Reading it back is harmless; overwriting a club's F&amp;B tracking is not.</p>\n</blockquote>\n<p>You can attach an F&amp;B minimum-spend commitment to a customer and track progress against it. Set it on create or update via the <code>fnb_spend</code> attribute. You write four fields; the API computes the rest on read.</p>\n<p><strong>Write</strong> (create or update):</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-bash\">curl -gs -X PATCH \"https://partner-staging.chronogolf.com/partner_api/v2/customers/CUSTOMERSHIP_UUID?organization_id=ORG_UUID\" \\\n  -H \"Authorization: Bearer YOUR_ACCESS_TOKEN\" \\\n  -H \"Accept: application/vnd.api+json\" -H \"Content-Type: application/vnd.api+json\" \\\n  -d '{ \"data\": {\n    \"type\": \"customer\",\n    \"id\": \"CUSTOMERSHIP_UUID\",\n    \"attributes\": { \"fnb_spend\": {\n      \"minimum_spend_cents\": 50000,\n      \"current_spend_cents\": 12500,\n      \"period_start_date\": \"2026-01-01\",\n      \"period_end_date\": \"2026-12-31\"\n    } }\n  } }'\n</code></pre>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Write field</th>\n<th>Meaning</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><code>minimum_spend_cents</code></td>\n<td>The minimum the golfer commits to spend, in cents</td>\n</tr>\n<tr>\n<td><code>current_spend_cents</code></td>\n<td>How much they've spent so far, in cents</td>\n</tr>\n<tr>\n<td><code>period_start_date</code> / <code>period_end_date</code></td>\n<td>The window the minimum applies to (<code>YYYY-MM-DD</code>)</td>\n</tr>\n</tbody>\n</table>\n</div><p><strong>Read</strong> (the <code>fnb_spend</code> attribute on a customer, <code>null</code> if none is set). Verified round-trip:</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">\"fnb_spend\": {\n  \"minimum_spend_cents\": 50000,\n  \"current_spend_cents\": 12500,\n  \"remaining_spend_cents\": 37500,\n  \"currency_code\": \"CAD\",\n  \"period_start_date\": \"2026-01-01\",\n  \"period_end_date\": \"2026-12-31\",\n  \"met\": false,\n  \"active\": true\n}\n</code></pre>\n<p>The four fields the API adds on read are computed, don't send them:</p>\n<ul>\n<li><code>remaining_spend_cents</code> — <code>minimum - current</code> (<code>37500</code> here).</li>\n<li><code>currency_code</code> — the club's currency.</li>\n<li><code>met</code> — <code>true</code> once <code>current_spend_cents &gt;= minimum_spend_cents</code>.</li>\n<li><code>active</code> — <code>true</code> when the current date is within the period window.</li>\n</ul>\n<p>Amounts are integer <strong>cents</strong>, not dollars. <code>50000</code> means $500.00.</p>\n<h2 id=\"crm-push-pattern\">CRM push pattern</h2>\n<p>The typical \"push our contacts into Lightspeed\" integration is just create + update against these endpoints:</p>\n<ol>\n<li>On a new contact, <code>POST .../customers</code> with your <code>tags</code> to mark provenance.</li>\n<li>On a change, <code>PATCH /customers/:uuid</code>.</li>\n<li>To reconcile, list with <code>filter[updated_since]</code> and match on your <code>member_no</code> / <code>ref</code> / <code>email</code> (if granted).</li>\n</ol>\n<p>There's no bulk endpoint; it's one customer per request.</p>\n","_postman_id":"7858e2c5-78e0-4937-ba6e-28478700d679"},{"name":"Reports","item":[{"name":"Aging report","id":"7fed44cf-c4f5-4ff1-a619-a11f7b464d46","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[{"key":"Accept","value":"application/vnd.api+json"},{"key":"Authorization","value":"Bearer "}],"url":"https://partner-staging.chronogolf.com/partner_api/v2/organizations/044ba009-d9f2-47c2-90c1-54fcd35996a4/aging_report?sort=-total","description":"<p>Receivables aging for a club's house accounts. Feature-flagged per club; needs v2 house accounts.</p>\n","urlObject":{"path":["partner_api","v2","organizations","044ba009-d9f2-47c2-90c1-54fcd35996a4","aging_report"],"host":["https://partner-staging.chronogolf.com"],"query":[{"key":"sort","value":"-total"},{"disabled":true,"key":"filter[cut_off_date]","value":"2026-05-27"},{"disabled":true,"key":"filter[type]","value":"Customership"}],"variable":[]}},"response":[{"id":"512dc89c-62af-4aa9-93d3-f043a433dfac","name":"Success","originalRequest":{"method":"GET","header":[{"key":"Accept","value":"application/vnd.api+json"},{"key":"Authorization","value":"Bearer "}],"url":{"raw":"https://partner-staging.chronogolf.com/partner_api/v2/organizations/044ba009-d9f2-47c2-90c1-54fcd35996a4/aging_report?sort=-total","host":["https://partner-staging.chronogolf.com"],"path":["partner_api","v2","organizations","044ba009-d9f2-47c2-90c1-54fcd35996a4","aging_report"],"query":[{"key":"sort","value":"-total"},{"key":"filter[cut_off_date]","value":"2026-05-27","disabled":true},{"key":"filter[type]","value":"Customership","disabled":true}]},"description":"Receivables aging for a club's house accounts. Feature-flagged per club; needs v2 house accounts."},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/vnd.api+json"}],"cookie":[],"responseTime":null,"body":"{\n  \"data\": [\n    {\n      \"id\": \"00000000-0000-4000-8000-000000000000\",\n      \"type\": \"aging_report_entry\",\n      \"attributes\": {\n        \"ref\": \"AAA0-0AA0\",\n        \"holder_name\": \"Jordan Rivera\",\n        \"member_no\": null,\n        \"holder_type\": \"Customership\",\n        \"holder_retail_id\": \"1000\",\n        \"total\": 5410.0,\n        \"deposit\": 5410.0,\n        \"owing\": 0.0,\n        \"last_30\": 0.0,\n        \"over_30\": 0.0,\n        \"over_60\": 0.0,\n        \"over_90\": 0.0,\n        \"over_120\": 0.0,\n        \"credit_limit\": 0.0\n      }\n    },\n    {\n      \"id\": \"00000000-0000-4000-8000-000000000001\",\n      \"type\": \"aging_report_entry\",\n      \"attributes\": {\n        \"ref\": \"BHD3-7FM9\",\n        \"holder_name\": \"Alex Morgan\",\n        \"member_no\": null,\n        \"holder_type\": \"Customership\",\n        \"holder_retail_id\": \"1001\",\n        \"total\": 4000.0,\n        \"deposit\": 4000.0,\n        \"owing\": 0.0,\n        \"last_30\": 0.0,\n        \"over_30\": 0.0,\n        \"over_60\": 0.0,\n        \"over_90\": 0.0,\n        \"over_120\": 0.0,\n        \"credit_limit\": 0.0\n      }\n    },\n    {\n      \"id\": \"00000000-0000-4000-8000-000000000002\",\n      \"type\": \"aging_report_entry\",\n      \"attributes\": {\n        \"ref\": \"CQG6-4LY8\",\n        \"holder_name\": \"Sam Taylor\",\n        \"member_no\": null,\n        \"holder_type\": \"Customership\",\n        \"holder_retail_id\": \"1002\",\n        \"total\": 2944.01,\n        \"deposit\": 2944.01,\n        \"owing\": 0.0,\n        \"last_30\": 0.0,\n        \"over_30\": 0.0,\n        \"over_60\": 0.0,\n        \"over_90\": 0.0,\n        \"over_120\": 0.0,\n        \"credit_limit\": 5000.0\n      }\n    },\n    {\n      \"id\": \"00000000-0000-4000-8000-000000000003\",\n      \"type\": \"aging_report_entry\",\n      \"attributes\": {\n        \"ref\": \"DXK9-1RB7\",\n        \"holder_name\": \"Casey Brooks\",\n        \"member_no\": null,\n        \"holder_type\": \"Customership\",\n        \"holder_retail_id\": \"1003\",\n        \"total\": 2000.0,\n        \"deposit\": 2000.0,\n        \"owing\": 0.0,\n        \"last_30\": 0.0,\n        \"over_30\": 0.0,\n        \"over_60\": 0.0,\n        \"over_90\": 0.0,\n        \"over_120\": 0.0,\n        \"credit_limit\": 1000.0\n      }\n    }\n  ],\n  \"meta\": {\n    \"page\": 1,\n    \"page_size\": 4,\n    \"total\": 236,\n    \"total_pages\": 59\n  }\n}"},{"id":"c58cbc3b-8912-4422-b80f-4ee5e342820c","name":"Error: club has no house accounts (400)","originalRequest":{"method":"GET","header":[{"key":"Accept","value":"application/vnd.api+json"},{"key":"Authorization","value":"Bearer "}],"url":{"raw":"https://partner-staging.chronogolf.com/partner_api/v2/organizations/044ba009-d9f2-47c2-90c1-54fcd35996a4/aging_report?sort=-total","host":["https://partner-staging.chronogolf.com"],"path":["partner_api","v2","organizations","044ba009-d9f2-47c2-90c1-54fcd35996a4","aging_report"],"query":[{"key":"sort","value":"-total"},{"key":"filter[cut_off_date]","value":"2026-05-27","disabled":true},{"key":"filter[type]","value":"Customership","disabled":true}]},"description":"Receivables aging for a club's house accounts. Feature-flagged per club; needs v2 house accounts."},"status":"Bad Request","code":400,"_postman_previewlanguage":"json","header":[{"key":"Content-Type","value":"application/vnd.api+json"}],"cookie":[],"responseTime":null,"body":"{\n  \"errors\": [\n    {\n      \"status\": 400,\n      \"code\": \"bad_request\",\n      \"detail\": \"No v2 house accounts found for this club\"\n    }\n  ]\n}"}],"_postman_id":"7fed44cf-c4f5-4ff1-a619-a11f7b464d46"}],"id":"7d4c266b-89e3-44ba-8b4e-c4f008df548b","description":"<h1 id=\"reports\">Reports</h1>\n<h2 id=\"aging-report\">Aging report</h2>\n<p>A receivables aging report for a club's house accounts (golfers and tour operators).</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code>GET /partner_api/v2/organizations/:org_id/aging_report\n</code></pre><pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-bash\">curl -gs \"https://partner-staging.chronogolf.com/partner_api/v2/organizations/ORG_UUID/aging_report?sort=-total\" \\\n  -H \"Authorization: Bearer YOUR_ACCESS_TOKEN\" -H \"Accept: application/vnd.api+json\"\n</code></pre>\n<h3 id=\"preconditions\">Preconditions</h3>\n<p>This endpoint has two gates, and they return different errors:</p>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Condition</th>\n<th>Response</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>The feature is turned off for this club</td>\n<td><code>503 We're making improvements to this endpoint. It will be back up soon.</code></td>\n</tr>\n<tr>\n<td>The club hasn't migrated to v2 house accounts</td>\n<td><code>400 No v2 house accounts found for this club</code></td>\n</tr>\n<tr>\n<td>The org is a management company, not a club</td>\n<td><code>400 Organization must be a club.</code></td>\n</tr>\n</tbody>\n</table>\n</div><p>The aging report is enabled per club. If you get the <code>503</code>, the flag isn't on for that club; contact support. The <code>400 No v2 house accounts found</code> means the club is enabled but hasn't set up v2 house accounts yet (this is what the staging test facility returns).</p>\n<h3 id=\"parameters\">Parameters</h3>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Param</th>\n<th>Format</th>\n<th>Notes</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><code>filter[cut_off_date]</code></td>\n<td><code>YYYY-MM-DD</code></td>\n<td>Defaults to yesterday (club time). Must be <strong>before today</strong>, else <code>400 cut_off_date must be before today's date.</code> A bad format → <code>400 Invalid cut_off_date format.</code></td>\n</tr>\n<tr>\n<td><code>filter[type]</code></td>\n<td>string</td>\n<td>Holder type filter; defaults to all</td>\n</tr>\n<tr>\n<td><code>sort</code></td>\n<td>one of <code>total</code>, <code>last_30</code>, <code>over_30</code>, <code>over_60</code>, <code>over_90</code>, <code>over_120</code></td>\n<td>Prefix with <code>-</code> for descending (e.g. <code>-total</code>). Unknown sort falls back to <code>total</code></td>\n</tr>\n</tbody>\n</table>\n</div><h3 id=\"response\">Response</h3>\n<p>Each entry is one account's aging buckets:</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{ \"data\": [ {\n  \"type\": \"aging_report_entry\",\n  \"attributes\": {\n    \"ref\": \"...\", \"holder_name\": \"...\", \"member_no\": \"...\", \"holder_type\": \"customer\",\n    \"holder_retail_id\": \"...\",\n    \"total\": 0.0, \"deposit\": 0.0, \"owing\": 0.0,\n    \"last_30\": 0.0, \"over_30\": 0.0, \"over_60\": 0.0, \"over_90\": 0.0, \"over_120\": 0.0,\n    \"credit_limit\": 0.0\n  }\n} ], \"meta\": { \"page\": 1, \"page_size\": 25, \"total\": 0, \"total_pages\": 0 } }\n</code></pre>\n<p>Paginated like everything else (<code>page[number]</code>, <code>page[size]</code>).</p>\n","_postman_id":"7d4c266b-89e3-44ba-8b4e-c4f008df548b"},{"name":"Common Errors Reference","item":[],"id":"61ab81a0-24b6-4971-b921-b6c2e5ecde14","description":"<h1 id=\"common-errors-and-why-they-occur\">Common errors and why they occur</h1>\n<p>A lookup reference. If the API hands you an error, find the message here to learn why it happened and what to change. Messages are the literal strings the V2 API returns, pulled from the code.</p>\n<h2 id=\"how-to-read-an-error-first\">How to read an error first</h2>\n<p>V2 returns errors in one of two envelopes. The human-readable text is in different places depending on which:</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">// Shape A — controlled 4xx (bad filters, bad request, not found, forbidden)\n{ \"errors\": [ { \"status\": \"400\", \"code\": \"bad_request\", \"detail\": \"Invalid filter params\" } ] }\n\n// Shape B — write-validation failures (e.g. confirming a reservation, editing a round)\n{ \"error\": { \"message\": \"Green fee can't be blank\" }, \"errors\": [ { \"message\": \"Green fee can't be blank\" } ] }\n</code></pre>\n<p>So: read <code>errors[].detail</code> for Shape A, and <code>error.message</code> (or <code>errors[].message</code>) for Shape B.</p>\n<p>A couple of failures <strong>don't</strong> come back as a JSON API error at all, which throws people off (see Errors that don't look like API errors (in this section) at the bottom).</p>\n<hr />\n<h2 id=\"401-unauthorized\">401 Unauthorized</h2>\n<p><strong><code>Unauthorized: Access is denied due to invalid credentials.</code></strong>\nYour access token is missing, malformed, or expired. Access tokens last 2 hours. Refresh with your current refresh token and retry with the new access token. If the OAuth call itself fails with <code>invalid_grant</code>, your refresh token was already used (they're single-use) or you sent an old one. See the \"Authentication\" section.</p>\n<hr />\n<h2 id=\"403-forbidden\">403 Forbidden</h2>\n<p><strong><code>Forbidden</code></strong>\nYour integrator is archived. Valid tokens won't help. Contact <a href=\"mailto:golf.api@lightspeedhq.com\">golf.api@lightspeedhq.com</a>.</p>\n<p><strong><code>Forbidden: You don't have permission to access this resource.</code></strong>\nA permission (CanCan ability) check failed. Usually your integrator isn't connected to the club that owns the resource, or your connection lacks the action you attempted. If reads work for some clubs but not others, you're probably not connected to that club. A newly added connection can take up to 5 minutes to take effect. (Common concrete case: <code>GET /teetimes/:id</code> returns this for one course but works for others, that course isn't connected to your integrator. Note this is a <em>JSON</em> 403; an <em>empty</em> <code>text/html</code> 403 is the routing trap below, a different problem.)</p>\n<p><strong><code>Access to that resource is not permitted.</code></strong>\nSame family as above: you tried to reach a resource outside your connection's scope.</p>\n<p><strong><code>Unauthorized filter.</code></strong>\nYou filtered on a <strong>restricted</strong> field (<code>email</code> or <code>phone</code>) that your connection isn't granted. The filter exists, you're just not allowed to use it here. This is different from <code>Invalid filter params</code> (which means the filter name is wrong). Ask support to enable the field on your connection. See the \"Customers\" section (\"Customer data sharing: you only see what the club shares\").</p>\n<hr />\n<h2 id=\"400-bad-request\">400 Bad Request</h2>\n<h3 id=\"filters-and-query-params\">Filters and query params</h3>\n<p><strong><code>Invalid filter params</code></strong>\nYou passed a <code>filter[...]</code> key the endpoint doesn't support. A typo, or a filter that belongs to a different endpoint. Check the endpoint's filter list.</p>\n<p><strong><code>Invalid value for filter param &lt;type&gt;</code></strong>\nThe filter is allowed but the value didn't parse (e.g. a malformed value for a typed filter).</p>\n<p><strong><code>Invalid date. Expected format: yyyy-mm-dd HH:MM:SS</code></strong>\n<code>filter[date]</code> on tee times couldn't be parsed. Send <code>YYYY-MM-DD</code>.</p>\n<p><strong><code>updated_since must be a valid datetime</code></strong>\n<code>filter[updated_since]</code> wasn't a parseable timestamp. Use ISO 8601, e.g. <code>2026-05-01T00:00:00Z</code>.</p>\n<p><strong><code>The provided default_player_role must be either member or public</code></strong>\n<code>filter[default_player_role]</code> accepts only <code>member</code> or <code>public</code>.</p>\n<p><strong><code>One or more player types do not exist for that club.</code></strong>\nA UUID in <code>filter[player_types][]</code> isn't a player type on that organization. Pull the valid ones from <code>GET .../player_types</code>.</p>\n<h3 id=\"request-body-shape\">Request body shape</h3>\n<p><strong><code>Bad Request: &lt;details&gt;</code></strong>\nA required part of the JSON:API body was missing or an unpermitted parameter was sent. Usually a malformed envelope: missing <code>data</code>, <code>data.type</code>, or <code>data.attributes</code>. Check the body matches <code>{ \"data\": { \"type\": \"...\", \"attributes\": {...}, \"relationships\": {...} } }</code>.</p>\n<p><strong><code>param is missing or the value is empty: attributes</code></strong>\nOn customer update you sent <code>data.attributes</code> as an empty object (<code>{}</code>). The endpoint requires a non-empty <code>attributes</code> even when the only thing you're changing is a relationship (like <code>player_type</code>). Include at least one attribute. See setting a player type (in the \"Customers\" section).</p>\n<p><strong><code>Type must be customer</code></strong>\nOn customer create/update, <code>data.type</code> must be exactly <code>\"customer\"</code>.</p>\n<p><strong><code>ID does not match route</code></strong>\nOn customer update, <code>data.id</code> must equal the <code>:id</code> in the URL. Make them match.</p>\n<h3 id=\"booking-flow\">Booking flow</h3>\n<p><strong><code>Invalid round request count</code></strong>\nYou tried to confirm a reservation whose draft has 0 round requests, or more than 4. A reservation must have 1 to 4 rounds. Add or remove round requests before confirming. See the \"Reservations &amp; Booking\" section (\"The 3-step booking flow\").</p>\n<p><strong><code>Request club is not matching actual organization.</code></strong>\nThe <code>reservation_request</code> you're confirming belongs to a different club than the organization in the URL. Confirm against the same org you created the request under.</p>\n<p><strong><code>Player type is invalid for this organization.</code></strong>\nThe <code>player_type</code> relationship you sent (on a customer, round, or round request) isn't a player type that exists on that organization (including inherited management-company types). Use a UUID from <code>GET .../player_types</code>.</p>\n<p><strong><code>This affiliation cannot be changed since it is managed by a subscription</code></strong>\nYou tried to change a customer's player type, but their current type is granted by an active Lightspeed-side subscription. The API won't move them off a subscription-managed type; the update rolls back. The subscription has to be cancelled/expired on the Lightspeed side first. Note this keys on the <em>current</em> type being subscription-granted, not on the golfer merely having a subscription. See setting a player type (in the \"Customers\" section).</p>\n<h3 id=\"customer-create\">Customer create</h3>\n<p><strong><code>Last name can't be blank</code></strong>\n<code>last_name</code> is required on customer create. (<code>first_name</code> is optional.)</p>\n<p><strong><code>You need to enter either an email, a phone or a username</code></strong>\nYou created a customer with no contact method. Send an <code>email</code> or a <code>phone</code>. Note: <code>username</code> is mentioned in this message but <strong>is not a Partner API field</strong>, so it can't satisfy the requirement.</p>\n<p><strong><code>This doesn't seem like a valid email domain. Double check and try again.</code></strong>\nThe email's domain failed real validation. Placeholder domains like <code>example.com</code> are rejected. Use a real address, or send a <code>phone</code> instead.</p>\n<p><strong><code>User is already customer of the club</code></strong>\nOn customer create, the person you're creating (matched by <code>email</code>, or by exact <code>first_name</code>+<code>last_name</code>+<code>phone</code>) already has an active membership at this club. Don't re-create them; read the existing customer or update them instead. Note that create is find-or-attach, a matched-but-not-yet-a-member golfer is attached to the club rather than erroring, and the fields you send may be ignored in favor of their existing record. See the \"Customers\" section (\"How create matches an existing golfer (find-or-attach, and what it ignores)\").</p>\n<p><strong><code>Cannot update email for an active user</code></strong>\nYou tried to change the email of a customer whose <code>activation_state</code> is <code>active</code>. Once a golfer has activated their account, their email is their login, so neither the Partner API nor the club UI can change it. You can change email only while the customer is <code>pending</code> (or set a first email on someone who has none). See the \"Customers\" section (\"You can only change a customer's email while they're pending\").</p>\n<h3 id=\"price-overrides\">Price overrides</h3>\n<p><strong><code>Affiliation type must match club</code></strong> / <strong><code>Course must match club</code></strong>\nThe <code>player_type</code> or <code>course</code> on a price override doesn't belong to the same club as the product. All three (course, player type, product) must be on the same club. Management-company-level player types fail this check; overrides aren't supported for them. See the \"Club Setup &amp; Pricing\" section (\"Price overrides\").</p>\n<h3 id=\"check-in\">Check-in</h3>\n<p><strong><code>rounds must be paid to be checked in</code></strong>\nAt least one round you're checking in still requires payment. Take payment (or confirm payment) first.</p>\n<p><strong><code>one or more rounds is already checked in</code></strong>\nA round you're checking in isn't in the <code>reserved</code> state (it's already arrived/checked in, or otherwise progressed). Filter those out.</p>\n<h3 id=\"payment-confirmation\">Payment confirmation</h3>\n<p><strong><code>Price does not match with summed amount</code></strong>\nThe <code>amount</code> you sent doesn't equal the rounds' summed total (within $0.01). Recompute from the rounds you're paying.</p>\n<p><strong><code>Rounds must belong to the same club</code></strong>\nYou included rounds from more than one club in a single payment. Split into one call per club.</p>\n<p><strong><code>Incorrect amount paid</code></strong>\nA per-round price you sent doesn't match that round's actual amount.</p>\n<p><strong><code>Round already paid</code></strong>\nYou tried to pay a round that's already paid.</p>\n<h3 id=\"aging-report\">Aging report</h3>\n<p><strong><code>Organization must be a club.</code></strong>\nYou called the aging report on a management-company UUID. Use a specific club.</p>\n<p><strong><code>No v2 house accounts found for this club</code></strong>\nThe club hasn't set up v2 house accounts; the aging report needs them.</p>\n<p><strong><code>cut_off_date must be before today's date.</code></strong>\n<code>filter[cut_off_date]</code> has to be in the past. It defaults to yesterday.</p>\n<p><strong><code>Invalid cut_off_date format.</code></strong>\n<code>filter[cut_off_date]</code> didn't parse. Use <code>YYYY-MM-DD</code>.</p>\n<hr />\n<h2 id=\"422-unprocessable\">422 Unprocessable</h2>\n<p>Write-validation failures from the booking engine come back as 422 in <strong>Shape B</strong> (<code>error.message</code> + <code>errors[].message</code>). The message is whatever the underlying validation said, e.g. <code>Green fee can't be blank</code>, <code>Holes is invalid</code>. These come from <code>Reservation::Create</code> / <code>Reservation::Update</code>, so they match what the back office would reject.</p>\n<p><strong>Tee-time listing returns 422 with a restriction message</strong> (e.g. about play rights or booking window) when you list tee times for a date outside the player type's booking window. The whole request is rejected, not individual times. The most restrictive player type in your query sets the limit. See the \"Tee Times\" section (\"Booking-window restrictions\").</p>\n<p><strong><code>You cannot request tee times on a past date.</code></strong> (422) Tee times are future-only. This is distinct from the booking-window 422 above. For history, use the reservations index, which has no past-date block. See the \"Tee Times\" section.</p>\n<p><strong>Tee-time generation validation</strong> (<code>POST .../teetimes</code>) returns 422 with messages like <code>Course not found for course_id</code>, <code>Value for format must be standard, shotgun, or crossover</code>, <code>Missing times parameter...</code>, <code>Number of teetimes exceeds the limit of 160 per day</code>, <code>Can only create teetimes in the future</code>, <code>Cannot create teetimes for more than 2 years in advance</code>, <code>There are already teetimes for this date on this course</code>, or <code>Teetimes overlap with existing teetimes on this date</code>. Generation/removal engine failures (invalid date range, deleting tee times that have active bookings) come back as 400. The full rule list is in the \"Tee Times\" section (\"Creating and deleting tee times\").</p>\n<hr />\n<h2 id=\"500-internal-server-error\">500 Internal Server Error</h2>\n<p><strong><code>We're sorry, but something went wrong. We've been notified about this issue and we'll take a look at it shortly.</code></strong>\nAn uncaught server error. The one you're most likely to hit deliberately: <strong>confirming a reservation for a player type that has no price in any active price sheet</strong> for that course and time. The back office tolerates this (treats it as 0); the API doesn't, and tax calculation blows up into a 500. Fix it on the club side (add a price-sheet entry, or book a priced player type). See the \"Reservations &amp; Booking\" section (\"Gotcha: empty price sheet returns a 500\").</p>\n<hr />\n<h2 id=\"429-too-many-requests\">429 Too Many Requests</h2>\n<p>You exceeded the rate limit of <strong>200 requests per minute</strong>. Back off and retry. See the \"Conventions (read this first)\" section (\"Polling and rate limits\") for the limit; there are no idempotency keys, so for writes follow the retry guidance in the \"Reservations &amp; Booking\" section (\"Retrying a confirm safely (timeouts and idempotency)\").</p>\n<h2 id=\"503-service-unavailable\">503 Service Unavailable</h2>\n<p><strong><code>We're making improvements to this endpoint. It will be back up soon.</code></strong>\nThe endpoint is feature-flagged off for that club. This is what the aging report returns when it isn't enabled. Contact support to have it turned on.</p>\n<p><strong><code>The request took too long to process. Please try again later.</code></strong>\nThe request was cut for taking too long. Usually an unfiltered pull on a big club. Add filters (especially <code>filter[updated_since]</code>) and smaller <code>page[size]</code>, then retry.</p>\n<p><strong><code>The service is temporarily unavailable...</code></strong> (with <code>errors: [{ type: \"replica_conflict\", message: \"Database replica temporarily unavailable\" }]</code>)\nA transient database replica timeout. Back off and retry.</p>\n<hr />\n<h2 id=\"errors-that-dont-look-like-api-errors\">Errors that don't look like API errors</h2>\n<p>These two don't return a JSON:API error, so they're easy to misdiagnose as auth or server problems.</p>\n<p><strong>Empty <code>403</code> with <code>Content-Type: text/html</code>.</strong> The V2 route didn't match. Two causes:</p>\n<ol>\n<li>Your <code>Accept</code> header is <code>*/*</code>, missing, or <code>text/html</code>. V2 only routes for <code>application/vnd.api+json</code> (or <code>application/json</code>). Set the header.</li>\n<li>You hit a <strong>nested member path that doesn't exist</strong> because the resource is shallow, e.g. <code>GET /organizations/:org_id/teetimes/:id</code>. Use the top-level form <code>/partner_api/v2/teetimes/:id</code>. See the \"Conventions (read this first)\" section (\"Routing: shallow resources\").</li>\n</ol>\n<p><strong><code>404</code> on <code>GET</code>/<code>PATCH /v2/customers/:id</code>.</strong> The shallow customer route needs club context. Append <code>?organization_id=ORG_UUID</code>. See the \"Customers\" section (\"Show one customer\").</p>\n<p><strong><code>404 The requested entity was not found.</code> when confirming a reservation (step 3).</strong> The <code>reservation_request</code> was already confirmed, confirming consumes it. This is the expected, safe result of retrying a confirm whose first attempt actually succeeded; it means \"already booked,\" not \"failed.\" Don't re-create it; look the booking up in <code>GET /reservations</code>. See the \"Reservations &amp; Booking\" section (\"Retrying a confirm safely (timeouts and idempotency)\").</p>\n<hr />\n<p>For a symptom-first view (you see a behavior but no clear message), use the \"Gotchas &amp; Troubleshooting\" section. This page is the message-first view.</p>\n","_postman_id":"61ab81a0-24b6-4971-b921-b6c2e5ecde14"},{"name":"Gotchas & Troubleshooting","item":[],"id":"f3d5e556-9fdf-419b-9470-9c5d4b2d71c6","description":"<h1 id=\"gotchas-and-troubleshooting\">Gotchas and troubleshooting</h1>\n<p>The consolidated list of things that send partners into a debugging spiral. Most of these are linked from the relevant endpoint pages too; this is the one place to scan when something's behaving oddly.</p>\n<blockquote>\n<p>Got a specific error message? the \"Common Errors Reference\" section is the message-by-message reference (what each literal error string means and how to fix it). This page is the symptom-first view for when you see odd behavior but no clear message.</p>\n</blockquote>\n<h2 id=\"symptom-→-cause-table\">Symptom → cause table</h2>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>What you see</th>\n<th>What's actually wrong</th>\n<th>Fix</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>Empty <code>403</code> with <code>Content-Type: text/html</code></td>\n<td>Your <code>Accept</code> header is <code>*/*</code>, missing, or <code>text/html</code>. V2 routes don't match</td>\n<td>Send <code>Accept: application/vnd.api+json</code></td>\n</tr>\n<tr>\n<td><code>403</code> empty body on a <code>.../show</code> call</td>\n<td>You hit a <strong>nested</strong> member path that doesn't exist (shallow routing)</td>\n<td>Use the top-level path: <code>/partner_api/v2/&lt;resource&gt;/:id</code></td>\n</tr>\n<tr>\n<td><code>404</code> on <code>GET/PATCH /v2/customers/:id</code></td>\n<td>Shallow customer route needs club context</td>\n<td>Append <code>?organization_id=ORG_UUID</code></td>\n</tr>\n<tr>\n<td>Prices always show \"Public\" / wrong type, every UUID \"ignored\"</td>\n<td>You sent <code>custom_params[player_types]=</code> (scalar). It's silently dropped</td>\n<td>Use array notation: <code>custom_params[player_types][]=</code></td>\n</tr>\n<tr>\n<td>Tee times return no prices at all</td>\n<td>You didn't ask for them</td>\n<td>Add <code>custom_params[with_pricing]=true</code></td>\n</tr>\n<tr>\n<td><code>400 Invalid filter params</code></td>\n<td>Filter name not supported on that endpoint (typo or wrong endpoint)</td>\n<td>Check the endpoint's filter list</td>\n</tr>\n<tr>\n<td><code>403 Unauthorized filter.</code></td>\n<td>The filter exists but your connection isn't granted it (email/phone)</td>\n<td>Ask support to enable the field on your connection</td>\n</tr>\n<tr>\n<td>Customer <code>email</code>/<code>phone</code>/<code>dob</code> missing from the response, no error</td>\n<td>The club hasn't shared that field with your connection (it's withheld silently)</td>\n<td>Ask support to enable sharing for that club; don't assume the golfer has no value</td>\n</tr>\n<tr>\n<td><code>400 Last name can't be blank</code> on customer create</td>\n<td><code>last_name</code> is required (first name isn't)</td>\n<td>Send <code>last_name</code> plus an <code>email</code> or <code>phone</code></td>\n</tr>\n<tr>\n<td><code>400 Cannot update email for an active user</code></td>\n<td>The golfer has activated their account; email is their login</td>\n<td>You can only change email while <code>activation_state</code> is <code>pending</code></td>\n</tr>\n<tr>\n<td>Create returns a customer with a different phone/name than you sent</td>\n<td>Create is find-or-attach; an existing golfer (matched by email or name+phone) keeps their record</td>\n<td>Expected; the values you sent are ignored for an existing user. Use update to change them</td>\n</tr>\n<tr>\n<td><code>400 User is already customer of the club</code> on create</td>\n<td>That golfer already has a membership at this club</td>\n<td>Read or update the existing customer instead of re-creating</td>\n</tr>\n<tr>\n<td><code>422 You cannot request tee times on a past date</code></td>\n<td>Tee times are future-only</td>\n<td>Use the reservations index for history</td>\n</tr>\n<tr>\n<td><code>PUT</code> returns 200 but nothing changed</td>\n<td>Unsupported attribute, or an invalid relationship id silently ignored</td>\n<td>Read the resource back; only <code>note</code>/<code>holes</code> + valid <code>teetime</code>/<code>tour_operator</code> apply on reservation update</td>\n</tr>\n<tr>\n<td>Reservation comes back <code>cart_count: 0</code> after you sent a cart</td>\n<td>No cart product/price for that player type on the course</td>\n<td>Have the club add a cart product/price; <code>cart_count</code> alone can't conjure a cart</td>\n</tr>\n<tr>\n<td><code>PATCH \"archived\": true</code> does nothing</td>\n<td><code>archived</code> isn't writable via the API</td>\n<td>Archiving is a club-UI action</td>\n</tr>\n<tr>\n<td><code>404</code> booking with <code>default_player_type_id</code></td>\n<td>That type may be archived / not online-bookable</td>\n<td>Validate against <code>GET /player_types</code> before using it as a <code>player_type</code></td>\n</tr>\n<tr>\n<td><code>401</code> mid-run</td>\n<td>Access token expired (2h lifetime)</td>\n<td>Refresh; use the new access token</td>\n</tr>\n<tr>\n<td><code>invalid_grant</code> on <code>/oauth/token</code></td>\n<td>Refresh token already used (it's single-use) or you sent the old one</td>\n<td>Use the latest refresh token; if lost, contact support</td>\n</tr>\n<tr>\n<td><code>404</code> / nothing routes</td>\n<td>Wrong environment host</td>\n<td>Production <code>partner-api.chronogolf.com</code>, staging <code>partner-staging.chronogolf.com</code></td>\n</tr>\n<tr>\n<td><code>429 Too Many Requests</code></td>\n<td>Over 200 requests/minute</td>\n<td>Back off and retry</td>\n</tr>\n<tr>\n<td><code>500</code> on reservation confirm</td>\n<td>The player type has no price in any active price sheet for that course/time</td>\n<td>Add a price-sheet entry or use a priced player type</td>\n</tr>\n<tr>\n<td>Reservation list times out</td>\n<td>Unfiltered pull on a big club</td>\n<td>Poll with <code>filter[updated_since]</code>; page by date for backfills</td>\n</tr>\n<tr>\n<td>New club not showing in <code>/organizations</code></td>\n<td>Connection list cached 5 minutes</td>\n<td>Wait up to 5 minutes</td>\n</tr>\n<tr>\n<td><code>page[number]=2</code> returns empty</td>\n<td>You're connected to one club; there is no page 2</td>\n<td>Expected, not a bug</td>\n</tr>\n<tr>\n<td>POST silently returns a list</td>\n<td>Trailing slash on the URL caused a redirect to GET</td>\n<td>Drop the trailing slash</td>\n</tr>\n<tr>\n<td><code>422</code> listing tee times far out</td>\n<td>Player type's booking window doesn't reach that date</td>\n<td>Use a longer-window player type for discovery</td>\n</tr>\n<tr>\n<td>Cloudflare \"you have been blocked\" page</td>\n<td>Default script user-agent tripped the WAF</td>\n<td>Send a normal <code>User-Agent</code></td>\n</tr>\n<tr>\n<td><code>503</code> with \"temporarily unavailable\"</td>\n<td>DB replica timeout or a feature-flagged endpoint</td>\n<td>Retry later; if persistent, contact support</td>\n</tr>\n</tbody>\n</table>\n</div><h2 id=\"the-big-ones-explained\">The big ones, explained</h2>\n<h3 id=\"refresh-token-is-single-use\">Refresh token is single-use</h3>\n<p>Every refresh returns a new refresh token and kills the old one. Persist the new one atomically, never refresh from two processes at once, and if you lose it you can't self-recover. Full detail in the \"Authentication\" section. This is the number-one support burden, so build the storage right the first time.</p>\n<h3 id=\"the-accept-header-decides-whether-v2-even-routes\">The <code>Accept</code> header decides whether V2 even routes</h3>\n<p>V2's routes are guarded so they only match <code>application/vnd.api+json</code> or <code>application/json</code>. A bare <code>*/*</code> (default in many clients) returns an empty <code>403</code> that looks like an auth problem but isn't. Set the header explicitly and globally in your client.</p>\n<h3 id=\"shallow-routing-splits-collection-and-member-urls\">Shallow routing splits collection and member URLs</h3>\n<p>For most resources, list/create are nested under <code>/organizations/:org_id/...</code> but show/update/delete are at the top level <code>/partner_api/v2/&lt;resource&gt;/:id</code>. Hitting the nested member path returns an empty <code>403</code>. <strong>Reservations are the exception</strong> (nested works for everything). Table in the \"Conventions (read this first)\" section (\"Routing: shallow resources\").</p>\n<h3 id=\"player_types-array-notation\"><code>player_types[]</code> array notation</h3>\n<p><code>custom_params[player_types][]=&lt;uuid&gt;</code>, repeated per player. The scalar form is dropped by strong params and you fall back to the default (\"Public\"), which produces phantom restrictions and missing rates. This is subtle because the request still returns <code>200</code> with plausible-looking data. Detail and reproduction in the \"Tee Times\" section (\"2. <code>player_types</code> must use array notation <code>[]</code>\").</p>\n<h3 id=\"two-error-envelope-shapes\">Two error envelope shapes</h3>\n<p>Controlled 4xx use <code>{errors:[{status,code,detail}]}</code>. Write-validation failures use <code>{error:{message},errors:[{message}]}</code>. Parse for both, or you'll crash on whichever one you didn't expect. Detail in the \"Conventions (read this first)\" section (\"Error envelopes\").</p>\n<h3 id=\"soft-cancel-not-delete\">Soft cancel, not delete</h3>\n<p><code>DELETE /reservations/:id</code> sets <code>cancelled_at</code> and returns <code>204</code>, but the reservation stays in the index with <code>state: confirmed</code>. Filter on <code>cancelled_at</code> yourself if you want to exclude cancellations.</p>\n<h3 id=\"type-inconsistencies-in-responses\">Type inconsistencies in responses</h3>\n<p>A few fields aren't typed the way you'd guess:</p>\n<ul>\n<li>Tee-time <code>rates[].green_fee</code> is a <strong>number</strong> (<code>5.0</code>), but price-override <code>price</code> is a <strong>string</strong> (<code>\"39.0\"</code>).</li>\n<li>Tee-time <code>subtotal</code> is a <strong>number</strong> when bookable and an <strong>array of strings</strong> when restricted.</li>\n<li>Tour operator relationship <code>id</code> is an <strong>integer</strong> string; every other relationship id is a UUID.</li>\n<li>Round <code>kit_fee</code> absorbs <code>green_fee</code>/<code>cart_fee</code> (which go <code>null</code>) when the fee is sold inside a kit.</li>\n</ul>\n<p>Code defensively around these.</p>\n<h2 id=\"things-the-api-does-not-do-today\">Things the API does not do (today)</h2>\n<ul>\n<li><strong>No webhooks.</strong> Poll with <code>filter[updated_since]</code>.</li>\n<li><strong>Rate limit: 200 requests per minute.</strong> Beyond that documented limit, you're also bounded in practice by app-server timeouts (~60 to 90s). Self-throttle and keep queries filtered.</li>\n<li><strong>No bulk write endpoints.</strong> One customer / override / round per request.</li>\n<li><strong>No self-service credential portal.</strong> Provisioning is by email.</li>\n<li><strong>Reservation requests don't freeze inventory.</strong> Concurrent bookers can race for a slot.</li>\n<li><strong>No \"reservations by tour operator\" filter.</strong></li>\n<li><strong>No promo / discount codes.</strong> Promotions can't be applied through the API (confirmed with support, not on the roadmap).</li>\n<li><strong>No tee-sheet notes.</strong> The club's tee-sheet public notes can't be read or written via the API. (A reservation's own <code>note</code> <em>is</em> writable, that's a different field.)</li>\n<li><strong>No customer delete, archive, or merge.</strong> You can't remove, archive, or merge a customer through the API; all three are club-UI actions. See the \"Customers\" section (\"Update a customer\").</li>\n</ul>\n<h2 id=\"getting-help\">Getting help</h2>\n<p>Email <strong><a href=\"mailto:golf.api@lightspeedhq.com\">golf.api@lightspeedhq.com</a></strong> with:</p>\n<ul>\n<li>Your integrator name and the environment (staging vs production).</li>\n<li>The full request (method, URL, headers minus the token, body) and roughly when you sent it.</li>\n<li>The response status and body.</li>\n</ul>\n","_postman_id":"f3d5e556-9fdf-419b-9470-9c5d4b2d71c6"},{"name":"V1 Reference (Deprecated)","item":[],"id":"ad1728b9-7bc7-4e49-8623-42b700c0f5d9","description":"<h1 id=\"v1-reference-deprecated\">V1 reference (deprecated)</h1>\n<blockquote>\n<p><strong>V1 is deprecated. Do not build new integrations on it.</strong> It receives no new endpoints, fields, or fixes, and it will be retired. All new integrations must use V2 (in the collection overview).</p>\n<p>This page exists only for partners who already run a V1 integration and need to keep it working while they migrate. It deliberately does not include ready-to-run \"create a booking\" examples, because V1 is not a target for new development. If you're starting fresh, stop here and go to the README (in the collection overview).</p>\n</blockquote>\n<p>The same OAuth token works for V1 and V2, so migrating doesn't require new credentials. The differences are shape, not auth.</p>\n<h2 id=\"v1-vs-v2-at-a-glance\">V1 vs V2 at a glance</h2>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th></th>\n<th>V1</th>\n<th>V2</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>URL root</td>\n<td><code>/partner_api/v1/clubs/:club_id/...</code></td>\n<td><code>/partner_api/v2/organizations/:org_id/...</code></td>\n</tr>\n<tr>\n<td>Club identifier</td>\n<td>integer (<code>1234</code>)</td>\n<td>UUID</td>\n</tr>\n<tr>\n<td>Response shape</td>\n<td>flat JSON</td>\n<td>JSON:API (<code>data</code>/<code>included</code>/<code>meta</code>)</td>\n</tr>\n<tr>\n<td>Auth on request</td>\n<td><code>Authorization: Bearer</code> header (and V1 also accepts <code>?access_token=</code> query param)</td>\n<td><code>Authorization: Bearer</code> header</td>\n</tr>\n<tr>\n<td>Pagination</td>\n<td><code>?page=&amp;per_page=</code> (max 100)</td>\n<td><code>?page[number]=&amp;page[size]=</code> (max 100)</td>\n</tr>\n<tr>\n<td>Errors</td>\n<td><code>{error:{message}, errors:[{type,message}]}</code></td>\n<td><code>{errors:[{status,code,detail}]}</code></td>\n</tr>\n<tr>\n<td>Booking</td>\n<td>one POST with inline <code>rounds_attributes</code></td>\n<td>3-step request flow</td>\n</tr>\n</tbody>\n</table>\n</div><p>V1 integer ids and V2 UUIDs are <strong>not interchangeable</strong>. The same reservation has both a V1 integer id and a V2 UUID, but you can't pass one where the other is expected.</p>\n<h2 id=\"v1-endpoints\">V1 endpoints</h2>\n<p>From <code>config/routes/partner_api.rb</code> and <code>config/routes/partner_api/clubs.rb</code>:</p>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Method</th>\n<th>Path</th>\n<th>V2 equivalent</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>GET</td>\n<td><code>/partner_api/v1/clubs/:club_id/courses</code></td>\n<td><code>GET /v2/organizations/:org_id/courses</code></td>\n</tr>\n<tr>\n<td>GET</td>\n<td><code>/partner_api/v1/clubs/:club_id/affiliation_types</code></td>\n<td><code>GET /v2/organizations/:org_id/player_types</code></td>\n</tr>\n<tr>\n<td>GET</td>\n<td><code>/partner_api/v1/clubs/:club_id/teetimes</code></td>\n<td><code>GET /v2/organizations/:org_id/teetimes</code></td>\n</tr>\n<tr>\n<td>GET</td>\n<td><code>/partner_api/v1/clubs/:club_id/reservations</code></td>\n<td><code>GET /v2/organizations/:org_id/reservations</code></td>\n</tr>\n<tr>\n<td>POST</td>\n<td><code>/partner_api/v1/clubs/:club_id/reservations</code></td>\n<td>the 3-step flow (<code>reservation_requests</code> → <code>round_requests</code> → <code>reservations</code>)</td>\n</tr>\n<tr>\n<td>GET</td>\n<td><code>/partner_api/v1/clubs/:club_id/customers</code></td>\n<td><code>GET /v2/organizations/:org_id/customers</code></td>\n</tr>\n<tr>\n<td>POST</td>\n<td><code>/partner_api/v1/clubs/:club_id/customers</code></td>\n<td><code>POST /v2/organizations/:org_id/customers</code></td>\n</tr>\n<tr>\n<td>PATCH</td>\n<td><code>/partner_api/v1/clubs/:club_id/customers/:id</code></td>\n<td><code>PATCH /v2/customers/:id</code></td>\n</tr>\n<tr>\n<td>GET</td>\n<td><code>/partner_api/v1/clubs/:club_id</code></td>\n<td><code>GET /v2/organizations/:org_id</code></td>\n</tr>\n<tr>\n<td>GET</td>\n<td><code>/partner_api/v1/courses/:id</code></td>\n<td><code>GET /v2/courses/:id</code></td>\n</tr>\n<tr>\n<td>GET</td>\n<td><code>/partner_api/v1/teetimes/:id</code></td>\n<td><code>GET /v2/teetimes/:id</code></td>\n</tr>\n<tr>\n<td>GET</td>\n<td><code>/partner_api/v1/reservations/:id</code></td>\n<td><code>GET /v2/organizations/:org_id/reservations/:id</code></td>\n</tr>\n<tr>\n<td>DELETE</td>\n<td><code>/partner_api/v1/reservations/:id</code></td>\n<td><code>DELETE /v2/organizations/:org_id/reservations/:id</code></td>\n</tr>\n<tr>\n<td>POST</td>\n<td><code>/partner_api/v1/reservations/confirm_payment</code></td>\n<td><code>POST /v2/organizations/:org_id/payment_confirmations</code></td>\n</tr>\n</tbody>\n</table>\n</div><h2 id=\"shape-differences-to-expect-while-migrating\">Shape differences to expect while migrating</h2>\n<p>These notes are here so you can read your existing V1 code, not so you can write new V1 code. The V2 equivalents are the supported path.</p>\n<ul>\n<li><strong>Booking is one POST in V1, three in V2.</strong> V1 takes a single <code>POST .../reservations</code> with inline <code>rounds_attributes</code> (each round carrying <code>affiliation_type_id</code>, <code>green_fee_price</code>, <code>cart_price</code>, and a guest/customer block). V2 splits this into reservation_request → round_request(s) → reservation. See the \"Reservations &amp; Booking\" section (\"The 3-step booking flow\").</li>\n<li><strong>V1 guest blocks accept <code>email</code> and <code>phone</code>; the V2 round-request guest takes only <code>first_name</code>/<code>last_name</code>.</strong> Attach contact details via the customer record in V2.</li>\n<li><strong>Payment confirmation</strong> moved from <code>POST /partner_api/v1/reservations/confirm_payment</code> (flat <code>rounds:[{id,price}]</code>, returns a flat array) to <code>POST /v2/organizations/:org_id/payment_confirmations</code> (JSON:API, round UUIDs). See the \"Reservations &amp; Booking\" section (\"Payment confirmation\").</li>\n</ul>\n<h2 id=\"migrating-v1-→-v2\">Migrating V1 → V2</h2>\n<ol>\n<li><strong>Swap ids for UUIDs.</strong> Resolve your stored integer club ids to organization UUIDs via <code>GET /v2/organizations</code> once, and key your storage on UUIDs going forward.</li>\n<li><strong>Set the <code>Accept</code> header.</strong> V2 needs <code>application/vnd.api+json</code>. See the \"Conventions (read this first)\" section (\"Content type and the Accept header trap\").</li>\n<li><strong>Rewrite booking into 3 steps.</strong> The single POST becomes reservation_request → round_request(s) → reservation. See the \"Reservations &amp; Booking\" section (\"The 3-step booking flow\").</li>\n<li><strong>Reparse responses.</strong> Flat JSON becomes JSON:API; pull attributes out of <code>data.attributes</code> and related records out of <code>included</code>.</li>\n<li><strong>Reparse errors.</strong> See the two V2 error shapes in the \"Conventions (read this first)\" section (\"Error envelopes\").</li>\n<li><strong>Switch pagination</strong> from <code>page</code>/<code>per_page</code> to <code>page[number]</code>/<code>page[size]</code>.</li>\n</ol>\n<blockquote>\n<p>A 2019-era Postman docs link (<code>documenter.getpostman.com/view/21108/...</code>) made the rounds in old support threads. It's gone. These docs replace it.</p>\n</blockquote>\n","_postman_id":"ad1728b9-7bc7-4e49-8623-42b700c0f5d9"},{"name":"Legacy Documentation - Lightspeed Golf Partner API (v2)","item":[{"name":"Authentication","item":[{"name":"Refresh token","event":[{"listen":"test","script":{"id":"1d6dfa95-9376-46b9-b479-ff53ca5f40b2","exec":["var data = JSON.parse(responseBody);","postman.setEnvironmentVariable(\"access_token\", data.access_token);","postman.setEnvironmentVariable(\"refresh_token\", data.refresh_token);"],"type":"text/javascript"}}],"id":"a5a1e0f0-f34a-4677-919c-d5d81ddee528","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[{"key":"Content-Type","value":"application/json"}],"body":{"mode":"formdata","formdata":[]},"url":"https://partner-staging.chronogolf.com/oauth/token?client_id=&client_secret=&refresh_token=&grant_type=refresh_token&redirect_uri=urn:ietf:wg:oauth:2.0:oob","description":"<p>The initial <code>refresh_token</code> is provided when the OAuth Client is registered.</p>\n<p>The Refresh Token request uses a <code>refresh_token</code> to generate an<code>access_token</code>along with a new <code>refresh_token</code>. The <code>access_token</code> is valid for 2 hours. When it expires, you must use its <code>refresh_token</code> to request a new <code>access_token</code>.</p>\n<p>The OAuth Client can have only one valid <code>refresh_token</code> at any time, which remains valid until it is used to generate a new <code>access_token</code> and corresponding <code>refresh_token</code>.</p>\n<p>See <a href=\"https://datatracker.ietf.org/doc/html/rfc6749\">the official specification</a> for further details on <a href=\"https://tools.ietf.org/html/rfc6749#section-1.4\">Access Token</a>, <a href=\"https://tools.ietf.org/html/rfc6749#section-1.5\">Refresh Token</a> and <a href=\"https://tools.ietf.org/html/rfc6749#section-6\">Refreshing an Access Token</a>.</p>\n<h4 id=\"request-parameters\">Request parameters</h4>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Name</th>\n<th>Type</th>\n<th>Description</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td>client_id</td>\n<td>string</td>\n<td><strong>Required</strong>. The client ID you received from Lightspeed Golf when you registered.</td>\n</tr>\n<tr>\n<td>client_secret</td>\n<td>string</td>\n<td><strong>Required</strong>. The client secret you received from Lightspeed Golf when you registered.</td>\n</tr>\n<tr>\n<td>refresh_token</td>\n<td>string</td>\n<td><strong>Required</strong>. The code you received from Lightspeed Golf when you registered.</td>\n</tr>\n<tr>\n<td>grant_type</td>\n<td>string</td>\n<td><code>refresh_token</code></td>\n</tr>\n<tr>\n<td>redirect_uri</td>\n<td>string</td>\n<td>The URL in your application where users will be sent after authorization.</td>\n</tr>\n</tbody>\n</table>\n</div>","urlObject":{"path":["oauth","token"],"host":["https://partner-staging.chronogolf.com"],"query":[{"key":"client_id","value":""},{"key":"client_secret","value":""},{"key":"refresh_token","value":""},{"key":"grant_type","value":"refresh_token"},{"key":"redirect_uri","value":"urn:ietf:wg:oauth:2.0:oob"}],"variable":[]}},"response":[{"id":"8221d9f7-4333-43b7-9082-ed871fc2e305","name":"Success","originalRequest":{"method":"POST","header":[{"key":"Content-Type","value":"application/json","enabled":true,"description":"The mime type of this content"}],"body":{"mode":"formdata","formdata":[]},"url":{"raw":"https://partner-staging.chronogolf.com/oauth/token?client_id=&client_secret=&refresh_token=&grant_type=refresh_token&redirect_uri=urn:ietf:wg:oauth:2.0:oob","host":["https://partner-staging.chronogolf.com"],"path":["oauth","token"],"query":[{"key":"client_id","value":""},{"key":"client_secret","value":""},{"key":"refresh_token","value":""},{"key":"grant_type","value":"refresh_token"},{"key":"redirect_uri","value":"urn:ietf:wg:oauth:2.0:oob"}]}},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Cache-Control","value":"no-store","description":""},{"key":"Connection","value":"keep-alive","description":""},{"key":"Content-Encoding","value":"gzip","description":""},{"key":"Content-Type","value":"application/json","description":"","type":"text"},{"key":"Date","value":"Wed, 24 Aug 2016 19:47:07 GMT","description":""},{"key":"Etag","value":"W/\"1768ce07f3d842894f83a5870784424c\"","description":""},{"key":"Pragma","value":"no-cache","description":""},{"key":"Server","value":"nginx/1.10.0 + Phusion Passenger 5.0.28","description":""},{"key":"Status","value":"200 OK","description":""},{"key":"Strict-Transport-Security","value":"max-age=31536000","description":""},{"key":"Transfer-Encoding","value":"chunked","description":""},{"key":"Vary","value":"Accept-Encoding","description":""},{"key":"Via","value":"1.1 vegur","description":""},{"key":"X-Frame-Options","value":"ALLOWALL","description":""},{"key":"X-Powered-By","value":"Phusion Passenger Enterprise 5.0.28","description":""},{"key":"X-Request-Id","value":"7aef1c10-4751-4d32-a42b-335d8ff86219","description":""},{"key":"X-Runtime","value":"0.024024","description":""}],"cookie":[],"responseTime":null,"body":"{\n    \"access_token\": \"a0039c5f2cdc7550c0a6090a0e8b9ea9769372395b231f8d9dc1c8380dff62f8\",\n    \"token_type\": \"bearer\",\n    \"expires_in\": 7200,\n    \"refresh_token\": \"9f9ddbe4a130f5e9db5b7d3e955280aedeca9f41824d719f02cc634385ee3005\",\n    \"scope\": \"partner\",\n    \"created_at\": 1472068027\n}"}],"_postman_id":"a5a1e0f0-f34a-4677-919c-d5d81ddee528"}],"id":"181a581f-2451-47dd-b623-23381609c140","description":"<p>Lightspeed Golf APIs use the <strong>OAuth 2.0</strong> protocol for authentication and authorization.</p>\n<p>All developers need to register their application before getting started. A registered OAuth application is assigned a unique <code>client_id</code> , <code>client_secret</code>, and initial <code>refresh_token</code>. The <code>client_secret</code> and <code>refresh_token</code> should not be shared.</p>\n<p><strong>All API requests must be made over HTTPS. Calls made over plain HTTP will fail. API requests without authentication will also fail.</strong></p>\n","event":[{"listen":"prerequest","script":{"id":"9e961f70-0f67-409b-9fdd-a2c6e1e89453","type":"text/javascript","exec":[""]}},{"listen":"test","script":{"id":"5ac264b2-ddf1-4401-a634-4f96397a2821","type":"text/javascript","exec":[""]}}],"_postman_id":"181a581f-2451-47dd-b623-23381609c140"},{"name":"Organizations","item":[{"name":"List all organizations","id":"1f83f39e-0263-4bb8-bc23-63e6fb922a73","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[{"key":"Accept","value":"application/vnd.api+json"},{"key":"Authorization","value":"Bearer "}],"url":"https://partner-staging.chronogolf.com/partner_api/v2/organizations/","description":"<p>Retrieve a list of all organizations for which your API client has access to.</p>\n","urlObject":{"path":["partner_api","v2","organizations",""],"host":["https://partner-staging.chronogolf.com"],"query":[{"disabled":true,"key":"page[size]","value":"1-100"},{"disabled":true,"key":"page[number]","value":"1"}],"variable":[]}},"response":[{"id":"f9a951cb-b47c-44ed-b45a-0ed62787ae3c","name":"List all organizations","originalRequest":{"method":"GET","header":[{"key":"Accept","value":"application/vnd.api+json"},{"key":"Authorization","value":"Bearer "}],"url":"https://partner-staging.chronogolf.com/partner_api/v2/organizations/"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Date","value":"Wed, 04 Dec 2019 21:11:34 GMT"},{"key":"Content-Type","value":"application/vnd.api+json"},{"key":"Transfer-Encoding","value":"chunked"},{"key":"Connection","value":"keep-alive"},{"key":"Status","value":"200 OK"},{"key":"Cache-Control","value":"max-age=0, private, must-revalidate"},{"key":"Vary","value":"Accept-Encoding"},{"key":"Content-Encoding","value":"gzip"},{"key":"Strict-Transport-Security","value":"max-age=31536000; includeSubDomains"},{"key":"X-Request-Id","value":"32bb7842-89f2-4002-b0c7-d1fb19988ca1"},{"key":"Etag","value":"W/\"e7756b209032e89d68aee9e4917e023e\""},{"key":"X-Frame-Options","value":"ALLOWALL"},{"key":"X-Runtime","value":"0.059128"},{"key":"X-Powered-By","value":"Phusion Passenger Enterprise 6.0.2"},{"key":"Via","value":"1.1 vegur"},{"key":"CF-Cache-Status","value":"DYNAMIC"},{"key":"Expect-CT","value":"max-age=604800, report-uri=\"https://report-uri.cloudflare.com/cdn-cgi/beacon/expect-ct\""},{"key":"Server","value":"cloudflare"},{"key":"CF-RAY","value":"5400c6081ee1c5c0-EWR"}],"cookie":[],"responseTime":null,"body":"{\n    \"data\": [\n        {\n            \"id\": \"940c338f-4b22-4646-a570-4d6cb824f040\",\n            \"type\": \"organization\",\n            \"attributes\": {\n                \"name\": \"Sussex Golf Club\",\n                \"online_booking_enabled\": true,\n                \"tax_inclusive\": false\n            },\n            \"relationships\": {\n                \"default_player_type\": {\n                    \"data\": {\n                        \"id\": \"ba75e08e-12c7-4774-9670-30ab5a2c92b9\",\n                        \"type\": \"default_player_type\"\n                    }\n                }\n            }\n        }\n    ],\n    \"meta\": {\n        \"page\": 1,\n        \"page_size\": 25,\n        \"total\": 1,\n        \"total_pages\": 1\n    }\n}"}],"_postman_id":"1f83f39e-0263-4bb8-bc23-63e6fb922a73"},{"name":"Retrieve an organization","id":"dfc8962e-acb2-4dfc-9a06-f12786e506d9","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[{"key":"Accept","value":"application/vnd.api+json"},{"key":"Authorization","value":"Bearer "}],"url":"https://partner-staging.chronogolf.com/partner_api/v2/organizations/044ba009-d9f2-47c2-90c1-54fcd35996a4","urlObject":{"path":["partner_api","v2","organizations","044ba009-d9f2-47c2-90c1-54fcd35996a4"],"host":["https://partner-staging.chronogolf.com"],"query":[],"variable":[]}},"response":[{"id":"e12d244d-d0b0-430e-9f33-90f375a82285","name":"Retrieve an organization","originalRequest":{"method":"GET","header":[{"key":"Accept","value":"application/vnd.api+json"},{"key":"Authorization","value":"Bearer "}],"url":"https://partner-staging.chronogolf.com/partner_api/v2/organizations/044ba009-d9f2-47c2-90c1-54fcd35996a4"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Date","value":"Wed, 04 Dec 2019 20:45:12 GMT"},{"key":"Content-Type","value":"application/vnd.api+json"},{"key":"Transfer-Encoding","value":"chunked"},{"key":"Connection","value":"keep-alive"},{"key":"Status","value":"200 OK"},{"key":"Cache-Control","value":"max-age=0, private, must-revalidate"},{"key":"Vary","value":"Accept-Encoding"},{"key":"Content-Encoding","value":"gzip"},{"key":"Strict-Transport-Security","value":"max-age=31536000; includeSubDomains"},{"key":"X-Request-Id","value":"95a89adc-fc4c-4b0e-9c1b-f388d39e7572"},{"key":"Etag","value":"W/\"70715316ff85f4e21ef66e600156784b\""},{"key":"X-Frame-Options","value":"ALLOWALL"},{"key":"X-Runtime","value":"0.053847"},{"key":"X-Powered-By","value":"Phusion Passenger Enterprise 6.0.2"},{"key":"Via","value":"1.1 vegur"},{"key":"CF-Cache-Status","value":"DYNAMIC"},{"key":"Expect-CT","value":"max-age=604800, report-uri=\"https://report-uri.cloudflare.com/cdn-cgi/beacon/expect-ct\""},{"key":"Server","value":"cloudflare"},{"key":"CF-RAY","value":"54009f667b88e839-EWR"}],"cookie":[],"responseTime":null,"body":"{\n    \"data\": {\n        \"id\": \"940c338f-4b22-4646-a570-4d6cb824f040\",\n        \"type\": \"organization\",\n        \"attributes\": {\n            \"name\": \"Sussex Golf Club\",\n            \"online_booking_enabled\": true,\n            \"tax_inclusive\": false\n        },\n        \"relationships\": {\n            \"default_player_type\": {\n                \"data\": {\n                    \"id\": \"ba75e08e-12c7-4774-9670-30ab5a2c92b9\",\n                    \"type\": \"default_player_type\"\n                }\n            }\n        }\n    }\n}"}],"_postman_id":"dfc8962e-acb2-4dfc-9a06-f12786e506d9"},{"name":"Retrieve a club's courses","id":"682ab0de-ad0f-4792-a1f7-9afc5226cb3a","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[{"key":"Accept","value":"application/vnd.api+json"},{"key":"Authorization","value":"Bearer "}],"url":"https://partner-staging.chronogolf.com/partner_api/v2/organizations/044ba009-d9f2-47c2-90c1-54fcd35996a4/courses","description":"<p>Retrieve a list of courses for a given organization</p>\n","urlObject":{"path":["partner_api","v2","organizations","044ba009-d9f2-47c2-90c1-54fcd35996a4","courses"],"host":["https://partner-staging.chronogolf.com"],"query":[],"variable":[]}},"response":[{"id":"b7235221-6316-45a7-9900-6fcf8ff5e737","name":"Retrieve a club's courses","originalRequest":{"method":"GET","header":[{"key":"Accept","value":"application/vnd.api+json"},{"key":"Authorization","value":"Bearer "}],"url":{"raw":"https://partner-staging.chronogolf.com/partner_api/v2/organizations/044ba009-d9f2-47c2-90c1-54fcd35996a4/courses","host":["https://partner-staging.chronogolf.com"],"path":["partner_api","v2","organizations","044ba009-d9f2-47c2-90c1-54fcd35996a4","courses"],"query":[{"key":"","value":"","disabled":true},{"key":"","value":"","disabled":true},{"key":"","value":"","disabled":true},{"key":"","value":null,"disabled":true}]}},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Date","value":"Wed, 04 Dec 2019 21:11:37 GMT"},{"key":"Content-Type","value":"application/vnd.api+json"},{"key":"Transfer-Encoding","value":"chunked"},{"key":"Connection","value":"keep-alive"},{"key":"Status","value":"200 OK"},{"key":"Cache-Control","value":"max-age=0, private, must-revalidate"},{"key":"Vary","value":"Accept-Encoding"},{"key":"Content-Encoding","value":"gzip"},{"key":"Strict-Transport-Security","value":"max-age=31536000; includeSubDomains"},{"key":"X-Request-Id","value":"d8863b30-8677-441d-82d8-8db936b7c88c"},{"key":"Etag","value":"W/\"45fb220b7f496b7f55a522f2ac2bb230\""},{"key":"X-Frame-Options","value":"ALLOWALL"},{"key":"X-Runtime","value":"0.065940"},{"key":"X-Powered-By","value":"Phusion Passenger Enterprise 6.0.2"},{"key":"Via","value":"1.1 vegur"},{"key":"CF-Cache-Status","value":"DYNAMIC"},{"key":"Expect-CT","value":"max-age=604800, report-uri=\"https://report-uri.cloudflare.com/cdn-cgi/beacon/expect-ct\""},{"key":"Server","value":"cloudflare"},{"key":"CF-RAY","value":"5400c61c0ba5c5c0-EWR"}],"cookie":[],"responseTime":null,"body":"{\n    \"data\": [\n        {\n            \"id\": \"6b871ba5-30cf-4857-a7b1-6e6efe1cca49\",\n            \"type\": \"course\",\n            \"attributes\": {\n                \"name\": \"Sussex\",\n                \"holes\": 18,\n                \"par\": null,\n                \"distance\": null,\n                \"online_booking_enabled\": true,\n                \"cart_mandatory\": false\n            },\n            \"relationships\": {\n                \"organization\": {\n                    \"data\": {\n                        \"id\": \"940c338f-4b22-4646-a570-4d6cb824f040\",\n                        \"type\": \"organization\"\n                    }\n                }\n            }\n        },\n        {\n            \"id\": \"ae6adc4e-0322-4f9b-9f2a-6e0bb11961ce\",\n            \"type\": \"course\",\n            \"attributes\": {\n                \"name\": \"Sussex 9 hole\",\n                \"holes\": 9,\n                \"par\": null,\n                \"distance\": null,\n                \"online_booking_enabled\": true,\n                \"cart_mandatory\": false\n            },\n            \"relationships\": {\n                \"organization\": {\n                    \"data\": {\n                        \"id\": \"940c338f-4b22-4646-a570-4d6cb824f040\",\n                        \"type\": \"organization\"\n                    }\n                }\n            }\n        },\n        {\n            \"id\": \"a9e51d19-1265-4cc0-abde-442a4aeebe0e\",\n            \"type\": \"course\",\n            \"attributes\": {\n                \"name\": \"Sussex Gardens (Back 9)\",\n                \"holes\": 9,\n                \"par\": null,\n                \"distance\": null,\n                \"online_booking_enabled\": true,\n                \"cart_mandatory\": false\n            },\n            \"relationships\": {\n                \"organization\": {\n                    \"data\": {\n                        \"id\": \"940c338f-4b22-4646-a570-4d6cb824f040\",\n                        \"type\": \"organization\"\n                    }\n                }\n            }\n        }\n    ],\n    \"meta\": {\n        \"page\": 1,\n        \"page_size\": 25,\n        \"total\": 3,\n        \"total_pages\": 1\n    }\n}"}],"_postman_id":"682ab0de-ad0f-4792-a1f7-9afc5226cb3a"},{"name":"Retrieve a course","id":"389c71a0-8a92-4ac2-9705-9a58ea25dc06","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[{"key":"Accept","value":"application/vnd.api+json"},{"key":"Authorization","value":"Bearer "}],"url":"https://partner-staging.chronogolf.com/partner_api/v2/courses/5e7c2077-baae-4fa0-95ea-3ce02124284e","description":"<p>Retrieve a specific course</p>\n","urlObject":{"path":["partner_api","v2","courses","5e7c2077-baae-4fa0-95ea-3ce02124284e"],"host":["https://partner-staging.chronogolf.com"],"query":[],"variable":[]}},"response":[{"id":"c930445f-743a-4ad1-9dd0-536969207851","name":"Retrieve a course","originalRequest":{"method":"GET","header":[{"key":"Accept","value":"application/vnd.api+json"},{"key":"Authorization","value":"Bearer "}],"url":{"raw":"https://partner-staging.chronogolf.com/partner_api/v2/courses/5e7c2077-baae-4fa0-95ea-3ce02124284e","host":["https://partner-staging.chronogolf.com"],"path":["partner_api","v2","courses","5e7c2077-baae-4fa0-95ea-3ce02124284e"],"query":[{"key":"","value":"","disabled":true},{"key":"","value":"","disabled":true},{"key":"","value":"","disabled":true}]}},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Date","value":"Wed, 04 Dec 2019 21:11:44 GMT"},{"key":"Content-Type","value":"application/vnd.api+json"},{"key":"Transfer-Encoding","value":"chunked"},{"key":"Connection","value":"keep-alive"},{"key":"Status","value":"200 OK"},{"key":"Cache-Control","value":"max-age=0, private, must-revalidate"},{"key":"Vary","value":"Accept-Encoding"},{"key":"Content-Encoding","value":"gzip"},{"key":"Strict-Transport-Security","value":"max-age=31536000; includeSubDomains"},{"key":"X-Request-Id","value":"c3c0aac2-2cbc-488e-8a31-d224c6528083"},{"key":"Etag","value":"W/\"c7f9e1cc7b0b32a89d6828a9f0f01ebc\""},{"key":"X-Frame-Options","value":"ALLOWALL"},{"key":"X-Runtime","value":"0.057796"},{"key":"X-Powered-By","value":"Phusion Passenger Enterprise 6.0.2"},{"key":"Via","value":"1.1 vegur"},{"key":"CF-Cache-Status","value":"DYNAMIC"},{"key":"Expect-CT","value":"max-age=604800, report-uri=\"https://report-uri.cloudflare.com/cdn-cgi/beacon/expect-ct\""},{"key":"Server","value":"cloudflare"},{"key":"CF-RAY","value":"5400c6464f75c5c0-EWR"}],"cookie":[],"responseTime":null,"body":"{\n    \"data\": {\n        \"id\": \"6b871ba5-30cf-4857-a7b1-6e6efe1cca49\",\n        \"type\": \"course\",\n        \"attributes\": {\n            \"name\": \"Sussex\",\n            \"holes\": 18,\n            \"par\": null,\n            \"distance\": null,\n            \"online_booking_enabled\": true,\n            \"cart_mandatory\": false\n        },\n        \"relationships\": {\n            \"organization\": {\n                \"data\": {\n                    \"id\": \"940c338f-4b22-4646-a570-4d6cb824f040\",\n                    \"type\": \"organization\"\n                }\n            }\n        }\n    }\n}"}],"_postman_id":"389c71a0-8a92-4ac2-9705-9a58ea25dc06"}],"id":"5c3a9759-7a26-40e9-899a-774a54bede62","event":[{"listen":"prerequest","script":{"id":"292365ca-a657-4409-a288-e6306cc2d10c","type":"text/javascript","exec":[""]}},{"listen":"test","script":{"id":"e31df035-e240-4eb0-9243-7c6cf5e6f9f8","type":"text/javascript","exec":[""]}}],"_postman_id":"5c3a9759-7a26-40e9-899a-774a54bede62","description":""},{"name":"Tee-Times","item":[{"name":"List all tee-times","id":"e839d8ba-c495-4571-8d9b-93757174c107","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[{"key":"Accept","value":"application/vnd.api+json"},{"key":"Authorization","value":"Bearer "}],"url":"https://partner-staging.chronogolf.com/partner_api/v2/organizations/044ba009-d9f2-47c2-90c1-54fcd35996a4/teetimes","description":"<p>Retrieve all tee times for a specific organization.</p>\n<p>player_count, holes and player_types custom parameters are meant to be used with custom_params[with_pricing]=true to retrieve specific tee times pricing from the organization's tee sheet.</p>\n","urlObject":{"path":["partner_api","v2","organizations","044ba009-d9f2-47c2-90c1-54fcd35996a4","teetimes"],"host":["https://partner-staging.chronogolf.com"],"query":[{"disabled":true,"description":{"content":"<p>filter teetimes to a specific course</p>\n","type":"text/plain"},"key":"filter[course]","value":"5e7c2077-baae-4fa0-95ea-3ce02124284e"},{"disabled":true,"description":{"content":"<p>filter teetimes by date, always in the future</p>\n","type":"text/plain"},"key":"filter[date]","value":"2024-08-02"},{"disabled":true,"description":{"content":"<p>get teetimes locked in the UI through the Block button on the tee sheet</p>\n","type":"text/plain"},"key":"filter[including_blocked]","value":"true"},{"disabled":true,"description":{"content":"<p>get teetimes blocked by a tournament and closed for online booking</p>\n","type":"text/plain"},"key":"filter[including_events]","value":"true"},{"disabled":true,"key":"include[]","value":"course"},{"disabled":true,"description":{"content":"<p>get tournament details</p>\n","type":"text/plain"},"key":"include[]","value":"event"},{"disabled":true,"description":{"content":"<p>get subtotal green fee calculated for the number of players</p>\n","type":"text/plain"},"key":"custom_params[player_count]","value":"4"},{"disabled":true,"description":{"content":"<p>get rates for a specific green fee</p>\n","type":"text/plain"},"key":"custom_params[holes]","value":"18"},{"disabled":true,"description":{"content":"<p>get rates for a specific player type</p>\n","type":"text/plain"},"key":"custom_params[player_types][]","value":"3b84cd17-fffb-44f9-8570-a690231af66d"},{"disabled":true,"key":"custom_params[player_types][]","value":"{{player_type_2_id}}"},{"disabled":true,"key":"custom_params[with_pricing]","value":"true"},{"disabled":true,"key":"page[number]","value":"2"},{"disabled":true,"key":"page[size]","value":""}],"variable":[]}},"response":[{"id":"ce824088-b7f9-4575-9f9e-b93e3139cf70","name":"List all tee-times","originalRequest":{"method":"GET","header":[{"key":"Accept","value":"application/vnd.api+json"},{"key":"Authorization","value":"Bearer "}],"url":{"raw":"https://partner-staging.chronogolf.com/partner_api/v2/organizations/044ba009-d9f2-47c2-90c1-54fcd35996a4/teetimes?custom_params[with_pricing]=true&filter[date]=2025-03-24&page[number]=5","host":["https://partner-staging.chronogolf.com"],"path":["partner_api","v2","organizations","044ba009-d9f2-47c2-90c1-54fcd35996a4","teetimes"],"query":[{"key":"filter[course]","value":"5e7c2077-baae-4fa0-95ea-3ce02124284e","description":"filter teetimes to a specific course","disabled":true},{"key":"include[]","value":"course","disabled":true},{"key":"include[]","value":"event","disabled":true},{"key":"custom_params[player_count][]","value":"4","disabled":true},{"key":"custom_params[holes]","value":"18","disabled":true},{"key":"custom_params[player_types][]","value":"3b84cd17-fffb-44f9-8570-a690231af66d","disabled":true},{"key":"custom_params[with_pricing]","value":"true"},{"key":"filter[date]","value":"2025-03-24"},{"key":"page[number]","value":"5"},{"key":"filter[including_blocked]","value":"true","disabled":true}]}},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Date","value":"Mon, 24 Mar 2025 19:07:16 GMT"},{"key":"Content-Type","value":"application/vnd.api+json"},{"key":"Content-Length","value":"1183"},{"key":"Connection","value":"keep-alive"},{"key":"x-frame-options","value":"ALLOWALL"},{"key":"vary","value":"Accept,Accept-Encoding"},{"key":"Content-Encoding","value":"gzip"},{"key":"etag","value":"W/\"e5e3eec7ed780c03ea4da4af11bf9b01\""},{"key":"Cache-Control","value":"max-age=0, private, must-revalidate"},{"key":"Set-Cookie","value":"_ls_oidc_auth_token=; domain=.chronogolf.com; path=/; max-age=0; expires=Thu, 01 Jan 1970 00:00:00 GMT; SameSite=Lax; secure"},{"key":"Set-Cookie","value":"_ls_oidc_jti=; domain=.chronogolf.com; path=/; max-age=0; expires=Thu, 01 Jan 1970 00:00:00 GMT; SameSite=Lax; secure"},{"key":"x-request-id","value":"80bf0596-d8b2-49f0-9dd3-74cd10967f86"},{"key":"x-runtime","value":"0.305790"},{"key":"strict-transport-security","value":"max-age=63072000; includeSubDomains"},{"key":"x-envoy-upstream-service-time","value":"309"},{"key":"cf-cache-status","value":"DYNAMIC"},{"key":"Server","value":"cloudflare"},{"key":"CF-RAY","value":"925873526e2cc987-IAD"}],"cookie":[],"responseTime":null,"body":"{\n    \"data\": [\n        {\n            \"id\": \"e80903b6-f153-42ab-ace2-a194d238f3c6\",\n            \"type\": \"teetime\",\n            \"attributes\": {\n                \"blocked\": false,\n                \"date\": \"2025-03-24\",\n                \"hole\": 1,\n                \"format\": \"normal\",\n                \"start_time\": \"11:42\",\n                \"free_slots\": 4,\n                \"subtotal\": 100,\n                \"restrictions\": [],\n                \"rates\": [\n                    {\n                        \"player_type_id\": \"6c50f90f-6a59-4d3c-9ff6-bfffc5a50af1\",\n                        \"green_fee\": 100,\n                        \"half_cart\": 10,\n                        \"one_person_cart\": null,\n                        \"subtotal\": 100\n                    }\n                ]\n            },\n            \"relationships\": {\n                \"course\": {\n                    \"data\": {\n                        \"id\": \"d737cfd5-60bd-48b2-9a70-fffc6639d164\",\n                        \"type\": \"course\"\n                    }\n                },\n                \"event\": {\n                    \"data\": null\n                }\n            }\n        },\n        {\n            \"id\": \"9108f182-0bd3-42ba-9e4c-80aaf1499963\",\n            \"type\": \"teetime\",\n            \"attributes\": {\n                \"blocked\": false,\n                \"date\": \"2025-03-24\",\n                \"hole\": 1,\n                \"format\": \"normal\",\n                \"start_time\": \"11:45\",\n                \"free_slots\": 4,\n                \"subtotal\": 100,\n                \"restrictions\": [],\n                \"rates\": [\n                    {\n                        \"player_type_id\": \"6c50f90f-6a59-4d3c-9ff6-bfffc5a50af1\",\n                        \"green_fee\": 100,\n                        \"half_cart\": 10,\n                        \"one_person_cart\": null,\n                        \"subtotal\": 100\n                    }\n                ]\n            },\n            \"relationships\": {\n                \"course\": {\n                    \"data\": {\n                        \"id\": \"7bec633e-e246-47b8-b22e-b2ddc9ca615c\",\n                        \"type\": \"course\"\n                    }\n                },\n                \"event\": {\n                    \"data\": null\n                }\n            }\n        },\n        {\n            \"id\": \"a4aaa90d-4b16-458b-baeb-824b590f5bfa\",\n            \"type\": \"teetime\",\n            \"attributes\": {\n                \"blocked\": false,\n                \"date\": \"2025-03-24\",\n                \"hole\": 1,\n                \"format\": \"normal\",\n                \"start_time\": \"11:51\",\n                \"free_slots\": 4,\n                \"subtotal\": 100,\n                \"restrictions\": [],\n                \"rates\": [\n                    {\n                        \"player_type_id\": \"6c50f90f-6a59-4d3c-9ff6-bfffc5a50af1\",\n                        \"green_fee\": 100,\n                        \"half_cart\": 10,\n                        \"one_person_cart\": null,\n                        \"subtotal\": 100\n                    }\n                ]\n            },\n            \"relationships\": {\n                \"course\": {\n                    \"data\": {\n                        \"id\": \"d737cfd5-60bd-48b2-9a70-fffc6639d164\",\n                        \"type\": \"course\"\n                    }\n                },\n                \"event\": {\n                    \"data\": null\n                }\n            }\n        },\n        {\n            \"id\": \"c397ae1d-4bf7-4f23-a0a6-f780d0b22dd9\",\n            \"type\": \"teetime\",\n            \"attributes\": {\n                \"blocked\": false,\n                \"date\": \"2025-03-24\",\n                \"hole\": 1,\n                \"format\": \"normal\",\n                \"start_time\": \"11:51\",\n                \"free_slots\": 4,\n                \"subtotal\": 105,\n                \"restrictions\": [],\n                \"rates\": [\n                    {\n                        \"player_type_id\": \"6c50f90f-6a59-4d3c-9ff6-bfffc5a50af1\",\n                        \"green_fee\": 105,\n                        \"half_cart\": 10,\n                        \"one_person_cart\": null,\n                        \"subtotal\": 105\n                    }\n                ]\n            },\n            \"relationships\": {\n                \"course\": {\n                    \"data\": {\n                        \"id\": \"da9587e4-ddf2-423b-8b1e-9d807405abe8\",\n                        \"type\": \"course\"\n                    }\n                },\n                \"event\": {\n                    \"data\": null\n                }\n            }\n        },\n        {\n            \"id\": \"040d9ec2-d9c5-463d-a210-9dd90a62e0d3\",\n            \"type\": \"teetime\",\n            \"attributes\": {\n                \"blocked\": false,\n                \"date\": \"2025-03-24\",\n                \"hole\": 1,\n                \"format\": \"normal\",\n                \"start_time\": \"12:00\",\n                \"free_slots\": 4,\n                \"subtotal\": 100,\n                \"restrictions\": [],\n                \"rates\": [\n                    {\n                        \"player_type_id\": \"6c50f90f-6a59-4d3c-9ff6-bfffc5a50af1\",\n                        \"green_fee\": 100,\n                        \"half_cart\": 10,\n                        \"one_person_cart\": null,\n                        \"subtotal\": 100\n                    }\n                ]\n            },\n            \"relationships\": {\n                \"course\": {\n                    \"data\": {\n                        \"id\": \"7bec633e-e246-47b8-b22e-b2ddc9ca615c\",\n                        \"type\": \"course\"\n                    }\n                },\n                \"event\": {\n                    \"data\": null\n                }\n            }\n        },\n        {\n            \"id\": \"3b91635f-1c90-4ede-928d-b53ef83226ff\",\n            \"type\": \"teetime\",\n            \"attributes\": {\n                \"blocked\": false,\n                \"date\": \"2025-03-24\",\n                \"hole\": 1,\n                \"format\": \"normal\",\n                \"start_time\": \"12:00\",\n                \"free_slots\": 4,\n                \"subtotal\": 105,\n                \"restrictions\": [],\n                \"rates\": [\n                    {\n                        \"player_type_id\": \"6c50f90f-6a59-4d3c-9ff6-bfffc5a50af1\",\n                        \"green_fee\": 105,\n                        \"half_cart\": 10,\n                        \"one_person_cart\": null,\n                        \"subtotal\": 105\n                    }\n                ]\n            },\n            \"relationships\": {\n                \"course\": {\n                    \"data\": {\n                        \"id\": \"da9587e4-ddf2-423b-8b1e-9d807405abe8\",\n                        \"type\": \"course\"\n                    }\n                },\n                \"event\": {\n                    \"data\": null\n                }\n            }\n        },\n        {\n            \"id\": \"f2901a9d-6631-4fa9-8b6b-69240aa86284\",\n            \"type\": \"teetime\",\n            \"attributes\": {\n                \"blocked\": false,\n                \"date\": \"2025-03-24\",\n                \"hole\": 1,\n                \"format\": \"normal\",\n                \"start_time\": \"12:00\",\n                \"free_slots\": 4,\n                \"subtotal\": 100,\n                \"restrictions\": [],\n                \"rates\": [\n                    {\n                        \"player_type_id\": \"6c50f90f-6a59-4d3c-9ff6-bfffc5a50af1\",\n                        \"green_fee\": 100,\n                        \"half_cart\": 10,\n                        \"one_person_cart\": null,\n                        \"subtotal\": 100\n                    }\n                ]\n            },\n            \"relationships\": {\n                \"course\": {\n                    \"data\": {\n                        \"id\": \"d737cfd5-60bd-48b2-9a70-fffc6639d164\",\n                        \"type\": \"course\"\n                    }\n                },\n                \"event\": {\n                    \"data\": null\n                }\n            }\n        },\n        {\n            \"id\": \"cf3d827f-40f2-4552-8c95-6f283cadaa9e\",\n            \"type\": \"teetime\",\n            \"attributes\": {\n                \"blocked\": false,\n                \"date\": \"2025-03-24\",\n                \"hole\": 1,\n                \"format\": \"normal\",\n                \"start_time\": \"12:09\",\n                \"free_slots\": 4,\n                \"subtotal\": 100,\n                \"restrictions\": [],\n                \"rates\": [\n                    {\n                        \"player_type_id\": \"6c50f90f-6a59-4d3c-9ff6-bfffc5a50af1\",\n                        \"green_fee\": 100,\n                        \"half_cart\": 10,\n                        \"one_person_cart\": null,\n                        \"subtotal\": 100\n                    }\n                ]\n            },\n            \"relationships\": {\n                \"course\": {\n                    \"data\": {\n                        \"id\": \"d737cfd5-60bd-48b2-9a70-fffc6639d164\",\n                        \"type\": \"course\"\n                    }\n                },\n                \"event\": {\n                    \"data\": null\n                }\n            }\n        },\n        {\n            \"id\": \"74458a05-5824-48ec-bb91-9ea0dd7f52c9\",\n            \"type\": \"teetime\",\n            \"attributes\": {\n                \"blocked\": false,\n                \"date\": \"2025-03-24\",\n                \"hole\": 1,\n                \"format\": \"normal\",\n                \"start_time\": \"12:09\",\n                \"free_slots\": 4,\n                \"subtotal\": 105,\n                \"restrictions\": [],\n                \"rates\": [\n                    {\n                        \"player_type_id\": \"6c50f90f-6a59-4d3c-9ff6-bfffc5a50af1\",\n                        \"green_fee\": 105,\n                        \"half_cart\": 10,\n                        \"one_person_cart\": null,\n                        \"subtotal\": 105\n                    }\n                ]\n            },\n            \"relationships\": {\n                \"course\": {\n                    \"data\": {\n                        \"id\": \"da9587e4-ddf2-423b-8b1e-9d807405abe8\",\n                        \"type\": \"course\"\n                    }\n                },\n                \"event\": {\n                    \"data\": null\n                }\n            }\n        },\n        {\n            \"id\": \"b1776541-2875-481c-96bf-84f8caf9c8cc\",\n            \"type\": \"teetime\",\n            \"attributes\": {\n                \"blocked\": false,\n                \"date\": \"2025-03-24\",\n                \"hole\": 1,\n                \"format\": \"normal\",\n                \"start_time\": \"12:15\",\n                \"free_slots\": 4,\n                \"subtotal\": 100,\n                \"restrictions\": [],\n                \"rates\": [\n                    {\n                        \"player_type_id\": \"6c50f90f-6a59-4d3c-9ff6-bfffc5a50af1\",\n                        \"green_fee\": 100,\n                        \"half_cart\": 10,\n                        \"one_person_cart\": null,\n                        \"subtotal\": 100\n                    }\n                ]\n            },\n            \"relationships\": {\n                \"course\": {\n                    \"data\": {\n                        \"id\": \"7bec633e-e246-47b8-b22e-b2ddc9ca615c\",\n                        \"type\": \"course\"\n                    }\n                },\n                \"event\": {\n                    \"data\": null\n                }\n            }\n        },\n        {\n            \"id\": \"aa2cc212-edfa-4bb9-a5a0-e4a54332e7a3\",\n            \"type\": \"teetime\",\n            \"attributes\": {\n                \"blocked\": false,\n                \"date\": \"2025-03-24\",\n                \"hole\": 1,\n                \"format\": \"normal\",\n                \"start_time\": \"12:18\",\n                \"free_slots\": 4,\n                \"subtotal\": 105,\n                \"restrictions\": [],\n                \"rates\": [\n                    {\n                        \"player_type_id\": \"6c50f90f-6a59-4d3c-9ff6-bfffc5a50af1\",\n                        \"green_fee\": 105,\n                        \"half_cart\": 10,\n                        \"one_person_cart\": null,\n                        \"subtotal\": 105\n                    }\n                ]\n            },\n            \"relationships\": {\n                \"course\": {\n                    \"data\": {\n                        \"id\": \"da9587e4-ddf2-423b-8b1e-9d807405abe8\",\n                        \"type\": \"course\"\n                    }\n                },\n                \"event\": {\n                    \"data\": null\n                }\n            }\n        },\n        {\n            \"id\": \"c442e1fa-37b8-40f6-a550-3d539d5129dc\",\n            \"type\": \"teetime\",\n            \"attributes\": {\n                \"blocked\": false,\n                \"date\": \"2025-03-24\",\n                \"hole\": 1,\n                \"format\": \"normal\",\n                \"start_time\": \"12:18\",\n                \"free_slots\": 4,\n                \"subtotal\": 100,\n                \"restrictions\": [],\n                \"rates\": [\n                    {\n                        \"player_type_id\": \"6c50f90f-6a59-4d3c-9ff6-bfffc5a50af1\",\n                        \"green_fee\": 100,\n                        \"half_cart\": 10,\n                        \"one_person_cart\": null,\n                        \"subtotal\": 100\n                    }\n                ]\n            },\n            \"relationships\": {\n                \"course\": {\n                    \"data\": {\n                        \"id\": \"d737cfd5-60bd-48b2-9a70-fffc6639d164\",\n                        \"type\": \"course\"\n                    }\n                },\n                \"event\": {\n                    \"data\": null\n                }\n            }\n        },\n        {\n            \"id\": \"930493b5-1289-46c0-9678-6b45293057c3\",\n            \"type\": \"teetime\",\n            \"attributes\": {\n                \"blocked\": false,\n                \"date\": \"2025-03-24\",\n                \"hole\": 1,\n                \"format\": \"normal\",\n                \"start_time\": \"12:27\",\n                \"free_slots\": 4,\n                \"subtotal\": 105,\n                \"restrictions\": [],\n                \"rates\": [\n                    {\n                        \"player_type_id\": \"6c50f90f-6a59-4d3c-9ff6-bfffc5a50af1\",\n                        \"green_fee\": 105,\n                        \"half_cart\": 10,\n                        \"one_person_cart\": null,\n                        \"subtotal\": 105\n                    }\n                ]\n            },\n            \"relationships\": {\n                \"course\": {\n                    \"data\": {\n                        \"id\": \"da9587e4-ddf2-423b-8b1e-9d807405abe8\",\n                        \"type\": \"course\"\n                    }\n                },\n                \"event\": {\n                    \"data\": null\n                }\n            }\n        },\n        {\n            \"id\": \"0a8691e4-b424-41c2-b683-5355ef9d7601\",\n            \"type\": \"teetime\",\n            \"attributes\": {\n                \"blocked\": false,\n                \"date\": \"2025-03-24\",\n                \"hole\": 1,\n                \"format\": \"normal\",\n                \"start_time\": \"12:27\",\n                \"free_slots\": 4,\n                \"subtotal\": 100,\n                \"restrictions\": [],\n                \"rates\": [\n                    {\n                        \"player_type_id\": \"6c50f90f-6a59-4d3c-9ff6-bfffc5a50af1\",\n                        \"green_fee\": 100,\n                        \"half_cart\": 10,\n                        \"one_person_cart\": null,\n                        \"subtotal\": 100\n                    }\n                ]\n            },\n            \"relationships\": {\n                \"course\": {\n                    \"data\": {\n                        \"id\": \"d737cfd5-60bd-48b2-9a70-fffc6639d164\",\n                        \"type\": \"course\"\n                    }\n                },\n                \"event\": {\n                    \"data\": null\n                }\n            }\n        },\n        {\n            \"id\": \"11814c11-f138-4e21-8ab5-f169c61414e8\",\n            \"type\": \"teetime\",\n            \"attributes\": {\n                \"blocked\": false,\n                \"date\": \"2025-03-24\",\n                \"hole\": 1,\n                \"format\": \"normal\",\n                \"start_time\": \"12:30\",\n                \"free_slots\": 4,\n                \"subtotal\": 100,\n                \"restrictions\": [],\n                \"rates\": [\n                    {\n                        \"player_type_id\": \"6c50f90f-6a59-4d3c-9ff6-bfffc5a50af1\",\n                        \"green_fee\": 100,\n                        \"half_cart\": 10,\n                        \"one_person_cart\": null,\n                        \"subtotal\": 100\n                    }\n                ]\n            },\n            \"relationships\": {\n                \"course\": {\n                    \"data\": {\n                        \"id\": \"7bec633e-e246-47b8-b22e-b2ddc9ca615c\",\n                        \"type\": \"course\"\n                    }\n                },\n                \"event\": {\n                    \"data\": null\n                }\n            }\n        },\n        {\n            \"id\": \"f231cc36-c15e-4ee4-8454-fbfc116c5190\",\n            \"type\": \"teetime\",\n            \"attributes\": {\n                \"blocked\": false,\n                \"date\": \"2025-03-24\",\n                \"hole\": 1,\n                \"format\": \"normal\",\n                \"start_time\": \"12:36\",\n                \"free_slots\": 4,\n                \"subtotal\": 100,\n                \"restrictions\": [],\n                \"rates\": [\n                    {\n                        \"player_type_id\": \"6c50f90f-6a59-4d3c-9ff6-bfffc5a50af1\",\n                        \"green_fee\": 100,\n                        \"half_cart\": 10,\n                        \"one_person_cart\": null,\n                        \"subtotal\": 100\n                    }\n                ]\n            },\n            \"relationships\": {\n                \"course\": {\n                    \"data\": {\n                        \"id\": \"d737cfd5-60bd-48b2-9a70-fffc6639d164\",\n                        \"type\": \"course\"\n                    }\n                },\n                \"event\": {\n                    \"data\": null\n                }\n            }\n        },\n        {\n            \"id\": \"2fc1be26-400d-4233-867d-12f8ec1fc944\",\n            \"type\": \"teetime\",\n            \"attributes\": {\n                \"blocked\": false,\n                \"date\": \"2025-03-24\",\n                \"hole\": 1,\n                \"format\": \"normal\",\n                \"start_time\": \"12:36\",\n                \"free_slots\": 4,\n                \"subtotal\": 105,\n                \"restrictions\": [],\n                \"rates\": [\n                    {\n                        \"player_type_id\": \"6c50f90f-6a59-4d3c-9ff6-bfffc5a50af1\",\n                        \"green_fee\": 105,\n                        \"half_cart\": 10,\n                        \"one_person_cart\": null,\n                        \"subtotal\": 105\n                    }\n                ]\n            },\n            \"relationships\": {\n                \"course\": {\n                    \"data\": {\n                        \"id\": \"da9587e4-ddf2-423b-8b1e-9d807405abe8\",\n                        \"type\": \"course\"\n                    }\n                },\n                \"event\": {\n                    \"data\": null\n                }\n            }\n        },\n        {\n            \"id\": \"367e2785-2b7b-45ef-9bc9-c6e5230588c5\",\n            \"type\": \"teetime\",\n            \"attributes\": {\n                \"blocked\": false,\n                \"date\": \"2025-03-24\",\n                \"hole\": 1,\n                \"format\": \"normal\",\n                \"start_time\": \"12:45\",\n                \"free_slots\": 4,\n                \"subtotal\": 105,\n                \"restrictions\": [],\n                \"rates\": [\n                    {\n                        \"player_type_id\": \"6c50f90f-6a59-4d3c-9ff6-bfffc5a50af1\",\n                        \"green_fee\": 105,\n                        \"half_cart\": 10,\n                        \"one_person_cart\": null,\n                        \"subtotal\": 105\n                    }\n                ]\n            },\n            \"relationships\": {\n                \"course\": {\n                    \"data\": {\n                        \"id\": \"da9587e4-ddf2-423b-8b1e-9d807405abe8\",\n                        \"type\": \"course\"\n                    }\n                },\n                \"event\": {\n                    \"data\": null\n                }\n            }\n        },\n        {\n            \"id\": \"84583140-ea04-4aca-a52e-0d1de3f58f51\",\n            \"type\": \"teetime\",\n            \"attributes\": {\n                \"blocked\": false,\n                \"date\": \"2025-03-24\",\n                \"hole\": 1,\n                \"format\": \"normal\",\n                \"start_time\": \"12:45\",\n                \"free_slots\": 4,\n                \"subtotal\": 100,\n                \"restrictions\": [],\n                \"rates\": [\n                    {\n                        \"player_type_id\": \"6c50f90f-6a59-4d3c-9ff6-bfffc5a50af1\",\n                        \"green_fee\": 100,\n                        \"half_cart\": 10,\n                        \"one_person_cart\": null,\n                        \"subtotal\": 100\n                    }\n                ]\n            },\n            \"relationships\": {\n                \"course\": {\n                    \"data\": {\n                        \"id\": \"d737cfd5-60bd-48b2-9a70-fffc6639d164\",\n                        \"type\": \"course\"\n                    }\n                },\n                \"event\": {\n                    \"data\": null\n                }\n            }\n        },\n        {\n            \"id\": \"725dcbb1-69ed-4a44-a010-db5f9e51809f\",\n            \"type\": \"teetime\",\n            \"attributes\": {\n                \"blocked\": false,\n                \"date\": \"2025-03-24\",\n                \"hole\": 1,\n                \"format\": \"normal\",\n                \"start_time\": \"12:45\",\n                \"free_slots\": 4,\n                \"subtotal\": 100,\n                \"restrictions\": [],\n                \"rates\": [\n                    {\n                        \"player_type_id\": \"6c50f90f-6a59-4d3c-9ff6-bfffc5a50af1\",\n                        \"green_fee\": 100,\n                        \"half_cart\": 10,\n                        \"one_person_cart\": null,\n                        \"subtotal\": 100\n                    }\n                ]\n            },\n            \"relationships\": {\n                \"course\": {\n                    \"data\": {\n                        \"id\": \"7bec633e-e246-47b8-b22e-b2ddc9ca615c\",\n                        \"type\": \"course\"\n                    }\n                },\n                \"event\": {\n                    \"data\": null\n                }\n            }\n        },\n        {\n            \"id\": \"4e15de7e-2fc9-4a08-8743-0b41664a9032\",\n            \"type\": \"teetime\",\n            \"attributes\": {\n                \"blocked\": false,\n                \"date\": \"2025-03-24\",\n                \"hole\": 1,\n                \"format\": \"normal\",\n                \"start_time\": \"12:54\",\n                \"free_slots\": 4,\n                \"subtotal\": 105,\n                \"restrictions\": [],\n                \"rates\": [\n                    {\n                        \"player_type_id\": \"6c50f90f-6a59-4d3c-9ff6-bfffc5a50af1\",\n                        \"green_fee\": 105,\n                        \"half_cart\": 10,\n                        \"one_person_cart\": null,\n                        \"subtotal\": 105\n                    }\n                ]\n            },\n            \"relationships\": {\n                \"course\": {\n                    \"data\": {\n                        \"id\": \"da9587e4-ddf2-423b-8b1e-9d807405abe8\",\n                        \"type\": \"course\"\n                    }\n                },\n                \"event\": {\n                    \"data\": null\n                }\n            }\n        },\n        {\n            \"id\": \"d0102e23-369d-474e-872e-3a356f6eeb1e\",\n            \"type\": \"teetime\",\n            \"attributes\": {\n                \"blocked\": false,\n                \"date\": \"2025-03-24\",\n                \"hole\": 1,\n                \"format\": \"normal\",\n                \"start_time\": \"12:54\",\n                \"free_slots\": 4,\n                \"subtotal\": 100,\n                \"restrictions\": [],\n                \"rates\": [\n                    {\n                        \"player_type_id\": \"6c50f90f-6a59-4d3c-9ff6-bfffc5a50af1\",\n                        \"green_fee\": 100,\n                        \"half_cart\": 10,\n                        \"one_person_cart\": null,\n                        \"subtotal\": 100\n                    }\n                ]\n            },\n            \"relationships\": {\n                \"course\": {\n                    \"data\": {\n                        \"id\": \"d737cfd5-60bd-48b2-9a70-fffc6639d164\",\n                        \"type\": \"course\"\n                    }\n                },\n                \"event\": {\n                    \"data\": null\n                }\n            }\n        },\n        {\n            \"id\": \"83e2261d-c7d7-4509-8501-1cc37664246e\",\n            \"type\": \"teetime\",\n            \"attributes\": {\n                \"blocked\": false,\n                \"date\": \"2025-03-24\",\n                \"hole\": 1,\n                \"format\": \"normal\",\n                \"start_time\": \"13:00\",\n                \"free_slots\": 4,\n                \"subtotal\": 100,\n                \"restrictions\": [],\n                \"rates\": [\n                    {\n                        \"player_type_id\": \"6c50f90f-6a59-4d3c-9ff6-bfffc5a50af1\",\n                        \"green_fee\": 100,\n                        \"half_cart\": 10,\n                        \"one_person_cart\": null,\n                        \"subtotal\": 100\n                    }\n                ]\n            },\n            \"relationships\": {\n                \"course\": {\n                    \"data\": {\n                        \"id\": \"7bec633e-e246-47b8-b22e-b2ddc9ca615c\",\n                        \"type\": \"course\"\n                    }\n                },\n                \"event\": {\n                    \"data\": null\n                }\n            }\n        },\n        {\n            \"id\": \"a8a49ba7-ef77-4b70-b568-7cf8e8a4bcd3\",\n            \"type\": \"teetime\",\n            \"attributes\": {\n                \"blocked\": false,\n                \"date\": \"2025-03-24\",\n                \"hole\": 1,\n                \"format\": \"normal\",\n                \"start_time\": \"13:03\",\n                \"free_slots\": 4,\n                \"subtotal\": 100,\n                \"restrictions\": [],\n                \"rates\": [\n                    {\n                        \"player_type_id\": \"6c50f90f-6a59-4d3c-9ff6-bfffc5a50af1\",\n                        \"green_fee\": 100,\n                        \"half_cart\": 10,\n                        \"one_person_cart\": null,\n                        \"subtotal\": 100\n                    }\n                ]\n            },\n            \"relationships\": {\n                \"course\": {\n                    \"data\": {\n                        \"id\": \"d737cfd5-60bd-48b2-9a70-fffc6639d164\",\n                        \"type\": \"course\"\n                    }\n                },\n                \"event\": {\n                    \"data\": null\n                }\n            }\n        },\n        {\n            \"id\": \"e80111c0-5602-4236-847a-1c7271c78fc6\",\n            \"type\": \"teetime\",\n            \"attributes\": {\n                \"blocked\": false,\n                \"date\": \"2025-03-24\",\n                \"hole\": 1,\n                \"format\": \"normal\",\n                \"start_time\": \"13:03\",\n                \"free_slots\": 4,\n                \"subtotal\": 105,\n                \"restrictions\": [],\n                \"rates\": [\n                    {\n                        \"player_type_id\": \"6c50f90f-6a59-4d3c-9ff6-bfffc5a50af1\",\n                        \"green_fee\": 105,\n                        \"half_cart\": 10,\n                        \"one_person_cart\": null,\n                        \"subtotal\": 105\n                    }\n                ]\n            },\n            \"relationships\": {\n                \"course\": {\n                    \"data\": {\n                        \"id\": \"da9587e4-ddf2-423b-8b1e-9d807405abe8\",\n                        \"type\": \"course\"\n                    }\n                },\n                \"event\": {\n                    \"data\": null\n                }\n            }\n        }\n    ],\n    \"meta\": {\n        \"page\": 5,\n        \"page_size\": 25,\n        \"total\": 223,\n        \"total_pages\": 9\n    }\n}"}],"_postman_id":"e839d8ba-c495-4571-8d9b-93757174c107"},{"name":"Retrieve a specific teetime","id":"38a8cc9d-dd86-4493-a9fe-c1481d4ea047","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[{"key":"Accept","value":"application/vnd.api+json"},{"key":"Authorization","value":"Bearer "}],"url":"https://partner-staging.chronogolf.com/partner_api/v2/teetimes/8c92c8eb-d7e7-4537-be7a-de5db466391b","urlObject":{"path":["partner_api","v2","teetimes","8c92c8eb-d7e7-4537-be7a-de5db466391b"],"host":["https://partner-staging.chronogolf.com"],"query":[{"disabled":true,"key":"include[]","value":"course"},{"disabled":true,"key":"include[]","value":"event"},{"disabled":true,"key":"custom_params[player_count]","value":"int, 1-4"},{"disabled":true,"key":"custom_params[holes]","value":"18"},{"disabled":true,"key":"custom_params[player_types][]","value":"3b84cd17-fffb-44f9-8570-a690231af66d"},{"disabled":true,"key":"custom_params[with_pricing]","value":"true/false"},{"disabled":true,"key":"custom_params[player_types][]","value":"{{player_type_2_id}}"}],"variable":[]}},"response":[{"id":"66fb6638-5012-4d3e-9c9e-7e05b31bd866","name":"Retrieve a specific teetime","originalRequest":{"method":"GET","header":[{"key":"Accept","value":"application/vnd.api+json"},{"key":"Authorization","value":"Bearer "}],"url":{"raw":"https://partner-staging.chronogolf.com/partner_api/v2/teetimes/8c92c8eb-d7e7-4537-be7a-de5db466391b","host":["https://partner-staging.chronogolf.com"],"path":["partner_api","v2","teetimes","8c92c8eb-d7e7-4537-be7a-de5db466391b"],"query":[{"key":"filter[course]","value":"5e7c2077-baae-4fa0-95ea-3ce02124284e","description":"filter teetimes to a specific course","disabled":true},{"key":"filter[date]","value":"YYYY-MM-DD","disabled":true},{"key":"include[]","value":"course","disabled":true},{"key":"include[]","value":"event","disabled":true},{"key":"custom_params[player_count]","value":"int, 1-4","disabled":true},{"key":"custom_params[holes]","value":"18","disabled":true},{"key":"custom_params[player_types]","value":"[player_type_id, player_type_id]","disabled":true},{"key":"custom_params[with_pricing]","value":"true/false","disabled":true},{"key":"","type":"text","value":"","disabled":true},{"key":"","value":"","disabled":true}]}},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Date","value":"Mon, 24 Mar 2025 19:12:50 GMT"},{"key":"Content-Type","value":"application/vnd.api+json"},{"key":"Content-Length","value":"229"},{"key":"Connection","value":"keep-alive"},{"key":"x-frame-options","value":"ALLOWALL"},{"key":"vary","value":"Accept,Accept-Encoding"},{"key":"Content-Encoding","value":"gzip"},{"key":"etag","value":"W/\"c6573da4c205968dda8aa0a10ccbb8f6\""},{"key":"Cache-Control","value":"max-age=0, private, must-revalidate"},{"key":"Set-Cookie","value":"_ls_oidc_auth_token=; domain=.chronogolf.com; path=/; max-age=0; expires=Thu, 01 Jan 1970 00:00:00 GMT; SameSite=Lax; secure"},{"key":"Set-Cookie","value":"_ls_oidc_jti=; domain=.chronogolf.com; path=/; max-age=0; expires=Thu, 01 Jan 1970 00:00:00 GMT; SameSite=Lax; secure"},{"key":"x-request-id","value":"ce6a3ff1-0b02-4b60-8e9c-159a880125e9"},{"key":"x-runtime","value":"0.445545"},{"key":"strict-transport-security","value":"max-age=63072000; includeSubDomains"},{"key":"x-envoy-upstream-service-time","value":"449"},{"key":"cf-cache-status","value":"DYNAMIC"},{"key":"Server","value":"cloudflare"},{"key":"CF-RAY","value":"92587b765b21e600-IAD"}],"cookie":[],"responseTime":null,"body":"{\n    \"data\": {\n        \"id\": \"9108f182-0bd3-42ba-9e4c-80aaf1499963\",\n        \"type\": \"teetime\",\n        \"attributes\": {\n            \"blocked\": false,\n            \"date\": \"2025-03-24\",\n            \"hole\": 1,\n            \"format\": \"normal\",\n            \"start_time\": \"11:45\",\n            \"free_slots\": 4\n        },\n        \"relationships\": {\n            \"course\": {\n                \"data\": {\n                    \"id\": \"7bec633e-e246-47b8-b22e-b2ddc9ca615c\",\n                    \"type\": \"course\"\n                }\n            },\n            \"event\": {\n                \"data\": null\n            }\n        }\n    }\n}"}],"_postman_id":"38a8cc9d-dd86-4493-a9fe-c1481d4ea047"}],"id":"466697c2-c3bb-403e-b4e0-485809bdaf17","_postman_id":"466697c2-c3bb-403e-b4e0-485809bdaf17","description":""},{"name":"Customers","item":[{"name":"List all customers","id":"65ce01fd-8ef6-4ea7-9545-7f00d9790c7c","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[{"key":"Accept","value":"application/vnd.api+json"},{"key":"Authorization","value":"Bearer "}],"url":"https://partner-staging.chronogolf.com/partner_api/v2/organizations/044ba009-d9f2-47c2-90c1-54fcd35996a4/customers","description":"<p>Returns a list of the organization's customers.</p>\n<p>If <code>filter[phone]</code> or <code>filter[email]</code> leads to a 403 response, the club has disabled the <strong>customer data sharing</strong> permissions.</p>\n<p>Those permissions are available in the Golf UI under <strong>Settings &gt; Integrators</strong> by clicking on the name of the integration.</p>\n<p>The <code>include[]</code> address or extended_data will remain empty if the same permissions are disabled by the club.</p>\n<p>If in the API response, you don't get email, phone, gender, or date of birth fields, the club has disabled such permissions.</p>\n","urlObject":{"path":["partner_api","v2","organizations","044ba009-d9f2-47c2-90c1-54fcd35996a4","customers"],"host":["https://partner-staging.chronogolf.com"],"query":[{"disabled":true,"key":"filter[first_name]","value":"First name"},{"disabled":true,"key":"filter[last_name]","value":"Last name"},{"disabled":true,"key":"filter[email]","value":"email"},{"disabled":true,"key":"filter[phone]","value":"phone number"},{"disabled":true,"description":{"content":"<p>Returns only customers that got created/updated/archived since the timestamp</p>\n","type":"text/plain"},"key":"filter[updated_since]","value":"YYYY-MM-DD"},{"disabled":true,"key":"filter[player_types][]","value":"3b84cd17-fffb-44f9-8570-a690231af66d"},{"disabled":true,"description":{"content":"<p>show only the players that have or have not been archived. </p>\n","type":"text/plain"},"key":"filter[archived]","value":"true/false"},{"disabled":true,"description":{"content":"<p>includes the customers' address information</p>\n","type":"text/plain"},"key":"include[]","value":"address"},{"disabled":true,"description":{"content":"<p>Includes the organization information</p>\n","type":"text/plain"},"key":"include[]","value":"organization"},{"disabled":true,"description":{"content":"<p>Includes the player types' information</p>\n","type":"text/plain"},"key":"include[]","value":"player_types"},{"disabled":true,"description":{"content":"<p>Includes data for custom fields (if applicable)</p>\n","type":"text/plain"},"key":"include[]","value":"extended_data"}],"variable":[]}},"response":[{"id":"867f23ac-fdbf-49c7-aad0-e17de3ebf598","name":"List Customers","originalRequest":{"method":"GET","header":[{"key":"Accept","value":"application/json"},{"key":"Authorization","value":"Bearer "}],"url":{"raw":"https://partner-staging.chronogolf.com/partner_api/v2/organizations/044ba009-d9f2-47c2-90c1-54fcd35996a4/customers?","host":["https://partner-staging.chronogolf.com"],"path":["partner_api","v2","organizations","044ba009-d9f2-47c2-90c1-54fcd35996a4","customers"],"query":[{"key":"include[]","value":"player_types","disabled":true},{"key":"filter[first_name]","value":"Billy","disabled":true},{"key":"filter[last_name]","value":"Allen","type":"text","disabled":true},{"key":"filter[email]","value":"billy.allen","type":"text","disabled":true},{"key":"filter[phone]","value":"","type":"text","disabled":true}]}},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Date","value":"Tue, 13 Aug 2019 20:30:04 GMT"},{"key":"Content-Type","value":"application/vnd.api+json"},{"key":"Transfer-Encoding","value":"chunked"},{"key":"Connection","value":"keep-alive"},{"key":"Status","value":"200 OK"},{"key":"Cache-Control","value":"max-age=0, private, must-revalidate"},{"key":"Vary","value":"Accept-Encoding"},{"key":"Content-Encoding","value":"gzip"},{"key":"Strict-Transport-Security","value":"max-age=31536000; includeSubDomains"},{"key":"Etag","value":"W/\"07498106d06dd82d0c1645b242f78d4c\""},{"key":"X-Frame-Options","value":"ALLOWALL"},{"key":"X-Runtime","value":"0.125404"},{"key":"X-Request-Id","value":"615652e6-5934-4654-93c7-90d640bb2ba0"},{"key":"X-Powered-By","value":"Phusion Passenger Enterprise 6.0.2"},{"key":"Via","value":"1.1 vegur"},{"key":"Expect-CT","value":"max-age=604800, report-uri=\"https://report-uri.cloudflare.com/cdn-cgi/beacon/expect-ct\""},{"key":"Server","value":"cloudflare"},{"key":"CF-RAY","value":"505d71ded9a3ca67-YUL"}],"cookie":[],"responseTime":null,"body":"{\n    \"data\": [\n        {\n            \"id\": \"e767e06d-e8d9-40ef-8b45-d0363b77a1fb\",\n            \"type\": \"customer\",\n            \"attributes\": {\n                \"first_name\": \"Billy\",\n                \"last_name\": \"Allen\",\n                \"email\": \"billy.allen@golf-de-saint-germain.fr\",\n                \"gender\": null,\n                \"phone\": null\n            },\n            \"relationships\": {\n                \"address\": {\n                    \"data\": null\n                }\n            }\n        },\n        {\n            \"id\": \"a2216e98-73f4-4d2c-9884-19502487c30d\",\n            \"type\": \"customer\",\n            \"attributes\": {\n                \"first_name\": \"Billy\",\n                \"last_name\": \"Allen\",\n                \"email\": \"billy.allen@royal-montreal-golf-club.ca\",\n                \"gender\": null,\n                \"phone\": null\n            },\n            \"relationships\": {\n                \"address\": {\n                    \"data\": null\n                }\n            }\n        },\n        {\n            \"id\": \"2b0f324d-b846-4c8d-be95-ae6ab5e6dc75\",\n            \"type\": \"customer\",\n            \"attributes\": {\n                \"first_name\": \"Connor\",\n                \"last_name\": \"Anderson\",\n                \"email\": \"connor.anderson@golf-de-saint-germain.fr\",\n                \"gender\": null,\n                \"phone\": null\n            },\n            \"relationships\": {\n                \"address\": {\n                    \"data\": null\n                }\n            }\n        },\n        {\n            \"id\": \"db5cdecd-48bd-4fde-9a3f-1637ca104e3e\",\n            \"type\": \"customer\",\n            \"attributes\": {\n                \"first_name\": \"Connor\",\n                \"last_name\": \"Anderson\",\n                \"email\": \"connor.anderson@royal-montreal-golf-club.ca\",\n                \"gender\": null,\n                \"phone\": null\n            },\n            \"relationships\": {\n                \"address\": {\n                    \"data\": null\n                }\n            }\n        },\n        {\n            \"id\": \"84aa2191-d844-472d-aaf7-bcd839992606\",\n            \"type\": \"customer\",\n            \"attributes\": {\n                \"first_name\": \"Emerson\",\n                \"last_name\": \"Atkins\",\n                \"email\": \"emerson.atkins@golf-de-saint-germain.fr\",\n                \"gender\": null,\n                \"phone\": null\n            },\n            \"relationships\": {\n                \"address\": {\n                    \"data\": null\n                }\n            }\n        },\n        {\n            \"id\": \"87183b07-eb65-4a93-ad1e-7687b852c2ca\",\n            \"type\": \"customer\",\n            \"attributes\": {\n                \"first_name\": \"Emerson\",\n                \"last_name\": \"Atkins\",\n                \"email\": \"emerson.atkins@royal-montreal-golf-club.ca\",\n                \"gender\": null,\n                \"phone\": null\n            },\n            \"relationships\": {\n                \"address\": {\n                    \"data\": null\n                }\n            }\n        },\n        {\n            \"id\": \"85557d78-d0f1-455d-8328-181e6746ad66\",\n            \"type\": \"customer\",\n            \"attributes\": {\n                \"first_name\": \"Sara\",\n                \"last_name\": \"Badeaux\",\n                \"email\": \"sara.badeaux@golf-de-saint-germain.fr\",\n                \"gender\": null,\n                \"phone\": null\n            },\n            \"relationships\": {\n                \"address\": {\n                    \"data\": null\n                }\n            }\n        },\n        {\n            \"id\": \"b273f0a1-fcbd-4a50-9e8f-990a605566de\",\n            \"type\": \"customer\",\n            \"attributes\": {\n                \"first_name\": \"Sara\",\n                \"last_name\": \"Badeaux\",\n                \"email\": \"sara.badeaux@royal-montreal-golf-club.ca\",\n                \"gender\": null,\n                \"phone\": null\n            },\n            \"relationships\": {\n                \"address\": {\n                    \"data\": null\n                }\n            }\n        },\n        {\n            \"id\": \"dd625f6c-de02-4355-a72c-0f5b512aa8da\",\n            \"type\": \"customer\",\n            \"attributes\": {\n                \"first_name\": \"Edmond\",\n                \"last_name\": \"Barnier\",\n                \"email\": \"edmond.barnier@golf-de-saint-germain.fr\",\n                \"gender\": null,\n                \"phone\": null\n            },\n            \"relationships\": {\n                \"address\": {\n                    \"data\": null\n                }\n            }\n        },\n        {\n            \"id\": \"16592574-0ee4-425a-86be-8645b67030d2\",\n            \"type\": \"customer\",\n            \"attributes\": {\n                \"first_name\": \"Edmond\",\n                \"last_name\": \"Barnier\",\n                \"email\": \"edmond.barnier@royal-montreal-golf-club.ca\",\n                \"gender\": null,\n                \"phone\": null\n            },\n            \"relationships\": {\n                \"address\": {\n                    \"data\": null\n                }\n            }\n        },\n        {\n            \"id\": \"fa7dd92b-9ddd-4239-bcd0-6c39200b7ed8\",\n            \"type\": \"customer\",\n            \"attributes\": {\n                \"first_name\": \"Jessica\",\n                \"last_name\": \"Bell\",\n                \"email\": \"jessica@chronogolf.fr\",\n                \"gender\": null,\n                \"phone\": null\n            },\n            \"relationships\": {\n                \"address\": {\n                    \"data\": null\n                }\n            }\n        },\n        {\n            \"id\": \"3c8b1a0b-f161-4876-8e4b-5e55a6586ff1\",\n            \"type\": \"customer\",\n            \"attributes\": {\n                \"first_name\": \"Jessica\",\n                \"last_name\": \"Bell\",\n                \"email\": \"jessica@chronogolf.ca\",\n                \"gender\": null,\n                \"phone\": null\n            },\n            \"relationships\": {\n                \"address\": {\n                    \"data\": null\n                }\n            }\n        },\n        {\n            \"id\": \"bc75aff8-a8d1-4482-bc9e-84843a728885\",\n            \"type\": \"customer\",\n            \"attributes\": {\n                \"first_name\": \"Jesse\",\n                \"last_name\": \"Black\",\n                \"email\": \"jesse.black@golf-de-saint-germain.fr\",\n                \"gender\": null,\n                \"phone\": null\n            },\n            \"relationships\": {\n                \"address\": {\n                    \"data\": null\n                }\n            }\n        },\n        {\n            \"id\": \"7a03e097-bc48-4447-aea6-4cf668fff733\",\n            \"type\": \"customer\",\n            \"attributes\": {\n                \"first_name\": \"Jesse\",\n                \"last_name\": \"Black\",\n                \"email\": \"jesse.black@royal-montreal-golf-club.ca\",\n                \"gender\": null,\n                \"phone\": null\n            },\n            \"relationships\": {\n                \"address\": {\n                    \"data\": null\n                }\n            }\n        },\n        {\n            \"id\": \"f89cc896-b60b-4b68-88d9-c539131132b2\",\n            \"type\": \"customer\",\n            \"attributes\": {\n                \"first_name\": \"Alex\",\n                \"last_name\": \"Booth\",\n                \"email\": \"alex.booth@golf-de-saint-germain.fr\",\n                \"gender\": null,\n                \"phone\": null\n            },\n            \"relationships\": {\n                \"address\": {\n                    \"data\": null\n                }\n            }\n        },\n        {\n            \"id\": \"9710c6e4-5432-4bc2-b368-7298a3fd9ca9\",\n            \"type\": \"customer\",\n            \"attributes\": {\n                \"first_name\": \"Alex\",\n                \"last_name\": \"Booth\",\n                \"email\": \"alex.booth@royal-montreal-golf-club.ca\",\n                \"gender\": null,\n                \"phone\": null\n            },\n            \"relationships\": {\n                \"address\": {\n                    \"data\": null\n                }\n            }\n        },\n        {\n            \"id\": \"f7a82954-6003-41f8-95d7-ac52c4f99be4\",\n            \"type\": \"customer\",\n            \"attributes\": {\n                \"first_name\": \"Camille\",\n                \"last_name\": \"Bossuet\",\n                \"email\": \"camille.bossuet@golf-de-saint-germain.fr\",\n                \"gender\": null,\n                \"phone\": null\n            },\n            \"relationships\": {\n                \"address\": {\n                    \"data\": null\n                }\n            }\n        },\n        {\n            \"id\": \"dbf45fde-07d0-44f2-818f-a942e0e176d5\",\n            \"type\": \"customer\",\n            \"attributes\": {\n                \"first_name\": \"Camille\",\n                \"last_name\": \"Bossuet\",\n                \"email\": \"camille.bossuet@royal-montreal-golf-club.ca\",\n                \"gender\": null,\n                \"phone\": null\n            },\n            \"relationships\": {\n                \"address\": {\n                    \"data\": null\n                }\n            }\n        },\n        {\n            \"id\": \"111f16df-36a3-4503-9e14-7a72727b611a\",\n            \"type\": \"customer\",\n            \"attributes\": {\n                \"first_name\": \"Vincent\",\n                \"last_name\": \"Brunelle\",\n                \"email\": \"vincent.brunelle@golf-de-saint-germain.fr\",\n                \"gender\": null,\n                \"phone\": null\n            },\n            \"relationships\": {\n                \"address\": {\n                    \"data\": null\n                }\n            }\n        },\n        {\n            \"id\": \"c58422ce-def8-4292-b348-0f2ccddeef79\",\n            \"type\": \"customer\",\n            \"attributes\": {\n                \"first_name\": \"Vincent\",\n                \"last_name\": \"Brunelle\",\n                \"email\": \"vincent.brunelle@royal-montreal-golf-club.ca\",\n                \"gender\": null,\n                \"phone\": null\n            },\n            \"relationships\": {\n                \"address\": {\n                    \"data\": null\n                }\n            }\n        },\n        {\n            \"id\": \"c6be11ba-260b-4bff-9fe1-d022b0a9a7ec\",\n            \"type\": \"customer\",\n            \"attributes\": {\n                \"first_name\": \"Charlotte\",\n                \"last_name\": \"Byrne\",\n                \"email\": \"charlotte.byrne@golf-de-saint-germain.fr\",\n                \"gender\": null,\n                \"phone\": null\n            },\n            \"relationships\": {\n                \"address\": {\n                    \"data\": null\n                }\n            }\n        },\n        {\n            \"id\": \"9bbbabac-9fa9-4c53-9285-4d6c59ef7641\",\n            \"type\": \"customer\",\n            \"attributes\": {\n                \"first_name\": \"Charlotte\",\n                \"last_name\": \"Byrne\",\n                \"email\": \"charlotte.byrne@royal-montreal-golf-club.ca\",\n                \"gender\": null,\n                \"phone\": null\n            },\n            \"relationships\": {\n                \"address\": {\n                    \"data\": null\n                }\n            }\n        },\n        {\n            \"id\": \"3f2868a4-708a-45f5-b3c4-21bc811b7f36\",\n            \"type\": \"customer\",\n            \"attributes\": {\n                \"first_name\": \"Virginie\",\n                \"last_name\": \"Cailloux\",\n                \"email\": \"virginie.cailloux@golf-de-saint-germain.fr\",\n                \"gender\": null,\n                \"phone\": null\n            },\n            \"relationships\": {\n                \"address\": {\n                    \"data\": null\n                }\n            }\n        },\n        {\n            \"id\": \"31b0fdfa-b741-4872-bc7c-c69261645e67\",\n            \"type\": \"customer\",\n            \"attributes\": {\n                \"first_name\": \"Virginie\",\n                \"last_name\": \"Cailloux\",\n                \"email\": \"virginie.cailloux@royal-montreal-golf-club.ca\",\n                \"gender\": null,\n                \"phone\": null\n            },\n            \"relationships\": {\n                \"address\": {\n                    \"data\": null\n                }\n            }\n        },\n        {\n            \"id\": \"14f70550-1fd9-46bb-8b5b-5aa96265ebb5\",\n            \"type\": \"customer\",\n            \"attributes\": {\n                \"first_name\": \"Julien\",\n                \"last_name\": \"Carrel\",\n                \"email\": \"julien@chronogolf.fr\",\n                \"gender\": null,\n                \"phone\": null\n            },\n            \"relationships\": {\n                \"address\": {\n                    \"data\": null\n                }\n            }\n        }\n    ],\n    \"meta\": {\n        \"page\": 1,\n        \"page_size\": 25,\n        \"total\": 112,\n        \"total_pages\": 5\n    }\n}"}],"_postman_id":"65ce01fd-8ef6-4ea7-9545-7f00d9790c7c"},{"name":"Retrieve a specific customer","id":"5c274ec5-819f-4c0c-a79e-d17fe4899954","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[{"key":"Accept","value":"application/vnd.api+json"},{"key":"Authorization","value":"Bearer "}],"url":"https://partner-staging.chronogolf.com/partner_api/v2/customers/?organization_id=044ba009-d9f2-47c2-90c1-54fcd35996a4","description":"<p>Returns a specific customer matching the specified ID.</p>\n","urlObject":{"path":["partner_api","v2","customers",""],"host":["https://partner-staging.chronogolf.com"],"query":[{"disabled":true,"key":"include[]","value":"address"},{"disabled":true,"key":"include[]","value":"organization"},{"disabled":true,"key":"include[]","value":"player_types"},{"disabled":true,"key":"include[]","value":"extended_data"},{"description":{"content":"<p>Required</p>\n","type":"text/plain"},"key":"organization_id","value":"044ba009-d9f2-47c2-90c1-54fcd35996a4"}],"variable":[]}},"response":[{"id":"6b79dcf1-d276-4935-b2db-18055eeebda0","name":"Retrieve a specific customer","originalRequest":{"method":"GET","header":[{"key":"Accept","value":"application/vnd.api+json"},{"key":"Authorization","value":"Bearer "}],"url":{"raw":"https://partner-staging.chronogolf.com/partner_api/v2/customers/?organization_id=044ba009-d9f2-47c2-90c1-54fcd35996a4","host":["https://partner-staging.chronogolf.com"],"path":["partner_api","v2","customers",""],"query":[{"key":"include[]","value":"organization","disabled":true},{"key":"include[]","value":"player_types","disabled":true},{"key":"organization_id","value":"044ba009-d9f2-47c2-90c1-54fcd35996a4"},{"key":"include[]","value":"address","disabled":true}]}},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Date","value":"Mon, 17 Mar 2025 15:49:43 GMT"},{"key":"Content-Type","value":"application/vnd.api+json"},{"key":"Content-Length","value":"591"},{"key":"Connection","value":"keep-alive"},{"key":"x-frame-options","value":"ALLOWALL"},{"key":"vary","value":"Accept,Accept-Encoding"},{"key":"Content-Encoding","value":"gzip"},{"key":"etag","value":"W/\"c5d8373cc61fe94ed1a95ce3ace92135\""},{"key":"Cache-Control","value":"max-age=0, private, must-revalidate"},{"key":"Set-Cookie","value":"_ls_oidc_auth_token=; domain=.chronogolf.com; path=/; max-age=0; expires=Thu, 01 Jan 1970 00:00:00 GMT; SameSite=Lax; secure"},{"key":"Set-Cookie","value":"_ls_oidc_jti=; domain=.chronogolf.com; path=/; max-age=0; expires=Thu, 01 Jan 1970 00:00:00 GMT; SameSite=Lax; secure"},{"key":"x-request-id","value":"63200479-6a4e-41ca-80e4-fae1407ba996"},{"key":"x-runtime","value":"0.109139"},{"key":"strict-transport-security","value":"max-age=63072000; includeSubDomains"},{"key":"x-envoy-upstream-service-time","value":"113"},{"key":"cf-cache-status","value":"DYNAMIC"},{"key":"Server","value":"cloudflare"},{"key":"CF-RAY","value":"921da450e83c57c4-IAD"}],"cookie":[],"responseTime":null,"body":"{\n    \"data\": {\n        \"id\": \"adc776b0-94ce-4edf-b7cd-3d621dd1cad5\",\n        \"type\": \"customer\",\n        \"attributes\": {\n            \"first_name\": \"John\",\n            \"last_name\": \"Dev\",\n            \"ref\": \"FA2F-XOU8\",\n            \"member_no\": null,\n            \"marketing_consent\": true,\n            \"date_of_birth\": \"2000-06-05\",\n            \"email\": null,\n            \"gender\": 1,\n            \"phone\": \"55588844778\",\n            \"created_at\": \"2024-11-04T11:17:59-05:00\",\n            \"updated_at\": \"2025-03-17T11:46:28-04:00\",\n            \"archived_at\": null,\n            \"prefers_to_be_hidden\": false,\n            \"default_player_type_id\": \"6c50f90f-6a59-4d3c-9ff6-bfffc5a50af1\",\n            \"tags\": [],\n            \"integrators\": {\n                \"data\": []\n            },\n            \"family_account_primary_customer_id\": null\n        },\n        \"relationships\": {\n            \"address\": {\n                \"data\": {\n                    \"id\": \"0119ce65-3a55-461d-8f47-69efb174d3d9\",\n                    \"type\": \"address\"\n                }\n            },\n            \"organization\": {\n                \"data\": {\n                    \"id\": \"bd270340-3202-44b3-8905-55d3130f2d81\",\n                    \"type\": \"organization\"\n                }\n            },\n            \"subscriptions\": {\n                \"data\": []\n            },\n            \"player_types\": {\n                \"data\": [\n                    {\n                        \"id\": \"6c50f90f-6a59-4d3c-9ff6-bfffc5a50af1\",\n                        \"type\": \"player_type\"\n                    }\n                ]\n            }\n        }\n    },\n    \"included\": [\n        {\n            \"id\": \"0119ce65-3a55-461d-8f47-69efb174d3d9\",\n            \"type\": \"address\",\n            \"attributes\": {\n                \"address_one\": \"700 rue Saint Antoine E\",\n                \"address_two\": null,\n                \"country_code\": \"CA\",\n                \"state_code\": \"QC\",\n                \"city\": \"Montreal\",\n                \"postcode\": \"H2Y 1A6\"\n            }\n        }\n    ]\n}"}],"_postman_id":"5c274ec5-819f-4c0c-a79e-d17fe4899954"},{"name":"Create a customer at a club","id":"9bad59f5-3604-40ec-81ec-f6088fe1db79","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[{"key":"Accept","value":"application/vnd.api+json"},{"key":"Authorization","value":"Bearer "},{"key":"Content-Type","name":"Content-Type","value":"application/vnd.api+json","type":"text"}],"body":{"mode":"raw","raw":"{\n    \"data\": {\n        \"type\": \"customer\",\n        \"attributes\": {\n            \"first_name\": \"joan\",\n            \"last_name\": \"Hale\",\n            \"email\": \"joanhale@royal-montreal-golf-club.ca\",\n            \"phone\": \"555-885-4778\",\n            \"date_of_birth\": \"2000-06-05\",\n            \"gender\": 1,\n            \"member_no\": \"333\",\n            \"tags\": [\n                \"first integrator tag\",\n                \"second integrator tag\"\n            ],\n            \"address\": {\n                \"address_one\": \"700 rue St-Antoine E\",\n                \"address_two\": null,\n                \"country_code\": \"CA\",\n                \"state_code\": \"QC\",\n                \"city\": \"Montreal\",\n                \"postcode\": \"H4Y1A6\"\n            }\n        },\n        \"relationships\": {\n            \"player_type\": {\n                \"data\": {\n                    \"id\": \"3be3e9b0-5767-4115-9c50-45a064dffb4a\",\n                    \"type\": \"player_type\"\n                }    \n            }\n        }\n    }\n}"},"url":"https://partner-staging.chronogolf.com/partner_api/v2/organizations/044ba009-d9f2-47c2-90c1-54fcd35996a4/customers/","description":"<p>The body payload below has all the customer fields you can configure upon customer creation.</p>\n<blockquote>\n<p>{\"errors\":[{\"status\":400,\"code\":\"bad_request\",\"detail\":\"User is already customer of the club\"}]}</p>\n</blockquote>\n<p>The API checks the combination submitted. If names and phones match an existing customer profile, you will get this response.</p>\n<p>Same if the email address already exists, but the detail message is different:</p>\n<blockquote>\n<p>{\"errors\":[{\"status\":400,\"code\":\"bad_request\",\"detail\":\"This email you entered has already been registered with an account: <a href=\"mailto:xxxx@gmail.com\">xxxx@gmail.com</a>\"}]}</p>\n</blockquote>\n","urlObject":{"path":["partner_api","v2","organizations","044ba009-d9f2-47c2-90c1-54fcd35996a4","customers",""],"host":["https://partner-staging.chronogolf.com"],"query":[],"variable":[]}},"response":[{"id":"abcabe12-ed41-4382-b682-1e23413e3d36","name":"Create a customer at a club","originalRequest":{"method":"POST","header":[{"key":"Accept","value":"application/json"},{"key":"Authorization","value":"Bearer "},{"key":"Content-Type","name":"Content-Type","value":"application/json","type":"text"}],"body":{"mode":"raw","raw":"{\"data\": {\n        \"type\": \"customer\",\n        \"attributes\": {\n            \"first_name\": \"Chuck\",\n            \"last_name\": \"Haleran\",\n            \"tags\": [\"first integrator tag\", \"second integrator tag\"],\n            \"email\": \"chaleran@royal-montreal-golf-club.ca\",\n            \"gender\": 1,\n            \"phone\": \"555-885477-8\",\n            \"date_of_birth\": \"2000-06-05\"\n        }\n  }\n}"},"url":"https://partner-staging.chronogolf.com/partner_api/v2/organizations/044ba009-d9f2-47c2-90c1-54fcd35996a4/customers/"},"status":"Created","code":201,"_postman_previewlanguage":"json","header":[{"key":"Date","value":"Thu, 29 Aug 2019 14:20:13 GMT"},{"key":"Content-Type","value":"application/vnd.api+json"},{"key":"Transfer-Encoding","value":"chunked"},{"key":"Connection","value":"keep-alive"},{"key":"Status","value":"201 Created"},{"key":"Cache-Control","value":"max-age=0, private, must-revalidate"},{"key":"Vary","value":"Accept-Encoding"},{"key":"Content-Encoding","value":"gzip"},{"key":"Strict-Transport-Security","value":"max-age=31536000; includeSubDomains"},{"key":"X-Request-Id","value":"fbf99da8-5deb-47bd-9db4-308af67779c7"},{"key":"Location","value":"https://pr-sorenstam.chronogolf.ca/partner_api/v2/organizations/8e678adf-4308-436f-a0e0-379a8f6551e7/customers/703593f1-904e-42ad-a250-12086ad5425f"},{"key":"Etag","value":"W/\"f33e266c3e46ab035950f38d54329b5d\""},{"key":"X-Frame-Options","value":"ALLOWALL"},{"key":"X-Runtime","value":"1.710910"},{"key":"X-Powered-By","value":"Phusion Passenger Enterprise 6.0.2"},{"key":"Via","value":"1.1 vegur"},{"key":"Expect-CT","value":"max-age=604800, report-uri=\"https://report-uri.cloudflare.com/cdn-cgi/beacon/expect-ct\""},{"key":"Server","value":"cloudflare"},{"key":"CF-RAY","value":"50df2a0c1ea02430-IAD"}],"cookie":[],"responseTime":null,"body":"{\n    \"data\": {\n        \"id\": \"703593f1-904e-42ad-a250-12086ad5425f\",\n        \"type\": \"customer\",\n        \"attributes\": {\n            \"first_name\": \"Chuck\",\n            \"last_name\": \"Haleran\",\n            \"created_at\": \"2019-08-29T10:20:12-04:00\",\n            \"updated_at\": \"2019-08-29T10:20:12-04:00\",\n            \"default_player_type_id\": \"4c59446f-8132-4ddd-9ae6-dc44bfa76830\",\n            \"tags\": [\n                \"first integrator tag\",\n                \"second integrator tag\"\n            ],\n            \"date_of_birth\": \"2000-06-05\",\n            \"gender\": 1,\n            \"phone\": \"5558854778\"\n        },\n        \"relationships\": {\n            \"organization\": {\n                \"data\": {\n                    \"id\": \"8e678adf-4308-436f-a0e0-379a8f6551e7\",\n                    \"type\": \"organization\"\n                }\n            },\n            \"player_types\": {\n                \"data\": [\n                    {\n                        \"id\": \"4c59446f-8132-4ddd-9ae6-dc44bfa76830\",\n                        \"type\": \"player_type\"\n                    }\n                ]\n            },\n            \"address\": {\n                \"data\": null\n            }\n        }\n    }\n}"}],"_postman_id":"9bad59f5-3604-40ec-81ec-f6088fe1db79"},{"name":"Update a specific customer","id":"39f005e0-f94f-4961-a2da-2faf99ab97a6","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"PATCH","header":[{"key":"Accept","value":"application/vnd.api+json"},{"key":"Authorization","value":"Bearer "},{"key":"Content-Type","name":"Content-Type","value":"application/vnd.api+json","type":"text"}],"body":{"mode":"raw","raw":"{\n    \"data\": {\n        \"id\": \"11d014bd-b153-423b-83b6-1a699791dd2a\",\n        \"type\": \"customer\",\n        \"attributes\": {\n            \"first_name\": \"Charles\",\n            \"last_name\": \"Halphens\",\n            \"phone\": \"545-888-4778\",\n            \"member_no\": \"YUL\",\n            \"tags\": [\n                \"first integrator tag\",\n                \"second integrator tag\"\n            ],\n            \"address\": {\n                \"address_one\": \"700 rue St-Antoine E\",\n                \"country_code\": \"CA\",\n                \"state_code\": \"QC\",\n                \"city\": \"Montreal\",\n                \"postcode\": \"H4Y1A6\"\n            }\n        },\n        \"relationships\": {\n            \"player_type\": {\n                \"data\": {\n                    \"id\": \"3be3e9b0-5767-4115-9c50-45a064dffb4a\",\n                    \"type\": \"player_type\"\n                }    \n            }\n       }\n    }\n}"},"url":"https://partner-staging.chronogolf.com/partner_api/v2/customers/?organization_id=044ba009-d9f2-47c2-90c1-54fcd35996a4","description":"<p>Update a specific customer at a club.</p>\n<p>The body payload below has all the customer fields you can configure upon updating a customer.</p>\n","urlObject":{"path":["partner_api","v2","customers",""],"host":["https://partner-staging.chronogolf.com"],"query":[{"description":{"content":"<p>Required</p>\n","type":"text/plain"},"key":"organization_id","value":"044ba009-d9f2-47c2-90c1-54fcd35996a4"}],"variable":[]}},"response":[{"id":"5836560e-2b09-4180-8cf7-b7c0d5b00e0b","name":"Update a specific customer","originalRequest":{"method":"PATCH","header":[{"key":"Accept","value":"application/json"},{"key":"Authorization","value":"Bearer "},{"key":"Content-Type","name":"Content-Type","value":"application/json","type":"text"}],"body":{"mode":"raw","raw":"{\"data\": {\n        \"id\": \"813b0844-b8ea-4401-a427-c26fcdb89afe\",\n        \"type\": \"customer\",\n        \"attributes\": {\n            \"first_name\": \"Charlie\",\n            \"last_name\": \"Halphens\",\n            \"tags\": [\"first integrator tag\", \"second integrator tag\"],\n            \"email\": \"chalphens@royal-montreal-golf-club.ca\",\n            \"gender\": 1,\n            \"phone\": \"555-8884477-8\",\n            \"date_of_birth\": \"2000-06-05\"\n        }\n  }\n}"},"url":{"raw":"https://partner-staging.chronogolf.com/partner_api/v2/customers/?organization_id=044ba009-d9f2-47c2-90c1-54fcd35996a4","host":["https://partner-staging.chronogolf.com"],"path":["partner_api","v2","customers",""],"query":[{"key":"organization_id","value":"044ba009-d9f2-47c2-90c1-54fcd35996a4"}]}},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Date","value":"Thu, 22 Aug 2019 20:15:45 GMT"},{"key":"Content-Type","value":"application/vnd.api+json"},{"key":"Transfer-Encoding","value":"chunked"},{"key":"Connection","value":"keep-alive"},{"key":"Status","value":"200 OK"},{"key":"Cache-Control","value":"max-age=0, private, must-revalidate"},{"key":"Vary","value":"Accept-Encoding"},{"key":"Content-Encoding","value":"gzip"},{"key":"Strict-Transport-Security","value":"max-age=31536000; includeSubDomains"},{"key":"X-Request-Id","value":"cb38ada3-26c5-400a-9a40-87b617a66321"},{"key":"Etag","value":"W/\"2c633b6b2df6cfac945a02acbf8f49f0\""},{"key":"X-Frame-Options","value":"ALLOWALL"},{"key":"X-Runtime","value":"0.312502"},{"key":"X-Powered-By","value":"Phusion Passenger Enterprise 6.0.2"},{"key":"Via","value":"1.1 vegur"},{"key":"Expect-CT","value":"max-age=604800, report-uri=\"https://report-uri.cloudflare.com/cdn-cgi/beacon/expect-ct\""},{"key":"Server","value":"cloudflare"},{"key":"CF-RAY","value":"50a7853e2a7e3fdb-YUL"}],"cookie":[],"responseTime":null,"body":"{\n    \"data\": {\n        \"id\": \"813b0844-b8ea-4401-a427-c26fcdb89afe\",\n        \"type\": \"customer\",\n        \"attributes\": {\n            \"first_name\": \"Charlie\",\n            \"last_name\": \"Halphens\",\n            \"created_at\": \"2019-08-22T14:49:18-04:00\",\n            \"updated_at\": \"2019-08-22T15:47:36-04:00\",\n            \"default_player_type_id\": \"8d43607c-ff67-40f1-8107-36b3fbf6ede4\",\n            \"tags\": [\n                \"first club tag\",\n                \"second club tag\",\n                \"first integrator tag\",\n                \"second integrator tag\"\n            ],\n            \"date_of_birth\": \"2000-06-05\",\n            \"email\": \"coralie.halphen@royal-montreal-golf-club.ca\",\n            \"gender\": 1,\n            \"phone\": \"55588844778\"\n        },\n        \"relationships\": {\n            \"organization\": {\n                \"data\": {\n                    \"id\": \"8e678adf-4308-436f-a0e0-379a8f6551e7\",\n                    \"type\": \"organization\"\n                }\n            },\n            \"player_types\": {\n                \"data\": [\n                    {\n                        \"id\": \"8d43607c-ff67-40f1-8107-36b3fbf6ede4\",\n                        \"type\": \"player_type\"\n                    }\n                ]\n            },\n            \"address\": {\n                \"data\": null\n            }\n        }\n    }\n}"}],"_postman_id":"39f005e0-f94f-4961-a2da-2faf99ab97a6"}],"id":"c1e5a5b3-2efd-45ec-8b1e-934cddd863c3","_postman_id":"c1e5a5b3-2efd-45ec-8b1e-934cddd863c3","description":""},{"name":"Player Types","item":[{"name":"List all Player Types","id":"50515321-86ec-4c41-92de-0921b114095f","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[{"key":"Accept","value":"application/vnd.api+json"},{"key":"Authorization","value":"Bearer "}],"url":"https://partner-staging.chronogolf.com/partner_api/v2/organizations/044ba009-d9f2-47c2-90c1-54fcd35996a4/player_types","urlObject":{"path":["partner_api","v2","organizations","044ba009-d9f2-47c2-90c1-54fcd35996a4","player_types"],"host":["https://partner-staging.chronogolf.com"],"query":[],"variable":[]}},"response":[{"id":"bcd248c6-b641-4903-81e0-29ee22aaa348","name":"List all Player Types","originalRequest":{"method":"GET","header":[{"key":"Accept","value":"application/vnd.api+json"},{"key":"Authorization","value":"Bearer "}],"url":"https://partner-staging.chronogolf.com/partner_api/v2/organizations/044ba009-d9f2-47c2-90c1-54fcd35996a4/player_types"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Date","value":"Thu, 05 Dec 2019 18:10:07 GMT"},{"key":"Content-Type","value":"application/vnd.api+json"},{"key":"Transfer-Encoding","value":"chunked"},{"key":"Connection","value":"keep-alive"},{"key":"Status","value":"200 OK"},{"key":"Cache-Control","value":"max-age=0, private, must-revalidate"},{"key":"Vary","value":"Accept-Encoding"},{"key":"Content-Encoding","value":"gzip"},{"key":"Strict-Transport-Security","value":"max-age=31536000; includeSubDomains"},{"key":"X-Request-Id","value":"56ecaf31-dfb5-433d-843e-14ae9cdfa5d7"},{"key":"Etag","value":"W/\"15f22388ba0d46d41609e26acc1095b4\""},{"key":"X-Frame-Options","value":"ALLOWALL"},{"key":"X-Runtime","value":"0.100324"},{"key":"X-Powered-By","value":"Phusion Passenger Enterprise 6.0.2"},{"key":"Via","value":"1.1 vegur"},{"key":"CF-Cache-Status","value":"DYNAMIC"},{"key":"Expect-CT","value":"max-age=604800, report-uri=\"https://report-uri.cloudflare.com/cdn-cgi/beacon/expect-ct\""},{"key":"Server","value":"cloudflare"},{"key":"CF-RAY","value":"5407f999cd7cecee-YUL"}],"cookie":[],"responseTime":null,"body":"{\n    \"data\": [\n        {\n            \"id\": \"c156c3bd-69d4-4986-9581-001a560ee162\",\n            \"type\": \"player_type\",\n            \"attributes\": {\n                \"name\": \"3 Day Member\",\n                \"default_role\": \"member\",\n                \"booking_range\": 3\n            },\n            \"relationships\": {\n                \"organization\": {\n                    \"data\": {\n                        \"id\": \"940c338f-4b22-4646-a570-4d6cb824f040\",\n                        \"type\": \"organization\"\n                    }\n                }\n            }\n        },\n        {\n            \"id\": \"1d27ecba-fa30-461e-b681-bb1bc31b7147\",\n            \"type\": \"player_type\",\n            \"attributes\": {\n                \"name\": \"Junior\",\n                \"default_role\": \"public\",\n                \"booking_range\": 7\n            },\n            \"relationships\": {\n                \"organization\": {\n                    \"data\": {\n                        \"id\": \"940c338f-4b22-4646-a570-4d6cb824f040\",\n                        \"type\": \"organization\"\n                    }\n                }\n            }\n        },\n        {\n            \"id\": \"bfd9aef6-defa-407f-b49f-a3e2ea274f1b\",\n            \"type\": \"player_type\",\n            \"attributes\": {\n                \"name\": \"corporate member\",\n                \"default_role\": \"member\",\n                \"booking_range\": 7\n            },\n            \"relationships\": {\n                \"organization\": {\n                    \"data\": {\n                        \"id\": \"940c338f-4b22-4646-a570-4d6cb824f040\",\n                        \"type\": \"organization\"\n                    }\n                }\n            }\n        },\n        {\n            \"id\": \"ba75e08e-12c7-4774-9670-30ab5a2c92b9\",\n            \"type\": \"player_type\",\n            \"attributes\": {\n                \"name\": \"Public\",\n                \"default_role\": \"public\",\n                \"booking_range\": 14\n            },\n            \"relationships\": {\n                \"organization\": {\n                    \"data\": {\n                        \"id\": \"940c338f-4b22-4646-a570-4d6cb824f040\",\n                        \"type\": \"organization\"\n                    }\n                }\n            }\n        },\n        {\n            \"id\": \"fff480fd-c79b-4753-bfd4-a039e41cec9d\",\n            \"type\": \"player_type\",\n            \"attributes\": {\n                \"name\": \"Member\",\n                \"default_role\": \"member\",\n                \"booking_range\": 14\n            },\n            \"relationships\": {\n                \"organization\": {\n                    \"data\": {\n                        \"id\": \"940c338f-4b22-4646-a570-4d6cb824f040\",\n                        \"type\": \"organization\"\n                    }\n                }\n            }\n        }\n    ],\n    \"meta\": {\n        \"page\": 1,\n        \"page_size\": 25,\n        \"total\": 5,\n        \"total_pages\": 1\n    }\n}"}],"_postman_id":"50515321-86ec-4c41-92de-0921b114095f"},{"name":"Retrieve a specific player type","id":"1d20d0f1-d014-4bd0-bc13-cf56a16a42fe","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[{"key":"Accept","value":"application/vnd.api+json"},{"key":"Authorization","value":"Bearer "}],"url":"https://partner-staging.chronogolf.com/partner_api/v2/player_types/3b84cd17-fffb-44f9-8570-a690231af66d","urlObject":{"path":["partner_api","v2","player_types","3b84cd17-fffb-44f9-8570-a690231af66d"],"host":["https://partner-staging.chronogolf.com"],"query":[],"variable":[]}},"response":[{"id":"65cb1cb2-1b3f-4e2d-acfd-c267e6b97d6c","name":"Retrieve a specific player type","originalRequest":{"method":"GET","header":[{"key":"Accept","value":"application/vnd.api+json"},{"key":"Authorization","value":"Bearer "}],"url":"https://partner-staging.chronogolf.com/partner_api/v2/player_types/3b84cd17-fffb-44f9-8570-a690231af66d"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Date","value":"Thu, 05 Dec 2019 18:10:26 GMT"},{"key":"Content-Type","value":"application/vnd.api+json"},{"key":"Transfer-Encoding","value":"chunked"},{"key":"Connection","value":"keep-alive"},{"key":"Status","value":"200 OK"},{"key":"Cache-Control","value":"max-age=0, private, must-revalidate"},{"key":"Vary","value":"Accept-Encoding"},{"key":"Content-Encoding","value":"gzip"},{"key":"Strict-Transport-Security","value":"max-age=31536000; includeSubDomains"},{"key":"X-Request-Id","value":"b6ff9585-dc41-4179-88cb-13a3393cb4d5"},{"key":"Etag","value":"W/\"94c9b9de93d404370dcbd5a5685cec65\""},{"key":"X-Frame-Options","value":"ALLOWALL"},{"key":"X-Runtime","value":"0.038982"},{"key":"X-Powered-By","value":"Phusion Passenger Enterprise 6.0.2"},{"key":"Via","value":"1.1 vegur"},{"key":"CF-Cache-Status","value":"DYNAMIC"},{"key":"Expect-CT","value":"max-age=604800, report-uri=\"https://report-uri.cloudflare.com/cdn-cgi/beacon/expect-ct\""},{"key":"Server","value":"cloudflare"},{"key":"CF-RAY","value":"5407fa14ffa4ecee-YUL"}],"cookie":[],"responseTime":null,"body":"{\n    \"data\": {\n        \"id\": \"ba75e08e-12c7-4774-9670-30ab5a2c92b9\",\n        \"type\": \"player_type\",\n        \"attributes\": {\n            \"name\": \"Public\",\n            \"default_role\": \"public\",\n            \"booking_range\": 14\n        },\n        \"relationships\": {\n            \"organization\": {\n                \"data\": {\n                    \"id\": \"940c338f-4b22-4646-a570-4d6cb824f040\",\n                    \"type\": \"organization\"\n                }\n            }\n        }\n    }\n}"}],"_postman_id":"1d20d0f1-d014-4bd0-bc13-cf56a16a42fe"}],"id":"0c5f2a67-0c41-46d1-9bda-4469d3845c58","description":"<p>Retrieve a list of player types at a given club</p>\n","event":[{"listen":"prerequest","script":{"id":"92a40095-3206-4782-8ee3-9bc1eec9ef27","type":"text/javascript","exec":[""]}},{"listen":"test","script":{"id":"08f7bde1-e65f-4766-8597-fcea66aed2be","type":"text/javascript","exec":[""]}}],"_postman_id":"0c5f2a67-0c41-46d1-9bda-4469d3845c58"},{"name":"Reservations (Create)","item":[{"name":"Create a reservation request","event":[{"listen":"test","script":{"id":"e7dddbf5-267c-4264-a46e-da0ad4f24390","exec":["var jsonData = JSON.parse(responseBody);","pm.environment.set(\"reservation_request_id\", jsonData.data.id);"],"type":"text/javascript"}}],"id":"ee0074d9-f756-4359-ab16-bfab4b817d0e","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[{"key":"Accept","value":"application/vnd.api+json"},{"key":"Authorization","value":"Bearer "},{"key":"Content-Type","name":"Content-Type","value":"application/json","type":"text"}],"body":{"mode":"raw","raw":"{\n    \"data\": {\n        \"type\": \"reservation_request\",\n        \"attributes\": {\n            \"note\": \"A note visible to the club\",\n            \"holes\": 18,\n            \"cart_count\": 2\n        },\n        \"relationships\": {\n            \"teetime\": {\n                \"data\": {\n                    \"type\": \"teetime\",\n                    \"id\": \"67cdbec8-2345-4e62-b55c-1481e9d80e73\"\n                }\n            },\n            \"tour_operator\": {\n                \"data\": {\n                    \"type\": \"tour_operator\",\n                    \"id\": \"df4def41-a1dc-430e-a27f-aea9af9f577e\"\n                }\n            }\n        }\n    }\n}"},"url":"https://partner-staging.chronogolf.com/partner_api/v2/organizations/044ba009-d9f2-47c2-90c1-54fcd35996a4/reservation_requests","description":"<p>The first step to creating a reservation via the V2 Partner API is to create a reservation request.</p>\n<p>Indicate the number of holes and (optionally) a note under the attributes field.</p>\n<p>Indicate the teetime and (optionally) the tour operator as relationships.</p>\n","urlObject":{"path":["partner_api","v2","organizations","044ba009-d9f2-47c2-90c1-54fcd35996a4","reservation_requests"],"host":["https://partner-staging.chronogolf.com"],"query":[],"variable":[]}},"response":[{"id":"448a1b51-281d-4bb6-927a-e8fa026a8d7d","name":"Create a reservation request","originalRequest":{"method":"POST","header":[{"key":"Accept","value":"application/vnd.api+json"},{"key":"Authorization","value":"Bearer "},{"key":"Content-Type","name":"Content-Type","value":"application/json","type":"text"}],"body":{"mode":"raw","raw":"{\n    \"data\": {\n        \"type\": \"reservation_request\",\n        \"attributes\": {\n            \"note\": \"A note visible to the club\",\n            \"holes\": 18,\n            \"cart_count\": 2\n        },\n        \"relationships\": {\n            \"teetime\": {\n                \"data\": {\n                    \"type\": \"teetime\",\n                    \"id\": \"15df8d4a-2822-41d0-924d-e25ca1099ac4\"\n                }\n            },\n            \"tour_operator\": {\n                \"data\": {\n                    \"type\": \"tour_operator\",\n                    \"id\": \"63a5e3b0-1f47-431b-a253-96c9df51fef8\"\n                }\n            }\n        }\n    }\n}"},"url":"https://partner-staging.chronogolf.com/partner_api/v2/organizations/044ba009-d9f2-47c2-90c1-54fcd35996a4/reservation_requests"},"status":"Created","code":201,"_postman_previewlanguage":"json","header":[{"key":"Date","value":"Thu, 05 Dec 2019 18:34:29 GMT"},{"key":"Content-Type","value":"application/vnd.api+json"},{"key":"Transfer-Encoding","value":"chunked"},{"key":"Connection","value":"keep-alive"},{"key":"Status","value":"201 Created"},{"key":"Cache-Control","value":"max-age=0, private, must-revalidate"},{"key":"Vary","value":"Accept-Encoding"},{"key":"Content-Encoding","value":"gzip"},{"key":"Strict-Transport-Security","value":"max-age=31536000; includeSubDomains"},{"key":"X-Request-Id","value":"ae7f683f-9a9c-4086-9d0c-6631b7078906"},{"key":"Location","value":"https://demo.chronogolf.ca/partner_api/v2/reservation_requests/ab79050a-8db4-4d0e-a411-da6f90cdaaa1"},{"key":"Etag","value":"W/\"1202b747b4e6121dcd5d58142e11d318\""},{"key":"X-Frame-Options","value":"ALLOWALL"},{"key":"X-Runtime","value":"0.069677"},{"key":"X-Powered-By","value":"Phusion Passenger Enterprise 6.0.2"},{"key":"Via","value":"1.1 vegur"},{"key":"CF-Cache-Status","value":"DYNAMIC"},{"key":"Expect-CT","value":"max-age=604800, report-uri=\"https://report-uri.cloudflare.com/cdn-cgi/beacon/expect-ct\""},{"key":"Server","value":"cloudflare"},{"key":"CF-RAY","value":"54081d4a7eb63fb1-YUL"}],"cookie":[],"responseTime":null,"body":"{\n    \"data\": {\n        \"id\": \"ab79050a-8db4-4d0e-a411-da6f90cdaaa1\",\n        \"type\": \"reservation_request\",\n        \"attributes\": {\n            \"holes\": 18,\n            \"note\": \"A note visible to the club\",\n            \"cart_count\": 2\n        },\n        \"relationships\": {\n            \"round_requests\": {\n                \"data\": []\n            },\n            \"organization\": {\n                \"data\": {\n                    \"id\": \"940c338f-4b22-4646-a570-4d6cb824f040\",\n                    \"type\": \"organization\"\n                }\n            },\n            \"teetime\": {\n                \"data\": {\n                    \"id\": \"15df8d4a-2822-41d0-924d-e25ca1099ac4\",\n                    \"type\": \"teetime\"\n                }\n            },\n            \"tour_operator\": {\n                \"data\": {\n                    \"id\": \"63a5e3b0-1f47-431b-a253-96c9df51fef8\",\n                    \"type\": \"tour_operator\"\n                }\n            }\n        }\n    }\n}"}],"_postman_id":"ee0074d9-f756-4359-ab16-bfab4b817d0e"},{"name":"Retrieve a reservation request","event":[{"listen":"test","script":{"id":"e7dddbf5-267c-4264-a46e-da0ad4f24390","exec":["var jsonData = JSON.parse(responseBody);","pm.environment.set(\"reservation_request_id\", jsonData.data.id);"],"type":"text/javascript"}}],"id":"41dba4b5-719e-4f00-99bf-26e5e675cf3a","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[{"key":"Accept","value":"application/vnd.api+json"},{"key":"Authorization","value":"Bearer "},{"key":"Content-Type","name":"Content-Type","value":"application/json","type":"text"}],"body":{"mode":"raw","raw":""},"url":"https://partner-staging.chronogolf.com/partner_api/v2/reservation_requests/","description":"<p>The reservation request ID will return a 404 response once a reservation has been confirmed.</p>\n","urlObject":{"path":["partner_api","v2","reservation_requests",""],"host":["https://partner-staging.chronogolf.com"],"query":[],"variable":[]}},"response":[{"id":"85e6aa3f-f9cf-4e1d-9404-06fb638e47ab","name":"Retrieve a reservation request","originalRequest":{"method":"GET","header":[{"key":"Accept","value":"application/vnd.api+json"},{"key":"Authorization","value":"Bearer "},{"key":"Content-Type","name":"Content-Type","value":"application/json","type":"text"}],"url":"https://partner-staging.chronogolf.com/partner_api/v2/reservation_requests/"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Date","value":"Thu, 05 Dec 2019 18:34:45 GMT"},{"key":"Content-Type","value":"application/vnd.api+json"},{"key":"Transfer-Encoding","value":"chunked"},{"key":"Connection","value":"keep-alive"},{"key":"Status","value":"200 OK"},{"key":"Cache-Control","value":"max-age=0, private, must-revalidate"},{"key":"Vary","value":"Accept-Encoding"},{"key":"Content-Encoding","value":"gzip"},{"key":"Strict-Transport-Security","value":"max-age=31536000; includeSubDomains"},{"key":"X-Request-Id","value":"67fa5cf7-dd43-49b0-b259-54e186587282"},{"key":"Etag","value":"W/\"c440604184ffd411ed277c9e8296e6ad\""},{"key":"X-Frame-Options","value":"ALLOWALL"},{"key":"X-Runtime","value":"0.051232"},{"key":"X-Powered-By","value":"Phusion Passenger Enterprise 6.0.2"},{"key":"Via","value":"1.1 vegur"},{"key":"CF-Cache-Status","value":"DYNAMIC"},{"key":"Expect-CT","value":"max-age=604800, report-uri=\"https://report-uri.cloudflare.com/cdn-cgi/beacon/expect-ct\""},{"key":"Server","value":"cloudflare"},{"key":"CF-RAY","value":"54081db36cef3fb1-YUL"}],"cookie":[],"responseTime":null,"body":"{\n    \"data\": {\n        \"id\": \"ab79050a-8db4-4d0e-a411-da6f90cdaaa1\",\n        \"type\": \"reservation_request\",\n        \"attributes\": {\n            \"holes\": 18,\n            \"note\": \"A note visible to the club\",\n            \"cart_count\": 2\n        },\n        \"relationships\": {\n            \"round_requests\": {\n                \"data\": []\n            },\n            \"organization\": {\n                \"data\": {\n                    \"id\": \"940c338f-4b22-4646-a570-4d6cb824f040\",\n                    \"type\": \"organization\"\n                }\n            },\n            \"teetime\": {\n                \"data\": {\n                    \"id\": \"15df8d4a-2822-41d0-924d-e25ca1099ac4\",\n                    \"type\": \"teetime\"\n                }\n            },\n            \"tour_operator\": {\n                \"data\": {\n                    \"id\": \"63a5e3b0-1f47-431b-a253-96c9df51fef8\",\n                    \"type\": \"tour_operator\"\n                }\n            }\n        }\n    }\n}"}],"_postman_id":"41dba4b5-719e-4f00-99bf-26e5e675cf3a"},{"name":"Create a round request","event":[{"listen":"test","script":{"id":"286bd0f8-b6af-434d-a2d7-acc71a9398c0","exec":["var jsonData = JSON.parse(responseBody);","pm.environment.set(\"round_request_id\", jsonData.data.id);"],"type":"text/javascript"}}],"id":"a7c1c686-5bf1-4b8f-90fd-576e437d2f29","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[{"key":"Accept","value":"application/vnd.api+json"},{"key":"Authorization","value":"Bearer "},{"key":"Content-Type","name":"Content-Type","value":"application/json","type":"text"}],"body":{"mode":"raw","raw":"{\n    \"data\": {\n        \"type\": \"round_request\",\n        \"attributes\": {\n        \t\"green_fee\": 45.00,\n        \t\"cart_fee\": 15.95,\n            \"guest\": {},\n            \"extras\": [\"bd73921f-e4de-475d-8852-e432b9819def\",\"70813b09-06a1-4274-bfcd-4ed4fc355393\"],\n            \"kits\": [\"9e5f622b-0251-4447-bf80-fabc8bf581e9\"]\n\n        },\n        \"relationships\": {\n            \"reservation_request\": {\n                \"data\": {\n                    \"type\": \"reservation_request\",\n                    \"id\": \"\"\n                }\n            },\n            \"customer\": {\n                \"data\": {\n                    \"type\": \"customer\",\n                    \"id\": \"47119b0e-9368-4d0c-acdb-9cf0f66e2ea5\"\n                }\n            },\n            \"player_type\": {\n                \"data\": {\n                    \"type\": \"player_type\",\n                    \"id\": \"51ba58b4-82c0-48e7-8b05-1bb4ab02f829\"\n                }\n            }\n        }\n    }\n}"},"url":"https://partner-staging.chronogolf.com/partner_api/v2/organizations/044ba009-d9f2-47c2-90c1-54fcd35996a4/round_requests","description":"<p>In order to add players to a reservation, you need to associate them with a reservation request by creating a round request.</p>\n<p>Associate the round request with a reservation request by including the reservation request as a relationship.</p>\n<p>If you would like to include a customer, you can do so by including them as a relationship as well. If you would like to include a guest, you can do so under the attributes field, including a first name, and or last name. It will overwrite guest data if <strong>both are included</strong> in the body payload.</p>\n<p>A round request will have the default player type for your integrator, unless you specify the player type you would like by including it as a relationship.</p>\n<p>You can optionally include a green fee price, as well as a cart price.</p>\n<p>You can also optionally include extras and kits.</p>\n","urlObject":{"path":["partner_api","v2","organizations","044ba009-d9f2-47c2-90c1-54fcd35996a4","round_requests"],"host":["https://partner-staging.chronogolf.com"],"query":[],"variable":[]}},"response":[{"id":"c1963b72-1711-45ab-ace0-879c352bd1f2","name":"Create a round request","originalRequest":{"method":"POST","header":[{"key":"Accept","value":"application/vnd.api+json"},{"key":"Authorization","value":"Bearer "},{"key":"Content-Type","name":"Content-Type","value":"application/json","type":"text"}],"body":{"mode":"raw","raw":"{\n    \"data\": {\n        \"type\": \"round_request\",\n        \"attributes\": {\n        \t\"green_fee\": 45.00,\n        \t\"cart_fee\": 15.95,\n            \"guest\": {\n                \"first_name\": \"Ronald\",\n                \"last_name\": \"Dalton\"\n            }\n        },\n        \"relationships\": {\n            \"reservation_request\": {\n                \"data\": {\n                    \"type\": \"reservation_request\",\n                    \"id\": \"\"\n                }\n            },\n            \"player_type\": {\n                \"data\": {\n                    \"type\": \"player_type\",\n                    \"id\": \"ba75e08e-12c7-4774-9670-30ab5a2c92b9\"\n                }\n            }\n        }\n    }\n}"},"url":"https://partner-staging.chronogolf.com/partner_api/v2/organizations/044ba009-d9f2-47c2-90c1-54fcd35996a4/round_requests"},"status":"Created","code":201,"_postman_previewlanguage":"json","header":[{"key":"Date","value":"Thu, 05 Dec 2019 18:35:34 GMT"},{"key":"Content-Type","value":"application/vnd.api+json"},{"key":"Transfer-Encoding","value":"chunked"},{"key":"Connection","value":"keep-alive"},{"key":"Status","value":"201 Created"},{"key":"Cache-Control","value":"max-age=0, private, must-revalidate"},{"key":"Vary","value":"Accept-Encoding"},{"key":"Content-Encoding","value":"gzip"},{"key":"Strict-Transport-Security","value":"max-age=31536000; includeSubDomains"},{"key":"X-Request-Id","value":"71b8e99a-281e-43f7-8491-a2ec9c999ccc"},{"key":"Location","value":"https://demo.chronogolf.ca/partner_api/v2/round_requests/2dadefc8-1ec7-48ab-bce5-3a22fa0cfa9d"},{"key":"Etag","value":"W/\"44a46fd63e4e1ac3c4f823e0446cc47c\""},{"key":"X-Frame-Options","value":"ALLOWALL"},{"key":"X-Runtime","value":"0.056460"},{"key":"X-Powered-By","value":"Phusion Passenger Enterprise 6.0.2"},{"key":"Via","value":"1.1 vegur"},{"key":"CF-Cache-Status","value":"DYNAMIC"},{"key":"Expect-CT","value":"max-age=604800, report-uri=\"https://report-uri.cloudflare.com/cdn-cgi/beacon/expect-ct\""},{"key":"Server","value":"cloudflare"},{"key":"CF-RAY","value":"54081ee43ae03fb1-YUL"}],"cookie":[],"responseTime":null,"body":"{\n    \"data\": {\n        \"id\": \"2dadefc8-1ec7-48ab-bce5-3a22fa0cfa9d\",\n        \"type\": \"round_request\",\n        \"attributes\": {\n            \"guest\": {\n                \"first_name\": \"Ronald\",\n                \"last_name\": \"Dalton\"\n            },\n            \"cart_fee\": \"15.95\",\n            \"green_fee\": \"45.0\"\n        },\n        \"relationships\": {\n            \"reservation_request\": {\n                \"data\": {\n                    \"id\": \"ab79050a-8db4-4d0e-a411-da6f90cdaaa1\",\n                    \"type\": \"reservation_request\"\n                }\n            },\n            \"player_type\": {\n                \"data\": {\n                    \"id\": \"ba75e08e-12c7-4774-9670-30ab5a2c92b9\",\n                    \"type\": \"player_type\"\n                }\n            },\n            \"customer\": {\n                \"data\": null\n            }\n        }\n    }\n}"}],"_postman_id":"a7c1c686-5bf1-4b8f-90fd-576e437d2f29"},{"name":"Retrieve a round request","id":"84897a09-e942-4820-950c-495703281070","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[{"key":"Accept","value":"application/vnd.api+json"},{"key":"Authorization","value":"Bearer "},{"key":"Content-Type","name":"Content-Type","type":"text","value":"application/json"}],"url":"https://partner-staging.chronogolf.com/partner_api/v2/round_requests/","description":"<p>Retrieve a specific round request by its ID.</p>\n<p>The round request IDs will return a 404 response once a reservation has been confirmed.</p>\n","urlObject":{"path":["partner_api","v2","round_requests",""],"host":["https://partner-staging.chronogolf.com"],"query":[],"variable":[]}},"response":[{"id":"31ea00ff-4d41-43f7-a54c-eb9ef98e2c48","name":"Retrieve a round request","originalRequest":{"method":"GET","header":[{"key":"Accept","value":"application/vnd.api+json"},{"key":"Authorization","value":"Bearer "},{"key":"Content-Type","name":"Content-Type","type":"text","value":"application/json"}],"url":"https://partner-staging.chronogolf.com/partner_api/v2/round_requests/"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Date","value":"Thu, 05 Dec 2019 18:35:49 GMT"},{"key":"Content-Type","value":"application/vnd.api+json"},{"key":"Transfer-Encoding","value":"chunked"},{"key":"Connection","value":"keep-alive"},{"key":"Status","value":"200 OK"},{"key":"Cache-Control","value":"max-age=0, private, must-revalidate"},{"key":"Vary","value":"Accept-Encoding"},{"key":"Content-Encoding","value":"gzip"},{"key":"Strict-Transport-Security","value":"max-age=31536000; includeSubDomains"},{"key":"X-Request-Id","value":"6bccdac4-6268-47e5-924c-0ef9d8093b46"},{"key":"Etag","value":"W/\"19bc861d50e771c2cd817f974443c176\""},{"key":"X-Frame-Options","value":"ALLOWALL"},{"key":"X-Runtime","value":"0.043172"},{"key":"X-Powered-By","value":"Phusion Passenger Enterprise 6.0.2"},{"key":"Via","value":"1.1 vegur"},{"key":"CF-Cache-Status","value":"DYNAMIC"},{"key":"Expect-CT","value":"max-age=604800, report-uri=\"https://report-uri.cloudflare.com/cdn-cgi/beacon/expect-ct\""},{"key":"Server","value":"cloudflare"},{"key":"CF-RAY","value":"54081f405b623fb1-YUL"}],"cookie":[],"responseTime":null,"body":"{\n    \"data\": {\n        \"id\": \"2dadefc8-1ec7-48ab-bce5-3a22fa0cfa9d\",\n        \"type\": \"round_request\",\n        \"attributes\": {\n            \"guest\": {\n                \"last_name\": \"Dalton\",\n                \"first_name\": \"Ronald\"\n            },\n            \"cart_fee\": \"15.95\",\n            \"green_fee\": \"45.0\"\n        },\n        \"relationships\": {\n            \"reservation_request\": {\n                \"data\": {\n                    \"id\": \"ab79050a-8db4-4d0e-a411-da6f90cdaaa1\",\n                    \"type\": \"reservation_request\"\n                }\n            },\n            \"player_type\": {\n                \"data\": {\n                    \"id\": \"ba75e08e-12c7-4774-9670-30ab5a2c92b9\",\n                    \"type\": \"player_type\"\n                }\n            },\n            \"customer\": {\n                \"data\": null\n            }\n        }\n    }\n}"}],"_postman_id":"84897a09-e942-4820-950c-495703281070"},{"name":"Delete a round request","id":"4ea2561e-191c-46d8-8d35-86aa5f80a9dd","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"DELETE","header":[{"key":"Accept","value":"application/vnd.api+json"},{"key":"Authorization","value":"Bearer "},{"key":"Content-Type","name":"Content-Type","type":"text","value":"application/json"}],"url":"https://partner-staging.chronogolf.com/partner_api/v2/round_requests/","urlObject":{"path":["partner_api","v2","round_requests",""],"host":["https://partner-staging.chronogolf.com"],"query":[],"variable":[]}},"response":[{"id":"7ee073bd-a6cb-43fd-abdf-5bbda989b277","name":"Delete a round request","originalRequest":{"method":"DELETE","header":[{"key":"Accept","value":"application/vnd.api+json"},{"key":"Authorization","value":"Bearer "},{"key":"Content-Type","name":"Content-Type","type":"text","value":"application/json"}],"url":"https://partner-staging.chronogolf.com/partner_api/v2/round_requests/"},"status":"No Content","code":204,"_postman_previewlanguage":null,"header":null,"cookie":[],"responseTime":null,"body":null}],"_postman_id":"4ea2561e-191c-46d8-8d35-86aa5f80a9dd"},{"name":"Create a reservation","event":[{"listen":"test","script":{"id":"7ab4ef4f-f94d-4967-9526-ce6ceffc9734","exec":["var jsonData = JSON.parse(responseBody);","pm.environment.set(\"reservation_id\", jsonData.data.id);"],"type":"text/javascript"}},{"listen":"prerequest","script":{"id":"885d1b51-fae9-47c2-a223-2ef0c0d03cd3","exec":["pm.globals.set(\"variable_key\", \"variable_value\");"],"type":"text/javascript"}}],"id":"13921563-17bb-4404-bda3-100a253135de","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[{"key":"Accept","value":"application/vnd.api+json"},{"key":"Authorization","value":"Bearer "},{"key":"Content-Type","name":"Content-Type","type":"text","value":"application/json"}],"body":{"mode":"raw","raw":"{\n    \"data\": {\n        \"type\": \"reservation\",\n        \"attributes\": {},\n        \"relationships\": {\n            \"reservation_request\": {\n                \"data\": {\n                    \"type\": \"reservation_request\",\n                    \"id\": \"\"\n                }\n            }\n        }\n    }\n}"},"url":"https://partner-staging.chronogolf.com/partner_api/v2/organizations/044ba009-d9f2-47c2-90c1-54fcd35996a4/reservations","urlObject":{"path":["partner_api","v2","organizations","044ba009-d9f2-47c2-90c1-54fcd35996a4","reservations"],"host":["https://partner-staging.chronogolf.com"],"query":[],"variable":[]}},"response":[{"id":"baaa461f-3901-4919-b891-a8bd4eed0d5c","name":"Create a reservation","originalRequest":{"method":"POST","header":[{"key":"Accept","value":"application/vnd.api+json"},{"key":"Authorization","value":"Bearer "},{"key":"Content-Type","name":"Content-Type","type":"text","value":"application/json"}],"body":{"mode":"raw","raw":"{\n    \"data\": {\n        \"type\": \"reservation\",\n        \"attributes\": {},\n        \"relationships\": {\n            \"reservation_request\": {\n                \"data\": {\n                    \"type\": \"reservation_request\",\n                    \"id\": \"\"\n                }\n            }\n        }\n    }\n}"},"url":"https://partner-staging.chronogolf.com/partner_api/v2/organizations/044ba009-d9f2-47c2-90c1-54fcd35996a4/reservations"},"status":"Created","code":201,"_postman_previewlanguage":"json","header":[{"key":"Date","value":"Thu, 05 Dec 2019 18:36:07 GMT"},{"key":"Content-Type","value":"application/vnd.api+json"},{"key":"Transfer-Encoding","value":"chunked"},{"key":"Connection","value":"keep-alive"},{"key":"Status","value":"201 Created"},{"key":"Cache-Control","value":"max-age=0, private, must-revalidate"},{"key":"Vary","value":"Accept-Encoding"},{"key":"Content-Encoding","value":"gzip"},{"key":"Strict-Transport-Security","value":"max-age=31536000; includeSubDomains"},{"key":"X-Request-Id","value":"f34b455e-210f-4533-be40-00c121b561c8"},{"key":"Location","value":"https://demo.chronogolf.ca/partner_api/v2/reservations/1bafae2e-4a2d-4428-b40a-6df1ee0a4e0f"},{"key":"Etag","value":"W/\"73f3187452ac85cfdb909ff15954325c\""},{"key":"X-Frame-Options","value":"ALLOWALL"},{"key":"X-Runtime","value":"0.307309"},{"key":"X-Powered-By","value":"Phusion Passenger Enterprise 6.0.2"},{"key":"Via","value":"1.1 vegur"},{"key":"CF-Cache-Status","value":"DYNAMIC"},{"key":"Expect-CT","value":"max-age=604800, report-uri=\"https://report-uri.cloudflare.com/cdn-cgi/beacon/expect-ct\""},{"key":"Server","value":"cloudflare"},{"key":"CF-RAY","value":"54081fb06d963fb1-YUL"}],"cookie":[],"responseTime":null,"body":"{\n    \"data\": {\n        \"id\": \"1bafae2e-4a2d-4428-b40a-6df1ee0a4e0f\",\n        \"type\": \"reservation\",\n        \"attributes\": {\n            \"booking_reference\": \"8CZ7-P53C\",\n            \"cart_count\": 1,\n            \"holes\": 18,\n            \"note\": \"A note visible to the club\",\n            \"state\": \"confirmed\",\n            \"cancelled_at\": null,\n            \"created_at\": \"2019-12-05T13:36:07-05:00\",\n            \"updated_at\": \"2019-12-05T13:36:07-05:00\"\n        },\n        \"relationships\": {\n            \"teetime\": {\n                \"data\": {\n                    \"id\": \"15df8d4a-2822-41d0-924d-e25ca1099ac4\",\n                    \"type\": \"teetime\"\n                }\n            },\n            \"organization\": {\n                \"data\": {\n                    \"id\": \"940c338f-4b22-4646-a570-4d6cb824f040\",\n                    \"type\": \"organization\"\n                }\n            },\n            \"booker\": {\n                \"data\": null\n            },\n            \"rounds\": {\n                \"data\": [\n                    {\n                        \"id\": \"1bed94d6-4174-400c-9b85-9a37cca48142\",\n                        \"type\": \"round\"\n                    }\n                ]\n            }\n        }\n    },\n    \"included\": [\n        {\n            \"id\": \"1bed94d6-4174-400c-9b85-9a37cca48142\",\n            \"type\": \"round\",\n            \"attributes\": {\n                \"state\": \"reserved\",\n                \"created_at\": \"2019-12-05T13:36:07.348-05:00\",\n                \"updated_at\": \"2019-12-05T13:36:07.348-05:00\",\n                \"cancelled_at\": null,\n                \"price\": 60.95,\n                \"paid\": false,\n                \"guest\": {\n                    \"last_name\": \"Dalton\",\n                    \"first_name\": \"Ronald\"\n                },\n                \"rates\": {\n                    \"green_fee\": 45,\n                    \"cart_fee\": 15.95,\n                    \"subtotal\": 60.95\n                }\n            },\n            \"relationships\": {\n                \"organization\": {\n                    \"data\": {\n                        \"id\": \"940c338f-4b22-4646-a570-4d6cb824f040\",\n                        \"type\": \"organization\"\n                    }\n                },\n                \"reservation\": {\n                    \"data\": {\n                        \"id\": \"1bafae2e-4a2d-4428-b40a-6df1ee0a4e0f\",\n                        \"type\": \"reservation\"\n                    }\n                },\n                \"player_type\": {\n                    \"data\": {\n                        \"id\": \"ba75e08e-12c7-4774-9670-30ab5a2c92b9\",\n                        \"type\": \"player_type\"\n                    }\n                },\n                \"customer\": {\n                    \"data\": null\n                }\n            }\n        },\n        {\n            \"id\": \"15df8d4a-2822-41d0-924d-e25ca1099ac4\",\n            \"type\": \"teetime\",\n            \"attributes\": {\n                \"blocked\": false,\n                \"date\": \"2019-12-06\",\n                \"hole\": 1,\n                \"format\": \"normal\",\n                \"free_slots\": 3,\n                \"start_time\": \"06:18\"\n            },\n            \"relationships\": {\n                \"course\": {\n                    \"data\": {\n                        \"id\": \"6b871ba5-30cf-4857-a7b1-6e6efe1cca49\",\n                        \"type\": \"course\"\n                    }\n                },\n                \"event\": {\n                    \"data\": null\n                }\n            }\n        }\n    ]\n}"}],"_postman_id":"13921563-17bb-4404-bda3-100a253135de"},{"name":"Retrieve a reservation","id":"befef545-9f29-4895-843c-e7a937566f65","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[{"key":"Accept","value":"application/vnd.api+json"},{"key":"Authorization","value":"Bearer "}],"url":"https://partner-staging.chronogolf.com/partner_api/v2/reservations/","urlObject":{"path":["partner_api","v2","reservations",""],"host":["https://partner-staging.chronogolf.com"],"query":[],"variable":[]}},"response":[{"id":"65456ab2-cd73-48d7-8d1f-35f61389018e","name":"Retrieve a reservation","originalRequest":{"method":"GET","header":[{"key":"Accept","value":"application/vnd.api+json"},{"key":"Authorization","value":"Bearer "}],"url":"https://partner-staging.chronogolf.com/partner_api/v2/reservations/"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Date","value":"Thu, 05 Dec 2019 18:36:23 GMT"},{"key":"Content-Type","value":"application/vnd.api+json"},{"key":"Transfer-Encoding","value":"chunked"},{"key":"Connection","value":"keep-alive"},{"key":"Status","value":"200 OK"},{"key":"Cache-Control","value":"max-age=0, private, must-revalidate"},{"key":"Vary","value":"Accept-Encoding"},{"key":"Content-Encoding","value":"gzip"},{"key":"Strict-Transport-Security","value":"max-age=31536000; includeSubDomains"},{"key":"X-Request-Id","value":"4b3a1d40-bbda-475f-a430-ce16a1c2b48a"},{"key":"Etag","value":"W/\"4f810cf7e94a02cf23d4a28ca3f5e611\""},{"key":"X-Frame-Options","value":"ALLOWALL"},{"key":"X-Runtime","value":"0.081049"},{"key":"X-Powered-By","value":"Phusion Passenger Enterprise 6.0.2"},{"key":"Via","value":"1.1 vegur"},{"key":"CF-Cache-Status","value":"DYNAMIC"},{"key":"Expect-CT","value":"max-age=604800, report-uri=\"https://report-uri.cloudflare.com/cdn-cgi/beacon/expect-ct\""},{"key":"Server","value":"cloudflare"},{"key":"CF-RAY","value":"54082015cc7a3fb1-YUL"}],"cookie":[],"responseTime":null,"body":"{\n    \"data\": {\n        \"id\": \"1bafae2e-4a2d-4428-b40a-6df1ee0a4e0f\",\n        \"type\": \"reservation\",\n        \"attributes\": {\n            \"booking_reference\": \"8CZ7-P53C\",\n            \"cart_count\": 1,\n            \"holes\": 18,\n            \"note\": \"A note visible to the club\",\n            \"state\": \"confirmed\",\n            \"cancelled_at\": null,\n            \"created_at\": \"2019-12-05T13:36:07-05:00\",\n            \"updated_at\": \"2019-12-05T13:36:07-05:00\"\n        },\n        \"relationships\": {\n            \"teetime\": {\n                \"data\": {\n                    \"id\": \"15df8d4a-2822-41d0-924d-e25ca1099ac4\",\n                    \"type\": \"teetime\"\n                }\n            },\n            \"organization\": {\n                \"data\": {\n                    \"id\": \"940c338f-4b22-4646-a570-4d6cb824f040\",\n                    \"type\": \"organization\"\n                }\n            },\n            \"booker\": {\n                \"data\": null\n            },\n            \"rounds\": {\n                \"data\": [\n                    {\n                        \"id\": \"1bed94d6-4174-400c-9b85-9a37cca48142\",\n                        \"type\": \"round\"\n                    }\n                ]\n            }\n        }\n    },\n    \"included\": [\n        {\n            \"id\": \"1bed94d6-4174-400c-9b85-9a37cca48142\",\n            \"type\": \"round\",\n            \"attributes\": {\n                \"state\": \"reserved\",\n                \"created_at\": \"2019-12-05T13:36:07.348-05:00\",\n                \"updated_at\": \"2019-12-05T13:36:07.348-05:00\",\n                \"cancelled_at\": null,\n                \"price\": 60.95,\n                \"paid\": false,\n                \"guest\": {\n                    \"last_name\": \"Dalton\",\n                    \"first_name\": \"Ronald\"\n                },\n                \"rates\": {\n                    \"green_fee\": 45,\n                    \"cart_fee\": 15.95,\n                    \"subtotal\": 60.95\n                }\n            },\n            \"relationships\": {\n                \"organization\": {\n                    \"data\": {\n                        \"id\": \"940c338f-4b22-4646-a570-4d6cb824f040\",\n                        \"type\": \"organization\"\n                    }\n                },\n                \"reservation\": {\n                    \"data\": {\n                        \"id\": \"1bafae2e-4a2d-4428-b40a-6df1ee0a4e0f\",\n                        \"type\": \"reservation\"\n                    }\n                },\n                \"player_type\": {\n                    \"data\": {\n                        \"id\": \"ba75e08e-12c7-4774-9670-30ab5a2c92b9\",\n                        \"type\": \"player_type\"\n                    }\n                },\n                \"customer\": {\n                    \"data\": null\n                }\n            }\n        },\n        {\n            \"id\": \"15df8d4a-2822-41d0-924d-e25ca1099ac4\",\n            \"type\": \"teetime\",\n            \"attributes\": {\n                \"blocked\": false,\n                \"date\": \"2019-12-06\",\n                \"hole\": 1,\n                \"format\": \"normal\",\n                \"free_slots\": 3,\n                \"start_time\": \"06:18\"\n            },\n            \"relationships\": {\n                \"course\": {\n                    \"data\": {\n                        \"id\": \"6b871ba5-30cf-4857-a7b1-6e6efe1cca49\",\n                        \"type\": \"course\"\n                    }\n                },\n                \"event\": {\n                    \"data\": null\n                }\n            }\n        }\n    ]\n}"}],"_postman_id":"befef545-9f29-4895-843c-e7a937566f65"},{"name":"Delete a reservation","event":[{"listen":"test","script":{"id":"7ab4ef4f-f94d-4967-9526-ce6ceffc9734","exec":["var jsonData = JSON.parse(responseBody);","pm.environment.set(\"reservation_id\", jsonData.data.id);"],"type":"text/javascript"}},{"listen":"prerequest","script":{"id":"885d1b51-fae9-47c2-a223-2ef0c0d03cd3","exec":["pm.globals.set(\"variable_key\", \"variable_value\");"],"type":"text/javascript"}}],"id":"adf0bf82-5b71-4579-8301-cba51e222e92","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"DELETE","header":[{"key":"Accept","value":"application/vnd.api+json"},{"key":"Authorization","value":"Bearer "},{"key":"Content-Type","name":"Content-Type","type":"text","value":"application/json"}],"body":{"mode":"raw","raw":""},"url":"https://partner-staging.chronogolf.com/partner_api/v2/reservations/","urlObject":{"path":["partner_api","v2","reservations",""],"host":["https://partner-staging.chronogolf.com"],"query":[],"variable":[]}},"response":[{"id":"0a421b57-0d1c-4256-967b-ca0c8fd81c4d","name":"Delete a reservation","originalRequest":{"method":"DELETE","header":[{"key":"Accept","value":"application/vnd.api+json"},{"key":"Authorization","value":"Bearer "},{"key":"Content-Type","name":"Content-Type","type":"text","value":"application/json"}],"body":{"mode":"raw","raw":""},"url":"https://partner-staging.chronogolf.com/partner_api/v2/reservations/"},"status":"No Content","code":204,"_postman_previewlanguage":null,"header":null,"cookie":[],"responseTime":null,"body":null}],"_postman_id":"adf0bf82-5b71-4579-8301-cba51e222e92"},{"name":"List all reservations for an organization","id":"166e9f1a-a396-4b4d-9025-390c56d7f299","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[{"key":"Accept","value":"application/vnd.api+json"},{"key":"Authorization","value":"Bearer "}],"url":"https://partner-staging.chronogolf.com/partner_api/v2/organizations/044ba009-d9f2-47c2-90c1-54fcd35996a4/reservations","description":"<p>Possible values for the <code>source</code> field are chronogolf, club, google, and partner.</p>\n<p>Possible values for the <code>medium</code> field are dashboard, member-portal, partner-api, profile, teetimes page, web, widget, and mobile.</p>\n","urlObject":{"path":["partner_api","v2","organizations","044ba009-d9f2-47c2-90c1-54fcd35996a4","reservations"],"host":["https://partner-staging.chronogolf.com"],"query":[{"disabled":true,"key":"filter[customer]","value":""},{"disabled":true,"key":"filter[date]","value":"YYYY-MM-DD"},{"disabled":true,"key":"filter[updated_since]","value":"YYYY-MM-DD"},{"disabled":true,"key":"filter[course]","value":"5e7c2077-baae-4fa0-95ea-3ce02124284e"},{"disabled":true,"key":"filter[booking_reference]","value":"4G7E-1C4Z"}],"variable":[]}},"response":[{"id":"f59bba31-290d-4bf0-802e-4f9858513cce","name":"List all reservations for an organization","originalRequest":{"method":"GET","header":[{"key":"Accept","value":"application/vnd.api+json"},{"key":"Authorization","value":"Bearer "}],"url":{"raw":"https://partner-staging.chronogolf.com/partner_api/v2/organizations/044ba009-d9f2-47c2-90c1-54fcd35996a4/reservations","host":["https://partner-staging.chronogolf.com"],"path":["partner_api","v2","organizations","044ba009-d9f2-47c2-90c1-54fcd35996a4","reservations"],"query":[{"key":"filter[customer]","value":"","disabled":true},{"key":"filter[date]","value":"YYYY-MM-DD","disabled":true},{"key":"filter[updated_since]","value":"YYYY-MM-DD","disabled":true},{"key":"filter[course]","value":"5e7c2077-baae-4fa0-95ea-3ce02124284e","disabled":true}]}},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[],"cookie":[],"responseTime":null,"body":"{\n    \"data\": [\n        {\n            \"id\": \"0bac686a-d911-4722-8a0d-4fe7253a05f0\",\n            \"type\": \"reservation\",\n            \"attributes\": {\n                \"booking_reference\": \"4G7E-1C4Z\",\n                \"cart_count\": 0,\n                \"holes\": 18,\n                \"note\": \"A note visible to the club\",\n                \"state\": \"confirmed\",\n                \"cancelled_at\": null,\n                \"created_at\": \"2025-02-27T02:00:37-05:00\",\n                \"updated_at\": \"2025-02-27T02:00:37-05:00\"\n            },\n            \"relationships\": {\n                \"teetime\": {\n                    \"data\": {\n                        \"id\": \"c9835348-6f98-469d-868d-9944c8ed014b\",\n                        \"type\": \"teetime\"\n                    }\n                },\n                \"organization\": {\n                    \"data\": {\n                        \"id\": \"a0baaa6a-7a74-44ef-bbd3-d689729c5a67\",\n                        \"type\": \"organization\"\n                    }\n                },\n                \"booker\": {\n                    \"data\": null\n                },\n                \"rounds\": {\n                    \"data\": [\n                        {\n                            \"id\": \"ec044d48-1bd2-442b-bdd0-1d0972278ee5\",\n                            \"type\": \"round\"\n                        }\n                    ]\n                },\n                \"linked_reservations\": {\n                    \"data\": []\n                }\n            }\n        },\n        {\n            \"id\": \"849133ab-1f47-4f94-94f5-01d055d94a3b\",\n            \"type\": \"reservation\",\n            \"attributes\": {\n                \"booking_reference\": \"3N8E-6V7F\",\n                \"cart_count\": 0,\n                \"holes\": 9,\n                \"note\": \"A note visible to the club\",\n                \"state\": \"confirmed\",\n                \"cancelled_at\": \"2025-02-27T02:31:35-05:00\",\n                \"created_at\": \"2025-02-27T02:29:55-05:00\",\n                \"updated_at\": \"2025-02-27T02:31:35-05:00\"\n            },\n            \"relationships\": {\n                \"teetime\": {\n                    \"data\": {\n                        \"id\": \"44a45af6-821c-42e0-a101-47ba5e735450\",\n                        \"type\": \"teetime\"\n                    }\n                },\n                \"organization\": {\n                    \"data\": {\n                        \"id\": \"a0baaa6a-7a74-44ef-bbd3-d689729c5a67\",\n                        \"type\": \"organization\"\n                    }\n                },\n                \"booker\": {\n                    \"data\": null\n                },\n                \"rounds\": {\n                    \"data\": [\n                        {\n                            \"id\": \"9ce26ae1-1cf5-401f-97c3-db19f4a3f6a9\",\n                            \"type\": \"round\"\n                        },\n                        {\n                            \"id\": \"6dd5fb8a-8b0c-4b97-ae26-c1ce2fcccb87\",\n                            \"type\": \"round\"\n                        },\n                        {\n                            \"id\": \"1068a68a-dcb4-42fb-a6ff-7c0011ec6a47\",\n                            \"type\": \"round\"\n                        },\n                        {\n                            \"id\": \"9445ff06-77d4-40b6-ab40-a257a26a948b\",\n                            \"type\": \"round\"\n                        }\n                    ]\n                },\n                \"linked_reservations\": {\n                    \"data\": []\n                }\n            }\n        },\n        {\n            \"id\": \"376f230b-5f61-4349-bbf3-7b539d5d7b26\",\n            \"type\": \"reservation\",\n            \"attributes\": {\n                \"booking_reference\": \"2K9Q-7C7E\",\n                \"cart_count\": 0,\n                \"holes\": 9,\n                \"note\": \"A note visible to the club\",\n                \"state\": \"confirmed\",\n                \"cancelled_at\": \"2025-02-27T02:38:08-05:00\",\n                \"created_at\": \"2025-02-27T02:35:29-05:00\",\n                \"updated_at\": \"2025-02-27T02:38:08-05:00\"\n            },\n            \"relationships\": {\n                \"teetime\": {\n                    \"data\": {\n                        \"id\": \"2653d5cd-a683-4348-8c08-86dafcee7314\",\n                        \"type\": \"teetime\"\n                    }\n                },\n                \"organization\": {\n                    \"data\": {\n                        \"id\": \"a0baaa6a-7a74-44ef-bbd3-d689729c5a67\",\n                        \"type\": \"organization\"\n                    }\n                },\n                \"booker\": {\n                    \"data\": null\n                },\n                \"rounds\": {\n                    \"data\": [\n                        {\n                            \"id\": \"1d325172-d4c5-4775-b930-d536712648dc\",\n                            \"type\": \"round\"\n                        },\n                        {\n                            \"id\": \"7b3802f6-3346-4958-9a30-1e0e5c86c54f\",\n                            \"type\": \"round\"\n                        },\n                        {\n                            \"id\": \"52ab6c95-711c-4fd0-b20f-182ca00e5a7d\",\n                            \"type\": \"round\"\n                        },\n                        {\n                            \"id\": \"20ebc1b6-efc0-481d-bc1c-fbc7caeeef88\",\n                            \"type\": \"round\"\n                        }\n                    ]\n                },\n                \"linked_reservations\": {\n                    \"data\": []\n                }\n            }\n        },\n        {\n            \"id\": \"0aff7df2-36c0-4e66-b9b6-44a11df34ded\",\n            \"type\": \"reservation\",\n            \"attributes\": {\n                \"booking_reference\": \"6W5W-4J3O\",\n                \"cart_count\": 0,\n                \"holes\": 9,\n                \"note\": \"A note visible to the club\",\n                \"state\": \"confirmed\",\n                \"cancelled_at\": null,\n                \"created_at\": \"2025-02-27T02:37:50-05:00\",\n                \"updated_at\": \"2025-02-27T02:37:50-05:00\"\n            },\n            \"relationships\": {\n                \"teetime\": {\n                    \"data\": {\n                        \"id\": \"46ea3c7f-5b4b-41d4-be3c-c81d53ddb57a\",\n                        \"type\": \"teetime\"\n                    }\n                },\n                \"organization\": {\n                    \"data\": {\n                        \"id\": \"a0baaa6a-7a74-44ef-bbd3-d689729c5a67\",\n                        \"type\": \"organization\"\n                    }\n                },\n                \"booker\": {\n                    \"data\": null\n                },\n                \"rounds\": {\n                    \"data\": [\n                        {\n                            \"id\": \"f15bbb7c-bcdb-479d-b81c-6879983544cb\",\n                            \"type\": \"round\"\n                        },\n                        {\n                            \"id\": \"353333d4-ee6b-42d4-bd31-12af60c0514e\",\n                            \"type\": \"round\"\n                        }\n                    ]\n                },\n                \"linked_reservations\": {\n                    \"data\": []\n                }\n            }\n        },\n        {\n            \"id\": \"29d8010f-b6dd-4871-af26-1b3e53bcd92b\",\n            \"type\": \"reservation\",\n            \"attributes\": {\n                \"booking_reference\": \"6E8W-9W7Y\",\n                \"cart_count\": 0,\n                \"holes\": 9,\n                \"note\": \"\",\n                \"state\": \"confirmed\",\n                \"cancelled_at\": \"2025-03-01T20:18:03-05:00\",\n                \"created_at\": \"2025-02-27T02:38:52-05:00\",\n                \"updated_at\": \"2025-03-01T20:18:03-05:00\"\n            },\n            \"relationships\": {\n                \"teetime\": {\n                    \"data\": {\n                        \"id\": \"3a7d2f1f-96fa-4933-8291-d9c86f22cde5\",\n                        \"type\": \"teetime\"\n                    }\n                },\n                \"organization\": {\n                    \"data\": {\n                        \"id\": \"a0baaa6a-7a74-44ef-bbd3-d689729c5a67\",\n                        \"type\": \"organization\"\n                    }\n                },\n                \"booker\": {\n                    \"data\": null\n                },\n                \"rounds\": {\n                    \"data\": [\n                        {\n                            \"id\": \"38dceb33-ca4c-4ec1-a0b4-a6bb3423c131\",\n                            \"type\": \"round\"\n                        }\n                    ]\n                },\n                \"linked_reservations\": {\n                    \"data\": []\n                }\n            }\n        },\n        {\n            \"id\": \"31add576-c696-4f30-8e83-53658f2cc411\",\n            \"type\": \"reservation\",\n            \"attributes\": {\n                \"booking_reference\": \"6U0Y-9U7Y\",\n                \"cart_count\": 0,\n                \"holes\": 9,\n                \"note\": \"Reserved using mobile app\",\n                \"state\": \"confirmed\",\n                \"cancelled_at\": \"2025-03-01T20:18:01-05:00\",\n                \"created_at\": \"2025-02-27T02:38:53-05:00\",\n                \"updated_at\": \"2025-03-01T20:18:01-05:00\"\n            },\n            \"relationships\": {\n                \"teetime\": {\n                    \"data\": {\n                        \"id\": \"3a7d2f1f-96fa-4933-8291-d9c86f22cde5\",\n                        \"type\": \"teetime\"\n                    }\n                },\n                \"organization\": {\n                    \"data\": {\n                        \"id\": \"a0baaa6a-7a74-44ef-bbd3-d689729c5a67\",\n                        \"type\": \"organization\"\n                    }\n                },\n                \"booker\": {\n                    \"data\": null\n                },\n                \"rounds\": {\n                    \"data\": [\n                        {\n                            \"id\": \"4fcf3bd2-d0f8-4048-ad29-3541d76b17a5\",\n                            \"type\": \"round\"\n                        }\n                    ]\n                },\n                \"linked_reservations\": {\n                    \"data\": []\n                }\n            }\n        },\n        {\n            \"id\": \"3a91282d-86ec-47ef-9894-2d2974242780\",\n            \"type\": \"reservation\",\n            \"attributes\": {\n                \"booking_reference\": \"8R9B-7R7D\",\n                \"cart_count\": 0,\n                \"holes\": 9,\n                \"note\": \"A note visible to the club\",\n                \"state\": \"confirmed\",\n                \"cancelled_at\": \"2025-02-27T02:47:33-05:00\",\n                \"created_at\": \"2025-02-27T02:41:46-05:00\",\n                \"updated_at\": \"2025-02-27T02:47:33-05:00\"\n            },\n            \"relationships\": {\n                \"teetime\": {\n                    \"data\": {\n                        \"id\": \"8f832983-614c-4fe4-802b-a59827638c25\",\n                        \"type\": \"teetime\"\n                    }\n                },\n                \"organization\": {\n                    \"data\": {\n                        \"id\": \"a0baaa6a-7a74-44ef-bbd3-d689729c5a67\",\n                        \"type\": \"organization\"\n                    }\n                },\n                \"booker\": {\n                    \"data\": null\n                },\n                \"rounds\": {\n                    \"data\": [\n                        {\n                            \"id\": \"5d918e92-13c3-4587-b5ae-219dadf07b56\",\n                            \"type\": \"round\"\n                        },\n                        {\n                            \"id\": \"93fd86bb-b7cf-4554-b092-657483888716\",\n                            \"type\": \"round\"\n                        },\n                        {\n                            \"id\": \"42c69dda-c41a-4613-a352-371e0c00427b\",\n                            \"type\": \"round\"\n                        },\n                        {\n                            \"id\": \"7d97daf0-88ef-4621-9c2d-0438643f6763\",\n                            \"type\": \"round\"\n                        }\n                    ]\n                },\n                \"linked_reservations\": {\n                    \"data\": []\n                }\n            }\n        },\n        {\n            \"id\": \"4a71e4af-544d-45ac-b09d-8efbf1795aea\",\n            \"type\": \"reservation\",\n            \"attributes\": {\n                \"booking_reference\": \"1L7Q-0L9Z\",\n                \"cart_count\": 0,\n                \"holes\": 9,\n                \"note\": null,\n                \"state\": \"confirmed\",\n                \"cancelled_at\": null,\n                \"created_at\": \"2025-02-27T02:58:45-05:00\",\n                \"updated_at\": \"2025-02-27T02:58:45-05:00\"\n            },\n            \"relationships\": {\n                \"teetime\": {\n                    \"data\": {\n                        \"id\": \"8b4cdc76-0709-44e9-9d8b-f66d297e6e0b\",\n                        \"type\": \"teetime\"\n                    }\n                },\n                \"organization\": {\n                    \"data\": {\n                        \"id\": \"a0baaa6a-7a74-44ef-bbd3-d689729c5a67\",\n                        \"type\": \"organization\"\n                    }\n                },\n                \"booker\": {\n                    \"data\": null\n                },\n                \"rounds\": {\n                    \"data\": [\n                        {\n                            \"id\": \"da3ab732-259c-48d5-acb3-e08d01cb9a25\",\n                            \"type\": \"round\"\n                        },\n                        {\n                            \"id\": \"c7831282-8b80-42bd-bed7-1cba4b1319b3\",\n                            \"type\": \"round\"\n                        },\n                        {\n                            \"id\": \"5c727f7a-2085-49eb-805b-67e64bd7606c\",\n                            \"type\": \"round\"\n                        },\n                        {\n                            \"id\": \"e6de9fac-cfb7-42df-83dd-ffcf5c24afa1\",\n                            \"type\": \"round\"\n                        }\n                    ]\n                },\n                \"linked_reservations\": {\n                    \"data\": []\n                }\n            }\n        },\n        {\n            \"id\": \"05a804b0-68c8-4d7f-9b99-474ce36de9ff\",\n            \"type\": \"reservation\",\n            \"attributes\": {\n                \"booking_reference\": \"7B1E-3L4L\",\n                \"cart_count\": 0,\n                \"holes\": 9,\n                \"note\": null,\n                \"state\": \"confirmed\",\n                \"cancelled_at\": null,\n                \"created_at\": \"2025-02-27T03:02:04-05:00\",\n                \"updated_at\": \"2025-02-27T03:02:04-05:00\"\n            },\n            \"relationships\": {\n                \"teetime\": {\n                    \"data\": {\n                        \"id\": \"44a45af6-821c-42e0-a101-47ba5e735450\",\n                        \"type\": \"teetime\"\n                    }\n                },\n                \"organization\": {\n                    \"data\": {\n                        \"id\": \"a0baaa6a-7a74-44ef-bbd3-d689729c5a67\",\n                        \"type\": \"organization\"\n                    }\n                },\n                \"booker\": {\n                    \"data\": null\n                },\n                \"rounds\": {\n                    \"data\": [\n                        {\n                            \"id\": \"717d4fcd-ca81-4141-aa00-ae473b9a045d\",\n                            \"type\": \"round\"\n                        },\n                        {\n                            \"id\": \"2f2b07a0-1f43-4288-99b6-8aa06dc53236\",\n                            \"type\": \"round\"\n                        },\n                        {\n                            \"id\": \"4c1216ea-6414-459a-ac38-34e2c67c352c\",\n                            \"type\": \"round\"\n                        },\n                        {\n                            \"id\": \"d5597cb1-fe53-40fb-98cd-71eaca18ab52\",\n                            \"type\": \"round\"\n                        }\n                    ]\n                },\n                \"linked_reservations\": {\n                    \"data\": []\n                }\n            }\n        },\n        {\n            \"id\": \"4c33a050-2d76-41dc-a4d7-d2c745d57a0c\",\n            \"type\": \"reservation\",\n            \"attributes\": {\n                \"booking_reference\": \"2S8V-6Z1A\",\n                \"cart_count\": 0,\n                \"holes\": 9,\n                \"note\": \"Reserved using mobile app\",\n                \"state\": \"confirmed\",\n                \"cancelled_at\": \"2025-03-03T01:50:14-05:00\",\n                \"created_at\": \"2025-02-27T04:37:23-05:00\",\n                \"updated_at\": \"2025-03-03T01:50:15-05:00\"\n            },\n            \"relationships\": {\n                \"teetime\": {\n                    \"data\": {\n                        \"id\": \"a0ad6621-8475-4917-be0a-444e25a90a0b\",\n                        \"type\": \"teetime\"\n                    }\n                },\n                \"organization\": {\n                    \"data\": {\n                        \"id\": \"a0baaa6a-7a74-44ef-bbd3-d689729c5a67\",\n                        \"type\": \"organization\"\n                    }\n                },\n                \"booker\": {\n                    \"data\": null\n                },\n                \"rounds\": {\n                    \"data\": [\n                        {\n                            \"id\": \"f73b5411-1b5e-4c80-be45-73162284d672\",\n                            \"type\": \"round\"\n                        }\n                    ]\n                },\n                \"linked_reservations\": {\n                    \"data\": []\n                }\n            }\n        },\n        {\n            \"id\": \"e10c97d1-00c5-484b-b2f4-dd646370d3f7\",\n            \"type\": \"reservation\",\n            \"attributes\": {\n                \"booking_reference\": \"6I8H-5N7S\",\n                \"cart_count\": 0,\n                \"holes\": 9,\n                \"note\": \"Reserved using mobile app\",\n                \"state\": \"confirmed\",\n                \"cancelled_at\": \"2025-03-03T01:50:14-05:00\",\n                \"created_at\": \"2025-02-27T04:37:23-05:00\",\n                \"updated_at\": \"2025-03-03T01:50:15-05:00\"\n            },\n            \"relationships\": {\n                \"teetime\": {\n                    \"data\": {\n                        \"id\": \"a0ad6621-8475-4917-be0a-444e25a90a0b\",\n                        \"type\": \"teetime\"\n                    }\n                },\n                \"organization\": {\n                    \"data\": {\n                        \"id\": \"a0baaa6a-7a74-44ef-bbd3-d689729c5a67\",\n                        \"type\": \"organization\"\n                    }\n                },\n                \"booker\": {\n                    \"data\": null\n                },\n                \"rounds\": {\n                    \"data\": [\n                        {\n                            \"id\": \"113749e3-32cc-4f4d-832a-91724ad581c0\",\n                            \"type\": \"round\"\n                        }\n                    ]\n                },\n                \"linked_reservations\": {\n                    \"data\": []\n                }\n            }\n        },\n        {\n            \"id\": \"1bee3e95-dabd-456c-8cdc-979565ef67ed\",\n            \"type\": \"reservation\",\n            \"attributes\": {\n                \"booking_reference\": \"8O8J-4I3X\",\n                \"cart_count\": 0,\n                \"holes\": 9,\n                \"note\": \"A note visible to the club\",\n                \"state\": \"confirmed\",\n                \"cancelled_at\": null,\n                \"created_at\": \"2025-02-27T04:38:48-05:00\",\n                \"updated_at\": \"2025-02-27T04:38:48-05:00\"\n            },\n            \"relationships\": {\n                \"teetime\": {\n                    \"data\": {\n                        \"id\": \"5d391c44-2515-4e95-bce9-7430d019846a\",\n                        \"type\": \"teetime\"\n                    }\n                },\n                \"organization\": {\n                    \"data\": {\n                        \"id\": \"a0baaa6a-7a74-44ef-bbd3-d689729c5a67\",\n                        \"type\": \"organization\"\n                    }\n                },\n                \"booker\": {\n                    \"data\": null\n                },\n                \"rounds\": {\n                    \"data\": [\n                        {\n                            \"id\": \"78cf2746-c32d-4e23-a23a-07209e238a1d\",\n                            \"type\": \"round\"\n                        },\n                        {\n                            \"id\": \"79e6e294-64fc-4884-bb98-64c570f91d3f\",\n                            \"type\": \"round\"\n                        },\n                        {\n                            \"id\": \"2b4e1284-a9e1-447e-818e-29718fb34dc5\",\n                            \"type\": \"round\"\n                        },\n                        {\n                            \"id\": \"a1ecd863-ae4c-4e08-ab80-b74d0e3e8155\",\n                            \"type\": \"round\"\n                        }\n                    ]\n                },\n                \"linked_reservations\": {\n                    \"data\": []\n                }\n            }\n        },\n        {\n            \"id\": \"cdbdc32a-4afb-4dc0-b67c-488b3df3003f\",\n            \"type\": \"reservation\",\n            \"attributes\": {\n                \"booking_reference\": \"4E4G-1J8I\",\n                \"cart_count\": 0,\n                \"holes\": 18,\n                \"note\": null,\n                \"state\": \"confirmed\",\n                \"cancelled_at\": null,\n                \"created_at\": \"2025-02-27T04:41:21-05:00\",\n                \"updated_at\": \"2025-02-27T04:41:21-05:00\"\n            },\n            \"relationships\": {\n                \"teetime\": {\n                    \"data\": {\n                        \"id\": \"5af3ffe8-d55d-4a41-ae81-16ad358cfdad\",\n                        \"type\": \"teetime\"\n                    }\n                },\n                \"organization\": {\n                    \"data\": {\n                        \"id\": \"a0baaa6a-7a74-44ef-bbd3-d689729c5a67\",\n                        \"type\": \"organization\"\n                    }\n                },\n                \"booker\": {\n                    \"data\": null\n                },\n                \"rounds\": {\n                    \"data\": [\n                        {\n                            \"id\": \"4f4597a0-34ca-42ac-92ea-bd18188ab633\",\n                            \"type\": \"round\"\n                        },\n                        {\n                            \"id\": \"32267b8b-632d-41c6-8f55-08f6a54dc395\",\n                            \"type\": \"round\"\n                        }\n                    ]\n                },\n                \"linked_reservations\": {\n                    \"data\": []\n                }\n            }\n        },\n        {\n            \"id\": \"417ff87f-ff74-4a9b-9c05-4ab0bfef6385\",\n            \"type\": \"reservation\",\n            \"attributes\": {\n                \"booking_reference\": \"0N3Q-5S3E\",\n                \"cart_count\": 0,\n                \"holes\": 9,\n                \"note\": \"Reserved using mobile app\",\n                \"state\": \"confirmed\",\n                \"cancelled_at\": \"2025-02-27T11:27:00-05:00\",\n                \"created_at\": \"2025-02-27T05:07:10-05:00\",\n                \"updated_at\": \"2025-02-27T11:27:00-05:00\"\n            },\n            \"relationships\": {\n                \"teetime\": {\n                    \"data\": {\n                        \"id\": \"43718278-9f67-4205-b661-c8b15b742f6b\",\n                        \"type\": \"teetime\"\n                    }\n                },\n                \"organization\": {\n                    \"data\": {\n                        \"id\": \"a0baaa6a-7a74-44ef-bbd3-d689729c5a67\",\n                        \"type\": \"organization\"\n                    }\n                },\n                \"booker\": {\n                    \"data\": null\n                },\n                \"rounds\": {\n                    \"data\": [\n                        {\n                            \"id\": \"81ef4448-b6e7-48c5-9483-5395bfe0489a\",\n                            \"type\": \"round\"\n                        }\n                    ]\n                },\n                \"linked_reservations\": {\n                    \"data\": []\n                }\n            }\n        },\n        {\n            \"id\": \"fb12e502-901a-4d2b-b5e2-fa8816ade861\",\n            \"type\": \"reservation\",\n            \"attributes\": {\n                \"booking_reference\": \"5C5R-0R3S\",\n                \"cart_count\": 0,\n                \"holes\": 9,\n                \"note\": \"Reserved using mobile app\",\n                \"state\": \"confirmed\",\n                \"cancelled_at\": \"2025-02-27T11:27:01-05:00\",\n                \"created_at\": \"2025-02-27T05:07:10-05:00\",\n                \"updated_at\": \"2025-02-27T11:27:01-05:00\"\n            },\n            \"relationships\": {\n                \"teetime\": {\n                    \"data\": {\n                        \"id\": \"43718278-9f67-4205-b661-c8b15b742f6b\",\n                        \"type\": \"teetime\"\n                    }\n                },\n                \"organization\": {\n                    \"data\": {\n                        \"id\": \"a0baaa6a-7a74-44ef-bbd3-d689729c5a67\",\n                        \"type\": \"organization\"\n                    }\n                },\n                \"booker\": {\n                    \"data\": null\n                },\n                \"rounds\": {\n                    \"data\": [\n                        {\n                            \"id\": \"a250dcd5-0972-442d-b3a9-1bb89cc96719\",\n                            \"type\": \"round\"\n                        }\n                    ]\n                },\n                \"linked_reservations\": {\n                    \"data\": []\n                }\n            }\n        },\n        {\n            \"id\": \"3b226156-3f32-4bce-b35d-6492af1f61af\",\n            \"type\": \"reservation\",\n            \"attributes\": {\n                \"booking_reference\": \"3Z7I-4G7A\",\n                \"cart_count\": 0,\n                \"holes\": 18,\n                \"note\": \"A note visible to the club\",\n                \"state\": \"confirmed\",\n                \"cancelled_at\": \"2025-02-27T05:19:32-05:00\",\n                \"created_at\": \"2025-02-27T05:19:16-05:00\",\n                \"updated_at\": \"2025-02-27T05:19:33-05:00\"\n            },\n            \"relationships\": {\n                \"teetime\": {\n                    \"data\": {\n                        \"id\": \"c8613cb8-62be-40c5-9119-82d7f7f8ca72\",\n                        \"type\": \"teetime\"\n                    }\n                },\n                \"organization\": {\n                    \"data\": {\n                        \"id\": \"a0baaa6a-7a74-44ef-bbd3-d689729c5a67\",\n                        \"type\": \"organization\"\n                    }\n                },\n                \"booker\": {\n                    \"data\": null\n                },\n                \"rounds\": {\n                    \"data\": [\n                        {\n                            \"id\": \"3465d91a-c60b-4a80-86f2-42541b6f7e30\",\n                            \"type\": \"round\"\n                        },\n                        {\n                            \"id\": \"8130bd60-6802-400a-86ec-2766d778f821\",\n                            \"type\": \"round\"\n                        },\n                        {\n                            \"id\": \"79be2bc4-8311-469d-94be-0a1ea7ba40c6\",\n                            \"type\": \"round\"\n                        },\n                        {\n                            \"id\": \"a4682bde-7d82-49b6-93b1-d09eb42368f3\",\n                            \"type\": \"round\"\n                        }\n                    ]\n                },\n                \"linked_reservations\": {\n                    \"data\": []\n                }\n            }\n        },\n        {\n            \"id\": \"00d181ab-aa26-4ff1-a72a-f6fb639f513c\",\n            \"type\": \"reservation\",\n            \"attributes\": {\n                \"booking_reference\": \"2T3E-3G8O\",\n                \"cart_count\": 0,\n                \"holes\": 9,\n                \"note\": \"Reserved using mobile app \",\n                \"state\": \"confirmed\",\n                \"cancelled_at\": \"2025-03-03T01:50:14-05:00\",\n                \"created_at\": \"2025-02-27T05:21:33-05:00\",\n                \"updated_at\": \"2025-03-03T01:50:14-05:00\"\n            },\n            \"relationships\": {\n                \"teetime\": {\n                    \"data\": {\n                        \"id\": \"a0ad6621-8475-4917-be0a-444e25a90a0b\",\n                        \"type\": \"teetime\"\n                    }\n                },\n                \"organization\": {\n                    \"data\": {\n                        \"id\": \"a0baaa6a-7a74-44ef-bbd3-d689729c5a67\",\n                        \"type\": \"organization\"\n                    }\n                },\n                \"booker\": {\n                    \"data\": null\n                },\n                \"rounds\": {\n                    \"data\": [\n                        {\n                            \"id\": \"d3de192c-0626-4ee6-bbfc-876f24048096\",\n                            \"type\": \"round\"\n                        }\n                    ]\n                },\n                \"linked_reservations\": {\n                    \"data\": []\n                }\n            }\n        },\n        {\n            \"id\": \"8abceb2a-a52a-42aa-be27-26c4d9c1411c\",\n            \"type\": \"reservation\",\n            \"attributes\": {\n                \"booking_reference\": \"2N5F-7I4U\",\n                \"cart_count\": 0,\n                \"holes\": 18,\n                \"note\": null,\n                \"state\": \"confirmed\",\n                \"cancelled_at\": null,\n                \"created_at\": \"2025-02-27T05:27:59-05:00\",\n                \"updated_at\": \"2025-02-27T05:27:59-05:00\"\n            },\n            \"relationships\": {\n                \"teetime\": {\n                    \"data\": {\n                        \"id\": \"57cb4782-b385-4f1c-a134-504cddb0fd83\",\n                        \"type\": \"teetime\"\n                    }\n                },\n                \"organization\": {\n                    \"data\": {\n                        \"id\": \"a0baaa6a-7a74-44ef-bbd3-d689729c5a67\",\n                        \"type\": \"organization\"\n                    }\n                },\n                \"booker\": {\n                    \"data\": null\n                },\n                \"rounds\": {\n                    \"data\": [\n                        {\n                            \"id\": \"054923f2-40f8-447f-8241-2623e2c2b6c7\",\n                            \"type\": \"round\"\n                        },\n                        {\n                            \"id\": \"3ed3aa3b-e48c-4812-a08f-f90c59b9b2ee\",\n                            \"type\": \"round\"\n                        }\n                    ]\n                },\n                \"linked_reservations\": {\n                    \"data\": []\n                }\n            }\n        },\n        {\n            \"id\": \"78642f6c-0944-4adc-83a6-4c6d7ef4e5f9\",\n            \"type\": \"reservation\",\n            \"attributes\": {\n                \"booking_reference\": \"2F1M-1K6E\",\n                \"cart_count\": 0,\n                \"holes\": 18,\n                \"note\": null,\n                \"state\": \"confirmed\",\n                \"cancelled_at\": null,\n                \"created_at\": \"2025-02-27T05:30:25-05:00\",\n                \"updated_at\": \"2025-02-27T05:30:25-05:00\"\n            },\n            \"relationships\": {\n                \"teetime\": {\n                    \"data\": {\n                        \"id\": \"23d7491e-3dd8-45bc-a176-2811ae3cbd02\",\n                        \"type\": \"teetime\"\n                    }\n                },\n                \"organization\": {\n                    \"data\": {\n                        \"id\": \"a0baaa6a-7a74-44ef-bbd3-d689729c5a67\",\n                        \"type\": \"organization\"\n                    }\n                },\n                \"booker\": {\n                    \"data\": null\n                },\n                \"rounds\": {\n                    \"data\": [\n                        {\n                            \"id\": \"f3b00ee0-fe01-4b18-b616-ec5d2de5df6a\",\n                            \"type\": \"round\"\n                        },\n                        {\n                            \"id\": \"75e3ccff-34a2-4d17-8c45-658ea861ec5f\",\n                            \"type\": \"round\"\n                        }\n                    ]\n                },\n                \"linked_reservations\": {\n                    \"data\": []\n                }\n            }\n        },\n        {\n            \"id\": \"40f11a19-59ba-4a57-abe2-cb3d1497b4b2\",\n            \"type\": \"reservation\",\n            \"attributes\": {\n                \"booking_reference\": \"3M6Z-5E9P\",\n                \"cart_count\": 0,\n                \"holes\": 18,\n                \"note\": \"Reserved using mobile app\",\n                \"state\": \"confirmed\",\n                \"cancelled_at\": \"2025-03-05T05:38:59-05:00\",\n                \"created_at\": \"2025-02-27T05:35:16-05:00\",\n                \"updated_at\": \"2025-03-05T05:38:59-05:00\"\n            },\n            \"relationships\": {\n                \"teetime\": {\n                    \"data\": {\n                        \"id\": \"a45f0b5c-6449-450b-9e2a-2ff9612969af\",\n                        \"type\": \"teetime\"\n                    }\n                },\n                \"organization\": {\n                    \"data\": {\n                        \"id\": \"a0baaa6a-7a74-44ef-bbd3-d689729c5a67\",\n                        \"type\": \"organization\"\n                    }\n                },\n                \"booker\": {\n                    \"data\": null\n                },\n                \"rounds\": {\n                    \"data\": [\n                        {\n                            \"id\": \"17d46383-9170-4f48-a7d4-d5da5b7380fc\",\n                            \"type\": \"round\"\n                        }\n                    ]\n                },\n                \"linked_reservations\": {\n                    \"data\": []\n                }\n            }\n        },\n        {\n            \"id\": \"83e8af9d-92a5-403d-9b33-6949e81096aa\",\n            \"type\": \"reservation\",\n            \"attributes\": {\n                \"booking_reference\": \"3H1M-7Z3D\",\n                \"cart_count\": 0,\n                \"holes\": 18,\n                \"note\": \"Reserved using mobile app\",\n                \"state\": \"confirmed\",\n                \"cancelled_at\": \"2025-03-05T05:38:59-05:00\",\n                \"created_at\": \"2025-02-27T05:35:16-05:00\",\n                \"updated_at\": \"2025-03-05T05:38:59-05:00\"\n            },\n            \"relationships\": {\n                \"teetime\": {\n                    \"data\": {\n                        \"id\": \"a45f0b5c-6449-450b-9e2a-2ff9612969af\",\n                        \"type\": \"teetime\"\n                    }\n                },\n                \"organization\": {\n                    \"data\": {\n                        \"id\": \"a0baaa6a-7a74-44ef-bbd3-d689729c5a67\",\n                        \"type\": \"organization\"\n                    }\n                },\n                \"booker\": {\n                    \"data\": null\n                },\n                \"rounds\": {\n                    \"data\": [\n                        {\n                            \"id\": \"507087bc-8718-47b2-900c-799b69e137bc\",\n                            \"type\": \"round\"\n                        }\n                    ]\n                },\n                \"linked_reservations\": {\n                    \"data\": []\n                }\n            }\n        },\n        {\n            \"id\": \"80f93144-1d54-43aa-9e51-3dffb0fe3c46\",\n            \"type\": \"reservation\",\n            \"attributes\": {\n                \"booking_reference\": \"2C9V-2Q4Y\",\n                \"cart_count\": 0,\n                \"holes\": 18,\n                \"note\": \"\",\n                \"state\": \"confirmed\",\n                \"cancelled_at\": \"2025-03-05T05:38:59-05:00\",\n                \"created_at\": \"2025-02-27T05:35:16-05:00\",\n                \"updated_at\": \"2025-03-05T05:38:59-05:00\"\n            },\n            \"relationships\": {\n                \"teetime\": {\n                    \"data\": {\n                        \"id\": \"a45f0b5c-6449-450b-9e2a-2ff9612969af\",\n                        \"type\": \"teetime\"\n                    }\n                },\n                \"organization\": {\n                    \"data\": {\n                        \"id\": \"a0baaa6a-7a74-44ef-bbd3-d689729c5a67\",\n                        \"type\": \"organization\"\n                    }\n                },\n                \"booker\": {\n                    \"data\": null\n                },\n                \"rounds\": {\n                    \"data\": [\n                        {\n                            \"id\": \"82c50ec4-b598-4957-9148-6a8ec6ffc772\",\n                            \"type\": \"round\"\n                        }\n                    ]\n                },\n                \"linked_reservations\": {\n                    \"data\": []\n                }\n            }\n        },\n        {\n            \"id\": \"c301dc83-030a-4682-a862-fd87d7ad3553\",\n            \"type\": \"reservation\",\n            \"attributes\": {\n                \"booking_reference\": \"5U9Q-3B7I\",\n                \"cart_count\": 0,\n                \"holes\": 18,\n                \"note\": \"Reserved using mobile app\",\n                \"state\": \"confirmed\",\n                \"cancelled_at\": \"2025-02-27T05:48:07-05:00\",\n                \"created_at\": \"2025-02-27T05:35:16-05:00\",\n                \"updated_at\": \"2025-02-27T05:48:07-05:00\"\n            },\n            \"relationships\": {\n                \"teetime\": {\n                    \"data\": {\n                        \"id\": \"a45f0b5c-6449-450b-9e2a-2ff9612969af\",\n                        \"type\": \"teetime\"\n                    }\n                },\n                \"organization\": {\n                    \"data\": {\n                        \"id\": \"a0baaa6a-7a74-44ef-bbd3-d689729c5a67\",\n                        \"type\": \"organization\"\n                    }\n                },\n                \"booker\": {\n                    \"data\": null\n                },\n                \"rounds\": {\n                    \"data\": [\n                        {\n                            \"id\": \"f76b38d9-48b6-4636-8a0f-4644ebf11fca\",\n                            \"type\": \"round\"\n                        }\n                    ]\n                },\n                \"linked_reservations\": {\n                    \"data\": []\n                }\n            }\n        },\n        {\n            \"id\": \"276b9bb5-ca3d-4490-b4de-60a81e60e8d8\",\n            \"type\": \"reservation\",\n            \"attributes\": {\n                \"booking_reference\": \"3G1T-4D9K\",\n                \"cart_count\": 0,\n                \"holes\": 18,\n                \"note\": \"\",\n                \"state\": \"confirmed\",\n                \"cancelled_at\": \"2025-03-05T05:38:59-05:00\",\n                \"created_at\": \"2025-02-27T05:52:22-05:00\",\n                \"updated_at\": \"2025-03-05T05:38:59-05:00\"\n            },\n            \"relationships\": {\n                \"teetime\": {\n                    \"data\": {\n                        \"id\": \"a45f0b5c-6449-450b-9e2a-2ff9612969af\",\n                        \"type\": \"teetime\"\n                    }\n                },\n                \"organization\": {\n                    \"data\": {\n                        \"id\": \"a0baaa6a-7a74-44ef-bbd3-d689729c5a67\",\n                        \"type\": \"organization\"\n                    }\n                },\n                \"booker\": {\n                    \"data\": null\n                },\n                \"rounds\": {\n                    \"data\": [\n                        {\n                            \"id\": \"1d22862b-b3ea-4d2d-a851-635b40260788\",\n                            \"type\": \"round\"\n                        }\n                    ]\n                },\n                \"linked_reservations\": {\n                    \"data\": []\n                }\n            }\n        },\n        {\n            \"id\": \"82bbdb10-8655-4e3f-af74-584cf44cf380\",\n            \"type\": \"reservation\",\n            \"attributes\": {\n                \"booking_reference\": \"6D0A-1X0U\",\n                \"cart_count\": 0,\n                \"holes\": 9,\n                \"note\": \"Reserved using mobile app\",\n                \"state\": \"confirmed\",\n                \"cancelled_at\": \"2025-02-28T09:03:02-05:00\",\n                \"created_at\": \"2025-02-27T05:53:33-05:00\",\n                \"updated_at\": \"2025-02-28T09:03:02-05:00\"\n            },\n            \"relationships\": {\n                \"teetime\": {\n                    \"data\": {\n                        \"id\": \"efe3dd88-c6c6-4d34-8939-4c7b985fab4e\",\n                        \"type\": \"teetime\"\n                    }\n                },\n                \"organization\": {\n                    \"data\": {\n                        \"id\": \"a0baaa6a-7a74-44ef-bbd3-d689729c5a67\",\n                        \"type\": \"organization\"\n                    }\n                },\n                \"booker\": {\n                    \"data\": null\n                },\n                \"rounds\": {\n                    \"data\": [\n                        {\n                            \"id\": \"c65d29e0-5b98-4ece-aefb-da67a00390c2\",\n                            \"type\": \"round\"\n                        }\n                    ]\n                },\n                \"linked_reservations\": {\n                    \"data\": []\n                }\n            }\n        }\n    ],\n    \"included\": [\n        {\n            \"id\": \"ec044d48-1bd2-442b-bdd0-1d0972278ee5\",\n            \"type\": \"round\",\n            \"attributes\": {\n                \"state\": \"reserved\",\n                \"created_at\": \"2025-02-27T02:00:37.943-05:00\",\n                \"updated_at\": \"2025-02-27T02:00:37.943-05:00\",\n                \"cancelled_at\": null,\n                \"price\": 500,\n                \"paid\": true,\n                \"guest\": {\n                    \"last_name\": \"raheel's\",\n                    \"first_name\": \"sam's\"\n                },\n                \"extras\": [],\n                \"kits\": [],\n                \"rates\": {\n                    \"green_fee\": 500,\n                    \"cart_fee\": null,\n                    \"extra_fee\": 0,\n                    \"kit_fee\": 0,\n                    \"subtotal\": null\n                }\n            },\n            \"relationships\": {\n                \"organization\": {\n                    \"data\": {\n                        \"id\": \"a0baaa6a-7a74-44ef-bbd3-d689729c5a67\",\n                        \"type\": \"organization\"\n                    }\n                },\n                \"reservation\": {\n                    \"data\": {\n                        \"id\": \"0bac686a-d911-4722-8a0d-4fe7253a05f0\",\n                        \"type\": \"reservation\"\n                    }\n                },\n                \"player_type\": {\n                    \"data\": {\n                        \"id\": \"303a4ef4-d755-4e36-b0fb-9a23d557f896\",\n                        \"type\": \"player_type\"\n                    }\n                },\n                \"customer\": {\n                    \"data\": null\n                }\n            }\n        },\n        {\n            \"id\": \"c9835348-6f98-469d-868d-9944c8ed014b\",\n            \"type\": \"teetime\",\n            \"attributes\": {\n                \"blocked\": false,\n                \"date\": \"2025-03-01\",\n                \"hole\": 1,\n                \"format\": \"normal\",\n                \"start_time\": \"06:10\",\n                \"free_slots\": 0\n            },\n            \"relationships\": {\n                \"course\": {\n                    \"data\": {\n                        \"id\": \"c51eb73d-38da-4d67-a606-23f6d6cf2deb\",\n                        \"type\": \"course\"\n                    }\n                },\n                \"event\": {\n                    \"data\": null\n                }\n            }\n        },\n        {\n            \"id\": \"9ce26ae1-1cf5-401f-97c3-db19f4a3f6a9\",\n            \"type\": \"round\",\n            \"attributes\": {\n                \"state\": \"reserved\",\n                \"created_at\": \"2025-02-27T02:29:55.584-05:00\",\n                \"updated_at\": \"2025-02-27T02:31:28.473-05:00\",\n                \"cancelled_at\": \"2025-02-27T02:31:28.456-05:00\",\n                \"price\": 0,\n                \"paid\": false,\n                \"guest\": {\n                    \"last_name\": \"Saliq.m\",\n                    \"first_name\": \"Saye'd\"\n                },\n                \"extras\": [],\n                \"kits\": [],\n                \"rates\": {\n                    \"green_fee\": null,\n                    \"cart_fee\": null,\n                    \"extra_fee\": 0,\n                    \"kit_fee\": 0,\n                    \"subtotal\": null\n                }\n            },\n            \"relationships\": {\n                \"organization\": {\n                    \"data\": {\n                        \"id\": \"a0baaa6a-7a74-44ef-bbd3-d689729c5a67\",\n                        \"type\": \"organization\"\n                    }\n                },\n                \"reservation\": {\n                    \"data\": {\n                        \"id\": \"849133ab-1f47-4f94-94f5-01d055d94a3b\",\n                        \"type\": \"reservation\"\n                    }\n                },\n                \"player_type\": {\n                    \"data\": {\n                        \"id\": \"303a4ef4-d755-4e36-b0fb-9a23d557f896\",\n                        \"type\": \"player_type\"\n                    }\n                },\n                \"customer\": {\n                    \"data\": null\n                }\n            }\n        },\n        {\n            \"id\": \"6dd5fb8a-8b0c-4b97-ae26-c1ce2fcccb87\",\n            \"type\": \"round\",\n            \"attributes\": {\n                \"state\": \"reserved\",\n                \"created_at\": \"2025-02-27T02:29:55.590-05:00\",\n                \"updated_at\": \"2025-02-27T02:31:28.494-05:00\",\n                \"cancelled_at\": \"2025-02-27T02:31:28.479-05:00\",\n                \"price\": 0,\n                \"paid\": false,\n                \"guest\": {\n                    \"last_name\": \"Dhdhdy\",\n                    \"first_name\": \"Hddgdh\"\n                },\n                \"extras\": [],\n                \"kits\": [],\n                \"rates\": {\n                    \"green_fee\": null,\n                    \"cart_fee\": null,\n                    \"extra_fee\": 0,\n                    \"kit_fee\": 0,\n                    \"subtotal\": null\n                }\n            },\n            \"relationships\": {\n                \"organization\": {\n                    \"data\": {\n                        \"id\": \"a0baaa6a-7a74-44ef-bbd3-d689729c5a67\",\n                        \"type\": \"organization\"\n                    }\n                },\n                \"reservation\": {\n                    \"data\": {\n                        \"id\": \"849133ab-1f47-4f94-94f5-01d055d94a3b\",\n                        \"type\": \"reservation\"\n                    }\n                },\n                \"player_type\": {\n                    \"data\": {\n                        \"id\": \"303a4ef4-d755-4e36-b0fb-9a23d557f896\",\n                        \"type\": \"player_type\"\n                    }\n                },\n                \"customer\": {\n                    \"data\": null\n                }\n            }\n        },\n        {\n            \"id\": \"1068a68a-dcb4-42fb-a6ff-7c0011ec6a47\",\n            \"type\": \"round\",\n            \"attributes\": {\n                \"state\": \"reserved\",\n                \"created_at\": \"2025-02-27T02:29:55.596-05:00\",\n                \"updated_at\": \"2025-02-27T02:31:28.514-05:00\",\n                \"cancelled_at\": \"2025-02-27T02:31:28.498-05:00\",\n                \"price\": 0,\n                \"paid\": false,\n                \"guest\": {\n                    \"last_name\": \"Hddhud\",\n                    \"first_name\": \"Jsjdn\"\n                },\n                \"extras\": [],\n                \"kits\": [],\n                \"rates\": {\n                    \"green_fee\": null,\n                    \"cart_fee\": null,\n                    \"extra_fee\": 0,\n                    \"kit_fee\": 0,\n                    \"subtotal\": null\n                }\n            },\n            \"relationships\": {\n                \"organization\": {\n                    \"data\": {\n                        \"id\": \"a0baaa6a-7a74-44ef-bbd3-d689729c5a67\",\n                        \"type\": \"organization\"\n                    }\n                },\n                \"reservation\": {\n                    \"data\": {\n                        \"id\": \"849133ab-1f47-4f94-94f5-01d055d94a3b\",\n                        \"type\": \"reservation\"\n                    }\n                },\n                \"player_type\": {\n                    \"data\": {\n                        \"id\": \"303a4ef4-d755-4e36-b0fb-9a23d557f896\",\n                        \"type\": \"player_type\"\n                    }\n                },\n                \"customer\": {\n                    \"data\": null\n                }\n            }\n        },\n        {\n            \"id\": \"9445ff06-77d4-40b6-ab40-a257a26a948b\",\n            \"type\": \"round\",\n            \"attributes\": {\n                \"state\": \"reserved\",\n                \"created_at\": \"2025-02-27T02:29:55.602-05:00\",\n                \"updated_at\": \"2025-02-27T02:31:28.536-05:00\",\n                \"cancelled_at\": \"2025-02-27T02:31:28.518-05:00\",\n                \"price\": 0,\n                \"paid\": false,\n                \"guest\": {\n                    \"last_name\": \"Hdhddh\",\n                    \"first_name\": \"Shshsh\"\n                },\n                \"extras\": [],\n                \"kits\": [],\n                \"rates\": {\n                    \"green_fee\": null,\n                    \"cart_fee\": null,\n                    \"extra_fee\": 0,\n                    \"kit_fee\": 0,\n                    \"subtotal\": null\n                }\n            },\n            \"relationships\": {\n                \"organization\": {\n                    \"data\": {\n                        \"id\": \"a0baaa6a-7a74-44ef-bbd3-d689729c5a67\",\n                        \"type\": \"organization\"\n                    }\n                },\n                \"reservation\": {\n                    \"data\": {\n                        \"id\": \"849133ab-1f47-4f94-94f5-01d055d94a3b\",\n                        \"type\": \"reservation\"\n                    }\n                },\n                \"player_type\": {\n                    \"data\": {\n                        \"id\": \"303a4ef4-d755-4e36-b0fb-9a23d557f896\",\n                        \"type\": \"player_type\"\n                    }\n                },\n                \"customer\": {\n                    \"data\": null\n                }\n            }\n        },\n        {\n            \"id\": \"44a45af6-821c-42e0-a101-47ba5e735450\",\n            \"type\": \"teetime\",\n            \"attributes\": {\n                \"blocked\": false,\n                \"date\": \"2025-03-10\",\n                \"hole\": 1,\n                \"format\": \"normal\",\n                \"start_time\": \"06:09\",\n                \"free_slots\": 0\n            },\n            \"relationships\": {\n                \"course\": {\n                    \"data\": {\n                        \"id\": \"97eacb01-030a-4fea-8e87-13b2363bd6a7\",\n                        \"type\": \"course\"\n                    }\n                },\n                \"event\": {\n                    \"data\": null\n                }\n            }\n        },\n        {\n            \"id\": \"1d325172-d4c5-4775-b930-d536712648dc\",\n            \"type\": \"round\",\n            \"attributes\": {\n                \"state\": \"reserved\",\n                \"created_at\": \"2025-02-27T02:35:29.232-05:00\",\n                \"updated_at\": \"2025-02-27T02:38:00.704-05:00\",\n                \"cancelled_at\": \"2025-02-27T02:38:00.689-05:00\",\n                \"price\": 0,\n                \"paid\": false,\n                \"guest\": {\n                    \"last_name\": \"Vffvdv\",\n                    \"first_name\": \"Bccbcb\"\n                },\n                \"extras\": [],\n                \"kits\": [],\n                \"rates\": {\n                    \"green_fee\": null,\n                    \"cart_fee\": null,\n                    \"extra_fee\": 0,\n                    \"kit_fee\": 0,\n                    \"subtotal\": null\n                }\n            },\n            \"relationships\": {\n                \"organization\": {\n                    \"data\": {\n                        \"id\": \"a0baaa6a-7a74-44ef-bbd3-d689729c5a67\",\n                        \"type\": \"organization\"\n                    }\n                },\n                \"reservation\": {\n                    \"data\": {\n                        \"id\": \"376f230b-5f61-4349-bbf3-7b539d5d7b26\",\n                        \"type\": \"reservation\"\n                    }\n                },\n                \"player_type\": {\n                    \"data\": {\n                        \"id\": \"303a4ef4-d755-4e36-b0fb-9a23d557f896\",\n                        \"type\": \"player_type\"\n                    }\n                },\n                \"customer\": {\n                    \"data\": null\n                }\n            }\n        },\n        {\n            \"id\": \"7b3802f6-3346-4958-9a30-1e0e5c86c54f\",\n            \"type\": \"round\",\n            \"attributes\": {\n                \"state\": \"reserved\",\n                \"created_at\": \"2025-02-27T02:35:29.238-05:00\",\n                \"updated_at\": \"2025-02-27T02:38:00.725-05:00\",\n                \"cancelled_at\": \"2025-02-27T02:38:00.709-05:00\",\n                \"price\": 0,\n                \"paid\": false,\n                \"guest\": {\n                    \"last_name\": \"Bchcdh\",\n                    \"first_name\": \"Dbdbdj\"\n                },\n                \"extras\": [],\n                \"kits\": [],\n                \"rates\": {\n                    \"green_fee\": null,\n                    \"cart_fee\": null,\n                    \"extra_fee\": 0,\n                    \"kit_fee\": 0,\n                    \"subtotal\": null\n                }\n            },\n            \"relationships\": {\n                \"organization\": {\n                    \"data\": {\n                        \"id\": \"a0baaa6a-7a74-44ef-bbd3-d689729c5a67\",\n                        \"type\": \"organization\"\n                    }\n                },\n                \"reservation\": {\n                    \"data\": {\n                        \"id\": \"376f230b-5f61-4349-bbf3-7b539d5d7b26\",\n                        \"type\": \"reservation\"\n                    }\n                },\n                \"player_type\": {\n                    \"data\": {\n                        \"id\": \"303a4ef4-d755-4e36-b0fb-9a23d557f896\",\n                        \"type\": \"player_type\"\n                    }\n                },\n                \"customer\": {\n                    \"data\": null\n                }\n            }\n        },\n        {\n            \"id\": \"52ab6c95-711c-4fd0-b20f-182ca00e5a7d\",\n            \"type\": \"round\",\n            \"attributes\": {\n                \"state\": \"reserved\",\n                \"created_at\": \"2025-02-27T02:35:29.243-05:00\",\n                \"updated_at\": \"2025-02-27T02:38:00.745-05:00\",\n                \"cancelled_at\": \"2025-02-27T02:38:00.729-05:00\",\n                \"price\": 0,\n                \"paid\": false,\n                \"guest\": {\n                    \"last_name\": \"Cbchdh\",\n                    \"first_name\": \"Dbdbdb\"\n                },\n                \"extras\": [],\n                \"kits\": [],\n                \"rates\": {\n                    \"green_fee\": null,\n                    \"cart_fee\": null,\n                    \"extra_fee\": 0,\n                    \"kit_fee\": 0,\n                    \"subtotal\": null\n                }\n            },\n            \"relationships\": {\n                \"organization\": {\n                    \"data\": {\n                        \"id\": \"a0baaa6a-7a74-44ef-bbd3-d689729c5a67\",\n                        \"type\": \"organization\"\n                    }\n                },\n                \"reservation\": {\n                    \"data\": {\n                        \"id\": \"376f230b-5f61-4349-bbf3-7b539d5d7b26\",\n                        \"type\": \"reservation\"\n                    }\n                },\n                \"player_type\": {\n                    \"data\": {\n                        \"id\": \"303a4ef4-d755-4e36-b0fb-9a23d557f896\",\n                        \"type\": \"player_type\"\n                    }\n                },\n                \"customer\": {\n                    \"data\": null\n                }\n            }\n        },\n        {\n            \"id\": \"20ebc1b6-efc0-481d-bc1c-fbc7caeeef88\",\n            \"type\": \"round\",\n            \"attributes\": {\n                \"state\": \"reserved\",\n                \"created_at\": \"2025-02-27T02:35:29.247-05:00\",\n                \"updated_at\": \"2025-02-27T02:38:00.765-05:00\",\n                \"cancelled_at\": \"2025-02-27T02:38:00.750-05:00\",\n                \"price\": 0,\n                \"paid\": false,\n                \"guest\": {\n                    \"last_name\": \"raheel's\",\n                    \"first_name\": \"sam's\"\n                },\n                \"extras\": [],\n                \"kits\": [],\n                \"rates\": {\n                    \"green_fee\": null,\n                    \"cart_fee\": null,\n                    \"extra_fee\": 0,\n                    \"kit_fee\": 0,\n                    \"subtotal\": null\n                }\n            },\n            \"relationships\": {\n                \"organization\": {\n                    \"data\": {\n                        \"id\": \"a0baaa6a-7a74-44ef-bbd3-d689729c5a67\",\n                        \"type\": \"organization\"\n                    }\n                },\n                \"reservation\": {\n                    \"data\": {\n                        \"id\": \"376f230b-5f61-4349-bbf3-7b539d5d7b26\",\n                        \"type\": \"reservation\"\n                    }\n                },\n                \"player_type\": {\n                    \"data\": {\n                        \"id\": \"303a4ef4-d755-4e36-b0fb-9a23d557f896\",\n                        \"type\": \"player_type\"\n                    }\n                },\n                \"customer\": {\n                    \"data\": null\n                }\n            }\n        },\n        {\n            \"id\": \"2653d5cd-a683-4348-8c08-86dafcee7314\",\n            \"type\": \"teetime\",\n            \"attributes\": {\n                \"blocked\": false,\n                \"date\": \"2025-03-10\",\n                \"hole\": 1,\n                \"format\": \"normal\",\n                \"start_time\": \"06:27\",\n                \"free_slots\": 4\n            },\n            \"relationships\": {\n                \"course\": {\n                    \"data\": {\n                        \"id\": \"97eacb01-030a-4fea-8e87-13b2363bd6a7\",\n                        \"type\": \"course\"\n                    }\n                },\n                \"event\": {\n                    \"data\": null\n                }\n            }\n        },\n        {\n            \"id\": \"f15bbb7c-bcdb-479d-b81c-6879983544cb\",\n            \"type\": \"round\",\n            \"attributes\": {\n                \"state\": \"reserved\",\n                \"created_at\": \"2025-02-27T02:37:50.010-05:00\",\n                \"updated_at\": \"2025-02-27T02:37:50.010-05:00\",\n                \"cancelled_at\": null,\n                \"price\": 190,\n                \"paid\": true,\n                \"guest\": {\n                    \"last_name\": \"Vffvdv\",\n                    \"first_name\": \"Bccbcb\"\n                },\n                \"extras\": [],\n                \"kits\": [],\n                \"rates\": {\n                    \"green_fee\": 190,\n                    \"cart_fee\": null,\n                    \"extra_fee\": 0,\n                    \"kit_fee\": 0,\n                    \"subtotal\": null\n                }\n            },\n            \"relationships\": {\n                \"organization\": {\n                    \"data\": {\n                        \"id\": \"a0baaa6a-7a74-44ef-bbd3-d689729c5a67\",\n                        \"type\": \"organization\"\n                    }\n                },\n                \"reservation\": {\n                    \"data\": {\n                        \"id\": \"0aff7df2-36c0-4e66-b9b6-44a11df34ded\",\n                        \"type\": \"reservation\"\n                    }\n                },\n                \"player_type\": {\n                    \"data\": {\n                        \"id\": \"303a4ef4-d755-4e36-b0fb-9a23d557f896\",\n                        \"type\": \"player_type\"\n                    }\n                },\n                \"customer\": {\n                    \"data\": null\n                }\n            }\n        },\n        {\n            \"id\": \"353333d4-ee6b-42d4-bd31-12af60c0514e\",\n            \"type\": \"round\",\n            \"attributes\": {\n                \"state\": \"reserved\",\n                \"created_at\": \"2025-02-27T02:37:50.019-05:00\",\n                \"updated_at\": \"2025-02-27T02:37:50.019-05:00\",\n                \"cancelled_at\": null,\n                \"price\": 190,\n                \"paid\": true,\n                \"guest\": {\n                    \"last_name\": \"raheel's\",\n                    \"first_name\": \"sam's\"\n                },\n                \"extras\": [],\n                \"kits\": [],\n                \"rates\": {\n                    \"green_fee\": 190,\n                    \"cart_fee\": null,\n                    \"extra_fee\": 0,\n                    \"kit_fee\": 0,\n                    \"subtotal\": null\n                }\n            },\n            \"relationships\": {\n                \"organization\": {\n                    \"data\": {\n                        \"id\": \"a0baaa6a-7a74-44ef-bbd3-d689729c5a67\",\n                        \"type\": \"organization\"\n                    }\n                },\n                \"reservation\": {\n                    \"data\": {\n                        \"id\": \"0aff7df2-36c0-4e66-b9b6-44a11df34ded\",\n                        \"type\": \"reservation\"\n                    }\n                },\n                \"player_type\": {\n                    \"data\": {\n                        \"id\": \"303a4ef4-d755-4e36-b0fb-9a23d557f896\",\n                        \"type\": \"player_type\"\n                    }\n                },\n                \"customer\": {\n                    \"data\": null\n                }\n            }\n        },\n        {\n            \"id\": \"46ea3c7f-5b4b-41d4-be3c-c81d53ddb57a\",\n            \"type\": \"teetime\",\n            \"attributes\": {\n                \"blocked\": false,\n                \"date\": \"2025-03-10\",\n                \"hole\": 1,\n                \"format\": \"normal\",\n                \"start_time\": \"06:45\",\n                \"free_slots\": 2\n            },\n            \"relationships\": {\n                \"course\": {\n                    \"data\": {\n                        \"id\": \"97eacb01-030a-4fea-8e87-13b2363bd6a7\",\n                        \"type\": \"course\"\n                    }\n                },\n                \"event\": {\n                    \"data\": null\n                }\n            }\n        },\n        {\n            \"id\": \"38dceb33-ca4c-4ec1-a0b4-a6bb3423c131\",\n            \"type\": \"round\",\n            \"attributes\": {\n                \"state\": \"reserved\",\n                \"created_at\": \"2025-02-27T02:38:53.001-05:00\",\n                \"updated_at\": \"2025-03-01T20:18:03.301-05:00\",\n                \"cancelled_at\": \"2025-03-01T20:18:03.284-05:00\",\n                \"price\": 0,\n                \"paid\": false,\n                \"guest\": {},\n                \"extras\": [],\n                \"kits\": [],\n                \"rates\": {\n                    \"green_fee\": null,\n                    \"cart_fee\": null,\n                    \"extra_fee\": 0,\n                    \"kit_fee\": 0,\n                    \"subtotal\": null\n                }\n            },\n            \"relationships\": {\n                \"organization\": {\n                    \"data\": {\n                        \"id\": \"a0baaa6a-7a74-44ef-bbd3-d689729c5a67\",\n                        \"type\": \"organization\"\n                    }\n                },\n                \"reservation\": {\n                    \"data\": {\n                        \"id\": \"29d8010f-b6dd-4871-af26-1b3e53bcd92b\",\n                        \"type\": \"reservation\"\n                    }\n                },\n                \"player_type\": {\n                    \"data\": {\n                        \"id\": \"b9aef117-d4e2-4e13-a9b4-2885a61f83b3\",\n                        \"type\": \"player_type\"\n                    }\n                },\n                \"customer\": {\n                    \"data\": {\n                        \"id\": \"1ed5763d-42cb-4ec0-9d18-e80a9db1ad8a\",\n                        \"type\": \"customership\"\n                    }\n                }\n            }\n        },\n        {\n            \"id\": \"3a7d2f1f-96fa-4933-8291-d9c86f22cde5\",\n            \"type\": \"teetime\",\n            \"attributes\": {\n                \"blocked\": false,\n                \"date\": \"2025-03-01\",\n                \"hole\": 1,\n                \"format\": \"normal\",\n                \"start_time\": \"18:18\",\n                \"free_slots\": 4\n            },\n            \"relationships\": {\n                \"course\": {\n                    \"data\": {\n                        \"id\": \"128e43f8-969b-4097-96f5-a0c58bf06db3\",\n                        \"type\": \"course\"\n                    }\n                },\n                \"event\": {\n                    \"data\": null\n                }\n            }\n        },\n        {\n            \"id\": \"4fcf3bd2-d0f8-4048-ad29-3541d76b17a5\",\n            \"type\": \"round\",\n            \"attributes\": {\n                \"state\": \"reserved\",\n                \"created_at\": \"2025-02-27T02:38:53.065-05:00\",\n                \"updated_at\": \"2025-03-01T20:18:01.532-05:00\",\n                \"cancelled_at\": \"2025-03-01T20:18:01.512-05:00\",\n                \"price\": 0,\n                \"paid\": false,\n                \"guest\": {},\n                \"extras\": [],\n                \"kits\": [],\n                \"rates\": {\n                    \"green_fee\": null,\n                    \"cart_fee\": null,\n                    \"extra_fee\": 0,\n                    \"kit_fee\": 0,\n                    \"subtotal\": null\n                }\n            },\n            \"relationships\": {\n                \"organization\": {\n                    \"data\": {\n                        \"id\": \"a0baaa6a-7a74-44ef-bbd3-d689729c5a67\",\n                        \"type\": \"organization\"\n                    }\n                },\n                \"reservation\": {\n                    \"data\": {\n                        \"id\": \"31add576-c696-4f30-8e83-53658f2cc411\",\n                        \"type\": \"reservation\"\n                    }\n                },\n                \"player_type\": {\n                    \"data\": {\n                        \"id\": \"b9aef117-d4e2-4e13-a9b4-2885a61f83b3\",\n                        \"type\": \"player_type\"\n                    }\n                },\n                \"customer\": {\n                    \"data\": {\n                        \"id\": \"f07f0287-f39e-4e49-a509-f4d480a0f8d7\",\n                        \"type\": \"customership\"\n                    }\n                }\n            }\n        },\n        {\n            \"id\": \"5d918e92-13c3-4587-b5ae-219dadf07b56\",\n            \"type\": \"round\",\n            \"attributes\": {\n                \"state\": \"reserved\",\n                \"created_at\": \"2025-02-27T02:41:46.837-05:00\",\n                \"updated_at\": \"2025-02-27T02:47:27.070-05:00\",\n                \"cancelled_at\": \"2025-02-27T02:47:27.053-05:00\",\n                \"price\": 0,\n                \"paid\": false,\n                \"guest\": {\n                    \"last_name\": \"Gddgg\",\n                    \"first_name\": \"Dgdvdg\"\n                },\n                \"extras\": [],\n                \"kits\": [],\n                \"rates\": {\n                    \"green_fee\": null,\n                    \"cart_fee\": null,\n                    \"extra_fee\": 0,\n                    \"kit_fee\": 0,\n                    \"subtotal\": null\n                }\n            },\n            \"relationships\": {\n                \"organization\": {\n                    \"data\": {\n                        \"id\": \"a0baaa6a-7a74-44ef-bbd3-d689729c5a67\",\n                        \"type\": \"organization\"\n                    }\n                },\n                \"reservation\": {\n                    \"data\": {\n                        \"id\": \"3a91282d-86ec-47ef-9894-2d2974242780\",\n                        \"type\": \"reservation\"\n                    }\n                },\n                \"player_type\": {\n                    \"data\": {\n                        \"id\": \"303a4ef4-d755-4e36-b0fb-9a23d557f896\",\n                        \"type\": \"player_type\"\n                    }\n                },\n                \"customer\": {\n                    \"data\": null\n                }\n            }\n        },\n        {\n            \"id\": \"93fd86bb-b7cf-4554-b092-657483888716\",\n            \"type\": \"round\",\n            \"attributes\": {\n                \"state\": \"reserved\",\n                \"created_at\": \"2025-02-27T02:41:46.845-05:00\",\n                \"updated_at\": \"2025-02-27T02:47:27.091-05:00\",\n                \"cancelled_at\": \"2025-02-27T02:47:27.075-05:00\",\n                \"price\": 0,\n                \"paid\": false,\n                \"guest\": {\n                    \"last_name\": \"Gdgdg\",\n                    \"first_name\": \"Hddhdh\"\n                },\n                \"extras\": [],\n                \"kits\": [],\n                \"rates\": {\n                    \"green_fee\": null,\n                    \"cart_fee\": null,\n                    \"extra_fee\": 0,\n                    \"kit_fee\": 0,\n                    \"subtotal\": null\n                }\n            },\n            \"relationships\": {\n                \"organization\": {\n                    \"data\": {\n                        \"id\": \"a0baaa6a-7a74-44ef-bbd3-d689729c5a67\",\n                        \"type\": \"organization\"\n                    }\n                },\n                \"reservation\": {\n                    \"data\": {\n                        \"id\": \"3a91282d-86ec-47ef-9894-2d2974242780\",\n                        \"type\": \"reservation\"\n                    }\n                },\n                \"player_type\": {\n                    \"data\": {\n                        \"id\": \"303a4ef4-d755-4e36-b0fb-9a23d557f896\",\n                        \"type\": \"player_type\"\n                    }\n                },\n                \"customer\": {\n                    \"data\": null\n                }\n            }\n        },\n        {\n            \"id\": \"42c69dda-c41a-4613-a352-371e0c00427b\",\n            \"type\": \"round\",\n            \"attributes\": {\n                \"state\": \"reserved\",\n                \"created_at\": \"2025-02-27T02:41:46.852-05:00\",\n                \"updated_at\": \"2025-02-27T02:47:27.110-05:00\",\n                \"cancelled_at\": \"2025-02-27T02:47:27.095-05:00\",\n                \"price\": 0,\n                \"paid\": false,\n                \"guest\": {\n                    \"last_name\": \"raheel's\",\n                    \"first_name\": \"sam's\"\n                },\n                \"extras\": [],\n                \"kits\": [],\n                \"rates\": {\n                    \"green_fee\": null,\n                    \"cart_fee\": null,\n                    \"extra_fee\": 0,\n                    \"kit_fee\": 0,\n                    \"subtotal\": null\n                }\n            },\n            \"relationships\": {\n                \"organization\": {\n                    \"data\": {\n                        \"id\": \"a0baaa6a-7a74-44ef-bbd3-d689729c5a67\",\n                        \"type\": \"organization\"\n                    }\n                },\n                \"reservation\": {\n                    \"data\": {\n                        \"id\": \"3a91282d-86ec-47ef-9894-2d2974242780\",\n                        \"type\": \"reservation\"\n                    }\n                },\n                \"player_type\": {\n                    \"data\": {\n                        \"id\": \"303a4ef4-d755-4e36-b0fb-9a23d557f896\",\n                        \"type\": \"player_type\"\n                    }\n                },\n                \"customer\": {\n                    \"data\": null\n                }\n            }\n        },\n        {\n            \"id\": \"7d97daf0-88ef-4621-9c2d-0438643f6763\",\n            \"type\": \"round\",\n            \"attributes\": {\n                \"state\": \"reserved\",\n                \"created_at\": \"2025-02-27T02:41:46.860-05:00\",\n                \"updated_at\": \"2025-02-27T02:47:27.131-05:00\",\n                \"cancelled_at\": \"2025-02-27T02:47:27.115-05:00\",\n                \"price\": 0,\n                \"paid\": false,\n                \"guest\": {\n                    \"last_name\": \"Hdbsxb\",\n                    \"first_name\": \"Gddgdg\"\n                },\n                \"extras\": [],\n                \"kits\": [],\n                \"rates\": {\n                    \"green_fee\": null,\n                    \"cart_fee\": null,\n                    \"extra_fee\": 0,\n                    \"kit_fee\": 0,\n                    \"subtotal\": null\n                }\n            },\n            \"relationships\": {\n                \"organization\": {\n                    \"data\": {\n                        \"id\": \"a0baaa6a-7a74-44ef-bbd3-d689729c5a67\",\n                        \"type\": \"organization\"\n                    }\n                },\n                \"reservation\": {\n                    \"data\": {\n                        \"id\": \"3a91282d-86ec-47ef-9894-2d2974242780\",\n                        \"type\": \"reservation\"\n                    }\n                },\n                \"player_type\": {\n                    \"data\": {\n                        \"id\": \"303a4ef4-d755-4e36-b0fb-9a23d557f896\",\n                        \"type\": \"player_type\"\n                    }\n                },\n                \"customer\": {\n                    \"data\": null\n                }\n            }\n        },\n        {\n            \"id\": \"8f832983-614c-4fe4-802b-a59827638c25\",\n            \"type\": \"teetime\",\n            \"attributes\": {\n                \"blocked\": false,\n                \"date\": \"2025-03-11\",\n                \"hole\": 1,\n                \"format\": \"normal\",\n                \"start_time\": \"06:36\",\n                \"free_slots\": 4\n            },\n            \"relationships\": {\n                \"course\": {\n                    \"data\": {\n                        \"id\": \"97eacb01-030a-4fea-8e87-13b2363bd6a7\",\n                        \"type\": \"course\"\n                    }\n                },\n                \"event\": {\n                    \"data\": null\n                }\n            }\n        },\n        {\n            \"id\": \"da3ab732-259c-48d5-acb3-e08d01cb9a25\",\n            \"type\": \"round\",\n            \"attributes\": {\n                \"state\": \"reserved\",\n                \"created_at\": \"2025-02-27T02:58:45.749-05:00\",\n                \"updated_at\": \"2025-02-27T02:58:45.749-05:00\",\n                \"cancelled_at\": null,\n                \"price\": 190,\n                \"paid\": false,\n                \"guest\": {},\n                \"extras\": [],\n                \"kits\": [],\n                \"rates\": {\n                    \"green_fee\": 190,\n                    \"cart_fee\": null,\n                    \"extra_fee\": 0,\n                    \"kit_fee\": 0,\n                    \"subtotal\": null\n                }\n            },\n            \"relationships\": {\n                \"organization\": {\n                    \"data\": {\n                        \"id\": \"a0baaa6a-7a74-44ef-bbd3-d689729c5a67\",\n                        \"type\": \"organization\"\n                    }\n                },\n                \"reservation\": {\n                    \"data\": {\n                        \"id\": \"4a71e4af-544d-45ac-b09d-8efbf1795aea\",\n                        \"type\": \"reservation\"\n                    }\n                },\n                \"player_type\": {\n                    \"data\": {\n                        \"id\": \"303a4ef4-d755-4e36-b0fb-9a23d557f896\",\n                        \"type\": \"player_type\"\n                    }\n                },\n                \"customer\": {\n                    \"data\": {\n                        \"id\": \"49a76260-edea-4020-91e7-044143962a7a\",\n                        \"type\": \"customership\"\n                    }\n                }\n            }\n        },\n        {\n            \"id\": \"c7831282-8b80-42bd-bed7-1cba4b1319b3\",\n            \"type\": \"round\",\n            \"attributes\": {\n                \"state\": \"reserved\",\n                \"created_at\": \"2025-02-27T02:58:45.756-05:00\",\n                \"updated_at\": \"2025-02-27T02:58:45.756-05:00\",\n                \"cancelled_at\": null,\n                \"price\": 190,\n                \"paid\": false,\n                \"guest\": {},\n                \"extras\": [],\n                \"kits\": [],\n                \"rates\": {\n                    \"green_fee\": 190,\n                    \"cart_fee\": null,\n                    \"extra_fee\": 0,\n                    \"kit_fee\": 0,\n                    \"subtotal\": null\n                }\n            },\n            \"relationships\": {\n                \"organization\": {\n                    \"data\": {\n                        \"id\": \"a0baaa6a-7a74-44ef-bbd3-d689729c5a67\",\n                        \"type\": \"organization\"\n                    }\n                },\n                \"reservation\": {\n                    \"data\": {\n                        \"id\": \"4a71e4af-544d-45ac-b09d-8efbf1795aea\",\n                        \"type\": \"reservation\"\n                    }\n                },\n                \"player_type\": {\n                    \"data\": {\n                        \"id\": \"303a4ef4-d755-4e36-b0fb-9a23d557f896\",\n                        \"type\": \"player_type\"\n                    }\n                },\n                \"customer\": {\n                    \"data\": {\n                        \"id\": \"49a76260-edea-4020-91e7-044143962a7a\",\n                        \"type\": \"customership\"\n                    }\n                }\n            }\n        },\n        {\n            \"id\": \"5c727f7a-2085-49eb-805b-67e64bd7606c\",\n            \"type\": \"round\",\n            \"attributes\": {\n                \"state\": \"reserved\",\n                \"created_at\": \"2025-02-27T02:58:45.761-05:00\",\n                \"updated_at\": \"2025-02-27T02:58:45.761-05:00\",\n                \"cancelled_at\": null,\n                \"price\": 190,\n                \"paid\": false,\n                \"guest\": {},\n                \"extras\": [],\n                \"kits\": [],\n                \"rates\": {\n                    \"green_fee\": 190,\n                    \"cart_fee\": null,\n                    \"extra_fee\": 0,\n                    \"kit_fee\": 0,\n                    \"subtotal\": null\n                }\n            },\n            \"relationships\": {\n                \"organization\": {\n                    \"data\": {\n                        \"id\": \"a0baaa6a-7a74-44ef-bbd3-d689729c5a67\",\n                        \"type\": \"organization\"\n                    }\n                },\n                \"reservation\": {\n                    \"data\": {\n                        \"id\": \"4a71e4af-544d-45ac-b09d-8efbf1795aea\",\n                        \"type\": \"reservation\"\n                    }\n                },\n                \"player_type\": {\n                    \"data\": {\n                        \"id\": \"303a4ef4-d755-4e36-b0fb-9a23d557f896\",\n                        \"type\": \"player_type\"\n                    }\n                },\n                \"customer\": {\n                    \"data\": {\n                        \"id\": \"49a76260-edea-4020-91e7-044143962a7a\",\n                        \"type\": \"customership\"\n                    }\n                }\n            }\n        },\n        {\n            \"id\": \"e6de9fac-cfb7-42df-83dd-ffcf5c24afa1\",\n            \"type\": \"round\",\n            \"attributes\": {\n                \"state\": \"reserved\",\n                \"created_at\": \"2025-02-27T02:58:45.767-05:00\",\n                \"updated_at\": \"2025-02-27T02:58:45.767-05:00\",\n                \"cancelled_at\": null,\n                \"price\": 190,\n                \"paid\": false,\n                \"guest\": {},\n                \"extras\": [],\n                \"kits\": [],\n                \"rates\": {\n                    \"green_fee\": 190,\n                    \"cart_fee\": null,\n                    \"extra_fee\": 0,\n                    \"kit_fee\": 0,\n                    \"subtotal\": null\n                }\n            },\n            \"relationships\": {\n                \"organization\": {\n                    \"data\": {\n                        \"id\": \"a0baaa6a-7a74-44ef-bbd3-d689729c5a67\",\n                        \"type\": \"organization\"\n                    }\n                },\n                \"reservation\": {\n                    \"data\": {\n                        \"id\": \"4a71e4af-544d-45ac-b09d-8efbf1795aea\",\n                        \"type\": \"reservation\"\n                    }\n                },\n                \"player_type\": {\n                    \"data\": {\n                        \"id\": \"303a4ef4-d755-4e36-b0fb-9a23d557f896\",\n                        \"type\": \"player_type\"\n                    }\n                },\n                \"customer\": {\n                    \"data\": {\n                        \"id\": \"49a76260-edea-4020-91e7-044143962a7a\",\n                        \"type\": \"customership\"\n                    }\n                }\n            }\n        },\n        {\n            \"id\": \"8b4cdc76-0709-44e9-9d8b-f66d297e6e0b\",\n            \"type\": \"teetime\",\n            \"attributes\": {\n                \"blocked\": false,\n                \"date\": \"2025-03-10\",\n                \"hole\": 1,\n                \"format\": \"normal\",\n                \"start_time\": \"06:00\",\n                \"free_slots\": 0\n            },\n            \"relationships\": {\n                \"course\": {\n                    \"data\": {\n                        \"id\": \"97eacb01-030a-4fea-8e87-13b2363bd6a7\",\n                        \"type\": \"course\"\n                    }\n                },\n                \"event\": {\n                    \"data\": null\n                }\n            }\n        },\n        {\n            \"id\": \"717d4fcd-ca81-4141-aa00-ae473b9a045d\",\n            \"type\": \"round\",\n            \"attributes\": {\n                \"state\": \"reserved\",\n                \"created_at\": \"2025-02-27T03:02:04.132-05:00\",\n                \"updated_at\": \"2025-02-27T03:02:04.132-05:00\",\n                \"cancelled_at\": null,\n                \"price\": 190,\n                \"paid\": false,\n                \"guest\": {},\n                \"extras\": [],\n                \"kits\": [],\n                \"rates\": {\n                    \"green_fee\": 190,\n                    \"cart_fee\": null,\n                    \"extra_fee\": 0,\n                    \"kit_fee\": 0,\n                    \"subtotal\": null\n                }\n            },\n            \"relationships\": {\n                \"organization\": {\n                    \"data\": {\n                        \"id\": \"a0baaa6a-7a74-44ef-bbd3-d689729c5a67\",\n                        \"type\": \"organization\"\n                    }\n                },\n                \"reservation\": {\n                    \"data\": {\n                        \"id\": \"05a804b0-68c8-4d7f-9b99-474ce36de9ff\",\n                        \"type\": \"reservation\"\n                    }\n                },\n                \"player_type\": {\n                    \"data\": {\n                        \"id\": \"303a4ef4-d755-4e36-b0fb-9a23d557f896\",\n                        \"type\": \"player_type\"\n                    }\n                },\n                \"customer\": {\n                    \"data\": {\n                        \"id\": \"49a76260-edea-4020-91e7-044143962a7a\",\n                        \"type\": \"customership\"\n                    }\n                }\n            }\n        },\n        {\n            \"id\": \"2f2b07a0-1f43-4288-99b6-8aa06dc53236\",\n            \"type\": \"round\",\n            \"attributes\": {\n                \"state\": \"reserved\",\n                \"created_at\": \"2025-02-27T03:02:04.145-05:00\",\n                \"updated_at\": \"2025-02-27T03:02:04.145-05:00\",\n                \"cancelled_at\": null,\n                \"price\": 190,\n                \"paid\": false,\n                \"guest\": {},\n                \"extras\": [],\n                \"kits\": [],\n                \"rates\": {\n                    \"green_fee\": 190,\n                    \"cart_fee\": null,\n                    \"extra_fee\": 0,\n                    \"kit_fee\": 0,\n                    \"subtotal\": null\n                }\n            },\n            \"relationships\": {\n                \"organization\": {\n                    \"data\": {\n                        \"id\": \"a0baaa6a-7a74-44ef-bbd3-d689729c5a67\",\n                        \"type\": \"organization\"\n                    }\n                },\n                \"reservation\": {\n                    \"data\": {\n                        \"id\": \"05a804b0-68c8-4d7f-9b99-474ce36de9ff\",\n                        \"type\": \"reservation\"\n                    }\n                },\n                \"player_type\": {\n                    \"data\": {\n                        \"id\": \"303a4ef4-d755-4e36-b0fb-9a23d557f896\",\n                        \"type\": \"player_type\"\n                    }\n                },\n                \"customer\": {\n                    \"data\": {\n                        \"id\": \"49a76260-edea-4020-91e7-044143962a7a\",\n                        \"type\": \"customership\"\n                    }\n                }\n            }\n        },\n        {\n            \"id\": \"4c1216ea-6414-459a-ac38-34e2c67c352c\",\n            \"type\": \"round\",\n            \"attributes\": {\n                \"state\": \"reserved\",\n                \"created_at\": \"2025-02-27T03:02:04.151-05:00\",\n                \"updated_at\": \"2025-02-27T03:02:04.151-05:00\",\n                \"cancelled_at\": null,\n                \"price\": 190,\n                \"paid\": false,\n                \"guest\": {},\n                \"extras\": [],\n                \"kits\": [],\n                \"rates\": {\n                    \"green_fee\": 190,\n                    \"cart_fee\": null,\n                    \"extra_fee\": 0,\n                    \"kit_fee\": 0,\n                    \"subtotal\": null\n                }\n            },\n            \"relationships\": {\n                \"organization\": {\n                    \"data\": {\n                        \"id\": \"a0baaa6a-7a74-44ef-bbd3-d689729c5a67\",\n                        \"type\": \"organization\"\n                    }\n                },\n                \"reservation\": {\n                    \"data\": {\n                        \"id\": \"05a804b0-68c8-4d7f-9b99-474ce36de9ff\",\n                        \"type\": \"reservation\"\n                    }\n                },\n                \"player_type\": {\n                    \"data\": {\n                        \"id\": \"303a4ef4-d755-4e36-b0fb-9a23d557f896\",\n                        \"type\": \"player_type\"\n                    }\n                },\n                \"customer\": {\n                    \"data\": {\n                        \"id\": \"49a76260-edea-4020-91e7-044143962a7a\",\n                        \"type\": \"customership\"\n                    }\n                }\n            }\n        },\n        {\n            \"id\": \"d5597cb1-fe53-40fb-98cd-71eaca18ab52\",\n            \"type\": \"round\",\n            \"attributes\": {\n                \"state\": \"reserved\",\n                \"created_at\": \"2025-02-27T03:02:04.157-05:00\",\n                \"updated_at\": \"2025-02-27T03:02:04.157-05:00\",\n                \"cancelled_at\": null,\n                \"price\": 190,\n                \"paid\": false,\n                \"guest\": {},\n                \"extras\": [],\n                \"kits\": [],\n                \"rates\": {\n                    \"green_fee\": 190,\n                    \"cart_fee\": null,\n                    \"extra_fee\": 0,\n                    \"kit_fee\": 0,\n                    \"subtotal\": null\n                }\n            },\n            \"relationships\": {\n                \"organization\": {\n                    \"data\": {\n                        \"id\": \"a0baaa6a-7a74-44ef-bbd3-d689729c5a67\",\n                        \"type\": \"organization\"\n                    }\n                },\n                \"reservation\": {\n                    \"data\": {\n                        \"id\": \"05a804b0-68c8-4d7f-9b99-474ce36de9ff\",\n                        \"type\": \"reservation\"\n                    }\n                },\n                \"player_type\": {\n                    \"data\": {\n                        \"id\": \"303a4ef4-d755-4e36-b0fb-9a23d557f896\",\n                        \"type\": \"player_type\"\n                    }\n                },\n                \"customer\": {\n                    \"data\": {\n                        \"id\": \"49a76260-edea-4020-91e7-044143962a7a\",\n                        \"type\": \"customership\"\n                    }\n                }\n            }\n        },\n        {\n            \"id\": \"f73b5411-1b5e-4c80-be45-73162284d672\",\n            \"type\": \"round\",\n            \"attributes\": {\n                \"state\": \"reserved\",\n                \"created_at\": \"2025-02-27T04:37:23.824-05:00\",\n                \"updated_at\": \"2025-03-03T01:50:14.980-05:00\",\n                \"cancelled_at\": \"2025-03-03T01:50:14.946-05:00\",\n                \"price\": 0,\n                \"paid\": false,\n                \"guest\": {},\n                \"extras\": [],\n                \"kits\": [],\n                \"rates\": {\n                    \"green_fee\": null,\n                    \"cart_fee\": null,\n                    \"extra_fee\": 0,\n                    \"kit_fee\": 0,\n                    \"subtotal\": null\n                }\n            },\n            \"relationships\": {\n                \"organization\": {\n                    \"data\": {\n                        \"id\": \"a0baaa6a-7a74-44ef-bbd3-d689729c5a67\",\n                        \"type\": \"organization\"\n                    }\n                },\n                \"reservation\": {\n                    \"data\": {\n                        \"id\": \"4c33a050-2d76-41dc-a4d7-d2c745d57a0c\",\n                        \"type\": \"reservation\"\n                    }\n                },\n                \"player_type\": {\n                    \"data\": {\n                        \"id\": \"b9aef117-d4e2-4e13-a9b4-2885a61f83b3\",\n                        \"type\": \"player_type\"\n                    }\n                },\n                \"customer\": {\n                    \"data\": {\n                        \"id\": \"21e57ac7-9be5-4fdf-94fd-2db0a2f8d92d\",\n                        \"type\": \"customership\"\n                    }\n                }\n            }\n        },\n        {\n            \"id\": \"a0ad6621-8475-4917-be0a-444e25a90a0b\",\n            \"type\": \"teetime\",\n            \"attributes\": {\n                \"blocked\": false,\n                \"date\": \"2025-03-04\",\n                \"hole\": 1,\n                \"format\": \"normal\",\n                \"start_time\": \"18:18\",\n                \"free_slots\": 4\n            },\n            \"relationships\": {\n                \"course\": {\n                    \"data\": {\n                        \"id\": \"128e43f8-969b-4097-96f5-a0c58bf06db3\",\n                        \"type\": \"course\"\n                    }\n                },\n                \"event\": {\n                    \"data\": null\n                }\n            }\n        },\n        {\n            \"id\": \"113749e3-32cc-4f4d-832a-91724ad581c0\",\n            \"type\": \"round\",\n            \"attributes\": {\n                \"state\": \"reserved\",\n                \"created_at\": \"2025-02-27T04:37:23.897-05:00\",\n                \"updated_at\": \"2025-03-03T01:50:14.983-05:00\",\n                \"cancelled_at\": \"2025-03-03T01:50:14.964-05:00\",\n                \"price\": 0,\n                \"paid\": false,\n                \"guest\": {},\n                \"extras\": [],\n                \"kits\": [],\n                \"rates\": {\n                    \"green_fee\": null,\n                    \"cart_fee\": null,\n                    \"extra_fee\": 0,\n                    \"kit_fee\": 0,\n                    \"subtotal\": null\n                }\n            },\n            \"relationships\": {\n                \"organization\": {\n                    \"data\": {\n                        \"id\": \"a0baaa6a-7a74-44ef-bbd3-d689729c5a67\",\n                        \"type\": \"organization\"\n                    }\n                },\n                \"reservation\": {\n                    \"data\": {\n                        \"id\": \"e10c97d1-00c5-484b-b2f4-dd646370d3f7\",\n                        \"type\": \"reservation\"\n                    }\n                },\n                \"player_type\": {\n                    \"data\": {\n                        \"id\": \"b9aef117-d4e2-4e13-a9b4-2885a61f83b3\",\n                        \"type\": \"player_type\"\n                    }\n                },\n                \"customer\": {\n                    \"data\": {\n                        \"id\": \"9879f6aa-9d18-4793-bfa2-e9e313ce04cf\",\n                        \"type\": \"customership\"\n                    }\n                }\n            }\n        },\n        {\n            \"id\": \"78cf2746-c32d-4e23-a23a-07209e238a1d\",\n            \"type\": \"round\",\n            \"attributes\": {\n                \"state\": \"reserved\",\n                \"created_at\": \"2025-02-27T04:38:48.164-05:00\",\n                \"updated_at\": \"2025-02-27T04:38:48.164-05:00\",\n                \"cancelled_at\": null,\n                \"price\": 190,\n                \"paid\": true,\n                \"guest\": {\n                    \"last_name\": \"raheel's\",\n                    \"first_name\": \"sam's\"\n                },\n                \"extras\": [],\n                \"kits\": [],\n                \"rates\": {\n                    \"green_fee\": 190,\n                    \"cart_fee\": null,\n                    \"extra_fee\": 0,\n                    \"kit_fee\": 0,\n                    \"subtotal\": null\n                }\n            },\n            \"relationships\": {\n                \"organization\": {\n                    \"data\": {\n                        \"id\": \"a0baaa6a-7a74-44ef-bbd3-d689729c5a67\",\n                        \"type\": \"organization\"\n                    }\n                },\n                \"reservation\": {\n                    \"data\": {\n                        \"id\": \"1bee3e95-dabd-456c-8cdc-979565ef67ed\",\n                        \"type\": \"reservation\"\n                    }\n                },\n                \"player_type\": {\n                    \"data\": {\n                        \"id\": \"303a4ef4-d755-4e36-b0fb-9a23d557f896\",\n                        \"type\": \"player_type\"\n                    }\n                },\n                \"customer\": {\n                    \"data\": null\n                }\n            }\n        },\n        {\n            \"id\": \"79e6e294-64fc-4884-bb98-64c570f91d3f\",\n            \"type\": \"round\",\n            \"attributes\": {\n                \"state\": \"reserved\",\n                \"created_at\": \"2025-02-27T04:38:48.171-05:00\",\n                \"updated_at\": \"2025-02-27T04:38:48.171-05:00\",\n                \"cancelled_at\": null,\n                \"price\": 190,\n                \"paid\": true,\n                \"guest\": {\n                    \"last_name\": \"Dhhdh\",\n                    \"first_name\": \"Hxxhxb\"\n                },\n                \"extras\": [],\n                \"kits\": [],\n                \"rates\": {\n                    \"green_fee\": 190,\n                    \"cart_fee\": null,\n                    \"extra_fee\": 0,\n                    \"kit_fee\": 0,\n                    \"subtotal\": null\n                }\n            },\n            \"relationships\": {\n                \"organization\": {\n                    \"data\": {\n                        \"id\": \"a0baaa6a-7a74-44ef-bbd3-d689729c5a67\",\n                        \"type\": \"organization\"\n                    }\n                },\n                \"reservation\": {\n                    \"data\": {\n                        \"id\": \"1bee3e95-dabd-456c-8cdc-979565ef67ed\",\n                        \"type\": \"reservation\"\n                    }\n                },\n                \"player_type\": {\n                    \"data\": {\n                        \"id\": \"303a4ef4-d755-4e36-b0fb-9a23d557f896\",\n                        \"type\": \"player_type\"\n                    }\n                },\n                \"customer\": {\n                    \"data\": null\n                }\n            }\n        },\n        {\n            \"id\": \"2b4e1284-a9e1-447e-818e-29718fb34dc5\",\n            \"type\": \"round\",\n            \"attributes\": {\n                \"state\": \"reserved\",\n                \"created_at\": \"2025-02-27T04:38:48.176-05:00\",\n                \"updated_at\": \"2025-02-27T04:38:48.176-05:00\",\n                \"cancelled_at\": null,\n                \"price\": 190,\n                \"paid\": true,\n                \"guest\": {\n                    \"last_name\": \"Bdhdh\",\n                    \"first_name\": \"Bdbdh\"\n                },\n                \"extras\": [],\n                \"kits\": [],\n                \"rates\": {\n                    \"green_fee\": 190,\n                    \"cart_fee\": null,\n                    \"extra_fee\": 0,\n                    \"kit_fee\": 0,\n                    \"subtotal\": null\n                }\n            },\n            \"relationships\": {\n                \"organization\": {\n                    \"data\": {\n                        \"id\": \"a0baaa6a-7a74-44ef-bbd3-d689729c5a67\",\n                        \"type\": \"organization\"\n                    }\n                },\n                \"reservation\": {\n                    \"data\": {\n                        \"id\": \"1bee3e95-dabd-456c-8cdc-979565ef67ed\",\n                        \"type\": \"reservation\"\n                    }\n                },\n                \"player_type\": {\n                    \"data\": {\n                        \"id\": \"303a4ef4-d755-4e36-b0fb-9a23d557f896\",\n                        \"type\": \"player_type\"\n                    }\n                },\n                \"customer\": {\n                    \"data\": null\n                }\n            }\n        },\n        {\n            \"id\": \"a1ecd863-ae4c-4e08-ab80-b74d0e3e8155\",\n            \"type\": \"round\",\n            \"attributes\": {\n                \"state\": \"reserved\",\n                \"created_at\": \"2025-02-27T04:38:48.182-05:00\",\n                \"updated_at\": \"2025-02-27T04:38:48.182-05:00\",\n                \"cancelled_at\": null,\n                \"price\": 190,\n                \"paid\": true,\n                \"guest\": {\n                    \"last_name\": \"Dhdhh\",\n                    \"first_name\": \"Bdbddb\"\n                },\n                \"extras\": [],\n                \"kits\": [],\n                \"rates\": {\n                    \"green_fee\": 190,\n                    \"cart_fee\": null,\n                    \"extra_fee\": 0,\n                    \"kit_fee\": 0,\n                    \"subtotal\": null\n                }\n            },\n            \"relationships\": {\n                \"organization\": {\n                    \"data\": {\n                        \"id\": \"a0baaa6a-7a74-44ef-bbd3-d689729c5a67\",\n                        \"type\": \"organization\"\n                    }\n                },\n                \"reservation\": {\n                    \"data\": {\n                        \"id\": \"1bee3e95-dabd-456c-8cdc-979565ef67ed\",\n                        \"type\": \"reservation\"\n                    }\n                },\n                \"player_type\": {\n                    \"data\": {\n                        \"id\": \"303a4ef4-d755-4e36-b0fb-9a23d557f896\",\n                        \"type\": \"player_type\"\n                    }\n                },\n                \"customer\": {\n                    \"data\": null\n                }\n            }\n        },\n        {\n            \"id\": \"5d391c44-2515-4e95-bce9-7430d019846a\",\n            \"type\": \"teetime\",\n            \"attributes\": {\n                \"blocked\": false,\n                \"date\": \"2025-03-11\",\n                \"hole\": 1,\n                \"format\": \"normal\",\n                \"start_time\": \"07:03\",\n                \"free_slots\": 0\n            },\n            \"relationships\": {\n                \"course\": {\n                    \"data\": {\n                        \"id\": \"97eacb01-030a-4fea-8e87-13b2363bd6a7\",\n                        \"type\": \"course\"\n                    }\n                },\n                \"event\": {\n                    \"data\": null\n                }\n            }\n        },\n        {\n            \"id\": \"4f4597a0-34ca-42ac-92ea-bd18188ab633\",\n            \"type\": \"round\",\n            \"attributes\": {\n                \"state\": \"reserved\",\n                \"created_at\": \"2025-02-27T04:41:21.576-05:00\",\n                \"updated_at\": \"2025-02-27T04:41:21.576-05:00\",\n                \"cancelled_at\": null,\n                \"price\": 88,\n                \"paid\": false,\n                \"guest\": {\n                    \"last_name\": \"Soni\",\n                    \"first_name\": \"Riya\"\n                },\n                \"extras\": [],\n                \"kits\": [],\n                \"rates\": {\n                    \"green_fee\": 88,\n                    \"cart_fee\": null,\n                    \"extra_fee\": 0,\n                    \"kit_fee\": 0,\n                    \"subtotal\": null\n                }\n            },\n            \"relationships\": {\n                \"organization\": {\n                    \"data\": {\n                        \"id\": \"a0baaa6a-7a74-44ef-bbd3-d689729c5a67\",\n                        \"type\": \"organization\"\n                    }\n                },\n                \"reservation\": {\n                    \"data\": {\n                        \"id\": \"cdbdc32a-4afb-4dc0-b67c-488b3df3003f\",\n                        \"type\": \"reservation\"\n                    }\n                },\n                \"player_type\": {\n                    \"data\": {\n                        \"id\": \"8f7eb176-809c-4550-95f7-6e3aa1a10a94\",\n                        \"type\": \"player_type\"\n                    }\n                },\n                \"customer\": {\n                    \"data\": null\n                }\n            }\n        },\n        {\n            \"id\": \"32267b8b-632d-41c6-8f55-08f6a54dc395\",\n            \"type\": \"round\",\n            \"attributes\": {\n                \"state\": \"reserved\",\n                \"created_at\": \"2025-02-27T04:41:21.582-05:00\",\n                \"updated_at\": \"2025-02-27T04:41:21.582-05:00\",\n                \"cancelled_at\": null,\n                \"price\": 88,\n                \"paid\": false,\n                \"guest\": {\n                    \"last_name\": \"Soni\",\n                    \"first_name\": \"Riya\"\n                },\n                \"extras\": [],\n                \"kits\": [],\n                \"rates\": {\n                    \"green_fee\": 88,\n                    \"cart_fee\": null,\n                    \"extra_fee\": 0,\n                    \"kit_fee\": 0,\n                    \"subtotal\": null\n                }\n            },\n            \"relationships\": {\n                \"organization\": {\n                    \"data\": {\n                        \"id\": \"a0baaa6a-7a74-44ef-bbd3-d689729c5a67\",\n                        \"type\": \"organization\"\n                    }\n                },\n                \"reservation\": {\n                    \"data\": {\n                        \"id\": \"cdbdc32a-4afb-4dc0-b67c-488b3df3003f\",\n                        \"type\": \"reservation\"\n                    }\n                },\n                \"player_type\": {\n                    \"data\": {\n                        \"id\": \"8f7eb176-809c-4550-95f7-6e3aa1a10a94\",\n                        \"type\": \"player_type\"\n                    }\n                },\n                \"customer\": {\n                    \"data\": null\n                }\n            }\n        },\n        {\n            \"id\": \"5af3ffe8-d55d-4a41-ae81-16ad358cfdad\",\n            \"type\": \"teetime\",\n            \"attributes\": {\n                \"blocked\": false,\n                \"date\": \"2025-02-27\",\n                \"hole\": 1,\n                \"format\": \"normal\",\n                \"start_time\": \"15:54\",\n                \"free_slots\": 2\n            },\n            \"relationships\": {\n                \"course\": {\n                    \"data\": {\n                        \"id\": \"1d388190-2423-466b-8fa3-278463416f53\",\n                        \"type\": \"course\"\n                    }\n                },\n                \"event\": {\n                    \"data\": null\n                }\n            }\n        },\n        {\n            \"id\": \"81ef4448-b6e7-48c5-9483-5395bfe0489a\",\n            \"type\": \"round\",\n            \"attributes\": {\n                \"state\": \"reserved\",\n                \"created_at\": \"2025-02-27T05:07:10.698-05:00\",\n                \"updated_at\": \"2025-02-27T11:27:00.480-05:00\",\n                \"cancelled_at\": \"2025-02-27T11:27:00.464-05:00\",\n                \"price\": 0,\n                \"paid\": false,\n                \"guest\": {},\n                \"extras\": [],\n                \"kits\": [],\n                \"rates\": {\n                    \"green_fee\": null,\n                    \"cart_fee\": null,\n                    \"extra_fee\": 0,\n                    \"kit_fee\": 0,\n                    \"subtotal\": null\n                }\n            },\n            \"relationships\": {\n                \"organization\": {\n                    \"data\": {\n                        \"id\": \"a0baaa6a-7a74-44ef-bbd3-d689729c5a67\",\n                        \"type\": \"organization\"\n                    }\n                },\n                \"reservation\": {\n                    \"data\": {\n                        \"id\": \"417ff87f-ff74-4a9b-9c05-4ab0bfef6385\",\n                        \"type\": \"reservation\"\n                    }\n                },\n                \"player_type\": {\n                    \"data\": {\n                        \"id\": \"b9aef117-d4e2-4e13-a9b4-2885a61f83b3\",\n                        \"type\": \"player_type\"\n                    }\n                },\n                \"customer\": {\n                    \"data\": {\n                        \"id\": \"17ccac0f-f5b2-4ccc-8e3b-02b3dab8f364\",\n                        \"type\": \"customership\"\n                    }\n                }\n            }\n        },\n        {\n            \"id\": \"43718278-9f67-4205-b661-c8b15b742f6b\",\n            \"type\": \"teetime\",\n            \"attributes\": {\n                \"blocked\": false,\n                \"date\": \"2025-02-27\",\n                \"hole\": 1,\n                \"format\": \"normal\",\n                \"start_time\": \"09:27\",\n                \"free_slots\": 4\n            },\n            \"relationships\": {\n                \"course\": {\n                    \"data\": {\n                        \"id\": \"128e43f8-969b-4097-96f5-a0c58bf06db3\",\n                        \"type\": \"course\"\n                    }\n                },\n                \"event\": {\n                    \"data\": null\n                }\n            }\n        },\n        {\n            \"id\": \"a250dcd5-0972-442d-b3a9-1bb89cc96719\",\n            \"type\": \"round\",\n            \"attributes\": {\n                \"state\": \"reserved\",\n                \"created_at\": \"2025-02-27T05:07:10.761-05:00\",\n                \"updated_at\": \"2025-02-27T11:27:01.247-05:00\",\n                \"cancelled_at\": \"2025-02-27T11:27:01.228-05:00\",\n                \"price\": 0,\n                \"paid\": false,\n                \"guest\": {},\n                \"extras\": [],\n                \"kits\": [],\n                \"rates\": {\n                    \"green_fee\": null,\n                    \"cart_fee\": null,\n                    \"extra_fee\": 0,\n                    \"kit_fee\": 0,\n                    \"subtotal\": null\n                }\n            },\n            \"relationships\": {\n                \"organization\": {\n                    \"data\": {\n                        \"id\": \"a0baaa6a-7a74-44ef-bbd3-d689729c5a67\",\n                        \"type\": \"organization\"\n                    }\n                },\n                \"reservation\": {\n                    \"data\": {\n                        \"id\": \"fb12e502-901a-4d2b-b5e2-fa8816ade861\",\n                        \"type\": \"reservation\"\n                    }\n                },\n                \"player_type\": {\n                    \"data\": {\n                        \"id\": \"b9aef117-d4e2-4e13-a9b4-2885a61f83b3\",\n                        \"type\": \"player_type\"\n                    }\n                },\n                \"customer\": {\n                    \"data\": {\n                        \"id\": \"2828c8c7-f3d1-4ef0-b960-9dfd77bec16f\",\n                        \"type\": \"customership\"\n                    }\n                }\n            }\n        },\n        {\n            \"id\": \"3465d91a-c60b-4a80-86f2-42541b6f7e30\",\n            \"type\": \"round\",\n            \"attributes\": {\n                \"state\": \"reserved\",\n                \"created_at\": \"2025-02-27T05:19:16.047-05:00\",\n                \"updated_at\": \"2025-02-27T05:19:32.941-05:00\",\n                \"cancelled_at\": \"2025-02-27T05:19:32.927-05:00\",\n                \"price\": 0,\n                \"paid\": false,\n                \"guest\": {\n                    \"last_name\": \"Dbdhdh\",\n                    \"first_name\": \"Xhdhdb\"\n                },\n                \"extras\": [],\n                \"kits\": [],\n                \"rates\": {\n                    \"green_fee\": null,\n                    \"cart_fee\": null,\n                    \"extra_fee\": 0,\n                    \"kit_fee\": 0,\n                    \"subtotal\": null\n                }\n            },\n            \"relationships\": {\n                \"organization\": {\n                    \"data\": {\n                        \"id\": \"a0baaa6a-7a74-44ef-bbd3-d689729c5a67\",\n                        \"type\": \"organization\"\n                    }\n                },\n                \"reservation\": {\n                    \"data\": {\n                        \"id\": \"3b226156-3f32-4bce-b35d-6492af1f61af\",\n                        \"type\": \"reservation\"\n                    }\n                },\n                \"player_type\": {\n                    \"data\": {\n                        \"id\": \"303a4ef4-d755-4e36-b0fb-9a23d557f896\",\n                        \"type\": \"player_type\"\n                    }\n                },\n                \"customer\": {\n                    \"data\": null\n                }\n            }\n        },\n        {\n            \"id\": \"8130bd60-6802-400a-86ec-2766d778f821\",\n            \"type\": \"round\",\n            \"attributes\": {\n                \"state\": \"reserved\",\n                \"created_at\": \"2025-02-27T05:19:16.057-05:00\",\n                \"updated_at\": \"2025-02-27T05:19:32.962-05:00\",\n                \"cancelled_at\": \"2025-02-27T05:19:32.946-05:00\",\n                \"price\": 0,\n                \"paid\": false,\n                \"guest\": {\n                    \"last_name\": \"raheel's\",\n                    \"first_name\": \"sam's\"\n                },\n                \"extras\": [],\n                \"kits\": [],\n                \"rates\": {\n                    \"green_fee\": null,\n                    \"cart_fee\": null,\n                    \"extra_fee\": 0,\n                    \"kit_fee\": 0,\n                    \"subtotal\": null\n                }\n            },\n            \"relationships\": {\n                \"organization\": {\n                    \"data\": {\n                        \"id\": \"a0baaa6a-7a74-44ef-bbd3-d689729c5a67\",\n                        \"type\": \"organization\"\n                    }\n                },\n                \"reservation\": {\n                    \"data\": {\n                        \"id\": \"3b226156-3f32-4bce-b35d-6492af1f61af\",\n                        \"type\": \"reservation\"\n                    }\n                },\n                \"player_type\": {\n                    \"data\": {\n                        \"id\": \"303a4ef4-d755-4e36-b0fb-9a23d557f896\",\n                        \"type\": \"player_type\"\n                    }\n                },\n                \"customer\": {\n                    \"data\": null\n                }\n            }\n        },\n        {\n            \"id\": \"79be2bc4-8311-469d-94be-0a1ea7ba40c6\",\n            \"type\": \"round\",\n            \"attributes\": {\n                \"state\": \"reserved\",\n                \"created_at\": \"2025-02-27T05:19:16.085-05:00\",\n                \"updated_at\": \"2025-02-27T05:19:32.982-05:00\",\n                \"cancelled_at\": \"2025-02-27T05:19:32.967-05:00\",\n                \"price\": 0,\n                \"paid\": false,\n                \"guest\": {\n                    \"last_name\": \"Bdbddj\",\n                    \"first_name\": \"Dbbdb\"\n                },\n                \"extras\": [],\n                \"kits\": [],\n                \"rates\": {\n                    \"green_fee\": null,\n                    \"cart_fee\": null,\n                    \"extra_fee\": 0,\n                    \"kit_fee\": 0,\n                    \"subtotal\": null\n                }\n            },\n            \"relationships\": {\n                \"organization\": {\n                    \"data\": {\n                        \"id\": \"a0baaa6a-7a74-44ef-bbd3-d689729c5a67\",\n                        \"type\": \"organization\"\n                    }\n                },\n                \"reservation\": {\n                    \"data\": {\n                        \"id\": \"3b226156-3f32-4bce-b35d-6492af1f61af\",\n                        \"type\": \"reservation\"\n                    }\n                },\n                \"player_type\": {\n                    \"data\": {\n                        \"id\": \"303a4ef4-d755-4e36-b0fb-9a23d557f896\",\n                        \"type\": \"player_type\"\n                    }\n                },\n                \"customer\": {\n                    \"data\": null\n                }\n            }\n        },\n        {\n            \"id\": \"a4682bde-7d82-49b6-93b1-d09eb42368f3\",\n            \"type\": \"round\",\n            \"attributes\": {\n                \"state\": \"reserved\",\n                \"created_at\": \"2025-02-27T05:19:16.090-05:00\",\n                \"updated_at\": \"2025-02-27T05:19:33.003-05:00\",\n                \"cancelled_at\": \"2025-02-27T05:19:32.987-05:00\",\n                \"price\": 0,\n                \"paid\": false,\n                \"guest\": {\n                    \"last_name\": \"Djdjdj\",\n                    \"first_name\": \"Jdjdj\"\n                },\n                \"extras\": [],\n                \"kits\": [],\n                \"rates\": {\n                    \"green_fee\": null,\n                    \"cart_fee\": null,\n                    \"extra_fee\": 0,\n                    \"kit_fee\": 0,\n                    \"subtotal\": null\n                }\n            },\n            \"relationships\": {\n                \"organization\": {\n                    \"data\": {\n                        \"id\": \"a0baaa6a-7a74-44ef-bbd3-d689729c5a67\",\n                        \"type\": \"organization\"\n                    }\n                },\n                \"reservation\": {\n                    \"data\": {\n                        \"id\": \"3b226156-3f32-4bce-b35d-6492af1f61af\",\n                        \"type\": \"reservation\"\n                    }\n                },\n                \"player_type\": {\n                    \"data\": {\n                        \"id\": \"303a4ef4-d755-4e36-b0fb-9a23d557f896\",\n                        \"type\": \"player_type\"\n                    }\n                },\n                \"customer\": {\n                    \"data\": null\n                }\n            }\n        },\n        {\n            \"id\": \"c8613cb8-62be-40c5-9119-82d7f7f8ca72\",\n            \"type\": \"teetime\",\n            \"attributes\": {\n                \"blocked\": false,\n                \"date\": \"2025-03-11\",\n                \"hole\": 1,\n                \"format\": \"normal\",\n                \"start_time\": \"07:03\",\n                \"free_slots\": 4\n            },\n            \"relationships\": {\n                \"course\": {\n                    \"data\": {\n                        \"id\": \"c51eb73d-38da-4d67-a606-23f6d6cf2deb\",\n                        \"type\": \"course\"\n                    }\n                },\n                \"event\": {\n                    \"data\": null\n                }\n            }\n        },\n        {\n            \"id\": \"d3de192c-0626-4ee6-bbfc-876f24048096\",\n            \"type\": \"round\",\n            \"attributes\": {\n                \"state\": \"reserved\",\n                \"created_at\": \"2025-02-27T05:21:33.675-05:00\",\n                \"updated_at\": \"2025-03-03T01:50:14.964-05:00\",\n                \"cancelled_at\": \"2025-03-03T01:50:14.946-05:00\",\n                \"price\": 0,\n                \"paid\": false,\n                \"guest\": {},\n                \"extras\": [],\n                \"kits\": [],\n                \"rates\": {\n                    \"green_fee\": null,\n                    \"cart_fee\": null,\n                    \"extra_fee\": 0,\n                    \"kit_fee\": 0,\n                    \"subtotal\": null\n                }\n            },\n            \"relationships\": {\n                \"organization\": {\n                    \"data\": {\n                        \"id\": \"a0baaa6a-7a74-44ef-bbd3-d689729c5a67\",\n                        \"type\": \"organization\"\n                    }\n                },\n                \"reservation\": {\n                    \"data\": {\n                        \"id\": \"00d181ab-aa26-4ff1-a72a-f6fb639f513c\",\n                        \"type\": \"reservation\"\n                    }\n                },\n                \"player_type\": {\n                    \"data\": {\n                        \"id\": \"b9aef117-d4e2-4e13-a9b4-2885a61f83b3\",\n                        \"type\": \"player_type\"\n                    }\n                },\n                \"customer\": {\n                    \"data\": {\n                        \"id\": \"9900c9f7-1bad-4865-8a38-f79bb23f97f5\",\n                        \"type\": \"customership\"\n                    }\n                }\n            }\n        },\n        {\n            \"id\": \"054923f2-40f8-447f-8241-2623e2c2b6c7\",\n            \"type\": \"round\",\n            \"attributes\": {\n                \"state\": \"reserved\",\n                \"created_at\": \"2025-02-27T05:27:59.547-05:00\",\n                \"updated_at\": \"2025-02-27T05:27:59.547-05:00\",\n                \"cancelled_at\": null,\n                \"price\": 400,\n                \"paid\": false,\n                \"guest\": {},\n                \"extras\": [],\n                \"kits\": [],\n                \"rates\": {\n                    \"green_fee\": 400,\n                    \"cart_fee\": null,\n                    \"extra_fee\": 0,\n                    \"kit_fee\": 0,\n                    \"subtotal\": null\n                }\n            },\n            \"relationships\": {\n                \"organization\": {\n                    \"data\": {\n                        \"id\": \"a0baaa6a-7a74-44ef-bbd3-d689729c5a67\",\n                        \"type\": \"organization\"\n                    }\n                },\n                \"reservation\": {\n                    \"data\": {\n                        \"id\": \"8abceb2a-a52a-42aa-be27-26c4d9c1411c\",\n                        \"type\": \"reservation\"\n                    }\n                },\n                \"player_type\": {\n                    \"data\": {\n                        \"id\": \"303a4ef4-d755-4e36-b0fb-9a23d557f896\",\n                        \"type\": \"player_type\"\n                    }\n                },\n                \"customer\": {\n                    \"data\": {\n                        \"id\": \"49a76260-edea-4020-91e7-044143962a7a\",\n                        \"type\": \"customership\"\n                    }\n                }\n            }\n        },\n        {\n            \"id\": \"3ed3aa3b-e48c-4812-a08f-f90c59b9b2ee\",\n            \"type\": \"round\",\n            \"attributes\": {\n                \"state\": \"reserved\",\n                \"created_at\": \"2025-02-27T05:27:59.595-05:00\",\n                \"updated_at\": \"2025-02-27T05:27:59.595-05:00\",\n                \"cancelled_at\": null,\n                \"price\": 400,\n                \"paid\": false,\n                \"guest\": {},\n                \"extras\": [],\n                \"kits\": [],\n                \"rates\": {\n                    \"green_fee\": 400,\n                    \"cart_fee\": null,\n                    \"extra_fee\": 0,\n                    \"kit_fee\": 0,\n                    \"subtotal\": null\n                }\n            },\n            \"relationships\": {\n                \"organization\": {\n                    \"data\": {\n                        \"id\": \"a0baaa6a-7a74-44ef-bbd3-d689729c5a67\",\n                        \"type\": \"organization\"\n                    }\n                },\n                \"reservation\": {\n                    \"data\": {\n                        \"id\": \"8abceb2a-a52a-42aa-be27-26c4d9c1411c\",\n                        \"type\": \"reservation\"\n                    }\n                },\n                \"player_type\": {\n                    \"data\": {\n                        \"id\": \"303a4ef4-d755-4e36-b0fb-9a23d557f896\",\n                        \"type\": \"player_type\"\n                    }\n                },\n                \"customer\": {\n                    \"data\": {\n                        \"id\": \"49a76260-edea-4020-91e7-044143962a7a\",\n                        \"type\": \"customership\"\n                    }\n                }\n            }\n        },\n        {\n            \"id\": \"57cb4782-b385-4f1c-a134-504cddb0fd83\",\n            \"type\": \"teetime\",\n            \"attributes\": {\n                \"blocked\": false,\n                \"date\": \"2025-03-13\",\n                \"hole\": 1,\n                \"format\": \"normal\",\n                \"start_time\": \"06:09\",\n                \"free_slots\": 1\n            },\n            \"relationships\": {\n                \"course\": {\n                    \"data\": {\n                        \"id\": \"c51eb73d-38da-4d67-a606-23f6d6cf2deb\",\n                        \"type\": \"course\"\n                    }\n                },\n                \"event\": {\n                    \"data\": null\n                }\n            }\n        },\n        {\n            \"id\": \"f3b00ee0-fe01-4b18-b616-ec5d2de5df6a\",\n            \"type\": \"round\",\n            \"attributes\": {\n                \"state\": \"reserved\",\n                \"created_at\": \"2025-02-27T05:30:25.626-05:00\",\n                \"updated_at\": \"2025-02-27T05:30:25.626-05:00\",\n                \"cancelled_at\": null,\n                \"price\": 400,\n                \"paid\": false,\n                \"guest\": {},\n                \"extras\": [],\n                \"kits\": [],\n                \"rates\": {\n                    \"green_fee\": 400,\n                    \"cart_fee\": null,\n                    \"extra_fee\": 0,\n                    \"kit_fee\": 0,\n                    \"subtotal\": null\n                }\n            },\n            \"relationships\": {\n                \"organization\": {\n                    \"data\": {\n                        \"id\": \"a0baaa6a-7a74-44ef-bbd3-d689729c5a67\",\n                        \"type\": \"organization\"\n                    }\n                },\n                \"reservation\": {\n                    \"data\": {\n                        \"id\": \"78642f6c-0944-4adc-83a6-4c6d7ef4e5f9\",\n                        \"type\": \"reservation\"\n                    }\n                },\n                \"player_type\": {\n                    \"data\": {\n                        \"id\": \"303a4ef4-d755-4e36-b0fb-9a23d557f896\",\n                        \"type\": \"player_type\"\n                    }\n                },\n                \"customer\": {\n                    \"data\": {\n                        \"id\": \"49a76260-edea-4020-91e7-044143962a7a\",\n                        \"type\": \"customership\"\n                    }\n                }\n            }\n        },\n        {\n            \"id\": \"75e3ccff-34a2-4d17-8c45-658ea861ec5f\",\n            \"type\": \"round\",\n            \"attributes\": {\n                \"state\": \"reserved\",\n                \"created_at\": \"2025-02-27T05:30:25.633-05:00\",\n                \"updated_at\": \"2025-02-27T05:30:25.633-05:00\",\n                \"cancelled_at\": null,\n                \"price\": 400,\n                \"paid\": false,\n                \"guest\": {},\n                \"extras\": [],\n                \"kits\": [],\n                \"rates\": {\n                    \"green_fee\": 400,\n                    \"cart_fee\": null,\n                    \"extra_fee\": 0,\n                    \"kit_fee\": 0,\n                    \"subtotal\": null\n                }\n            },\n            \"relationships\": {\n                \"organization\": {\n                    \"data\": {\n                        \"id\": \"a0baaa6a-7a74-44ef-bbd3-d689729c5a67\",\n                        \"type\": \"organization\"\n                    }\n                },\n                \"reservation\": {\n                    \"data\": {\n                        \"id\": \"78642f6c-0944-4adc-83a6-4c6d7ef4e5f9\",\n                        \"type\": \"reservation\"\n                    }\n                },\n                \"player_type\": {\n                    \"data\": {\n                        \"id\": \"303a4ef4-d755-4e36-b0fb-9a23d557f896\",\n                        \"type\": \"player_type\"\n                    }\n                },\n                \"customer\": {\n                    \"data\": {\n                        \"id\": \"49a76260-edea-4020-91e7-044143962a7a\",\n                        \"type\": \"customership\"\n                    }\n                }\n            }\n        },\n        {\n            \"id\": \"23d7491e-3dd8-45bc-a176-2811ae3cbd02\",\n            \"type\": \"teetime\",\n            \"attributes\": {\n                \"blocked\": false,\n                \"date\": \"2025-03-13\",\n                \"hole\": 1,\n                \"format\": \"normal\",\n                \"start_time\": \"06:18\",\n                \"free_slots\": 2\n            },\n            \"relationships\": {\n                \"course\": {\n                    \"data\": {\n                        \"id\": \"c51eb73d-38da-4d67-a606-23f6d6cf2deb\",\n                        \"type\": \"course\"\n                    }\n                },\n                \"event\": {\n                    \"data\": null\n                }\n            }\n        },\n        {\n            \"id\": \"17d46383-9170-4f48-a7d4-d5da5b7380fc\",\n            \"type\": \"round\",\n            \"attributes\": {\n                \"state\": \"arrived\",\n                \"created_at\": \"2025-02-27T05:35:16.204-05:00\",\n                \"updated_at\": \"2025-03-05T05:13:09.163-05:00\",\n                \"cancelled_at\": \"2025-02-27T05:47:09.396-05:00\",\n                \"price\": 0,\n                \"paid\": false,\n                \"guest\": {},\n                \"extras\": [],\n                \"kits\": [],\n                \"rates\": {\n                    \"green_fee\": null,\n                    \"cart_fee\": null,\n                    \"extra_fee\": 0,\n                    \"kit_fee\": 0,\n                    \"subtotal\": null\n                }\n            },\n            \"relationships\": {\n                \"organization\": {\n                    \"data\": {\n                        \"id\": \"a0baaa6a-7a74-44ef-bbd3-d689729c5a67\",\n                        \"type\": \"organization\"\n                    }\n                },\n                \"reservation\": {\n                    \"data\": {\n                        \"id\": \"40f11a19-59ba-4a57-abe2-cb3d1497b4b2\",\n                        \"type\": \"reservation\"\n                    }\n                },\n                \"player_type\": {\n                    \"data\": {\n                        \"id\": \"b9aef117-d4e2-4e13-a9b4-2885a61f83b3\",\n                        \"type\": \"player_type\"\n                    }\n                },\n                \"customer\": {\n                    \"data\": {\n                        \"id\": \"9879f6aa-9d18-4793-bfa2-e9e313ce04cf\",\n                        \"type\": \"customership\"\n                    }\n                }\n            }\n        },\n        {\n            \"id\": \"a45f0b5c-6449-450b-9e2a-2ff9612969af\",\n            \"type\": \"teetime\",\n            \"attributes\": {\n                \"blocked\": false,\n                \"date\": \"2025-03-05\",\n                \"hole\": 1,\n                \"format\": \"normal\",\n                \"start_time\": \"06:09\",\n                \"free_slots\": 4\n            },\n            \"relationships\": {\n                \"course\": {\n                    \"data\": {\n                        \"id\": \"128e43f8-969b-4097-96f5-a0c58bf06db3\",\n                        \"type\": \"course\"\n                    }\n                },\n                \"event\": {\n                    \"data\": null\n                }\n            }\n        },\n        {\n            \"id\": \"507087bc-8718-47b2-900c-799b69e137bc\",\n            \"type\": \"round\",\n            \"attributes\": {\n                \"state\": \"arrived\",\n                \"created_at\": \"2025-02-27T05:35:16.267-05:00\",\n                \"updated_at\": \"2025-03-05T05:38:59.343-05:00\",\n                \"cancelled_at\": \"2025-03-05T05:38:59.323-05:00\",\n                \"price\": 0,\n                \"paid\": false,\n                \"guest\": {},\n                \"extras\": [],\n                \"kits\": [],\n                \"rates\": {\n                    \"green_fee\": null,\n                    \"cart_fee\": null,\n                    \"extra_fee\": 0,\n                    \"kit_fee\": 0,\n                    \"subtotal\": null\n                }\n            },\n            \"relationships\": {\n                \"organization\": {\n                    \"data\": {\n                        \"id\": \"a0baaa6a-7a74-44ef-bbd3-d689729c5a67\",\n                        \"type\": \"organization\"\n                    }\n                },\n                \"reservation\": {\n                    \"data\": {\n                        \"id\": \"83e8af9d-92a5-403d-9b33-6949e81096aa\",\n                        \"type\": \"reservation\"\n                    }\n                },\n                \"player_type\": {\n                    \"data\": {\n                        \"id\": \"b9aef117-d4e2-4e13-a9b4-2885a61f83b3\",\n                        \"type\": \"player_type\"\n                    }\n                },\n                \"customer\": {\n                    \"data\": {\n                        \"id\": \"2f1951ef-dbcb-4a54-885d-1d6d0eb0b2ee\",\n                        \"type\": \"customership\"\n                    }\n                }\n            }\n        },\n        {\n            \"id\": \"82c50ec4-b598-4957-9148-6a8ec6ffc772\",\n            \"type\": \"round\",\n            \"attributes\": {\n                \"state\": \"arrived\",\n                \"created_at\": \"2025-02-27T05:35:16.319-05:00\",\n                \"updated_at\": \"2025-03-05T05:38:59.315-05:00\",\n                \"cancelled_at\": \"2025-03-05T05:38:59.292-05:00\",\n                \"price\": 0,\n                \"paid\": false,\n                \"guest\": {},\n                \"extras\": [],\n                \"kits\": [],\n                \"rates\": {\n                    \"green_fee\": null,\n                    \"cart_fee\": null,\n                    \"extra_fee\": 0,\n                    \"kit_fee\": 0,\n                    \"subtotal\": null\n                }\n            },\n            \"relationships\": {\n                \"organization\": {\n                    \"data\": {\n                        \"id\": \"a0baaa6a-7a74-44ef-bbd3-d689729c5a67\",\n                        \"type\": \"organization\"\n                    }\n                },\n                \"reservation\": {\n                    \"data\": {\n                        \"id\": \"80f93144-1d54-43aa-9e51-3dffb0fe3c46\",\n                        \"type\": \"reservation\"\n                    }\n                },\n                \"player_type\": {\n                    \"data\": {\n                        \"id\": \"b9aef117-d4e2-4e13-a9b4-2885a61f83b3\",\n                        \"type\": \"player_type\"\n                    }\n                },\n                \"customer\": {\n                    \"data\": {\n                        \"id\": \"f07f0287-f39e-4e49-a509-f4d480a0f8d7\",\n                        \"type\": \"customership\"\n                    }\n                }\n            }\n        },\n        {\n            \"id\": \"f76b38d9-48b6-4636-8a0f-4644ebf11fca\",\n            \"type\": \"round\",\n            \"attributes\": {\n                \"state\": \"reserved\",\n                \"created_at\": \"2025-02-27T05:35:16.381-05:00\",\n                \"updated_at\": \"2025-02-27T05:48:07.301-05:00\",\n                \"cancelled_at\": \"2025-02-27T05:48:07.285-05:00\",\n                \"price\": 0,\n                \"paid\": false,\n                \"guest\": {},\n                \"extras\": [],\n                \"kits\": [],\n                \"rates\": {\n                    \"green_fee\": null,\n                    \"cart_fee\": null,\n                    \"extra_fee\": 0,\n                    \"kit_fee\": 0,\n                    \"subtotal\": null\n                }\n            },\n            \"relationships\": {\n                \"organization\": {\n                    \"data\": {\n                        \"id\": \"a0baaa6a-7a74-44ef-bbd3-d689729c5a67\",\n                        \"type\": \"organization\"\n                    }\n                },\n                \"reservation\": {\n                    \"data\": {\n                        \"id\": \"c301dc83-030a-4682-a862-fd87d7ad3553\",\n                        \"type\": \"reservation\"\n                    }\n                },\n                \"player_type\": {\n                    \"data\": {\n                        \"id\": \"b9aef117-d4e2-4e13-a9b4-2885a61f83b3\",\n                        \"type\": \"player_type\"\n                    }\n                },\n                \"customer\": {\n                    \"data\": {\n                        \"id\": \"21e57ac7-9be5-4fdf-94fd-2db0a2f8d92d\",\n                        \"type\": \"customership\"\n                    }\n                }\n            }\n        },\n        {\n            \"id\": \"1d22862b-b3ea-4d2d-a851-635b40260788\",\n            \"type\": \"round\",\n            \"attributes\": {\n                \"state\": \"reserved\",\n                \"created_at\": \"2025-02-27T05:52:22.675-05:00\",\n                \"updated_at\": \"2025-03-05T05:38:59.440-05:00\",\n                \"cancelled_at\": \"2025-03-05T05:38:59.423-05:00\",\n                \"price\": 0,\n                \"paid\": false,\n                \"guest\": {},\n                \"extras\": [],\n                \"kits\": [],\n                \"rates\": {\n                    \"green_fee\": null,\n                    \"cart_fee\": null,\n                    \"extra_fee\": 0,\n                    \"kit_fee\": 0,\n                    \"subtotal\": null\n                }\n            },\n            \"relationships\": {\n                \"organization\": {\n                    \"data\": {\n                        \"id\": \"a0baaa6a-7a74-44ef-bbd3-d689729c5a67\",\n                        \"type\": \"organization\"\n                    }\n                },\n                \"reservation\": {\n                    \"data\": {\n                        \"id\": \"276b9bb5-ca3d-4490-b4de-60a81e60e8d8\",\n                        \"type\": \"reservation\"\n                    }\n                },\n                \"player_type\": {\n                    \"data\": {\n                        \"id\": \"b9aef117-d4e2-4e13-a9b4-2885a61f83b3\",\n                        \"type\": \"player_type\"\n                    }\n                },\n                \"customer\": {\n                    \"data\": {\n                        \"id\": \"21e57ac7-9be5-4fdf-94fd-2db0a2f8d92d\",\n                        \"type\": \"customership\"\n                    }\n                }\n            }\n        },\n        {\n            \"id\": \"c65d29e0-5b98-4ece-aefb-da67a00390c2\",\n            \"type\": \"round\",\n            \"attributes\": {\n                \"state\": \"reserved\",\n                \"created_at\": \"2025-02-27T05:53:33.034-05:00\",\n                \"updated_at\": \"2025-02-28T09:03:02.223-05:00\",\n                \"cancelled_at\": \"2025-02-28T09:03:02.207-05:00\",\n                \"price\": 0,\n                \"paid\": false,\n                \"guest\": {},\n                \"extras\": [],\n                \"kits\": [],\n                \"rates\": {\n                    \"green_fee\": null,\n                    \"cart_fee\": null,\n                    \"extra_fee\": 0,\n                    \"kit_fee\": 0,\n                    \"subtotal\": null\n                }\n            },\n            \"relationships\": {\n                \"organization\": {\n                    \"data\": {\n                        \"id\": \"a0baaa6a-7a74-44ef-bbd3-d689729c5a67\",\n                        \"type\": \"organization\"\n                    }\n                },\n                \"reservation\": {\n                    \"data\": {\n                        \"id\": \"82bbdb10-8655-4e3f-af74-584cf44cf380\",\n                        \"type\": \"reservation\"\n                    }\n                },\n                \"player_type\": {\n                    \"data\": {\n                        \"id\": \"b9aef117-d4e2-4e13-a9b4-2885a61f83b3\",\n                        \"type\": \"player_type\"\n                    }\n                },\n                \"customer\": {\n                    \"data\": {\n                        \"id\": \"2828c8c7-f3d1-4ef0-b960-9dfd77bec16f\",\n                        \"type\": \"customership\"\n                    }\n                }\n            }\n        },\n        {\n            \"id\": \"efe3dd88-c6c6-4d34-8939-4c7b985fab4e\",\n            \"type\": \"teetime\",\n            \"attributes\": {\n                \"blocked\": false,\n                \"date\": \"2025-02-28\",\n                \"hole\": 1,\n                \"format\": \"normal\",\n                \"start_time\": \"07:03\",\n                \"free_slots\": 4\n            },\n            \"relationships\": {\n                \"course\": {\n                    \"data\": {\n                        \"id\": \"128e43f8-969b-4097-96f5-a0c58bf06db3\",\n                        \"type\": \"course\"\n                    }\n                },\n                \"event\": {\n                    \"data\": null\n                }\n            }\n        }\n    ],\n    \"meta\": {\n        \"page\": 250,\n        \"page_size\": 25,\n        \"total\": 6677,\n        \"total_pages\": 268\n    }\n}"}],"_postman_id":"166e9f1a-a396-4b4d-9025-390c56d7f299"},{"name":"Confirm payment","event":[{"listen":"test","script":{"id":"8ed84e37-ed7d-4d37-b34a-63cef0eab1d0","exec":["",""],"type":"text/javascript"}}],"id":"36de6817-188d-4fb7-bb87-79dc9598ea53","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[{"key":"Accept","value":"application/vnd.api+json"},{"key":"Authorization","value":"Bearer "},{"key":"Content-Type","name":"Content-Type","type":"text","value":"application/json"}],"body":{"mode":"raw","raw":"{\n    \"data\": {\n        \"type\": \"payment_confirmation\",\n        \"attributes\": {\n            \"amount\":60,\n            \"reference\": \"reference\"\n        },\n        \"relationships\": {\n            \"rounds\": {\n                \"data\": [\n                    {\n                        \"type\": \"round\",\n                        \"id\": \"87cf9b96-ab7a-45cf-bba1-f8826854fcad\"\n                    }\n                ]\n            }\n        }\n    }\n}"},"url":"https://partner-staging.chronogolf.com/partner_api/v2/organizations/044ba009-d9f2-47c2-90c1-54fcd35996a4/payment_confirmations","description":"<p>A round can be marked as paid via the payment confirmations endpoint. </p>\n<p>Pass the round UUIDs as relationships, and ensure that the \"amount\" field matches the pre-tax sum of the amounts of the individual rounds in the request. </p>\n<p>Rounds across multiple teetimes can be marked as paid in a single request, provided the amount is equal to the total amount of those rounds, pre-tax. </p>\n","urlObject":{"path":["partner_api","v2","organizations","044ba009-d9f2-47c2-90c1-54fcd35996a4","payment_confirmations"],"host":["https://partner-staging.chronogolf.com"],"query":[],"variable":[]}},"response":[{"id":"91b4834b-9753-4ce1-ad79-375cfb5d5c1a","name":"Confirm payment","originalRequest":{"method":"POST","header":[{"key":"Accept","value":"application/vnd.api+json"},{"key":"Authorization","value":"Bearer "},{"key":"Content-Type","name":"Content-Type","type":"text","value":"application/json"}],"body":{"mode":"raw","raw":"{\n    \"data\": {\n        \"type\": \"payment_confirmation\",\n        \"attributes\": {\n            \"amount\":60.95,\n            \"reference\": \"reference\"\n        },\n        \"relationships\": {\n            \"rounds\": {\n                \"data\": [\n                    {\n                        \"type\": \"round\",\n                        \"id\": \"1bed94d6-4174-400c-9b85-9a37cca48142\"\n                    }\n                ]\n            }\n        }\n    }\n}"},"url":"https://partner-staging.chronogolf.com/partner_api/v2/organizations/044ba009-d9f2-47c2-90c1-54fcd35996a4/payment_confirmations"},"status":"Created","code":201,"_postman_previewlanguage":"json","header":[{"key":"Date","value":"Thu, 05 Dec 2019 18:37:24 GMT"},{"key":"Content-Type","value":"application/vnd.api+json"},{"key":"Transfer-Encoding","value":"chunked"},{"key":"Connection","value":"keep-alive"},{"key":"Status","value":"201 Created"},{"key":"Cache-Control","value":"max-age=0, private, must-revalidate"},{"key":"Vary","value":"Accept-Encoding"},{"key":"Content-Encoding","value":"gzip"},{"key":"Strict-Transport-Security","value":"max-age=31536000; includeSubDomains"},{"key":"X-Request-Id","value":"4058b1e0-f910-450c-b24c-c239f84f556c"},{"key":"Location","value":"https://demo.chronogolf.ca/partner_api/v2/payment_confirmations/f3d7bd52-4ee6-48e4-8dde-d983e0da7658"},{"key":"Etag","value":"W/\"a5d076ed0df48888ffe6e5de09139e59\""},{"key":"X-Frame-Options","value":"ALLOWALL"},{"key":"X-Runtime","value":"0.122988"},{"key":"X-Powered-By","value":"Phusion Passenger Enterprise 6.0.2"},{"key":"Via","value":"1.1 vegur"},{"key":"CF-Cache-Status","value":"DYNAMIC"},{"key":"Expect-CT","value":"max-age=604800, report-uri=\"https://report-uri.cloudflare.com/cdn-cgi/beacon/expect-ct\""},{"key":"Server","value":"cloudflare"},{"key":"CF-RAY","value":"54082193af9a3fb1-YUL"}],"cookie":[],"responseTime":null,"body":"{\n    \"data\": {\n        \"id\": \"f3d7bd52-4ee6-48e4-8dde-d983e0da7658\",\n        \"type\": \"payment_confirmation\",\n        \"attributes\": {\n            \"amount\": 60.95,\n            \"reference\": \"reference\"\n        },\n        \"relationships\": {\n            \"rounds\": {\n                \"data\": [\n                    {\n                        \"id\": \"1bed94d6-4174-400c-9b85-9a37cca48142\",\n                        \"type\": \"round\"\n                    }\n                ]\n            }\n        }\n    }\n}"}],"_postman_id":"36de6817-188d-4fb7-bb87-79dc9598ea53"},{"name":"Retrieve a payment confirmation","event":[{"listen":"test","script":{"id":"8ed84e37-ed7d-4d37-b34a-63cef0eab1d0","exec":["",""],"type":"text/javascript"}}],"id":"7ce30410-67e7-441c-8b1a-fe08817550a2","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[{"key":"Accept","value":"application/vnd.api+json"},{"key":"Authorization","value":"Bearer "},{"key":"Content-Type","name":"Content-Type","type":"text","value":"application/json"}],"body":{"mode":"raw","raw":"{\n    \"data\": {\n        \"type\": \"payment_confirmation\",\n        \"attributes\": {\n            \"amount\":60,\n            \"reference\": \"reference\"\n        },\n        \"relationships\": {\n            \"rounds\": {\n                \"data\": [\n                    {\n                        \"type\": \"round\",\n                        \"id\": \"87cf9b96-ab7a-45cf-bba1-f8826854fcad\"\n                    }\n                ]\n            }\n        }\n    }\n}"},"url":"https://partner-staging.chronogolf.com/partner_api/v2/payment_confirmations/","urlObject":{"path":["partner_api","v2","payment_confirmations",""],"host":["https://partner-staging.chronogolf.com"],"query":[],"variable":[]}},"response":[{"id":"18db23ea-808a-42c8-8f32-9f640a78d45a","name":"Retrieve a payment confirmation","originalRequest":{"method":"GET","header":[{"key":"Accept","value":"application/vnd.api+json"},{"key":"Authorization","value":"Bearer "},{"key":"Content-Type","name":"Content-Type","type":"text","value":"application/json"}],"body":{"mode":"raw","raw":"{\n    \"data\": {\n        \"type\": \"payment_confirmation\",\n        \"attributes\": {\n            \"amount\":60,\n            \"reference\": \"reference\"\n        },\n        \"relationships\": {\n            \"rounds\": {\n                \"data\": [\n                    {\n                        \"type\": \"round\",\n                        \"id\": \"87cf9b96-ab7a-45cf-bba1-f8826854fcad\"\n                    }\n                ]\n            }\n        }\n    }\n}"},"url":"https://partner-staging.chronogolf.com/partner_api/v2/payment_confirmations/"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":[{"key":"Date","value":"Thu, 05 Dec 2019 18:37:51 GMT"},{"key":"Content-Type","value":"application/vnd.api+json"},{"key":"Transfer-Encoding","value":"chunked"},{"key":"Connection","value":"keep-alive"},{"key":"Status","value":"200 OK"},{"key":"Cache-Control","value":"max-age=0, private, must-revalidate"},{"key":"Vary","value":"Accept-Encoding"},{"key":"Content-Encoding","value":"gzip"},{"key":"Strict-Transport-Security","value":"max-age=31536000; includeSubDomains"},{"key":"X-Request-Id","value":"c3392816-36dc-4826-8716-93801afc0420"},{"key":"Etag","value":"W/\"d1876cf1594f29735d81ea699c2ed4ea\""},{"key":"X-Frame-Options","value":"ALLOWALL"},{"key":"X-Runtime","value":"0.041868"},{"key":"X-Powered-By","value":"Phusion Passenger Enterprise 6.0.2"},{"key":"Via","value":"1.1 vegur"},{"key":"CF-Cache-Status","value":"DYNAMIC"},{"key":"Expect-CT","value":"max-age=604800, report-uri=\"https://report-uri.cloudflare.com/cdn-cgi/beacon/expect-ct\""},{"key":"Server","value":"cloudflare"},{"key":"CF-RAY","value":"540822399bf63fb1-YUL"}],"cookie":[],"responseTime":null,"body":"{\n    \"data\": {\n        \"id\": \"f3d7bd52-4ee6-48e4-8dde-d983e0da7658\",\n        \"type\": \"payment_confirmation\",\n        \"attributes\": {\n            \"amount\": 60.95,\n            \"reference\": \"reference\"\n        },\n        \"relationships\": {\n            \"rounds\": {\n                \"data\": [\n                    {\n                        \"id\": \"1bed94d6-4174-400c-9b85-9a37cca48142\",\n                        \"type\": \"round\"\n                    }\n                ]\n            }\n        }\n    }\n}"}],"_postman_id":"7ce30410-67e7-441c-8b1a-fe08817550a2"},{"name":"Check-In Reservations","id":"8197737b-1a56-4615-adca-9b2cac296eb0","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[{"key":"Authorization","value":"bearer ","type":"text"},{"key":"Accept","value":"application/vnd.api+json","type":"text"},{"key":"Content-Type","name":"Content-Type","value":"application/vnd.api+json","type":"text"}],"body":{"mode":"raw","raw":"{\n        \"data\": {\n          \"type\": \"rounds\",\n          \"relationships\": {\n            \"rounds\": {\n              \"data\": [\n                { \"type\": \"round\", \"id\": \"b1952244-5035-40ee-94e1-da3ae9b05e45\" },\n                { \"type\": \"round\", \"id\": \"1644ae82-38ec-465e-a5d9-3ddb8d130748\" },\n                { \"type\": \"round\", \"id\": \"58a384fb-94f0-4ef3-ace2-91d873f272a7\" }\n              ]\n            }\n          }\n        }\n      }","options":{"raw":{"language":"json"}}},"url":"https://partner-staging.chronogolf.com/partner_api/v2/organizations/044ba009-d9f2-47c2-90c1-54fcd35996a4/check_ins","urlObject":{"path":["partner_api","v2","organizations","044ba009-d9f2-47c2-90c1-54fcd35996a4","check_ins"],"host":["https://partner-staging.chronogolf.com"],"query":[],"variable":[]}},"response":[{"id":"5eb069a8-4c24-4156-8bf4-1ddd66eb109c","name":"Check-In Reservations","originalRequest":{"method":"POST","header":[{"key":"Authorization","value":"bearer ","type":"text"},{"key":"Accept","value":"application/vnd.api+json","type":"text"},{"key":"Content-Type","name":"Content-Type","value":"application/vnd.api+json","type":"text"}],"body":{"mode":"raw","raw":"{\n        \"data\": {\n          \"type\": \"rounds\",\n          \"relationships\": {\n            \"rounds\": {\n              \"data\": [\n                { \"type\": \"round\", \"id\": \"b1952244-5035-40ee-94e1-da3ae9b05e45\" },\n                { \"type\": \"round\", \"id\": \"1644ae82-38ec-465e-a5d9-3ddb8d130748\" },\n                { \"type\": \"round\", \"id\": \"58a384fb-94f0-4ef3-ace2-91d873f272a7\" }\n              ]\n            }\n          }\n        }\n      }","options":{"raw":{"language":"json"}}},"url":"https://partner-staging.chronogolf.com/partner_api/v2/organizations/044ba009-d9f2-47c2-90c1-54fcd35996a4/check_ins"},"status":"Created","code":201,"_postman_previewlanguage":null,"header":null,"cookie":[],"responseTime":null,"body":null}],"_postman_id":"8197737b-1a56-4615-adca-9b2cac296eb0"}],"id":"e5374cac-8cfb-4cce-ba67-cc6aceea21bf","description":"<p>Reservations work via a request system.</p>\n<p>In order to create a reservation, you must first create a reservation request, then add rounds to the reservation as round requests. Once you have added the rounds to the reservation request, you can confirm the reservation.  </p>\n","event":[{"listen":"prerequest","script":{"id":"92a40095-3206-4782-8ee3-9bc1eec9ef27","type":"text/javascript","exec":[""]}},{"listen":"test","script":{"id":"08f7bde1-e65f-4766-8597-fcea66aed2be","type":"text/javascript","exec":[""]}}],"_postman_id":"e5374cac-8cfb-4cce-ba67-cc6aceea21bf"},{"name":"Reservation (Update)","item":[{"name":"Create a round into a reservation","id":"59aacb79-8970-48fb-8322-6017548963aa","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[{"key":"Accept","value":"application/vnd.api+json","type":"text"},{"key":"Authorization","value":"Bearer ","type":"text"},{"key":"Content-Type","value":"application/json","type":"text"}],"body":{"mode":"raw","raw":"{\n    \"data\": {\n        \"type\": \"round_request\",\n        \"attributes\": {\n        \t\"green_fee\": 45.00,\n        \t\"cart_fee\": 15.95,\n            \"guest\": {\n                \"first_name\": \"testing\",\n                \"last_name\": \"testing\"\n            }\n        },\n        \"relationships\": {\n            \"customership\": {\n                \"data\": {\n                    \"type\": \"customership\",\n                    \"id\": \"cbad5a1f-1c34-4801-8371-b9742650ec91\"\n                }\n            },\n            \"player_type\": {\n                \"data\": {\n                    \"type\": \"player_type\",\n                    \"id\": \"cbad5a1f-1c34-4801-8371-b9742650ec91\"\n                }\n            }\n        }\n    }\n}","options":{"raw":{"language":"json"}}},"url":"https://partner-staging.chronogolf.com/partner_api/v2/organizations/044ba009-d9f2-47c2-90c1-54fcd35996a4/reservations//rounds","description":"<p>green_fee is the only required field. If set to null, the price from the club price sheet for their default player type will apply.</p>\n<p>You can optionally define a guest or a customer.</p>\n","urlObject":{"path":["partner_api","v2","organizations","044ba009-d9f2-47c2-90c1-54fcd35996a4","reservations","","rounds"],"host":["https://partner-staging.chronogolf.com"],"query":[],"variable":[]}},"response":[{"id":"41ec5fb8-77f7-411f-80ab-549d04a0cde0","name":"Create a round into a reservation","originalRequest":{"method":"POST","header":[{"key":"Accept","value":"application/vnd.api+json","type":"text"},{"key":"Authorization","value":"Bearer ","type":"text"},{"key":"Content-Type","value":"application/json","type":"text"}],"body":{"mode":"raw","raw":"{\n    \"data\": {\n        \"type\": \"round_request\",\n        \"attributes\": {\n        \t\"green_fee\": 45.00,\n        \t\"cart_fee\": 15.95,\n            \"guest\": {\n                \"first_name\": \"testing\",\n                \"last_name\": \"testing\"\n            }\n        },\n        \"relationships\": {\n            \"customership\": {\n                \"data\": {\n                    \"type\": \"customership\",\n                    \"id\": \"cbad5a1f-1c34-4801-8371-b9742650ec91\"\n                }\n            },\n            \"player_type\": {\n                \"data\": {\n                    \"type\": \"player_type\",\n                    \"id\": \"cbad5a1f-1c34-4801-8371-b9742650ec91\"\n                }\n            }\n        }\n    }\n}","options":{"raw":{"language":"json"}}},"url":"https://partner-staging.chronogolf.com/partner_api/v2/organizations/044ba009-d9f2-47c2-90c1-54fcd35996a4/reservations//rounds"},"status":"Created","code":201,"_postman_previewlanguage":"json","header":null,"cookie":[],"responseTime":null,"body":"{\n    \"data\": {\n        \"id\": \"f8e5dadb-64a2-49e2-b14c-d0eb888e26d9\",\n        \"type\": \"reservation\",\n        \"attributes\": {\n            \"booking_reference\": \"7T9S-0N2L\",\n            \"cart_count\": 2,\n            \"holes\": 18,\n            \"note\": \"Booking note\",\n            \"state\": \"confirmed\",\n            \"source\": \"partner\",\n            \"medium\": \"partner_api\",\n            \"cancelled_at\": null,\n            \"created_at\": \"2025-08-18T10:20:47-04:00\",\n            \"updated_at\": \"2025-08-19T16:39:15-04:00\"\n        },\n        \"relationships\": {\n            \"teetime\": {\n                \"data\": {\n                    \"id\": \"05ad74b1-faa2-4c1d-bdfc-f369607d2a72\",\n                    \"type\": \"teetime\"\n                }\n            },\n            \"organization\": {\n                \"data\": {\n                    \"id\": \"2dc5b2c0-52ae-42b2-9491-6f062c12658c\",\n                    \"type\": \"organization\"\n                }\n            },\n            \"booker\": {\n                \"data\": null\n            },\n            \"rounds\": {\n                \"data\": [\n                    {\n                        \"id\": \"19797664-aaaa-4730-8c5e-e6bd6101552e\",\n                        \"type\": \"round\"\n                    },\n                    {\n                        \"id\": \"8dbe7942-f9b9-462e-b85f-840a62cbbcac\",\n                        \"type\": \"round\"\n                    },\n                    {\n                        \"id\": \"7630c2bd-10c6-4024-9106-646d62811e15\",\n                        \"type\": \"round\"\n                    },\n                    {\n                        \"id\": \"b3cbaf19-c8a3-4c31-9efa-cf818f3ac4a7\",\n                        \"type\": \"round\"\n                    },\n                    {\n                        \"id\": \"9171ab28-8cde-4041-9e21-31c2b5f43440\",\n                        \"type\": \"round\"\n                    }\n                ]\n            },\n            \"linked_reservations\": {\n                \"data\": []\n            }\n        }\n    }\n}"}],"_postman_id":"59aacb79-8970-48fb-8322-6017548963aa"},{"name":"Retrieve a round from a reservation","id":"1bf25d1c-073d-4b22-97e6-e2069ad41273","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[{"key":"Accept","value":"application/vnd.api+json","type":"text"},{"key":"Authorization","value":"Bearer ","type":"text"},{"key":"Content-Type","value":"application/json","type":"text"}],"url":"https://partner-staging.chronogolf.com/partner_api/v2/organizations/044ba009-d9f2-47c2-90c1-54fcd35996a4/reservations//rounds/","urlObject":{"path":["partner_api","v2","organizations","044ba009-d9f2-47c2-90c1-54fcd35996a4","reservations","","rounds",""],"host":["https://partner-staging.chronogolf.com"],"query":[],"variable":[]}},"response":[{"id":"bd9125ff-ad3a-456a-a951-019a4d30878a","name":"Retrieve a round from a reservation","originalRequest":{"method":"GET","header":[{"key":"Accept","value":"application/vnd.api+json","type":"text"},{"key":"Authorization","value":"Bearer ","type":"text"},{"key":"Content-Type","value":"application/json","type":"text"}],"url":"https://partner-staging.chronogolf.com/partner_api/v2/organizations/044ba009-d9f2-47c2-90c1-54fcd35996a4/reservations//rounds/"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":null,"cookie":[],"responseTime":null,"body":"{\n    \"data\": {\n        \"id\": \"b3cbaf19-c8a3-4c31-9efa-cf818f3ac4a7\",\n        \"type\": \"round\",\n        \"attributes\": {\n            \"state\": \"reserved\",\n            \"created_at\": \"2025-08-19T16:38:18.337-04:00\",\n            \"updated_at\": \"2025-08-19T16:39:00.968-04:00\",\n            \"cancelled_at\": \"2025-08-19T16:39:00.943-04:00\",\n            \"price\": 0,\n            \"paid\": false,\n            \"guest\": {\n                \"last_name\": \"test2\",\n                \"first_name\": \"test2\"\n            },\n            \"extras\": [],\n            \"kits\": [],\n            \"rates\": {\n                \"green_fee\": null,\n                \"cart_fee\": null,\n                \"extra_fee\": 0,\n                \"kit_fee\": 0,\n                \"subtotal\": null\n            }\n        },\n        \"relationships\": {\n            \"organization\": {\n                \"data\": {\n                    \"id\": \"2dc5b2c0-52ae-42b2-9491-6f062c12658c\",\n                    \"type\": \"organization\"\n                }\n            },\n            \"reservation\": {\n                \"data\": {\n                    \"id\": \"f8e5dadb-64a2-49e2-b14c-d0eb888e26d9\",\n                    \"type\": \"reservation\"\n                }\n            },\n            \"player_type\": {\n                \"data\": {\n                    \"id\": \"1449e687-d510-43ee-bab9-f00dd3a6a760\",\n                    \"type\": \"player_type\"\n                }\n            },\n            \"customer\": {\n                \"data\": null\n            }\n        }\n    }\n}"}],"_postman_id":"1bf25d1c-073d-4b22-97e6-e2069ad41273"},{"name":"Update a round","id":"6a35e6fe-4cc2-4111-b762-5acd264a52cb","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"PUT","header":[{"key":"Accept","value":"application/vnd.api+json","type":"text"},{"key":"Authorization","value":"Bearer ","type":"text"},{"key":"Content-Type","value":"application/json","type":"text"}],"body":{"mode":"raw","raw":"{\n    \"data\": {\n        \"type\": \"reservation\",\n        \"attributes\": {\n            \"green_fee\": null,\n            \"cart_fee\": null,\n            \"guest\": {\n                \"first_name\": \"testing\",\n                \"last_name\": \"testing\"\n            }\n        },\n        \"relationships\": {\n            \"reservation\": {\n                \"data\": {\n                    \"type\": \"reservation\",\n                    \"id\": \"d0076211-3e4a-45fb-ae05-9c6766211b98\"\n                }\n            },\n            \"player_type\": {\n                \"data\": {\n                    \"type\": \"player_type\",\n                    \"id\": \"3be3e9b0-5767-4115-9c50-45a064dffb4a\"\n                }\n            },\n            \"customership\": {\n                \"data\": {\n                    \"type\": \"customership\",\n                    \"id\": \"32cbc636-594e-45ff-af41-c7dacc80db3c\"\n                }\n            }\n        }\n    }\n}","options":{"raw":{"language":"json"}}},"url":"https://partner-staging.chronogolf.com/partner_api/v2/organizations/044ba009-d9f2-47c2-90c1-54fcd35996a4/reservations//rounds/","description":"<p>Minimal payload to update the guest names only:</p>\n<pre class=\"click-to-expand-wrapper is-snippet-wrapper\"><code class=\"language-json\">{\n    \"data\": {\n        \"type\": \"reservation\",\n        \"attributes\": {\n            \"guest\": {\n                \"first_name\": \"Guest\",\n                \"last_name\": \"1234\"\n                    }\n            }\n    }\n}\n\n</code></pre>\n","urlObject":{"path":["partner_api","v2","organizations","044ba009-d9f2-47c2-90c1-54fcd35996a4","reservations","","rounds",""],"host":["https://partner-staging.chronogolf.com"],"query":[],"variable":[]}},"response":[{"id":"ed7d98f3-82c9-44ba-af2a-b93ff3d17947","name":"Update a round","originalRequest":{"method":"PUT","header":[{"key":"Accept","value":"application/vnd.api+json","type":"text"},{"key":"Authorization","value":"Bearer ","type":"text"},{"key":"Content-Type","value":"application/json","type":"text"}],"body":{"mode":"raw","raw":"{\n    \"data\": {\n        \"type\": \"reservation\",\n        \"attributes\": {\n            \"green_fee\": null,\n            \"cart_fee\": null,\n            \"guest\": {\n                \"first_name\": \"testing\",\n                \"last_name\": \"testing\"\n            }\n        },\n        \"relationships\": {\n            \"reservation\": {\n                \"data\": {\n                    \"type\": \"reservation\",\n                    \"id\": \"d0076211-3e4a-45fb-ae05-9c6766211b98\"\n                }\n            },\n            \"player_type\": {\n                \"data\": {\n                    \"type\": \"player_type\",\n                    \"id\": \"3be3e9b0-5767-4115-9c50-45a064dffb4a\"\n                }\n            },\n            \"customership\": {\n                \"data\": {\n                    \"type\": \"customership\",\n                    \"id\": \"32cbc636-594e-45ff-af41-c7dacc80db3c\"\n                }\n            }\n        }\n    }\n}","options":{"raw":{"language":"json"}}},"url":"https://partner-staging.chronogolf.com/partner_api/v2/organizations/044ba009-d9f2-47c2-90c1-54fcd35996a4/reservations//rounds/"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":null,"cookie":[],"responseTime":null,"body":"{\n    \"data\": {\n        \"id\": \"d0076211-3e4a-45fb-ae05-9c6766211b98\",\n        \"type\": \"reservation\",\n        \"attributes\": {\n            \"booking_reference\": \"1Q2C-9X2U\",\n            \"cart_count\": 1,\n            \"holes\": 18,\n            \"note\": \"Booking 1cx 1 guest\",\n            \"state\": \"confirmed\",\n            \"source\": \"partner\",\n            \"medium\": \"partner_api\",\n            \"cancelled_at\": null,\n            \"created_at\": \"2025-08-19T10:10:19-04:00\",\n            \"updated_at\": \"2025-08-20T15:59:12-04:00\"\n        },\n        \"relationships\": {\n            \"teetime\": {\n                \"data\": {\n                    \"id\": \"a3ec1ce7-2be8-4ca0-9f53-7756870e3325\",\n                    \"type\": \"teetime\"\n                }\n            },\n            \"organization\": {\n                \"data\": {\n                    \"id\": \"2dc5b2c0-52ae-42b2-9491-6f062c12658c\",\n                    \"type\": \"organization\"\n                }\n            },\n            \"booker\": {\n                \"data\": null\n            },\n            \"rounds\": {\n                \"data\": [\n                    {\n                        \"id\": \"12144308-e859-48b1-b763-fbdbeb33e7e6\",\n                        \"type\": \"round\"\n                    },\n                    {\n                        \"id\": \"b665b492-4780-4c0f-8a2d-7aa0b5f31a51\",\n                        \"type\": \"round\"\n                    },\n                    {\n                        \"id\": \"5352b791-b2f1-4e5d-9d23-6265d6c46e96\",\n                        \"type\": \"round\"\n                    },\n                    {\n                        \"id\": \"d785e9ae-17dd-4f94-b48f-c3858e3038d4\",\n                        \"type\": \"round\"\n                    }\n                ]\n            },\n            \"linked_reservations\": {\n                \"data\": []\n            }\n        }\n    }\n}"}],"_postman_id":"6a35e6fe-4cc2-4111-b762-5acd264a52cb"},{"name":"Delete a round","id":"ca108b69-aee5-48dc-a27a-20d7aa5ee243","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"DELETE","header":[{"key":"Accept","value":"application/vnd.api+json","type":"text"},{"key":"Authorization","value":"Bearer ","type":"text"},{"key":"Content-Type","value":"application/json","type":"text"}],"url":"https://partner-staging.chronogolf.com/partner_api/v2/organizations/044ba009-d9f2-47c2-90c1-54fcd35996a4/reservations//rounds/","urlObject":{"path":["partner_api","v2","organizations","044ba009-d9f2-47c2-90c1-54fcd35996a4","reservations","","rounds",""],"host":["https://partner-staging.chronogolf.com"],"query":[],"variable":[]}},"response":[{"id":"7467b07c-86c2-4946-b354-cb384f554315","name":"Delete a round","originalRequest":{"method":"DELETE","header":[{"key":"Accept","value":"application/vnd.api+json","type":"text"},{"key":"Authorization","value":"Bearer ","type":"text"},{"key":"Content-Type","value":"application/json","type":"text"}],"url":"https://partner-staging.chronogolf.com/partner_api/v2/organizations/044ba009-d9f2-47c2-90c1-54fcd35996a4/reservations//rounds/"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":null,"cookie":[],"responseTime":null,"body":"{\n    \"data\": {\n        \"id\": \"d0076211-3e4a-45fb-ae05-9c6766211b98\",\n        \"type\": \"reservation\",\n        \"attributes\": {\n            \"booking_reference\": \"1Q2C-9X2U\",\n            \"cart_count\": 1,\n            \"holes\": 18,\n            \"note\": \"Booking 1cx 3 guests\",\n            \"state\": \"confirmed\",\n            \"source\": \"partner\",\n            \"medium\": \"partner_api\",\n            \"cancelled_at\": null,\n            \"created_at\": \"2025-08-19T10:10:19-04:00\",\n            \"updated_at\": \"2025-08-20T15:59:12-04:00\"\n        },\n        \"relationships\": {\n            \"teetime\": {\n                \"data\": {\n                    \"id\": \"a3ec1ce7-2be8-4ca0-9f53-7756870e3325\",\n                    \"type\": \"teetime\"\n                }\n            },\n            \"organization\": {\n                \"data\": {\n                    \"id\": \"2dc5b2c0-52ae-42b2-9491-6f062c12658c\",\n                    \"type\": \"organization\"\n                }\n            },\n            \"booker\": {\n                \"data\": null\n            },\n            \"rounds\": {\n                \"data\": [\n                    {\n                        \"id\": \"12144308-e859-48b1-b763-fbdbeb33e7e6\",\n                        \"type\": \"round\"\n                    },\n                    {\n                        \"id\": \"b665b492-4780-4c0f-8a2d-7aa0b5f31a51\",\n                        \"type\": \"round\"\n                    },\n                    {\n                        \"id\": \"5352b791-b2f1-4e5d-9d23-6265d6c46e96\",\n                        \"type\": \"round\"\n                    },\n                    {\n                        \"id\": \"d785e9ae-17dd-4f94-b48f-c3858e3038d4\",\n                        \"type\": \"round\"\n                    }\n                ]\n            },\n            \"linked_reservations\": {\n                \"data\": []\n            }\n        }\n    }\n}"}],"_postman_id":"ca108b69-aee5-48dc-a27a-20d7aa5ee243"},{"name":"Retrieve all rounds from a reservation","id":"0b5afd8a-5ee3-41ff-8906-1a1379d91f31","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[{"key":"Accept","value":"application/vnd.api+json","type":"text"},{"key":"Authorization","value":"Bearer ","type":"text"},{"key":"Content-Type","value":"application/json","type":"text"}],"url":"https://partner-staging.chronogolf.com/partner_api/v2/organizations/044ba009-d9f2-47c2-90c1-54fcd35996a4/reservations//rounds","urlObject":{"path":["partner_api","v2","organizations","044ba009-d9f2-47c2-90c1-54fcd35996a4","reservations","","rounds"],"host":["https://partner-staging.chronogolf.com"],"query":[],"variable":[]}},"response":[{"id":"93e9fc43-0fc2-41f4-9178-523487d9567d","name":"Retrieve all rounds from a reservation","originalRequest":{"method":"GET","header":[{"key":"Accept","value":"application/vnd.api+json","type":"text"},{"key":"Authorization","value":"Bearer ","type":"text"},{"key":"Content-Type","value":"application/json","type":"text"}],"url":"https://partner-staging.chronogolf.com/partner_api/v2/organizations/044ba009-d9f2-47c2-90c1-54fcd35996a4/reservations//rounds"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":null,"cookie":[],"responseTime":null,"body":"{\n    \"data\": [\n        {\n            \"id\": \"c4fdb2b7-7f27-4268-9c31-9c23a358af96\",\n            \"type\": \"round\",\n            \"attributes\": {\n                \"state\": \"reserved\",\n                \"created_at\": \"2025-08-19T10:07:58.453-04:00\",\n                \"updated_at\": \"2025-08-19T10:07:58.453-04:00\",\n                \"cancelled_at\": null,\n                \"price\": 110.0,\n                \"paid\": false,\n                \"guest\": {},\n                \"extras\": [],\n                \"kits\": [],\n                \"rates\": {\n                    \"green_fee\": 100.0,\n                    \"cart_fee\": 10.0,\n                    \"extra_fee\": 0,\n                    \"kit_fee\": 0,\n                    \"subtotal\": null\n                }\n            },\n            \"relationships\": {\n                \"organization\": {\n                    \"data\": {\n                        \"id\": \"2dc5b2c0-52ae-42b2-9491-6f062c12658c\",\n                        \"type\": \"organization\"\n                    }\n                },\n                \"reservation\": {\n                    \"data\": {\n                        \"id\": \"ab24beaf-dfc3-4973-bfb5-5450b7f5c1f5\",\n                        \"type\": \"reservation\"\n                    }\n                },\n                \"player_type\": {\n                    \"data\": {\n                        \"id\": \"1449e687-d510-43ee-bab9-f00dd3a6a760\",\n                        \"type\": \"player_type\"\n                    }\n                },\n                \"customer\": {\n                    \"data\": {\n                        \"id\": \"4602dc5f-eefd-4478-82d2-65119b4e589a\",\n                        \"type\": \"customership\"\n                    }\n                }\n            }\n        },\n        {\n            \"id\": \"9ed79c3b-dcd5-49c3-9f0b-97dc4339a8fb\",\n            \"type\": \"round\",\n            \"attributes\": {\n                \"state\": \"reserved\",\n                \"created_at\": \"2025-08-19T10:07:58.473-04:00\",\n                \"updated_at\": \"2025-08-19T10:07:58.473-04:00\",\n                \"cancelled_at\": null,\n                \"price\": 110.0,\n                \"paid\": false,\n                \"guest\": {\n                    \"last_name\": \"Guest\",\n                    \"first_name\": \"1\"\n                },\n                \"extras\": [],\n                \"kits\": [],\n                \"rates\": {\n                    \"green_fee\": 100.0,\n                    \"cart_fee\": 10.0,\n                    \"extra_fee\": 0,\n                    \"kit_fee\": 0,\n                    \"subtotal\": null\n                }\n            },\n            \"relationships\": {\n                \"organization\": {\n                    \"data\": {\n                        \"id\": \"2dc5b2c0-52ae-42b2-9491-6f062c12658c\",\n                        \"type\": \"organization\"\n                    }\n                },\n                \"reservation\": {\n                    \"data\": {\n                        \"id\": \"ab24beaf-dfc3-4973-bfb5-5450b7f5c1f5\",\n                        \"type\": \"reservation\"\n                    }\n                },\n                \"player_type\": {\n                    \"data\": {\n                        \"id\": \"1449e687-d510-43ee-bab9-f00dd3a6a760\",\n                        \"type\": \"player_type\"\n                    }\n                },\n                \"customer\": {\n                    \"data\": null\n                }\n            }\n        },\n        {\n            \"id\": \"6815a454-2384-42b8-b07a-54fa5da2ab01\",\n            \"type\": \"round\",\n            \"attributes\": {\n                \"state\": \"reserved\",\n                \"created_at\": \"2025-08-19T10:07:58.486-04:00\",\n                \"updated_at\": \"2025-08-19T10:07:58.486-04:00\",\n                \"cancelled_at\": null,\n                \"price\": 110.0,\n                \"paid\": false,\n                \"guest\": {\n                    \"last_name\": \"Guest\",\n                    \"first_name\": \"2\"\n                },\n                \"extras\": [],\n                \"kits\": [],\n                \"rates\": {\n                    \"green_fee\": 100.0,\n                    \"cart_fee\": 10.0,\n                    \"extra_fee\": 0,\n                    \"kit_fee\": 0,\n                    \"subtotal\": null\n                }\n            },\n            \"relationships\": {\n                \"organization\": {\n                    \"data\": {\n                        \"id\": \"2dc5b2c0-52ae-42b2-9491-6f062c12658c\",\n                        \"type\": \"organization\"\n                    }\n                },\n                \"reservation\": {\n                    \"data\": {\n                        \"id\": \"ab24beaf-dfc3-4973-bfb5-5450b7f5c1f5\",\n                        \"type\": \"reservation\"\n                    }\n                },\n                \"player_type\": {\n                    \"data\": {\n                        \"id\": \"1449e687-d510-43ee-bab9-f00dd3a6a760\",\n                        \"type\": \"player_type\"\n                    }\n                },\n                \"customer\": {\n                    \"data\": null\n                }\n            }\n        },\n        {\n            \"id\": \"78117d80-5612-4de1-898b-a2284be939f5\",\n            \"type\": \"round\",\n            \"attributes\": {\n                \"state\": \"reserved\",\n                \"created_at\": \"2025-08-19T10:07:58.497-04:00\",\n                \"updated_at\": \"2025-08-19T10:07:58.497-04:00\",\n                \"cancelled_at\": null,\n                \"price\": 110.0,\n                \"paid\": false,\n                \"guest\": {\n                    \"last_name\": \"Guest\",\n                    \"first_name\": \"3\"\n                },\n                \"extras\": [],\n                \"kits\": [],\n                \"rates\": {\n                    \"green_fee\": 100.0,\n                    \"cart_fee\": 10.0,\n                    \"extra_fee\": 0,\n                    \"kit_fee\": 0,\n                    \"subtotal\": null\n                }\n            },\n            \"relationships\": {\n                \"organization\": {\n                    \"data\": {\n                        \"id\": \"2dc5b2c0-52ae-42b2-9491-6f062c12658c\",\n                        \"type\": \"organization\"\n                    }\n                },\n                \"reservation\": {\n                    \"data\": {\n                        \"id\": \"ab24beaf-dfc3-4973-bfb5-5450b7f5c1f5\",\n                        \"type\": \"reservation\"\n                    }\n                },\n                \"player_type\": {\n                    \"data\": {\n                        \"id\": \"1449e687-d510-43ee-bab9-f00dd3a6a760\",\n                        \"type\": \"player_type\"\n                    }\n                },\n                \"customer\": {\n                    \"data\": null\n                }\n            }\n        }\n    ],\n    \"meta\": {\n        \"page\": 1,\n        \"page_size\": 25,\n        \"total\": 4,\n        \"total_pages\": 1\n    }\n}"}],"_postman_id":"0b5afd8a-5ee3-41ff-8906-1a1379d91f31"},{"name":"Update a reservation","id":"67a27beb-f8e0-4cd7-8b46-bb5978627de3","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"PUT","header":[{"key":"Accept","value":"application/vnd.api+json","type":"text"},{"key":"Authorization","value":"Bearer ","type":"text"},{"key":"Content-Type","value":"application/json","type":"text"}],"body":{"mode":"raw","raw":"{\n    \"data\": {\n        \"type\": \"reservation\",\n        \"attributes\": {\n            \"note\": \"Booking 1cx 3 guests - updated\"\n        },\n        \"relationships\": {\n             \"teetime\": {\n                \"data\": {\n                    \"id\": \"3ae213a0-5f61-4c68-9538-8118de3b313f\",\n                    \"type\": \"teetime\"\n                }\n            }\n        }\n    }\n}","options":{"raw":{"language":"json"}}},"url":"https://partner-staging.chronogolf.com/partner_api/v2/organizations/044ba009-d9f2-47c2-90c1-54fcd35996a4/reservations/","description":"<p>On an existing booking you can update the note associated, as well as move the booking to a different tee time, as long as it has sufficient free slots.</p>\n","urlObject":{"path":["partner_api","v2","organizations","044ba009-d9f2-47c2-90c1-54fcd35996a4","reservations",""],"host":["https://partner-staging.chronogolf.com"],"query":[],"variable":[]}},"response":[{"id":"04fd3245-bda6-4b80-b504-82b9aa766597","name":"Update a reservation","originalRequest":{"method":"PUT","header":[{"key":"Accept","value":"application/vnd.api+json","type":"text"},{"key":"Authorization","value":"Bearer ","type":"text"},{"key":"Content-Type","value":"application/json","type":"text"}],"body":{"mode":"raw","raw":"{\n    \"data\": {\n        \"type\": \"reservation\",\n        \"attributes\": {\n            \"note\": \"Booking 1cx 3 guests - updated\"\n        },\n        \"relationships\": {\n             \"teetime\": {\n                \"data\": {\n                    \"id\": \"3ae213a0-5f61-4c68-9538-8118de3b313f\",\n                    \"type\": \"teetime\"\n                }\n            }\n        }\n    }\n}","options":{"raw":{"language":"json"}}},"url":"https://partner-staging.chronogolf.com/partner_api/v2/organizations/044ba009-d9f2-47c2-90c1-54fcd35996a4/reservations//rounds/"},"status":"OK","code":200,"_postman_previewlanguage":"json","header":null,"cookie":[],"responseTime":null,"body":"{\n  \"data\": {\n    \"id\": \"1bf43d9c-b5de-4467-8a7b-b12780416c53\",\n    \"type\": \"reservation\",\n    \"attributes\": {\n      \"booking_reference\": \"5E0I-5I0R\",\n      \"cart_count\": 2,\n      \"holes\": 18,\n      \"note\": \"Booking 1cx 3 guests - updated\",\n      \"state\": \"confirmed\",\n      \"source\": \"partner\",\n      \"medium\": \"partner_api\",\n      \"cancelled_at\": null,\n      \"created_at\": \"2025-08-20T10:10:50-04:00\",\n      \"updated_at\": \"2025-08-21T11:19:45-04:00\"\n    },\n    \"relationships\": {\n      \"teetime\": {\n        \"data\": {\n          \"id\": \"3ae213a0-5f61-4c68-9538-8118de3b313f\",\n          \"type\": \"teetime\"\n        }\n      },\n      \"organization\": {\n        \"data\": {\n          \"id\": \"2dc5b2c0-52ae-42b2-9491-6f062c12658c\",\n          \"type\": \"organization\"\n        }\n      },\n      \"booker\": {\n        \"data\": null\n      },\n      \"rounds\": {\n        \"data\": [\n          {\n            \"id\": \"c1082121-ea06-4816-acf6-9fc5dc6c04ad\",\n            \"type\": \"round\"\n          },\n          {\n            \"id\": \"0ee28abe-07f7-4c3d-b352-a4850966c7a4\",\n            \"type\": \"round\"\n          },\n          {\n            \"id\": \"416bcf6e-c02d-457f-af5b-b0a6848e4452\",\n            \"type\": \"round\"\n          },\n          {\n            \"id\": \"7ee7b27a-3fae-4eed-bb68-af3e82ee44c0\",\n            \"type\": \"round\"\n          }\n        ]\n      },\n      \"linked_reservations\": {\n        \"data\": []\n      }\n    }\n  },\n  \"included\": [\n    {\n      \"id\": \"c1082121-ea06-4816-acf6-9fc5dc6c04ad\",\n      \"type\": \"round\",\n      \"attributes\": {\n        \"state\": \"reserved\",\n        \"created_at\": \"2025-08-20T10:10:50.463-04:00\",\n        \"updated_at\": \"2025-08-20T10:10:50.463-04:00\",\n        \"cancelled_at\": null,\n        \"price\": 110,\n        \"paid\": false,\n        \"guest\": {},\n        \"extras\": [],\n        \"kits\": [],\n        \"rates\": {\n          \"green_fee\": 100,\n          \"cart_fee\": 10,\n          \"extra_fee\": 0,\n          \"kit_fee\": 0,\n          \"subtotal\": null\n        }\n      },\n      \"relationships\": {\n        \"organization\": {\n          \"data\": {\n            \"id\": \"2dc5b2c0-52ae-42b2-9491-6f062c12658c\",\n            \"type\": \"organization\"\n          }\n        },\n        \"reservation\": {\n          \"data\": {\n            \"id\": \"1bf43d9c-b5de-4467-8a7b-b12780416c53\",\n            \"type\": \"reservation\"\n          }\n        },\n        \"player_type\": {\n          \"data\": {\n            \"id\": \"1449e687-d510-43ee-bab9-f00dd3a6a760\",\n            \"type\": \"player_type\"\n          }\n        },\n        \"customer\": {\n          \"data\": {\n            \"id\": \"dad49384-0534-4d67-b242-d3b4572a8bcc\",\n            \"type\": \"customership\"\n          }\n        }\n      }\n    },\n    {\n      \"id\": \"0ee28abe-07f7-4c3d-b352-a4850966c7a4\",\n      \"type\": \"round\",\n      \"attributes\": {\n        \"state\": \"reserved\",\n        \"created_at\": \"2025-08-20T10:10:50.477-04:00\",\n        \"updated_at\": \"2025-08-20T10:10:50.477-04:00\",\n        \"cancelled_at\": null,\n        \"price\": 110,\n        \"paid\": false,\n        \"guest\": {\n          \"last_name\": \"Guest\",\n          \"first_name\": \"1\"\n        },\n        \"extras\": [],\n        \"kits\": [],\n        \"rates\": {\n          \"green_fee\": 100,\n          \"cart_fee\": 10,\n          \"extra_fee\": 0,\n          \"kit_fee\": 0,\n          \"subtotal\": null\n        }\n      },\n      \"relationships\": {\n        \"organization\": {\n          \"data\": {\n            \"id\": \"2dc5b2c0-52ae-42b2-9491-6f062c12658c\",\n            \"type\": \"organization\"\n          }\n        },\n        \"reservation\": {\n          \"data\": {\n            \"id\": \"1bf43d9c-b5de-4467-8a7b-b12780416c53\",\n            \"type\": \"reservation\"\n          }\n        },\n        \"player_type\": {\n          \"data\": {\n            \"id\": \"1449e687-d510-43ee-bab9-f00dd3a6a760\",\n            \"type\": \"player_type\"\n          }\n        },\n        \"customer\": {\n          \"data\": null\n        }\n      }\n    },\n    {\n      \"id\": \"416bcf6e-c02d-457f-af5b-b0a6848e4452\",\n      \"type\": \"round\",\n      \"attributes\": {\n        \"state\": \"reserved\",\n        \"created_at\": \"2025-08-20T10:10:50.488-04:00\",\n        \"updated_at\": \"2025-08-20T10:10:50.488-04:00\",\n        \"cancelled_at\": null,\n        \"price\": 110,\n        \"paid\": false,\n        \"guest\": {\n          \"last_name\": \"Guest\",\n          \"first_name\": \"2\"\n        },\n        \"extras\": [],\n        \"kits\": [],\n        \"rates\": {\n          \"green_fee\": 100,\n          \"cart_fee\": 10,\n          \"extra_fee\": 0,\n          \"kit_fee\": 0,\n          \"subtotal\": null\n        }\n      },\n      \"relationships\": {\n        \"organization\": {\n          \"data\": {\n            \"id\": \"2dc5b2c0-52ae-42b2-9491-6f062c12658c\",\n            \"type\": \"organization\"\n          }\n        },\n        \"reservation\": {\n          \"data\": {\n            \"id\": \"1bf43d9c-b5de-4467-8a7b-b12780416c53\",\n            \"type\": \"reservation\"\n          }\n        },\n        \"player_type\": {\n          \"data\": {\n            \"id\": \"1449e687-d510-43ee-bab9-f00dd3a6a760\",\n            \"type\": \"player_type\"\n          }\n        },\n        \"customer\": {\n          \"data\": null\n        }\n      }\n    },\n    {\n      \"id\": \"7ee7b27a-3fae-4eed-bb68-af3e82ee44c0\",\n      \"type\": \"round\",\n      \"attributes\": {\n        \"state\": \"reserved\",\n        \"created_at\": \"2025-08-20T10:10:50.501-04:00\",\n        \"updated_at\": \"2025-08-20T10:10:50.501-04:00\",\n        \"cancelled_at\": null,\n        \"price\": 110,\n        \"paid\": false,\n        \"guest\": {\n          \"last_name\": \"Guest\",\n          \"first_name\": \"3\"\n        },\n        \"extras\": [],\n        \"kits\": [],\n        \"rates\": {\n          \"green_fee\": 100,\n          \"cart_fee\": 10,\n          \"extra_fee\": 0,\n          \"kit_fee\": 0,\n          \"subtotal\": null\n        }\n      },\n      \"relationships\": {\n        \"organization\": {\n          \"data\": {\n            \"id\": \"2dc5b2c0-52ae-42b2-9491-6f062c12658c\",\n            \"type\": \"organization\"\n          }\n        },\n        \"reservation\": {\n          \"data\": {\n            \"id\": \"1bf43d9c-b5de-4467-8a7b-b12780416c53\",\n            \"type\": \"reservation\"\n          }\n        },\n        \"player_type\": {\n          \"data\": {\n            \"id\": \"1449e687-d510-43ee-bab9-f00dd3a6a760\",\n            \"type\": \"player_type\"\n          }\n        },\n        \"customer\": {\n          \"data\": null\n        }\n      }\n    },\n    {\n      \"id\": \"3ae213a0-5f61-4c68-9538-8118de3b313f\",\n      \"type\": \"teetime\",\n      \"attributes\": {\n        \"blocked\": false,\n        \"date\": \"2025-08-21\",\n        \"hole\": 1,\n        \"format\": \"normal\",\n        \"start_time\": \"17:51\",\n        \"free_slots\": 0\n      },\n      \"relationships\": {\n        \"course\": {\n          \"data\": {\n            \"id\": \"f22a5353-3056-4d2d-8902-0c9f57a743a8\",\n            \"type\": \"course\"\n          }\n        },\n        \"event\": {\n          \"data\": null\n        }\n      }\n    }\n  ]\n}"}],"_postman_id":"67a27beb-f8e0-4cd7-8b46-bb5978627de3"}],"id":"b39e4fb0-c188-44fa-ae3d-1b93932f2689","_postman_id":"b39e4fb0-c188-44fa-ae3d-1b93932f2689","description":""},{"name":"Products","item":[{"name":"List all products for a given organization","id":"f3c62fd4-b769-4b85-8424-e7d5b7f305b2","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[{"key":"Accept","value":"application/vnd.api+json","type":"text"},{"key":"Authorization","value":"bearer ","type":"text"}],"url":"https://partner-staging.chronogolf.com/partner_api/v2/organizations/044ba009-d9f2-47c2-90c1-54fcd35996a4/products","urlObject":{"path":["partner_api","v2","organizations","044ba009-d9f2-47c2-90c1-54fcd35996a4","products"],"host":["https://partner-staging.chronogolf.com"],"query":[{"disabled":true,"description":{"content":"<p>value can be kit_lines or courses</p>\n","type":"text/plain"},"key":"include[]","value":"kit_lines"},{"disabled":true,"description":{"content":"<p>value can be green_fee, cart, extra or kit</p>\n","type":"text/plain"},"key":"filter[product_type][]","value":"kit"},{"disabled":true,"description":{"content":"<p>value must be an integer</p>\n","type":"text/plain"},"key":"filter[bookable_holes][]","value":null}],"variable":[]}},"response":[],"_postman_id":"f3c62fd4-b769-4b85-8424-e7d5b7f305b2"},{"name":"retrieve a specific product","id":"9c4348df-4f57-4c99-beac-316ef6e6d620","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[{"key":"Accept","value":"application/vnd.api+json","type":"text"},{"key":"Authorization","value":"bearer ","type":"text"}],"url":"https://partner-staging.chronogolf.com/partner_api/v2/products/3cf714ee-ebfb-46d8-9073-24b94526d88f?include[]=kit_lines&include[]=courses","urlObject":{"path":["partner_api","v2","products","3cf714ee-ebfb-46d8-9073-24b94526d88f"],"host":["https://partner-staging.chronogolf.com"],"query":[{"key":"include[]","value":"kit_lines"},{"key":"include[]","value":"courses"}],"variable":[]}},"response":[],"_postman_id":"9c4348df-4f57-4c99-beac-316ef6e6d620"},{"name":"List all price overrides","id":"604fc2cb-f6e5-422b-a66b-9f9980db73c8","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[{"key":"Accept","value":"application/vnd.api+json","type":"text"},{"key":"Authorization","value":"Bearer ","type":"text"},{"key":"Content-Type","value":"application/json","type":"text"}],"url":"https://partner-staging.chronogolf.com/partner_api/v2/organizations/044ba009-d9f2-47c2-90c1-54fcd35996a4/price_overrides","urlObject":{"path":["partner_api","v2","organizations","044ba009-d9f2-47c2-90c1-54fcd35996a4","price_overrides"],"host":["https://partner-staging.chronogolf.com"],"query":[],"variable":[]}},"response":[],"_postman_id":"604fc2cb-f6e5-422b-a66b-9f9980db73c8"},{"name":"retrieve a specific price override","id":"64760fe3-c8f3-489a-b012-9cc6f862d611","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[{"key":"Accept","value":"application/vnd.api+json","type":"text"},{"key":"Authorization","value":"Bearer ","type":"text"},{"key":"Content-Type","value":"application/json","type":"text"}],"url":"https://partner-staging.chronogolf.com/partner_api/v2/price_overrides/","urlObject":{"path":["partner_api","v2","price_overrides",""],"host":["https://partner-staging.chronogolf.com"],"query":[],"variable":[]}},"response":[],"_postman_id":"64760fe3-c8f3-489a-b012-9cc6f862d611"},{"name":"Create a price override","id":"3ee1cb70-e4f6-417a-aa14-11282cc04abb","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"POST","header":[{"key":"Accept","value":"application/vnd.api+json","type":"text"},{"key":"Authorization","value":"Bearer ","type":"text"},{"key":"Content-Type","value":"application/json","type":"text"}],"body":{"mode":"raw","raw":"{\n  \"data\": {\n    \"type\": \"price_override\",\n    \"attributes\": {\n      \"starts_at\": \"2020-02-25 06:00:00\",\n      \"ends_at\": \"2020-02-25 20:00:00\",\n      \"price\": 45.87\n    },\n    \"relationships\": {\n      \"product\": {\n        \"data\": {\n          \"type\": \"product\",\n          \"id\": \"52c699cd-37b5-478e-8565-153fd5f31520\"\n        }\n      },\n      \"course\": {\n        \"data\": {\n          \"type\": \"course\",\n          \"id\": \"7ba80346-ff84-4b0d-abb6-b2ba66b8af78\"\n        }\n      },\n      \"player_type\": {\n        \"data\": {\n          \"type\": \"player_type\",\n          \"id\": \"407d6028-af09-4869-adf9-6be382da8053\"\n        }\n      }\n    }\n  }\n}"},"url":"https://partner-staging.chronogolf.com/partner_api/v2/organizations/044ba009-d9f2-47c2-90c1-54fcd35996a4/price_overrides","description":"<p>A price override enables an integrator to set a price for a product, for a specific course and player type. This price overrides the price set in the price sheet for this given player type/course/time combination. </p>\n<p>Products can be listed and their IDs can be retrieved via the products endpoint. Overrides apply for greenfees and carts. </p>\n<p>Multiple price overrides can exist at once for a given product, course and player type combination. Overrides of shorter duration take precedence over ones with longer duration. Example: a price override is created for 6AM to 8PM for a given product/course/player type with a price of $30. A second price override is created with the same parameters, but for 10AM-11AM, for $25. The price for that day would thus be $30 from 6AM-( up to but not including) 10AM, $25 from 10AM-(up to but not including) 11AM, $30 from 11AM onwards.</p>\n<p>If two price overrides are created for the same duration, the first one takes precendent. Example: a price override is created for 10-11AM for a given player type/course/product for $20. A second one is created for 10:30-11:30AM for $30. The price would thus be $20 from 10-11AM, then $30 from 11-11:30AM. </p>\n<p>A price override start time is inclusive, end time is exclusive (up to but not including X timestamp)</p>\n<p>Price overrides can be listed by calling <code>/partner_api/v2/organizations/organization_id/price_overrides</code></p>\n<p>Price overrides can also be deleted.</p>\n","urlObject":{"path":["partner_api","v2","organizations","044ba009-d9f2-47c2-90c1-54fcd35996a4","price_overrides"],"host":["https://partner-staging.chronogolf.com"],"query":[],"variable":[]}},"response":[],"_postman_id":"3ee1cb70-e4f6-417a-aa14-11282cc04abb"},{"name":"Delete a price override","id":"f92c73a6-fc48-4557-8f62-c86f728d57cc","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"DELETE","header":[{"key":"Accept","value":"application/vnd.api+json","type":"text"},{"key":"Authorization","value":"Bearer ","type":"text"},{"key":"Content-Type","value":"application/json","type":"text"}],"url":"https://partner-staging.chronogolf.com/partner_api/v2/price_overrides/","urlObject":{"path":["partner_api","v2","price_overrides",""],"host":["https://partner-staging.chronogolf.com"],"query":[],"variable":[]}},"response":[],"_postman_id":"f92c73a6-fc48-4557-8f62-c86f728d57cc"}],"id":"4c32f340-269d-4e09-95ce-44f9ca4214dd","_postman_id":"4c32f340-269d-4e09-95ce-44f9ca4214dd","description":""},{"name":"Aging Report","item":[{"name":"New Request","id":"0e91a801-f203-4b38-9a29-bfb51e4d30c4","protocolProfileBehavior":{"disableBodyPruning":true},"request":{"method":"GET","header":[{"key":"Accept","value":"application/vnd.api+json","type":"text"},{"key":"Authorization","value":"bearer ","type":"text"}],"url":"https://partner-staging.chronogolf.com/partner_api/v2/organizations/044ba009-d9f2-47c2-90c1-54fcd35996a4/aging_report?filter[cut_off_date]=2026-02-11&filter[type]=Customership&sort=-over_30&page[number]=1&page[size]=10","description":"<p>Returns a paginated list of aging report entries for all house account holders at the specified organization (club).</p>\n<p>Each entry includes the customer's current balance, credit limit, and a breakdown of how old the outstanding balance is across 30-day aging buckets.</p>\n<p><strong>URL:</strong> <code>GET /partner_api/v2/organizations/{organization_id}/aging_report</code></p>\n<p><strong>Headers:</strong></p>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Header</th>\n<th>Required</th>\n<th>Value</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><code>Accept</code></td>\n<td>Yes</td>\n<td><code>application/vnd.api+json</code></td>\n</tr>\n<tr>\n<td><code>Authorization</code></td>\n<td>Yes</td>\n<td><code>Bearer {access_token}</code></td>\n</tr>\n</tbody>\n</table>\n</div><p><strong>Query Parameters:</strong></p>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Parameter</th>\n<th>Required</th>\n<th>Description</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><code>filter[cut_off_date]</code></td>\n<td>No</td>\n<td>The reference date for aging calculations (YYYY-MM-DD). MUST be less than today's date. Defaults to yesterday in the club's timezone.</td>\n</tr>\n<tr>\n<td><code>filter[type]</code></td>\n<td>No</td>\n<td>Filter by holder type: <code>Customership</code>, <code>Reseller</code>, or <code>All</code>. Defaults to <code>All</code>.</td>\n</tr>\n<tr>\n<td><code>sort</code></td>\n<td>No</td>\n<td>Sort field. Options: <code>total</code>, <code>last_30</code>, <code>over_30</code>, <code>over_60</code>, <code>over_90</code>, <code>over_120</code>. Prefix with <code>-</code> for descending (e.g. <code>-total</code>). Defaults to <code>total</code> ascending.</td>\n</tr>\n<tr>\n<td><code>page[number]</code></td>\n<td>No</td>\n<td>Page number. Defaults to 1.</td>\n</tr>\n<tr>\n<td><code>page[size]</code></td>\n<td>No</td>\n<td>Results per page. Defaults to 25.</td>\n</tr>\n</tbody>\n</table>\n</div><p><strong>Response Attributes:</strong></p>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Attribute</th>\n<th>Type</th>\n<th>Description</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><code>id</code></td>\n<td>string</td>\n<td>Customer UUID</td>\n</tr>\n<tr>\n<td><code>ref</code></td>\n<td>string</td>\n<td>Customer reference code</td>\n</tr>\n<tr>\n<td><code>holder_name</code></td>\n<td>string</td>\n<td>Full name of the account holder</td>\n</tr>\n<tr>\n<td><code>member_no</code></td>\n<td>string</td>\n<td>Membership number (null if not set)</td>\n</tr>\n<tr>\n<td><code>holder_type</code></td>\n<td>string</td>\n<td><code>Customership</code> or <code>Reseller</code></td>\n</tr>\n<tr>\n<td><code>total</code></td>\n<td>number</td>\n<td>Net balance (deposits minus charges)</td>\n</tr>\n<tr>\n<td><code>deposit</code></td>\n<td>number</td>\n<td>Total credits/deposits</td>\n</tr>\n<tr>\n<td><code>owing</code></td>\n<td>number</td>\n<td>Total debits/charges</td>\n</tr>\n<tr>\n<td><code>last_30</code></td>\n<td>number</td>\n<td>Balance accrued in the last 30 days</td>\n</tr>\n<tr>\n<td><code>over_30</code></td>\n<td>number</td>\n<td>Balance accrued 30-60 days ago</td>\n</tr>\n<tr>\n<td><code>over_60</code></td>\n<td>number</td>\n<td>Balance accrued 60-90 days ago</td>\n</tr>\n<tr>\n<td><code>over_90</code></td>\n<td>number</td>\n<td>Balance accrued 90-120 days ago</td>\n</tr>\n<tr>\n<td><code>over_120</code></td>\n<td>number</td>\n<td>Balance older than 120 days</td>\n</tr>\n<tr>\n<td><code>credit_limit</code></td>\n<td>number</td>\n<td>Account credit limit</td>\n</tr>\n</tbody>\n</table>\n</div><p><strong>Error Responses:</strong></p>\n<div class=\"click-to-expand-wrapper is-table-wrapper\"><table>\n<thead>\n<tr>\n<th>Status</th>\n<th>Condition</th>\n</tr>\n</thead>\n<tbody>\n<tr>\n<td><code>400 Bad Request</code></td>\n<td>Organization is not a club, or house accounts V2 is not enabled</td>\n</tr>\n<tr>\n<td><code>401 Unauthorized</code></td>\n<td>Missing or invalid access token</td>\n</tr>\n<tr>\n<td><code>403 Forbidden</code></td>\n<td>Integrator is archived or lacks permission</td>\n</tr>\n<tr>\n<td><code>503 Service Unavailable</code></td>\n<td>Endpoint is temporarily disabled</td>\n</tr>\n</tbody>\n</table>\n</div>","urlObject":{"path":["partner_api","v2","organizations","044ba009-d9f2-47c2-90c1-54fcd35996a4","aging_report"],"host":["https://partner-staging.chronogolf.com"],"query":[{"key":"filter[cut_off_date]","value":"2026-02-11"},{"key":"filter[type]","value":"Customership"},{"key":"sort","value":"-over_30"},{"key":"page[number]","value":"1"},{"key":"page[size]","value":"10"}],"variable":[]}},"response":[{"id":"ac0c2324-f598-42bd-85d3-18f9c8e737c5","name":"New Request","originalRequest":{"method":"GET","header":[{"key":"Accept","value":"application/vnd.api+json","type":"text"},{"key":"Authorization","value":"bearer ","type":"text"}],"url":{"raw":"https://partner-staging.chronogolf.com/partner_api/v2/organizations/044ba009-d9f2-47c2-90c1-54fcd35996a4/aging_report?filter[cut_off_date]=2026-02-11&filter[type]=Customership&sort=-over_30&page[number]=1&page[size]=10","host":["https://partner-staging.chronogolf.com"],"path":["partner_api","v2","organizations","044ba009-d9f2-47c2-90c1-54fcd35996a4","aging_report"],"query":[{"key":"filter[cut_off_date]","value":"2026-02-11"},{"key":"filter[type]","value":"Customership"},{"key":"sort","value":"-over_30"},{"key":"page[number]","value":"1"},{"key":"page[size]","value":"10"}]}},"status":"OK","code":200,"_postman_previewlanguage":null,"header":[{"key":"X-Frame-Options","value":"ALLOWALL"},{"key":"Content-Type","value":"application/vnd.api+json"},{"key":"Vary","value":"Accept,Accept-Encoding"},{"key":"Content-Encoding","value":"gzip"},{"key":"ETag","value":"W/\"87732047b2e427bb8e65e7138c18840d\""},{"key":"Cache-Control","value":"max-age=0, private, must-revalidate"},{"key":"X-Request-Id","value":"88661402-4d72-46d6-8cc8-441dfd0e4686"},{"key":"X-Runtime","value":"0.156767"},{"key":"Content-Length","value":"263"}],"cookie":[],"responseTime":null,"body":"{\n    \"data\": [\n        {\n            \"id\": \"1b2d9d52-c879-4d0b-8c5a-0c7d7fe52e8d\",\n            \"type\": \"aging_report_entry\",\n            \"attributes\": {\n                \"ref\": \"7C7R-9J3O\",\n                \"holder_name\": \"Billy Allen\",\n                \"member_no\": null,\n                \"holder_type\": \"Customership\",\n                \"total\": 0,\n                \"deposit\": 0,\n                \"owing\": 0,\n                \"last_30\": 0,\n                \"over_30\": 0,\n                \"over_60\": 0,\n                \"over_90\": 0,\n                \"over_120\": 0,\n                \"credit_limit\": 1000\n            }\n        }\n    ],\n    \"meta\": {\n        \"page\": 1,\n        \"page_size\": 10,\n        \"total\": 6,\n        \"total_pages\": 1\n    }\n}"}],"_postman_id":"0e91a801-f203-4b38-9a29-bfb51e4d30c4"}],"id":"d308b1ed-25bc-4262-bc40-1bdbefa8a355","description":"<p>The Aging Report provides a per-customer breakdown of outstanding house account balances and how long those balances have been owed.</p>\n<p>Each entry in the report represents a single customer at a club, showing their total balance split into aging buckets: last 30 days, 30-60 days, 60-90 days, 90-120 days, and over 120 days.</p>\n<p>The aging report is only available for clubs with house accounts V2 enabled.</p>\n","_postman_id":"d308b1ed-25bc-4262-bc40-1bdbefa8a355"}],"id":"b531792c-ed73-4542-a033-ba8c3644cfcf","_postman_id":"b531792c-ed73-4542-a033-ba8c3644cfcf","description":""}],"event":[{"listen":"prerequest","script":{"type":"text/javascript","exec":[""],"id":"a6eb9f09-c736-4fee-a141-fa10f5fd2382"}},{"listen":"test","script":{"type":"text/javascript","exec":[""],"id":"07beb38d-b453-4a46-8499-91d3c22ed0d1"}}],"variable":[{"key":"url","value":"https://partner-staging.chronogolf.com"},{"key":"access_token","value":""},{"key":"client_id","value":""},{"key":"client_secret","value":""},{"key":"refresh_token","value":""},{"key":"redirect_uri","value":"urn:ietf:wg:oauth:2.0:oob"},{"key":"organization_id","value":"044ba009-d9f2-47c2-90c1-54fcd35996a4"},{"key":"course_id","value":"5e7c2077-baae-4fa0-95ea-3ce02124284e"},{"key":"player_type_id","value":"3b84cd17-fffb-44f9-8570-a690231af66d"},{"key":"teetime_id","value":"8c92c8eb-d7e7-4537-be7a-de5db466391b"},{"key":"product_id","value":"3cf714ee-ebfb-46d8-9073-24b94526d88f"},{"key":"customer_id","value":""},{"key":"reservation_id","value":""},{"key":"reservation_request_id","value":""},{"key":"round_request_id","value":""},{"key":"round_id","value":""},{"key":"price_override_id","value":""},{"key":"payment_confirmation_id","value":""}]}