naftiko: 1.0.0-alpha2 info: label: WildApricot Admin API — Finances.Invoices description: 'WildApricot Admin API — Finances.Invoices. 7 operations. Lead operation: WildApricot Get List of Invoices by Criteria.. Self-contained Naftiko capability covering one Wildapricot business surface.' tags: - Wildapricot - Finances.Invoices created: '2026-05-19' modified: '2026-05-19' binds: - namespace: env keys: WILDAPRICOT_API_KEY: WILDAPRICOT_API_KEY capability: consumes: - type: http namespace: admin-finances-invoices baseUri: https://api.wildapricot.org/v2.2 description: WildApricot Admin API — Finances.Invoices business capability. Self-contained, no shared references. resources: - name: accounts-accountId-invoices path: /accounts/{accountId}/invoices operations: - name: getinvoiceslist method: GET description: WildApricot Get List of Invoices by Criteria. outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: contactId in: query type: integer description: Identifier of contact to whom the invoice is assigned. - name: eventId in: query type: integer description: Identifier of event. When specified API returns collection of invoices associated with event registrations for the event. - name: eventRegistrationId in: query type: integer description: Identifier of event registration. When specified API returns invoice related to the registration. Usually a single invoice. - name: unpaidOnly in: query type: boolean description: When set to true, API returns only unpaid invoices. - name: paidOnly in: query type: boolean description: When set to true, API returns only paid invoices. - name: includeVoided in: query type: boolean description: When set to true, API also returns voided invoices. - name: idsOnly in: query type: boolean description: When set to true, API returns only collection of identifiers instead of collection of invoices. - name: StartDate in: query type: string description: Limits result to invoices created since StartDate. - name: EndDate in: query type: string description: Limits result to invoices created before EndDate. - name: createinvoice method: POST description: WildApricot Creates a New Invoice. outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: body in: body type: object description: Request body (JSON). required: true - name: accounts-accountId-invoices-invoiceId path: /accounts/{accountId}/invoices/{invoiceId} operations: - name: getinvoicedetails method: GET description: WildApricot Retrieve Information About Specific Invoice outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: invoiceId in: path type: integer description: Unique invoice identifier required: true - name: updateinvoice method: PUT description: WildApricot Update Existing Invoice Information outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: invoiceId in: path type: integer required: true - name: body in: body type: object description: Request body (JSON). required: true - name: deleteinvoice method: DELETE description: WildApricot Delete Existing Invoice outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: invoiceId in: path type: integer required: true - name: rpc-accountId-GenerateInvoiceForEventRegistration path: /rpc/{accountId}/GenerateInvoiceForEventRegistration operations: - name: generateinvoiceforeventregistration method: POST description: WildApricot Generate or Update Invoice for Existing Event Registration. outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: eventRegistrationId in: query type: integer description: Event registration ID with pending membership required: true - name: updateIfExists in: query type: boolean description: If set to true and invoice already exists, API will update the invoice items. - name: rpc-accountId-VoidInvoice path: /rpc/{accountId}/VoidInvoice operations: - name: voidinvoice method: POST description: WildApricot Void Active Invoice. outputRawFormat: json outputParameters: - name: result type: object value: $. inputParameters: - name: invoiceId in: query type: integer description: invoiceId ID to void required: true authentication: type: bearer token: '{{env.WILDAPRICOT_API_KEY}}' exposes: - type: rest namespace: admin-finances-invoices-rest port: 8080 description: REST adapter for WildApricot Admin API — Finances.Invoices. One Spectral-compliant resource per consumed operation, prefixed with /v1. resources: - path: /v1/accounts/{accountid}/invoices name: accounts-accountid-invoices description: REST surface for accounts-accountId-invoices. operations: - method: GET name: getinvoiceslist description: WildApricot Get List of Invoices by Criteria. call: admin-finances-invoices.getinvoiceslist with: contactId: rest.contactId eventId: rest.eventId eventRegistrationId: rest.eventRegistrationId unpaidOnly: rest.unpaidOnly paidOnly: rest.paidOnly includeVoided: rest.includeVoided idsOnly: rest.idsOnly StartDate: rest.StartDate EndDate: rest.EndDate outputParameters: - type: object mapping: $. - method: POST name: createinvoice description: WildApricot Creates a New Invoice. call: admin-finances-invoices.createinvoice with: body: rest.body outputParameters: - type: object mapping: $. - path: /v1/accounts/{accountid}/invoices/{invoiceid} name: accounts-accountid-invoices-invoiceid description: REST surface for accounts-accountId-invoices-invoiceId. operations: - method: GET name: getinvoicedetails description: WildApricot Retrieve Information About Specific Invoice call: admin-finances-invoices.getinvoicedetails with: invoiceId: rest.invoiceId outputParameters: - type: object mapping: $. - method: PUT name: updateinvoice description: WildApricot Update Existing Invoice Information call: admin-finances-invoices.updateinvoice with: invoiceId: rest.invoiceId body: rest.body outputParameters: - type: object mapping: $. - method: DELETE name: deleteinvoice description: WildApricot Delete Existing Invoice call: admin-finances-invoices.deleteinvoice with: invoiceId: rest.invoiceId outputParameters: - type: object mapping: $. - path: /v1/rpc/{accountid}/generateinvoiceforeventregistration name: rpc-accountid-generateinvoiceforeventregistration description: REST surface for rpc-accountId-GenerateInvoiceForEventRegistration. operations: - method: POST name: generateinvoiceforeventregistration description: WildApricot Generate or Update Invoice for Existing Event Registration. call: admin-finances-invoices.generateinvoiceforeventregistration with: eventRegistrationId: rest.eventRegistrationId updateIfExists: rest.updateIfExists outputParameters: - type: object mapping: $. - path: /v1/rpc/{accountid}/voidinvoice name: rpc-accountid-voidinvoice description: REST surface for rpc-accountId-VoidInvoice. operations: - method: POST name: voidinvoice description: WildApricot Void Active Invoice. call: admin-finances-invoices.voidinvoice with: invoiceId: rest.invoiceId outputParameters: - type: object mapping: $. - type: mcp namespace: admin-finances-invoices-mcp port: 9090 transport: http description: MCP adapter for WildApricot Admin API — Finances.Invoices. One tool per consumed operation, routed inline through this capability's consumes block. tools: - name: wildapricot-get-list-invoices-criteria description: WildApricot Get List of Invoices by Criteria. hints: readOnly: true destructive: false idempotent: true call: admin-finances-invoices.getinvoiceslist with: contactId: tools.contactId eventId: tools.eventId eventRegistrationId: tools.eventRegistrationId unpaidOnly: tools.unpaidOnly paidOnly: tools.paidOnly includeVoided: tools.includeVoided idsOnly: tools.idsOnly StartDate: tools.StartDate EndDate: tools.EndDate outputParameters: - type: object mapping: $. - name: wildapricot-creates-new-invoice description: WildApricot Creates a New Invoice. hints: readOnly: false destructive: false idempotent: false call: admin-finances-invoices.createinvoice with: body: tools.body outputParameters: - type: object mapping: $. - name: wildapricot-retrieve-information-about-specific description: WildApricot Retrieve Information About Specific Invoice hints: readOnly: true destructive: false idempotent: true call: admin-finances-invoices.getinvoicedetails with: invoiceId: tools.invoiceId outputParameters: - type: object mapping: $. - name: wildapricot-update-existing-invoice-information description: WildApricot Update Existing Invoice Information hints: readOnly: false destructive: false idempotent: true call: admin-finances-invoices.updateinvoice with: invoiceId: tools.invoiceId body: tools.body outputParameters: - type: object mapping: $. - name: wildapricot-delete-existing-invoice description: WildApricot Delete Existing Invoice hints: readOnly: false destructive: true idempotent: true call: admin-finances-invoices.deleteinvoice with: invoiceId: tools.invoiceId outputParameters: - type: object mapping: $. - name: wildapricot-generate-update-invoice-existing description: WildApricot Generate or Update Invoice for Existing Event Registration. hints: readOnly: false destructive: false idempotent: false call: admin-finances-invoices.generateinvoiceforeventregistration with: eventRegistrationId: tools.eventRegistrationId updateIfExists: tools.updateIfExists outputParameters: - type: object mapping: $. - name: wildapricot-void-active-invoice description: WildApricot Void Active Invoice. hints: readOnly: false destructive: false idempotent: false call: admin-finances-invoices.voidinvoice with: invoiceId: tools.invoiceId outputParameters: - type: object mapping: $.