{"openapi":"3.1.0","info":{"title":"Dueflow API","version":"1.0.0","description":"Read and write your organization's Dueflow data. Authenticate with a personal access token or an organization service token as a bearer credential; cookies are ignored.","termsOfService":"https://dueflow.co/terms","contact":{"name":"Dueflow support","email":"support@dueflow.co","url":"https://docs.dueflow.co"}},"servers":[{"url":"https://api.dueflow.co","description":"Production"},{"url":"https://api.preview.dueflow.co","description":"Preview"}],"security":[{"bearerAuth":[]}],"components":{"securitySchemes":{"bearerAuth":{"type":"http","scheme":"bearer","description":"A Dueflow access token: `dfp_` (personal) or `dfs_` (service). Permissions are the token's scopes intersected with the role ceiling, re-evaluated per request."}},"schemas":{"Error":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"},"param":{"type":"string"},"requiredScopes":{"type":"array","items":{"type":"string"}},"requestId":{"type":"string"},"docsUrl":{"type":"string"}},"required":["code","message","requestId","docsUrl"],"additionalProperties":false}},"required":["error"],"additionalProperties":false}}},"x-dueflow-scopes":{"organization:read":{"description":"Read the organization's profile and public settings.","minRole":"viewer"},"chapters:read":{"description":"Read the child chapters of a national organization, including their member rosters.","minRole":"viewer"},"members:read":{"description":"Read the member roster. Excludes phone numbers, guardian and emergency contact details.","minRole":"viewer"},"members:write":{"description":"Create, update and archive members.","minRole":"editor"},"groups:read":{"description":"Read member groups and their membership.","minRole":"viewer"},"groups:write":{"description":"Create, update and delete member groups.","minRole":"editor"},"payments:read":{"description":"Read dues charges, their status and payment history.","minRole":"viewer"},"reimbursements:read":{"description":"Read reimbursement requests and their status.","minRole":"viewer"},"reimbursements:approve":{"description":"Approve, reject and mark reimbursements as paid.","minRole":"admin"},"payouts:read":{"description":"Read withdrawals from the organization's balance.","minRole":"editor"},"reminders:read":{"description":"Read scheduled and sent payment reminders.","minRole":"viewer"},"reminders:send":{"description":"Send email and SMS payment reminders. These cost money and are rate limited.","minRole":"editor"},"fundraise:read":{"description":"Read campaigns and donations. Excludes donors' names, emails and phone numbers.","minRole":"viewer"},"store:read":{"description":"Read store listings and orders. Excludes guest buyers' contact details.","minRole":"viewer"},"audit:read":{"description":"Read the organization's activity log.","minRole":"admin"}},"paths":{"/v1/audit-logs":{"get":{"operationId":"getAudit-logs","summary":"List activity log events","description":"> **Requires scope** `audit:read` · **Minimum role** admin\n\nLists the organization's activity log, newest first: every mutation, every token lifecycle event, and every roster read by a parent national. Ordinary reads are not recorded. Admin-only, and intended for shipping into a SIEM.\n\n[Scopes and roles](https://docs.dueflow.co/api-reference/scopes)","tags":["Audit"],"security":[{"bearerAuth":["audit:read"]}],"x-dueflow-scopes":["audit:read"],"x-dueflow-min-role":"admin","parameters":[{"name":"limit","in":"query","required":false,"schema":{"default":50,"type":"integer","minimum":1,"maximum":100}},{"name":"cursor","in":"query","required":false,"schema":{"type":"string"}},{"name":"action","in":"query","required":false,"schema":{"type":"string"}},{"name":"actorUserId","in":"query","required":false,"schema":{"type":"string"}},{"name":"actorTokenId","in":"query","required":false,"schema":{"type":"string"}},{"name":"since","in":"query","required":false,"schema":{"type":"string","format":"date-time"}},{"name":"until","in":"query","required":false,"schema":{"type":"string","format":"date-time"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"action":{"type":"string"},"actorType":{"type":"string","enum":["user","personal_token","service_token","system"]},"actorLabel":{"type":"string"},"actorUserId":{"anyOf":[{"type":"string"},{"type":"null"}]},"actorTokenId":{"anyOf":[{"type":"string"},{"type":"null"}]},"actorOrganizationId":{"anyOf":[{"type":"string"},{"type":"null"}]},"actorOrganizationName":{"anyOf":[{"type":"string"},{"type":"null"}]},"resourceType":{"anyOf":[{"type":"string"},{"type":"null"}]},"resourceId":{"anyOf":[{"type":"string"},{"type":"null"}]},"metadata":{"anyOf":[{"type":"object","propertyNames":{"type":"string"},"additionalProperties":{}},{"type":"null"}]},"requestId":{"anyOf":[{"type":"string"},{"type":"null"}]},"ip":{"anyOf":[{"type":"string"},{"type":"null"}]},"createdAt":{"type":"string","format":"date-time"}},"required":["id","action","actorType","actorLabel","actorUserId","actorTokenId","actorOrganizationId","actorOrganizationName","resourceType","resourceId","metadata","requestId","ip","createdAt"],"additionalProperties":false}},"hasMore":{"type":"boolean"},"nextCursor":{"anyOf":[{"type":"string"},{"type":"null"}]}},"required":["data","hasMore","nextCursor"],"additionalProperties":false}}}},"401":{"description":"Missing, malformed, expired or revoked token.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"The token lacks a required scope.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"No such resource, or the token's organization can't see it.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limited; see the `Retry-After` header.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/v1/campaigns":{"get":{"operationId":"getCampaigns","summary":"List campaigns","description":"> **Requires scope** `fundraise:read` · **Minimum role** viewer\n\nLists fundraising campaigns, oldest change first. Use `updatedSince` with the returned cursor to sync incrementally.\n\n[Scopes and roles](https://docs.dueflow.co/api-reference/scopes)","tags":["Fundraising"],"security":[{"bearerAuth":["fundraise:read"]}],"x-dueflow-scopes":["fundraise:read"],"x-dueflow-min-role":"viewer","parameters":[{"name":"limit","in":"query","required":false,"schema":{"default":50,"type":"integer","minimum":1,"maximum":100}},{"name":"cursor","in":"query","required":false,"schema":{"type":"string"}},{"name":"updatedSince","in":"query","required":false,"schema":{"type":"string","format":"date-time"}},{"name":"status","in":"query","required":false,"schema":{"type":"string","enum":["draft","active","ended"]}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"name":{"type":"string"},"note":{"anyOf":[{"type":"string"},{"type":"null"}]},"goalAmount":{"type":"string"},"currency":{"type":"string"},"startDate":{"type":"string"},"endDate":{"anyOf":[{"type":"string"},{"type":"null"}]},"status":{"type":"string","enum":["draft","active","ended"]},"createdAt":{"type":"string","format":"date-time"},"updatedAt":{"type":"string","format":"date-time"}},"required":["id","name","note","goalAmount","currency","startDate","endDate","status","createdAt","updatedAt"],"additionalProperties":false}},"hasMore":{"type":"boolean"},"nextCursor":{"anyOf":[{"type":"string"},{"type":"null"}]}},"required":["data","hasMore","nextCursor"],"additionalProperties":false}}}},"401":{"description":"Missing, malformed, expired or revoked token.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"The token lacks a required scope.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"No such resource, or the token's organization can't see it.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limited; see the `Retry-After` header.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/v1/campaigns/{campaignId}":{"get":{"operationId":"getCampaignsByCampaignId","summary":"Retrieve a campaign","description":"> **Requires scope** `fundraise:read` · **Minimum role** viewer\n\n[Scopes and roles](https://docs.dueflow.co/api-reference/scopes)","tags":["Fundraising"],"security":[{"bearerAuth":["fundraise:read"]}],"x-dueflow-scopes":["fundraise:read"],"x-dueflow-min-role":"viewer","parameters":[{"name":"campaignId","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"string"},"name":{"type":"string"},"note":{"anyOf":[{"type":"string"},{"type":"null"}]},"goalAmount":{"type":"string"},"currency":{"type":"string"},"startDate":{"type":"string"},"endDate":{"anyOf":[{"type":"string"},{"type":"null"}]},"status":{"type":"string","enum":["draft","active","ended"]},"createdAt":{"type":"string","format":"date-time"},"updatedAt":{"type":"string","format":"date-time"}},"required":["id","name","note","goalAmount","currency","startDate","endDate","status","createdAt","updatedAt"],"additionalProperties":false}}}},"401":{"description":"Missing, malformed, expired or revoked token.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"The token lacks a required scope.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"No such resource, or the token's organization can't see it.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limited; see the `Retry-After` header.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/v1/chapters":{"get":{"operationId":"getChapters","summary":"List child chapters","description":"> **Requires scope** `chapters:read` · **Minimum role** viewer\n\nLists the active chapters belonging to a national organization, oldest change first. Chapter organizations have no children and receive an empty list.\n\n[Scopes and roles](https://docs.dueflow.co/api-reference/scopes)","tags":["Organization"],"security":[{"bearerAuth":["chapters:read"]}],"x-dueflow-scopes":["chapters:read"],"x-dueflow-min-role":"viewer","parameters":[{"name":"limit","in":"query","required":false,"schema":{"default":50,"type":"integer","minimum":1,"maximum":100}},{"name":"cursor","in":"query","required":false,"schema":{"type":"string"}},{"name":"updatedSince","in":"query","required":false,"schema":{"type":"string","format":"date-time"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"name":{"type":"string"},"currency":{"type":"string"}},"required":["id","name","currency"],"additionalProperties":false}},"hasMore":{"type":"boolean"},"nextCursor":{"anyOf":[{"type":"string"},{"type":"null"}]}},"required":["data","hasMore","nextCursor"],"additionalProperties":false}}}},"401":{"description":"Missing, malformed, expired or revoked token.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"The token lacks a required scope.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"No such resource, or the token's organization can't see it.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limited; see the `Retry-After` header.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/v1/chapters/{chapterId}/members":{"get":{"operationId":"getChaptersByChapterIdMembers","summary":"List a chapter's members","description":"> **Requires scope** `chapters:read` · `members:read` · **Minimum role** viewer\n\nLists the members of a direct child chapter. Available to national organizations only. Returns the same PII-free member shape as `/members`; the chapter sees this read in its own activity log.\n\n[Scopes and roles](https://docs.dueflow.co/api-reference/scopes)","tags":["Members"],"security":[{"bearerAuth":["chapters:read","members:read"]}],"x-dueflow-scopes":["chapters:read","members:read"],"x-dueflow-min-role":"viewer","parameters":[{"name":"limit","in":"query","required":false,"schema":{"default":50,"type":"integer","minimum":1,"maximum":100}},{"name":"cursor","in":"query","required":false,"schema":{"type":"string"}},{"name":"updatedSince","in":"query","required":false,"schema":{"type":"string","format":"date-time"}},{"name":"isActive","in":"query","required":false,"schema":{"type":"string","enum":["true","false"]}},{"name":"chapterId","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"firstName":{"type":"string"},"lastName":{"type":"string"},"email":{"type":"string","format":"email"},"isActive":{"type":"boolean"},"joinDate":{"anyOf":[{"type":"string"},{"type":"null"}]},"groups":{"type":"array","items":{"type":"string"}},"createdAt":{"type":"string","format":"date-time"},"updatedAt":{"type":"string","format":"date-time"}},"required":["id","firstName","lastName","email","isActive","joinDate","groups","createdAt","updatedAt"],"additionalProperties":false}},"hasMore":{"type":"boolean"},"nextCursor":{"anyOf":[{"type":"string"},{"type":"null"}]}},"required":["data","hasMore","nextCursor"],"additionalProperties":false}}}},"401":{"description":"Missing, malformed, expired or revoked token.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"The token lacks a required scope.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"No such resource, or the token's organization can't see it.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limited; see the `Retry-After` header.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/v1/donations":{"get":{"operationId":"getDonations","summary":"List donations","description":"> **Requires scope** `fundraise:read` · **Minimum role** viewer\n\nLists gifts, newest first. Donor names, emails and phone numbers are not exposed in v1; a gift carries the `donorId` it was attributed to.\n\n[Scopes and roles](https://docs.dueflow.co/api-reference/scopes)","tags":["Fundraising"],"security":[{"bearerAuth":["fundraise:read"]}],"x-dueflow-scopes":["fundraise:read"],"x-dueflow-min-role":"viewer","parameters":[{"name":"limit","in":"query","required":false,"schema":{"default":50,"type":"integer","minimum":1,"maximum":100}},{"name":"cursor","in":"query","required":false,"schema":{"type":"string"}},{"name":"status","in":"query","required":false,"schema":{"type":"string","enum":["pending","paid","failed","refunded"]}},{"name":"campaignId","in":"query","required":false,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"campaignId":{"anyOf":[{"type":"string"},{"type":"null"}]},"donorId":{"anyOf":[{"type":"string"},{"type":"null"}]},"chapterId":{"anyOf":[{"type":"string"},{"type":"null"}]},"amount":{"type":"string"},"totalAmount":{"type":"string"},"currency":{"type":"string"},"status":{"type":"string","enum":["pending","paid","failed","refunded"]},"source":{"type":"string","enum":["checkout","import","manual","recurring"]},"isAnonymous":{"type":"boolean"},"paidAt":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}]},"createdAt":{"type":"string","format":"date-time"}},"required":["id","campaignId","donorId","chapterId","amount","totalAmount","currency","status","source","isAnonymous","paidAt","createdAt"],"additionalProperties":false}},"hasMore":{"type":"boolean"},"nextCursor":{"anyOf":[{"type":"string"},{"type":"null"}]}},"required":["data","hasMore","nextCursor"],"additionalProperties":false}}}},"401":{"description":"Missing, malformed, expired or revoked token.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"The token lacks a required scope.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"No such resource, or the token's organization can't see it.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limited; see the `Retry-After` header.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/v1/donations/{donationId}":{"get":{"operationId":"getDonationsByDonationId","summary":"Retrieve a donation","description":"> **Requires scope** `fundraise:read` · **Minimum role** viewer\n\n[Scopes and roles](https://docs.dueflow.co/api-reference/scopes)","tags":["Fundraising"],"security":[{"bearerAuth":["fundraise:read"]}],"x-dueflow-scopes":["fundraise:read"],"x-dueflow-min-role":"viewer","parameters":[{"name":"donationId","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"string"},"campaignId":{"anyOf":[{"type":"string"},{"type":"null"}]},"donorId":{"anyOf":[{"type":"string"},{"type":"null"}]},"chapterId":{"anyOf":[{"type":"string"},{"type":"null"}]},"amount":{"type":"string"},"totalAmount":{"type":"string"},"currency":{"type":"string"},"status":{"type":"string","enum":["pending","paid","failed","refunded"]},"source":{"type":"string","enum":["checkout","import","manual","recurring"]},"isAnonymous":{"type":"boolean"},"paidAt":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}]},"createdAt":{"type":"string","format":"date-time"}},"required":["id","campaignId","donorId","chapterId","amount","totalAmount","currency","status","source","isAnonymous","paidAt","createdAt"],"additionalProperties":false}}}},"401":{"description":"Missing, malformed, expired or revoked token.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"The token lacks a required scope.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"No such resource, or the token's organization can't see it.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limited; see the `Retry-After` header.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/v1/groups":{"get":{"operationId":"getGroups","summary":"List groups","description":"> **Requires scope** `groups:read` · **Minimum role** viewer\n\nLists the organization's member groups with their dues configuration and current member count.\n\n[Scopes and roles](https://docs.dueflow.co/api-reference/scopes)","tags":["Groups"],"security":[{"bearerAuth":["groups:read"]}],"x-dueflow-scopes":["groups:read"],"x-dueflow-min-role":"viewer","parameters":[{"name":"limit","in":"query","required":false,"schema":{"default":50,"type":"integer","minimum":1,"maximum":100}},{"name":"cursor","in":"query","required":false,"schema":{"type":"string"}},{"name":"updatedSince","in":"query","required":false,"schema":{"type":"string","format":"date-time"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"name":{"type":"string"},"description":{"anyOf":[{"type":"string"},{"type":"null"}]},"amountDue":{"anyOf":[{"type":"string"},{"type":"null"}]},"dueDate":{"anyOf":[{"type":"string"},{"type":"null"}]},"isRecurring":{"type":"boolean"},"recurringInterval":{"anyOf":[{"type":"string"},{"type":"null"}]},"memberCount":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"createdAt":{"type":"string","format":"date-time"},"updatedAt":{"type":"string","format":"date-time"}},"required":["id","name","description","amountDue","dueDate","isRecurring","recurringInterval","memberCount","createdAt","updatedAt"],"additionalProperties":false}},"hasMore":{"type":"boolean"},"nextCursor":{"anyOf":[{"type":"string"},{"type":"null"}]}},"required":["data","hasMore","nextCursor"],"additionalProperties":false}}}},"401":{"description":"Missing, malformed, expired or revoked token.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"The token lacks a required scope.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"No such resource, or the token's organization can't see it.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limited; see the `Retry-After` header.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}},"post":{"operationId":"postGroups","summary":"Create a group","description":"> **Requires scope** `groups:write` · **Minimum role** editor\n\nCreates a member group. Requires an `Idempotency-Key` header. Dues amount, due date and recurrence are set in the dashboard and are read-only through the API in v1.\n\n[Scopes and roles](https://docs.dueflow.co/api-reference/scopes)","tags":["Groups"],"security":[{"bearerAuth":["groups:write"]}],"x-dueflow-scopes":["groups:write"],"x-dueflow-min-role":"editor","parameters":[{"name":"Idempotency-Key","in":"header","required":true,"description":"A unique key per logical operation, e.g. a UUID. Retrying with the same key replays the original response instead of repeating the write; reusing it with different parameters is a 409.","schema":{"type":"string","maxLength":255}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"name":{"type":"string","minLength":1,"maxLength":100},"description":{"anyOf":[{"type":"string","maxLength":500},{"type":"null"}]}},"required":["name"]}}}},"responses":{"201":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"string"},"name":{"type":"string"},"description":{"anyOf":[{"type":"string"},{"type":"null"}]},"amountDue":{"anyOf":[{"type":"string"},{"type":"null"}]},"dueDate":{"anyOf":[{"type":"string"},{"type":"null"}]},"isRecurring":{"type":"boolean"},"recurringInterval":{"anyOf":[{"type":"string"},{"type":"null"}]},"memberCount":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"createdAt":{"type":"string","format":"date-time"},"updatedAt":{"type":"string","format":"date-time"}},"required":["id","name","description","amountDue","dueDate","isRecurring","recurringInterval","memberCount","createdAt","updatedAt"],"additionalProperties":false}}}},"401":{"description":"Missing, malformed, expired or revoked token.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"The token lacks a required scope.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"No such resource, or the token's organization can't see it.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"409":{"description":"The write conflicts with existing state, or an `Idempotency-Key` was reused with different parameters.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limited; see the `Retry-After` header.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/v1/groups/{groupId}":{"get":{"operationId":"getGroupsByGroupId","summary":"Retrieve a group","description":"> **Requires scope** `groups:read` · **Minimum role** viewer\n\n[Scopes and roles](https://docs.dueflow.co/api-reference/scopes)","tags":["Groups"],"security":[{"bearerAuth":["groups:read"]}],"x-dueflow-scopes":["groups:read"],"x-dueflow-min-role":"viewer","parameters":[{"name":"groupId","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"string"},"name":{"type":"string"},"description":{"anyOf":[{"type":"string"},{"type":"null"}]},"amountDue":{"anyOf":[{"type":"string"},{"type":"null"}]},"dueDate":{"anyOf":[{"type":"string"},{"type":"null"}]},"isRecurring":{"type":"boolean"},"recurringInterval":{"anyOf":[{"type":"string"},{"type":"null"}]},"memberCount":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"createdAt":{"type":"string","format":"date-time"},"updatedAt":{"type":"string","format":"date-time"}},"required":["id","name","description","amountDue","dueDate","isRecurring","recurringInterval","memberCount","createdAt","updatedAt"],"additionalProperties":false}}}},"401":{"description":"Missing, malformed, expired or revoked token.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"The token lacks a required scope.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"No such resource, or the token's organization can't see it.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limited; see the `Retry-After` header.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}},"patch":{"operationId":"patchGroupsByGroupId","summary":"Update a group","description":"> **Requires scope** `groups:write` · **Minimum role** editor\n\nRenames a group or changes its description.\n\n[Scopes and roles](https://docs.dueflow.co/api-reference/scopes)","tags":["Groups"],"security":[{"bearerAuth":["groups:write"]}],"x-dueflow-scopes":["groups:write"],"x-dueflow-min-role":"editor","parameters":[{"name":"groupId","in":"path","required":true,"schema":{"type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"name":{"type":"string","minLength":1,"maxLength":100},"description":{"anyOf":[{"type":"string","maxLength":500},{"type":"null"}]}},"required":[]}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"string"},"name":{"type":"string"},"description":{"anyOf":[{"type":"string"},{"type":"null"}]},"amountDue":{"anyOf":[{"type":"string"},{"type":"null"}]},"dueDate":{"anyOf":[{"type":"string"},{"type":"null"}]},"isRecurring":{"type":"boolean"},"recurringInterval":{"anyOf":[{"type":"string"},{"type":"null"}]},"memberCount":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"createdAt":{"type":"string","format":"date-time"},"updatedAt":{"type":"string","format":"date-time"}},"required":["id","name","description","amountDue","dueDate","isRecurring","recurringInterval","memberCount","createdAt","updatedAt"],"additionalProperties":false}}}},"401":{"description":"Missing, malformed, expired or revoked token.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"The token lacks a required scope.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"No such resource, or the token's organization can't see it.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"409":{"description":"The write conflicts with existing state, or an `Idempotency-Key` was reused with different parameters.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limited; see the `Retry-After` header.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/v1/groups/{groupId}/members":{"post":{"operationId":"postGroupsByGroupIdMembers","summary":"Add members to a group","description":"> **Requires scope** `groups:write` · **Minimum role** editor\n\nAdds members to a group. Members already in the group are ignored, so a nightly sync can send the whole roster. Requires an `Idempotency-Key` header.\n\n[Scopes and roles](https://docs.dueflow.co/api-reference/scopes)","tags":["Groups"],"security":[{"bearerAuth":["groups:write"]}],"x-dueflow-scopes":["groups:write"],"x-dueflow-min-role":"editor","parameters":[{"name":"groupId","in":"path","required":true,"schema":{"type":"string"}},{"name":"Idempotency-Key","in":"header","required":true,"description":"A unique key per logical operation, e.g. a UUID. Retrying with the same key replays the original response instead of repeating the write; reusing it with different parameters is a 409.","schema":{"type":"string","maxLength":255}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"memberIds":{"minItems":1,"maxItems":500,"type":"array","items":{"type":"string"}}},"required":["memberIds"]}}}},"responses":{"201":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"string"},"name":{"type":"string"},"description":{"anyOf":[{"type":"string"},{"type":"null"}]},"amountDue":{"anyOf":[{"type":"string"},{"type":"null"}]},"dueDate":{"anyOf":[{"type":"string"},{"type":"null"}]},"isRecurring":{"type":"boolean"},"recurringInterval":{"anyOf":[{"type":"string"},{"type":"null"}]},"memberCount":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"createdAt":{"type":"string","format":"date-time"},"updatedAt":{"type":"string","format":"date-time"},"addedMemberIds":{"type":"array","items":{"type":"string"}}},"required":["id","name","description","amountDue","dueDate","isRecurring","recurringInterval","memberCount","createdAt","updatedAt","addedMemberIds"],"additionalProperties":false}}}},"401":{"description":"Missing, malformed, expired or revoked token.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"The token lacks a required scope.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"No such resource, or the token's organization can't see it.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"409":{"description":"The write conflicts with existing state, or an `Idempotency-Key` was reused with different parameters.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limited; see the `Retry-After` header.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/v1/groups/{groupId}/members/{memberId}":{"delete":{"operationId":"deleteGroupsByGroupIdMembersByMemberId","summary":"Remove a member from a group","description":"> **Requires scope** `groups:write` · **Minimum role** editor\n\nRemoves a member from a group. The member and their payment history are untouched.\n\n[Scopes and roles](https://docs.dueflow.co/api-reference/scopes)","tags":["Groups"],"security":[{"bearerAuth":["groups:write"]}],"x-dueflow-scopes":["groups:write"],"x-dueflow-min-role":"editor","parameters":[{"name":"groupId","in":"path","required":true,"schema":{"type":"string"}},{"name":"memberId","in":"path","required":true,"schema":{"type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{},"required":[]}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"string"},"name":{"type":"string"},"description":{"anyOf":[{"type":"string"},{"type":"null"}]},"amountDue":{"anyOf":[{"type":"string"},{"type":"null"}]},"dueDate":{"anyOf":[{"type":"string"},{"type":"null"}]},"isRecurring":{"type":"boolean"},"recurringInterval":{"anyOf":[{"type":"string"},{"type":"null"}]},"memberCount":{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},"createdAt":{"type":"string","format":"date-time"},"updatedAt":{"type":"string","format":"date-time"}},"required":["id","name","description","amountDue","dueDate","isRecurring","recurringInterval","memberCount","createdAt","updatedAt"],"additionalProperties":false}}}},"401":{"description":"Missing, malformed, expired or revoked token.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"The token lacks a required scope.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"No such resource, or the token's organization can't see it.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"409":{"description":"The write conflicts with existing state, or an `Idempotency-Key` was reused with different parameters.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limited; see the `Retry-After` header.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/v1/members":{"get":{"operationId":"getMembers","summary":"List members","description":"> **Requires scope** `members:read` · **Minimum role** viewer\n\nLists the organization's members, oldest change first. Pass `updatedSince` with the timestamp of your last sync to fetch only what changed. Contact details beyond email are not returned.\n\n[Scopes and roles](https://docs.dueflow.co/api-reference/scopes)","tags":["Members"],"security":[{"bearerAuth":["members:read"]}],"x-dueflow-scopes":["members:read"],"x-dueflow-min-role":"viewer","parameters":[{"name":"limit","in":"query","required":false,"schema":{"default":50,"type":"integer","minimum":1,"maximum":100}},{"name":"cursor","in":"query","required":false,"schema":{"type":"string"}},{"name":"updatedSince","in":"query","required":false,"schema":{"type":"string","format":"date-time"}},{"name":"isActive","in":"query","required":false,"schema":{"type":"string","enum":["true","false"]}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"firstName":{"type":"string"},"lastName":{"type":"string"},"email":{"type":"string","format":"email"},"isActive":{"type":"boolean"},"joinDate":{"anyOf":[{"type":"string"},{"type":"null"}]},"groups":{"type":"array","items":{"type":"string"}},"createdAt":{"type":"string","format":"date-time"},"updatedAt":{"type":"string","format":"date-time"}},"required":["id","firstName","lastName","email","isActive","joinDate","groups","createdAt","updatedAt"],"additionalProperties":false}},"hasMore":{"type":"boolean"},"nextCursor":{"anyOf":[{"type":"string"},{"type":"null"}]}},"required":["data","hasMore","nextCursor"],"additionalProperties":false}}}},"401":{"description":"Missing, malformed, expired or revoked token.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"The token lacks a required scope.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"No such resource, or the token's organization can't see it.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limited; see the `Retry-After` header.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}},"post":{"operationId":"postMembers","summary":"Create a member","description":"> **Requires scope** `members:write` · **Minimum role** editor\n\nAdds a member to the organization. Requires an `Idempotency-Key` header. Guardian, phone and custom fields cannot be set through the API in v1.\n\n[Scopes and roles](https://docs.dueflow.co/api-reference/scopes)","tags":["Members"],"security":[{"bearerAuth":["members:write"]}],"x-dueflow-scopes":["members:write"],"x-dueflow-min-role":"editor","parameters":[{"name":"Idempotency-Key","in":"header","required":true,"description":"A unique key per logical operation, e.g. a UUID. Retrying with the same key replays the original response instead of repeating the write; reusing it with different parameters is a 409.","schema":{"type":"string","maxLength":255}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"firstName":{"type":"string","minLength":1,"maxLength":50},"lastName":{"type":"string","minLength":1,"maxLength":50},"email":{"type":"string","maxLength":255,"format":"email"}},"required":["firstName","lastName","email"]}}}},"responses":{"201":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"string"},"firstName":{"type":"string"},"lastName":{"type":"string"},"email":{"type":"string","format":"email"},"isActive":{"type":"boolean"},"joinDate":{"anyOf":[{"type":"string"},{"type":"null"}]},"groups":{"type":"array","items":{"type":"string"}},"createdAt":{"type":"string","format":"date-time"},"updatedAt":{"type":"string","format":"date-time"}},"required":["id","firstName","lastName","email","isActive","joinDate","groups","createdAt","updatedAt"],"additionalProperties":false}}}},"401":{"description":"Missing, malformed, expired or revoked token.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"The token lacks a required scope.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"No such resource, or the token's organization can't see it.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"409":{"description":"The write conflicts with existing state, or an `Idempotency-Key` was reused with different parameters.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limited; see the `Retry-After` header.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/v1/members/{memberId}":{"get":{"operationId":"getMembersByMemberId","summary":"Retrieve a member","description":"> **Requires scope** `members:read` · **Minimum role** viewer\n\n[Scopes and roles](https://docs.dueflow.co/api-reference/scopes)","tags":["Members"],"security":[{"bearerAuth":["members:read"]}],"x-dueflow-scopes":["members:read"],"x-dueflow-min-role":"viewer","parameters":[{"name":"memberId","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"string"},"firstName":{"type":"string"},"lastName":{"type":"string"},"email":{"type":"string","format":"email"},"isActive":{"type":"boolean"},"joinDate":{"anyOf":[{"type":"string"},{"type":"null"}]},"groups":{"type":"array","items":{"type":"string"}},"createdAt":{"type":"string","format":"date-time"},"updatedAt":{"type":"string","format":"date-time"}},"required":["id","firstName","lastName","email","isActive","joinDate","groups","createdAt","updatedAt"],"additionalProperties":false}}}},"401":{"description":"Missing, malformed, expired or revoked token.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"The token lacks a required scope.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"No such resource, or the token's organization can't see it.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limited; see the `Retry-After` header.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}},"patch":{"operationId":"patchMembersByMemberId","summary":"Update a member","description":"> **Requires scope** `members:write` · **Minimum role** editor\n\nUpdates a member's name or email, or archives them with `isActive: false`. Members are archived rather than deleted so their payment history stays intact.\n\n[Scopes and roles](https://docs.dueflow.co/api-reference/scopes)","tags":["Members"],"security":[{"bearerAuth":["members:write"]}],"x-dueflow-scopes":["members:write"],"x-dueflow-min-role":"editor","parameters":[{"name":"memberId","in":"path","required":true,"schema":{"type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"firstName":{"type":"string","minLength":1,"maxLength":50},"lastName":{"type":"string","minLength":1,"maxLength":50},"email":{"type":"string","maxLength":255,"format":"email"},"isActive":{"type":"boolean"}},"required":[]}}}},"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"string"},"firstName":{"type":"string"},"lastName":{"type":"string"},"email":{"type":"string","format":"email"},"isActive":{"type":"boolean"},"joinDate":{"anyOf":[{"type":"string"},{"type":"null"}]},"groups":{"type":"array","items":{"type":"string"}},"createdAt":{"type":"string","format":"date-time"},"updatedAt":{"type":"string","format":"date-time"}},"required":["id","firstName","lastName","email","isActive","joinDate","groups","createdAt","updatedAt"],"additionalProperties":false}}}},"401":{"description":"Missing, malformed, expired or revoked token.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"The token lacks a required scope.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"No such resource, or the token's organization can't see it.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"409":{"description":"The write conflicts with existing state, or an `Idempotency-Key` was reused with different parameters.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limited; see the `Retry-After` header.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/v1/organization":{"get":{"operationId":"getOrganization","summary":"Retrieve the organization","description":"> **Requires scope** `organization:read` · **Minimum role** viewer\n\nReturns the organization the access token is bound to. A token is bound to exactly one organization; use `/chapters` to reach child chapters.\n\n[Scopes and roles](https://docs.dueflow.co/api-reference/scopes)","tags":["Organization"],"security":[{"bearerAuth":["organization:read"]}],"x-dueflow-scopes":["organization:read"],"x-dueflow-min-role":"viewer","responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"string"},"name":{"type":"string"},"type":{"type":"string","enum":["national","chapter"]},"parentId":{"anyOf":[{"type":"string"},{"type":"null"}]},"currency":{"type":"string"},"contactEmail":{"anyOf":[{"type":"string"},{"type":"null"}]},"website":{"anyOf":[{"type":"string"},{"type":"null"}]},"logoUrl":{"anyOf":[{"type":"string"},{"type":"null"}]},"isActive":{"type":"boolean"},"createdAt":{"type":"string","format":"date-time"},"updatedAt":{"type":"string","format":"date-time"}},"required":["id","name","type","parentId","currency","contactEmail","website","logoUrl","isActive","createdAt","updatedAt"],"additionalProperties":false}}}},"401":{"description":"Missing, malformed, expired or revoked token.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"The token lacks a required scope.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"No such resource, or the token's organization can't see it.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limited; see the `Retry-After` header.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/v1/payments":{"get":{"operationId":"getPayments","summary":"List payments","description":"> **Requires scope** `payments:read` · **Minimum role** viewer\n\nLists charges raised by the organization, oldest change first. Provider identifiers are not exposed; use `status` and `updatedSince` to reconcile.\n\n[Scopes and roles](https://docs.dueflow.co/api-reference/scopes)","tags":["Payments"],"security":[{"bearerAuth":["payments:read"]}],"x-dueflow-scopes":["payments:read"],"x-dueflow-min-role":"viewer","parameters":[{"name":"limit","in":"query","required":false,"schema":{"default":50,"type":"integer","minimum":1,"maximum":100}},{"name":"cursor","in":"query","required":false,"schema":{"type":"string"}},{"name":"updatedSince","in":"query","required":false,"schema":{"type":"string","format":"date-time"}},{"name":"status","in":"query","required":false,"schema":{"type":"string","enum":["pending","processing","partially_paid","paid","cancelled","failed","disputed"]}},{"name":"memberId","in":"query","required":false,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"memberId":{"anyOf":[{"type":"string"},{"type":"null"}]},"groupId":{"anyOf":[{"type":"string"},{"type":"null"}]},"targetOrganizationId":{"anyOf":[{"type":"string"},{"type":"null"}]},"description":{"type":"string"},"amount":{"type":"string"},"paidToDate":{"type":"string"},"currency":{"type":"string"},"status":{"type":"string","enum":["pending","processing","partially_paid","paid","cancelled","failed","disputed"]},"dueDate":{"anyOf":[{"type":"string"},{"type":"null"}]},"paidAt":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}]},"voidedAt":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}]},"createdAt":{"type":"string","format":"date-time"},"updatedAt":{"type":"string","format":"date-time"}},"required":["id","memberId","groupId","targetOrganizationId","description","amount","paidToDate","currency","status","dueDate","paidAt","voidedAt","createdAt","updatedAt"],"additionalProperties":false}},"hasMore":{"type":"boolean"},"nextCursor":{"anyOf":[{"type":"string"},{"type":"null"}]}},"required":["data","hasMore","nextCursor"],"additionalProperties":false}}}},"401":{"description":"Missing, malformed, expired or revoked token.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"The token lacks a required scope.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"No such resource, or the token's organization can't see it.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limited; see the `Retry-After` header.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/v1/payments/{paymentId}":{"get":{"operationId":"getPaymentsByPaymentId","summary":"Retrieve a payment","description":"> **Requires scope** `payments:read` · **Minimum role** viewer\n\n[Scopes and roles](https://docs.dueflow.co/api-reference/scopes)","tags":["Payments"],"security":[{"bearerAuth":["payments:read"]}],"x-dueflow-scopes":["payments:read"],"x-dueflow-min-role":"viewer","parameters":[{"name":"paymentId","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"string"},"memberId":{"anyOf":[{"type":"string"},{"type":"null"}]},"groupId":{"anyOf":[{"type":"string"},{"type":"null"}]},"targetOrganizationId":{"anyOf":[{"type":"string"},{"type":"null"}]},"description":{"type":"string"},"amount":{"type":"string"},"paidToDate":{"type":"string"},"currency":{"type":"string"},"status":{"type":"string","enum":["pending","processing","partially_paid","paid","cancelled","failed","disputed"]},"dueDate":{"anyOf":[{"type":"string"},{"type":"null"}]},"paidAt":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}]},"voidedAt":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}]},"createdAt":{"type":"string","format":"date-time"},"updatedAt":{"type":"string","format":"date-time"}},"required":["id","memberId","groupId","targetOrganizationId","description","amount","paidToDate","currency","status","dueDate","paidAt","voidedAt","createdAt","updatedAt"],"additionalProperties":false}}}},"401":{"description":"Missing, malformed, expired or revoked token.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"The token lacks a required scope.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"No such resource, or the token's organization can't see it.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limited; see the `Retry-After` header.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/v1/payouts":{"get":{"operationId":"getPayouts","summary":"List payouts","description":"> **Requires scope** `payouts:read` · **Minimum role** editor\n\nLists withdrawals from the organization's balance, newest first. Intended for reconciling Dueflow against a bank statement.\n\n[Scopes and roles](https://docs.dueflow.co/api-reference/scopes)","tags":["Payouts"],"security":[{"bearerAuth":["payouts:read"]}],"x-dueflow-scopes":["payouts:read"],"x-dueflow-min-role":"editor","parameters":[{"name":"limit","in":"query","required":false,"schema":{"default":50,"type":"integer","minimum":1,"maximum":100}},{"name":"cursor","in":"query","required":false,"schema":{"type":"string"}},{"name":"status","in":"query","required":false,"schema":{"type":"string","enum":["pending","in_transit","completed","failed","canceled"]}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"amount":{"type":"string"},"currency":{"type":"string"},"status":{"type":"string","enum":["pending","in_transit","completed","failed","canceled"]},"bankLast4":{"anyOf":[{"type":"string"},{"type":"null"}]},"institutionName":{"anyOf":[{"type":"string"},{"type":"null"}]},"speed":{"anyOf":[{"type":"string"},{"type":"null"}]},"estimatedArrival":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}]},"completedAt":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}]},"createdAt":{"type":"string","format":"date-time"}},"required":["id","amount","currency","status","bankLast4","institutionName","speed","estimatedArrival","completedAt","createdAt"],"additionalProperties":false}},"hasMore":{"type":"boolean"},"nextCursor":{"anyOf":[{"type":"string"},{"type":"null"}]}},"required":["data","hasMore","nextCursor"],"additionalProperties":false}}}},"401":{"description":"Missing, malformed, expired or revoked token.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"The token lacks a required scope.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"No such resource, or the token's organization can't see it.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limited; see the `Retry-After` header.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/v1/payouts/{payoutId}":{"get":{"operationId":"getPayoutsByPayoutId","summary":"Retrieve a payout","description":"> **Requires scope** `payouts:read` · **Minimum role** editor\n\n[Scopes and roles](https://docs.dueflow.co/api-reference/scopes)","tags":["Payouts"],"security":[{"bearerAuth":["payouts:read"]}],"x-dueflow-scopes":["payouts:read"],"x-dueflow-min-role":"editor","parameters":[{"name":"payoutId","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"string"},"amount":{"type":"string"},"currency":{"type":"string"},"status":{"type":"string","enum":["pending","in_transit","completed","failed","canceled"]},"bankLast4":{"anyOf":[{"type":"string"},{"type":"null"}]},"institutionName":{"anyOf":[{"type":"string"},{"type":"null"}]},"speed":{"anyOf":[{"type":"string"},{"type":"null"}]},"estimatedArrival":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}]},"completedAt":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}]},"createdAt":{"type":"string","format":"date-time"}},"required":["id","amount","currency","status","bankLast4","institutionName","speed","estimatedArrival","completedAt","createdAt"],"additionalProperties":false}}}},"401":{"description":"Missing, malformed, expired or revoked token.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"The token lacks a required scope.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"No such resource, or the token's organization can't see it.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limited; see the `Retry-After` header.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/v1/reimbursements":{"get":{"operationId":"getReimbursements","summary":"List reimbursements","description":"> **Requires scope** `reimbursements:read` · **Minimum role** viewer\n\nLists reimbursement requests, oldest change first. Receipts, payout references and reviewer notes are not exposed in v1.\n\n[Scopes and roles](https://docs.dueflow.co/api-reference/scopes)","tags":["Reimbursements"],"security":[{"bearerAuth":["reimbursements:read"]}],"x-dueflow-scopes":["reimbursements:read"],"x-dueflow-min-role":"viewer","parameters":[{"name":"limit","in":"query","required":false,"schema":{"default":50,"type":"integer","minimum":1,"maximum":100}},{"name":"cursor","in":"query","required":false,"schema":{"type":"string"}},{"name":"updatedSince","in":"query","required":false,"schema":{"type":"string","format":"date-time"}},{"name":"status","in":"query","required":false,"schema":{"type":"string","enum":["draft","submitted","approved","rejected","paid","voided"]}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"memberId":{"anyOf":[{"type":"string"},{"type":"null"}]},"recipientOrganizationId":{"anyOf":[{"type":"string"},{"type":"null"}]},"amount":{"type":"string"},"currency":{"type":"string"},"category":{"type":"string"},"description":{"type":"string"},"incurredAt":{"type":"string"},"status":{"type":"string","enum":["draft","submitted","approved","rejected","paid","voided"]},"submittedAt":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}]},"reviewedAt":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}]},"paidAt":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}]},"voidedAt":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}]},"createdAt":{"type":"string","format":"date-time"},"updatedAt":{"type":"string","format":"date-time"}},"required":["id","memberId","recipientOrganizationId","amount","currency","category","description","incurredAt","status","submittedAt","reviewedAt","paidAt","voidedAt","createdAt","updatedAt"],"additionalProperties":false}},"hasMore":{"type":"boolean"},"nextCursor":{"anyOf":[{"type":"string"},{"type":"null"}]}},"required":["data","hasMore","nextCursor"],"additionalProperties":false}}}},"401":{"description":"Missing, malformed, expired or revoked token.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"The token lacks a required scope.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"No such resource, or the token's organization can't see it.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limited; see the `Retry-After` header.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/v1/reimbursements/{reimbursementId}":{"get":{"operationId":"getReimbursementsByReimbursementId","summary":"Retrieve a reimbursement","description":"> **Requires scope** `reimbursements:read` · **Minimum role** viewer\n\n[Scopes and roles](https://docs.dueflow.co/api-reference/scopes)","tags":["Reimbursements"],"security":[{"bearerAuth":["reimbursements:read"]}],"x-dueflow-scopes":["reimbursements:read"],"x-dueflow-min-role":"viewer","parameters":[{"name":"reimbursementId","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"string"},"memberId":{"anyOf":[{"type":"string"},{"type":"null"}]},"recipientOrganizationId":{"anyOf":[{"type":"string"},{"type":"null"}]},"amount":{"type":"string"},"currency":{"type":"string"},"category":{"type":"string"},"description":{"type":"string"},"incurredAt":{"type":"string"},"status":{"type":"string","enum":["draft","submitted","approved","rejected","paid","voided"]},"submittedAt":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}]},"reviewedAt":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}]},"paidAt":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}]},"voidedAt":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}]},"createdAt":{"type":"string","format":"date-time"},"updatedAt":{"type":"string","format":"date-time"}},"required":["id","memberId","recipientOrganizationId","amount","currency","category","description","incurredAt","status","submittedAt","reviewedAt","paidAt","voidedAt","createdAt","updatedAt"],"additionalProperties":false}}}},"401":{"description":"Missing, malformed, expired or revoked token.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"The token lacks a required scope.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"No such resource, or the token's organization can't see it.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limited; see the `Retry-After` header.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/v1/reimbursements/{reimbursementId}/review":{"post":{"operationId":"postReimbursementsByReimbursementIdReview","summary":"Approve or reject a reimbursement","description":"> **Requires scope** `reimbursements:approve` · **Minimum role** admin\n\nRecords a decision on a submitted reimbursement and emails the recipient. Only `submitted` reimbursements can be reviewed; approving does not move money, which stays a dashboard action. Requires an `Idempotency-Key` header.\n\n[Scopes and roles](https://docs.dueflow.co/api-reference/scopes)","tags":["Reimbursements"],"security":[{"bearerAuth":["reimbursements:approve"]}],"x-dueflow-scopes":["reimbursements:approve"],"x-dueflow-min-role":"admin","parameters":[{"name":"reimbursementId","in":"path","required":true,"schema":{"type":"string"}},{"name":"Idempotency-Key","in":"header","required":true,"description":"A unique key per logical operation, e.g. a UUID. Retrying with the same key replays the original response instead of repeating the write; reusing it with different parameters is a 409.","schema":{"type":"string","maxLength":255}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"decision":{"type":"string","enum":["approved","rejected"]},"note":{"type":"string","minLength":1,"maxLength":1000}},"required":["decision"]}}}},"responses":{"201":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"string"},"memberId":{"anyOf":[{"type":"string"},{"type":"null"}]},"recipientOrganizationId":{"anyOf":[{"type":"string"},{"type":"null"}]},"amount":{"type":"string"},"currency":{"type":"string"},"category":{"type":"string"},"description":{"type":"string"},"incurredAt":{"type":"string"},"status":{"type":"string","enum":["draft","submitted","approved","rejected","paid","voided"]},"submittedAt":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}]},"reviewedAt":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}]},"paidAt":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}]},"voidedAt":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}]},"createdAt":{"type":"string","format":"date-time"},"updatedAt":{"type":"string","format":"date-time"}},"required":["id","memberId","recipientOrganizationId","amount","currency","category","description","incurredAt","status","submittedAt","reviewedAt","paidAt","voidedAt","createdAt","updatedAt"],"additionalProperties":false}}}},"401":{"description":"Missing, malformed, expired or revoked token.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"The token lacks a required scope.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"No such resource, or the token's organization can't see it.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"409":{"description":"The write conflicts with existing state, or an `Idempotency-Key` was reused with different parameters.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limited; see the `Retry-After` header.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/v1/reminders":{"get":{"operationId":"getReminders","summary":"List reminders","description":"> **Requires scope** `reminders:read` · **Minimum role** viewer\n\nLists the reminders this organization has scheduled or sent, oldest change first.\n\n[Scopes and roles](https://docs.dueflow.co/api-reference/scopes)","tags":["Reminders"],"security":[{"bearerAuth":["reminders:read"]}],"x-dueflow-scopes":["reminders:read"],"x-dueflow-min-role":"viewer","parameters":[{"name":"limit","in":"query","required":false,"schema":{"default":50,"type":"integer","minimum":1,"maximum":100}},{"name":"cursor","in":"query","required":false,"schema":{"type":"string"}},{"name":"updatedSince","in":"query","required":false,"schema":{"type":"string","format":"date-time"}},{"name":"status","in":"query","required":false,"schema":{"type":"string","enum":["scheduled","sending","sent","failed","completed","cancelled"]}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"targetMemberId":{"anyOf":[{"type":"string"},{"type":"null"}]},"targetOrganizationId":{"anyOf":[{"type":"string"},{"type":"null"}]},"groupId":{"anyOf":[{"type":"string"},{"type":"null"}]},"method":{"type":"string","enum":["email","sms"]},"status":{"type":"string","enum":["scheduled","sending","sent","failed","completed","cancelled"]},"subject":{"type":"string"},"body":{"type":"string"},"scheduledAt":{"type":"string","format":"date-time"},"sentAt":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}]},"isRecurring":{"type":"boolean"},"recurringIntervalDays":{"anyOf":[{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},{"type":"null"}]},"includePaymentInfo":{"type":"boolean"},"createdAt":{"type":"string","format":"date-time"},"updatedAt":{"type":"string","format":"date-time"}},"required":["id","targetMemberId","targetOrganizationId","groupId","method","status","subject","body","scheduledAt","sentAt","isRecurring","recurringIntervalDays","includePaymentInfo","createdAt","updatedAt"],"additionalProperties":false}},"hasMore":{"type":"boolean"},"nextCursor":{"anyOf":[{"type":"string"},{"type":"null"}]}},"required":["data","hasMore","nextCursor"],"additionalProperties":false}}}},"401":{"description":"Missing, malformed, expired or revoked token.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"The token lacks a required scope.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"No such resource, or the token's organization can't see it.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limited; see the `Retry-After` header.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/v1/reminders/{reminderId}":{"get":{"operationId":"getRemindersByReminderId","summary":"Retrieve a reminder","description":"> **Requires scope** `reminders:read` · **Minimum role** viewer\n\n[Scopes and roles](https://docs.dueflow.co/api-reference/scopes)","tags":["Reminders"],"security":[{"bearerAuth":["reminders:read"]}],"x-dueflow-scopes":["reminders:read"],"x-dueflow-min-role":"viewer","parameters":[{"name":"reminderId","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"string"},"targetMemberId":{"anyOf":[{"type":"string"},{"type":"null"}]},"targetOrganizationId":{"anyOf":[{"type":"string"},{"type":"null"}]},"groupId":{"anyOf":[{"type":"string"},{"type":"null"}]},"method":{"type":"string","enum":["email","sms"]},"status":{"type":"string","enum":["scheduled","sending","sent","failed","completed","cancelled"]},"subject":{"type":"string"},"body":{"type":"string"},"scheduledAt":{"type":"string","format":"date-time"},"sentAt":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}]},"isRecurring":{"type":"boolean"},"recurringIntervalDays":{"anyOf":[{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},{"type":"null"}]},"includePaymentInfo":{"type":"boolean"},"createdAt":{"type":"string","format":"date-time"},"updatedAt":{"type":"string","format":"date-time"}},"required":["id","targetMemberId","targetOrganizationId","groupId","method","status","subject","body","scheduledAt","sentAt","isRecurring","recurringIntervalDays","includePaymentInfo","createdAt","updatedAt"],"additionalProperties":false}}}},"401":{"description":"Missing, malformed, expired or revoked token.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"The token lacks a required scope.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"No such resource, or the token's organization can't see it.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limited; see the `Retry-After` header.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/v1/reminders/{reminderId}/send":{"post":{"operationId":"postRemindersByReminderIdSend","summary":"Send a scheduled reminder now","description":"> **Requires scope** `reminders:send` · **Minimum role** editor\n\nSends a scheduled reminder immediately instead of waiting for its scheduled time. Emails and texts cost money and reach real people, so this endpoint draws down the much tighter `messaging` budget rather than the shared write budget. Requires an `Idempotency-Key` header.\n\n[Scopes and roles](https://docs.dueflow.co/api-reference/scopes)","tags":["Reminders"],"security":[{"bearerAuth":["reminders:send"]}],"x-dueflow-scopes":["reminders:send"],"x-dueflow-min-role":"editor","parameters":[{"name":"reminderId","in":"path","required":true,"schema":{"type":"string"}},{"name":"Idempotency-Key","in":"header","required":true,"description":"A unique key per logical operation, e.g. a UUID. Retrying with the same key replays the original response instead of repeating the write; reusing it with different parameters is a 409.","schema":{"type":"string","maxLength":255}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{},"required":[]}}}},"responses":{"201":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"string"},"targetMemberId":{"anyOf":[{"type":"string"},{"type":"null"}]},"targetOrganizationId":{"anyOf":[{"type":"string"},{"type":"null"}]},"groupId":{"anyOf":[{"type":"string"},{"type":"null"}]},"method":{"type":"string","enum":["email","sms"]},"status":{"type":"string","enum":["scheduled","sending","sent","failed","completed","cancelled"]},"subject":{"type":"string"},"body":{"type":"string"},"scheduledAt":{"type":"string","format":"date-time"},"sentAt":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}]},"isRecurring":{"type":"boolean"},"recurringIntervalDays":{"anyOf":[{"type":"integer","minimum":-9007199254740991,"maximum":9007199254740991},{"type":"null"}]},"includePaymentInfo":{"type":"boolean"},"createdAt":{"type":"string","format":"date-time"},"updatedAt":{"type":"string","format":"date-time"},"outcome":{"type":"string","enum":["sent","skipped"]}},"required":["id","targetMemberId","targetOrganizationId","groupId","method","status","subject","body","scheduledAt","sentAt","isRecurring","recurringIntervalDays","includePaymentInfo","createdAt","updatedAt","outcome"],"additionalProperties":false}}}},"401":{"description":"Missing, malformed, expired or revoked token.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"The token lacks a required scope.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"No such resource, or the token's organization can't see it.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"409":{"description":"The write conflicts with existing state, or an `Idempotency-Key` was reused with different parameters.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limited; see the `Retry-After` header.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/v1/store/listings":{"get":{"operationId":"getStoreListings","summary":"List store listings","description":"> **Requires scope** `store:read` · **Minimum role** viewer\n\nLists the organization's store listings, oldest change first. Items and their inventory are not exposed in v1.\n\n[Scopes and roles](https://docs.dueflow.co/api-reference/scopes)","tags":["Store"],"security":[{"bearerAuth":["store:read"]}],"x-dueflow-scopes":["store:read"],"x-dueflow-min-role":"viewer","parameters":[{"name":"limit","in":"query","required":false,"schema":{"default":50,"type":"integer","minimum":1,"maximum":100}},{"name":"cursor","in":"query","required":false,"schema":{"type":"string"}},{"name":"updatedSince","in":"query","required":false,"schema":{"type":"string","format":"date-time"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"name":{"type":"string"},"description":{"anyOf":[{"type":"string"},{"type":"null"}]},"currency":{"type":"string"},"isActive":{"type":"boolean"},"createdAt":{"type":"string","format":"date-time"},"updatedAt":{"type":"string","format":"date-time"}},"required":["id","name","description","currency","isActive","createdAt","updatedAt"],"additionalProperties":false}},"hasMore":{"type":"boolean"},"nextCursor":{"anyOf":[{"type":"string"},{"type":"null"}]}},"required":["data","hasMore","nextCursor"],"additionalProperties":false}}}},"401":{"description":"Missing, malformed, expired or revoked token.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"The token lacks a required scope.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"No such resource, or the token's organization can't see it.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limited; see the `Retry-After` header.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/v1/store/listings/{listingId}":{"get":{"operationId":"getStoreListingsByListingId","summary":"Retrieve a store listing","description":"> **Requires scope** `store:read` · **Minimum role** viewer\n\n[Scopes and roles](https://docs.dueflow.co/api-reference/scopes)","tags":["Store"],"security":[{"bearerAuth":["store:read"]}],"x-dueflow-scopes":["store:read"],"x-dueflow-min-role":"viewer","parameters":[{"name":"listingId","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"string"},"name":{"type":"string"},"description":{"anyOf":[{"type":"string"},{"type":"null"}]},"currency":{"type":"string"},"isActive":{"type":"boolean"},"createdAt":{"type":"string","format":"date-time"},"updatedAt":{"type":"string","format":"date-time"}},"required":["id","name","description","currency","isActive","createdAt","updatedAt"],"additionalProperties":false}}}},"401":{"description":"Missing, malformed, expired or revoked token.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"The token lacks a required scope.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"No such resource, or the token's organization can't see it.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limited; see the `Retry-After` header.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/v1/store/orders":{"get":{"operationId":"getStoreOrders","summary":"List store orders","description":"> **Requires scope** `store:read` · **Minimum role** viewer\n\nLists store orders, newest first. Guest buyers' contact details are not exposed in v1; an order made by a member carries its `memberId`.\n\n[Scopes and roles](https://docs.dueflow.co/api-reference/scopes)","tags":["Store"],"security":[{"bearerAuth":["store:read"]}],"x-dueflow-scopes":["store:read"],"x-dueflow-min-role":"viewer","parameters":[{"name":"limit","in":"query","required":false,"schema":{"default":50,"type":"integer","minimum":1,"maximum":100}},{"name":"cursor","in":"query","required":false,"schema":{"type":"string"}},{"name":"status","in":"query","required":false,"schema":{"type":"string","enum":["pending","paid"]}},{"name":"listingId","in":"query","required":false,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"listingId":{"type":"string"},"memberId":{"anyOf":[{"type":"string"},{"type":"null"}]},"totalAmount":{"type":"string"},"currency":{"type":"string"},"status":{"type":"string","enum":["pending","paid"]},"paidAt":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}]},"createdAt":{"type":"string","format":"date-time"}},"required":["id","listingId","memberId","totalAmount","currency","status","paidAt","createdAt"],"additionalProperties":false}},"hasMore":{"type":"boolean"},"nextCursor":{"anyOf":[{"type":"string"},{"type":"null"}]}},"required":["data","hasMore","nextCursor"],"additionalProperties":false}}}},"401":{"description":"Missing, malformed, expired or revoked token.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"The token lacks a required scope.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"No such resource, or the token's organization can't see it.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limited; see the `Retry-After` header.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/v1/store/orders/{orderId}":{"get":{"operationId":"getStoreOrdersByOrderId","summary":"Retrieve a store order","description":"> **Requires scope** `store:read` · **Minimum role** viewer\n\n[Scopes and roles](https://docs.dueflow.co/api-reference/scopes)","tags":["Store"],"security":[{"bearerAuth":["store:read"]}],"x-dueflow-scopes":["store:read"],"x-dueflow-min-role":"viewer","parameters":[{"name":"orderId","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"string"},"listingId":{"type":"string"},"memberId":{"anyOf":[{"type":"string"},{"type":"null"}]},"totalAmount":{"type":"string"},"currency":{"type":"string"},"status":{"type":"string","enum":["pending","paid"]},"paidAt":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}]},"createdAt":{"type":"string","format":"date-time"}},"required":["id","listingId","memberId","totalAmount","currency","status","paidAt","createdAt"],"additionalProperties":false}}}},"401":{"description":"Missing, malformed, expired or revoked token.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"403":{"description":"The token lacks a required scope.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"No such resource, or the token's organization can't see it.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"429":{"description":"Rate limited; see the `Retry-After` header.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}}}}