CollectsOverviewClaudeZapierMakeToolsPermissionsEventsErrors and limitsAPI referenceVersioningChangelogSupport

Permissions

Collects has four permissions (OAuth scopes). When you connect, the app asks for the ones it uses, and Collects offers only those your role in Collects can use. Every call also checks your role and plan, as the Collects app does, so a permission never lets a connection do more than you can do in the app.

PermissionWhat it allowsOffered to
collect:readRead the organisation, overdue invoices, invoice status, resolution outcomes and recent events, the activity summaries and the briefing, the AR overview and the settings.Read only, Team member, Admin, Owner
collect:writeChange things in Collects: list, create and delete webhook subscriptions (a target URL can be a credential, so listing them needs this scope too); pause reminders, record a promise to pay, log a call or note, and set Do Not Disturb on a customer; log a dispute and act on it (comment, assign, approve, evidence); open, hold, reject or resolve a Workbench task. Starting a resolution, resuming reminders, marking a promise missed, clearing Do Not Disturb, resolving a dispute, rejecting a dispute's pause, messaging the debtor about a dispute, releasing or approving a Workbench task, accepting or dismissing an AI suggestion, and ignoring, marking fixed or re-checking a failing check need collect:send as well.Team member, Admin, Owner
collect:sendMake Collects contact a debtor: start a resolution, resume reminders, mark a promise to pay missed, clear Do Not Disturb, send the debtor an email (Send now, after its preview), resolve a dispute or reject its pause, message the debtor about a dispute, release or approve a Workbench task, accept or dismiss an AI suggestion, ignore, mark fixed or re-check a failing check (each with collect:write). Offered to owners, admins and team members, as in Collects: Send now is for owners and admins, and a team member may message the debtor about a dispute; each operation still checks the role.Team member, Admin, Owner
collect:adminTeam, organisation and integration settings: the organisation's details and collection emails switch, the AI thresholds, the Team page's actions, the import retries and the disconnects. Offered to owners and admins.Admin, Owner

A call missing a permission answers 403 insufficient_scope with one WWW-Authenticate challenge naming every permission it needs; reconnect and grant them. The permission names used before these four are still accepted.

Every operation

