Wild Apricot's API includes a number of remote procedure calls. While RESTfull API is the main model used by Wild Apricot API, some actions can be performed more efficiently with the remote procedure call model.

Wild Apricot's API is intended for use by developers with technical expertise. If you need assistance, we provide support via email or through our Developers forum.

All Wild Apricot remote procedure calls are performed using the POST http method. In general, remote procedure calls use the following syntax:

POST [baseAPIaddress]/v2/rpc/[accountID]/[action]

where accountID is the account identifier that is returned by the Accounts API call, and action is the name of the remote procedure.

The following remote procedure calls are supported.

Voiding an invoice

You can perform a remote procedure call to void an invoice.

Syntax
POST [baseAPIaddress]/v2/rpc/[accountID]/VoidInvoice?invoiceId=[invoice_id]

where invoiceID is the unique identifier of an invoice returned by the Invoices API call.

Example
POST https://api.wildapricot.org/v2/rpc/58293/VoidInvoice?invoiceId=206311

Duplicating an event

You can perform a remote procedure call to duplicate an existing event.

Syntax

POST [baseAPIaddress]/v2/rpc/[accountID]/CloneEvent
{
"EventId": [eventId]
}

where eventID is the unique identifier of an event returned by the Events API call.

Example

POST https://api.wildapricot.org/v2/rpc/58293/CloneEvent
{
"EventId": 11769
}

Generating an invoice for an event registration

You can perform a remote procedure call to generate or regenerate an invoice for an event registration.

Required scope: event_registrations_edit

Syntax
POST [baseAPIaddress]/v2/rpc/[accountID]/GenerateInvoiceForEventRegistration?eventRegistrationId=[eventRegistrationID]&updateIfExists=true/false

where eventRegistrationsID is the unique identifier of an event registration returned by the EventRegistrations API call, and updateIfExists is an optional parameter. If updateIfExists=true, then the invoice will be regenerated if it already exists. If updateIfExists=false and the invoice already exists, then Bad request will be returned.

Example
POST https://api.wildapricot.org/v2/rpc/58293/GenerateInvoiceForEventRegistration?eventRegistrationId=112745&updateIfExists=true

If this call is successful, it returns the ID of the new or updated invoice.

Generating an invoice for pending membership

You can perform a remote procedure call to generate or regenerate an invoice for a pending membership application, renewal, or level change. This call can only be used if the specified contact is a member with a status of Pending - New, Pending - Renewal, or Pending - Level Change.

Required scope: contacts_membership_edit

Syntax
POST [baseAPIaddress]/v2/rpc/[accountID]/GenerateInvoiceForPendingMembership?contactId=[contactID]&updateIfExists=true/false

where contactID is the unique identifier of a contact, and updateIfExists is an optional parameter. If updateIfExists=true, then the invoice will be regenerated if it already exists. If updateIfExists=false and the invoice already exists, then Bad request will be returned.

Example
POST https://api.wildapricot.org/v2/rpc/58293/GenerateInvoiceForPendingMembership?contactId=402784&updateIfExists=true

If this call is successful, it returns the ID of the new or updated invoice.

Approving a pending membership

You can perform a remote procedure call to approve a pending membership application, renewal, or level change. The membership will be activated and all associated actions – such as sending an activation email, changing the renewal due, etc. – will be performed.

This call can only be used if the specified contact is a member with a status of Pending - New, Pending - Renewal, or Pending - Level Change.

Required scope: contacts_membership_edit

Syntax
POST [baseAPIaddress]/v2/rpc/[accountID]/ApprovePendingMembership?contactId=[contactID]

where contactID is the unique identifier of a contact.

Example
POST https://api.wildapricot.org/v2/rpc/58293/ApprovePendingMembership?contactId=402784

Rejecting a pending membership

You can perform a remote procedure call to reject a pending membership application, renewal, or level change. This call can only be used if the specified contact is a member with a status of Pending - New, Pending - Renewal, or Pending - Level Change.

Required scope: contacts_membership_edit

Syntax
POST [baseAPIaddress]/v2/rpc/[accountID]/RejectPendingMembership?contactId=[contactID]

where contactID is the unique identifier of a contact.

Example
POST https://api.wildapricot.org/v2/rpc/58293/RejectPendingMembership?contactId=402784