OperationRoutePermissionsRolesPlanMCP tool
getAccountGET /mecollect:readEvery roleEvery plancollects_account
listOverdueInvoicesGET /invoices/overduecollect:readEvery roleEvery planlist_overdue_invoices
getInvoiceStatusGET /invoices/{invoice_id}collect:readEvery roleEvery planget_invoice_status
startResolutionPOST /invoices/{invoice_id}/resolutionscollect:write collect:sendAdmin, OwnerCollectstart_resolution
getResolutionOutcomeGET /resolutions/{resolution_id}collect:readEvery roleEvery planget_resolution_outcome
listWebhookSubscriptionsGET /webhookscollect:writeTeam member, Admin, OwnerEvery plan
createWebhookSubscriptionPOST /webhookscollect:writeTeam member, Admin, OwnerEvery plan
createSingleEventSubscriptionPOST /webhooks/events/{event_type}collect:writeTeam member, Admin, OwnerEvery plan
deleteWebhookSubscriptionDELETE /webhooks/{subscription_id}collect:writeTeam member, Admin, OwnerEvery plan
listRecentEventsGET /eventscollect:readEvery roleEvery plan
listInvoicesGET /invoicescollect:readEvery roleEvery plan
getAttachmentLinkGET /attachments/{attachment_id}collect:readEvery roleEvery plan
listDebtorsGET /debtorscollect:readEvery roleEvery plan
listCreditTermsGapsGET /debtors/credit-terms-gapscollect:readEvery roleEvery plan
getDebtorGET /debtors/{debtor_id}collect:readEvery roleEvery plan
listDebtorEmailsGET /debtors/{debtor_id}/emailscollect:readEvery roleEvery plan
listDisputesGET /disputescollect:readEvery roleEvery plan
listDisputeAssigneesGET /disputes/assigneescollect:readEvery roleEvery plan
listTasksGET /taskscollect:readEvery roleEvery plan
getTaskGET /tasks/{task_id}collect:readEvery roleEvery plan
getTaskEmailPreviewGET /tasks/{task_id}/email-previewcollect:readEvery roleEvery plan
getTaskReplyEmailGET /tasks/{task_id}/reply-emailcollect:readEvery roleEvery plan
getActivityGET /activitycollect:readEvery roleEvery plancollects_activity
getValueGET /valuecollect:readEvery roleEvery plancollects_value
getBriefingGET /briefingcollect:readEvery roleEvery plancollects_briefing
getArOverviewGET /overviewcollect:readEvery roleEvery plancollects_ar_overview
listPriorityInvoicesGET /overview/priority-invoicescollect:readEvery roleEvery plan
exportPriorityInvoicesGET /overview/priority-invoices/exportcollect:readEvery roleEvery plan
getOrganisationSettingsGET /settings/organisationcollect:readEvery roleEvery plan
getFrequencySettingsGET /settings/frequencycollect:readEvery roleEvery plan
getCollectionRulesGET /settings/collection-rulescollect:readEvery roleEvery plan
getCreditTermsSettingsGET /settings/credit-termscollect:readEvery roleEvery plan
getTeamGET /teamcollect:readEvery roleEvery plan
getIntegrationsGET /integrationscollect:readEvery roleEvery plan
listSyncLogsGET /integrations/xero/sync-logscollect:readEvery roleEvery plan
listConnectedAppsGET /connected-appscollect:readEvery roleEvery plan
pauseRemindersPOST /invoices/{invoice_id}/pausecollect:writeAdmin, OwnerCollectcollects_pause_reminders
resumeRemindersPOST /invoices/{invoice_id}/resumecollect:write collect:sendAdmin, OwnerCollect
liftFinancialDifficultyPausePOST /invoices/{invoice_id}/financial-difficulty-pause/liftcollect:write collect:sendAdmin, OwnerCollect
recordPromisePOST /invoices/{invoice_id}/promisecollect:writeAdmin, OwnerCollect
markPromiseMissedPOST /invoices/{invoice_id}/promise/missedcollect:write collect:sendAdmin, OwnerCollect
logInvoiceNotePOST /invoices/{invoice_id}/notescollect:writeAdmin, OwnerCollectcollects_log_note
setDebtorDoNotContactPOST /debtors/{debtor_id}/do-not-contactcollect:writeAdmin, OwnerCollect
clearDebtorDoNotContactDELETE /debtors/{debtor_id}/do-not-contactcollect:write collect:sendAdmin, OwnerCollect
previewDebtorEmailPOST /invoices/{invoice_id}/email/previewcollect:write collect:sendAdmin, OwnerCollectcollects_preview_debtor_email
sendDebtorEmailPOST /invoices/{invoice_id}/emailcollect:write collect:sendAdmin, OwnerCollectcollects_send_debtor_email
setOrgChasingPOST /settings/organisation/collection-emailscollect:adminAdmin, OwnerCollectcollects_set_org_chasing
updateOrganisationDetailsPOST /settings/organisationcollect:adminAdmin, OwnerEvery plan
updateDebtorContactPOST /settings/organisation/debtor-contactcollect:adminAdmin, OwnerEvery plancollects_update_debtor_contact
setAiThresholdsPOST /settings/organisation/ai-thresholdscollect:adminAdmin, OwnerCollectcollects_set_ai_thresholds
inviteTeamMemberPOST /team/invitationscollect:adminAdmin, OwnerEvery plan
resendTeamInvitationPOST /team/invitations/{invitation_id}/resendcollect:adminAdmin, OwnerEvery plan
cancelTeamInvitationPOST /team/invitations/{invitation_id}/cancelcollect:adminAdmin, OwnerEvery plan
deactivateTeamMemberPOST /team/members/{user_id}/deactivatecollect:adminAdmin, OwnerEvery plan
reactivateTeamMemberPOST /team/members/{user_id}/reactivatecollect:adminAdmin, OwnerEvery plan
retryXeroImportPOST /integrations/xero/import/retrycollect:adminAdmin, OwnerEvery plan
retryMailboxImportPOST /integrations/mailbox/import/retrycollect:adminAdmin, OwnerEvery plan
refreshCreditTermsPOST /settings/credit-terms/refreshcollect:adminOwnerEvery plan
getCreditTermsRefreshGET /settings/credit-terms/refresh/{run_id}collect:readEvery roleEvery plan
disconnectConnectedAppPOST /connected-apps/{connection_id}/disconnectcollect:writeTeam member, Admin, OwnerEvery plan
disconnectXeroPOST /integrations/xero/disconnectcollect:adminAdmin, OwnerEvery plan
disconnectMailboxPOST /integrations/mailbox/disconnectcollect:adminAdmin, OwnerEvery plan
getConnectLinkGET /integrations/{integration}/connect-linkcollect:readAdmin, OwnerEvery plancollects_connect_integration
openDisputePOST /invoices/{invoice_id}/disputecollect:writeAdmin, OwnerCollectcollects_open_dispute
addDisputeCommentPOST /invoices/{invoice_id}/dispute/commentscollect:writeTeam member, Admin, OwnerCollect
assignDisputePOST /invoices/{invoice_id}/dispute/assigneecollect:writeAdmin, OwnerCollect
resolveDisputePOST /invoices/{invoice_id}/dispute/resolvecollect:write collect:sendAdmin, OwnerCollect
approveDisputePOST /invoices/{invoice_id}/dispute/approvecollect:writeAdmin, OwnerCollect
rejectDisputePOST /invoices/{invoice_id}/dispute/rejectcollect:write collect:sendAdmin, OwnerCollect
createEvidenceUploadUrlPOST /invoices/{invoice_id}/dispute/evidence/upload-urlcollect:writeTeam member, Admin, OwnerEvery plan
attachDisputeEvidencePOST /invoices/{invoice_id}/dispute/evidencecollect:writeTeam member, Admin, OwnerEvery plan
messageDisputeDebtorPOST /invoices/{invoice_id}/dispute/messagescollect:write collect:sendTeam member, Admin, OwnerCollectcollects_message_dispute_debtor
markTaskInReviewPOST /workbench/tasks/{task_id}/reviewcollect:writeTeam member, Admin, OwnerCollect
holdTaskPOST /workbench/tasks/{task_id}/holdcollect:writeTeam member, Admin, OwnerCollect
releaseTaskPOST /workbench/tasks/{task_id}/releasecollect:write collect:sendTeam member, Admin, OwnerCollect
approveTaskPOST /workbench/tasks/{task_id}/approvecollect:write collect:sendAdmin, OwnerCollect
rejectTaskPOST /workbench/tasks/{task_id}/rejectcollect:writeAdmin, OwnerCollect
resolveTaskPOST /workbench/tasks/{task_id}/resolvecollect:writeAdmin, OwnerCollect
acceptAiSuggestionPOST /workbench/tasks/{task_id}/acceptcollect:write collect:sendTeam member, Admin, OwnerCollect
dismissAiSuggestionPOST /workbench/tasks/{task_id}/dismisscollect:write collect:sendTeam member, Admin, OwnerCollect
ignoreCheckPOST /invoices/{invoice_id}/checks/{check}/ignorecollect:write collect:sendTeam member, Admin, OwnerEvery plan
markCheckFixedPOST /invoices/{invoice_id}/checks/{check}/mark-fixedcollect:write collect:sendTeam member, Admin, OwnerCollect
recheckCheckPOST /invoices/{invoice_id}/checks/{check}/recheckcollect:write collect:sendTeam member, Admin, OwnerCollect