API v1.0
This document describes the v1 API of Currinda. This API is focused on the accessing of resources pertaining to associations/organisations within the Currinda database. For the user authentication, v0.1 is still the only method.
API Access
API Access is controlled by each Currinda site. Each client will provide OAuth Client ID and Client Secret information.
URLs
All URLs in this document are based on the root domain of the site. This is usually in the format https://{currinda_site}.currinda.com/
Authentication
Authentication to the api is through the client credentials OAuth2 grant type. Some documentation is provided here.GET /api/v1/organisation/{organisation_id}/token
This is the token endpoint. Requests to this with a valid client id and secret will return the necessary authorization code.
Resources
List memberships in Organisation
GET /api/v1/organisation/{organisation_id}/members
Parameters
| Name | Type | Description | | -------- | ---------------- | -------------------- | | MembershipType[] | array | Filter by MembershipType. Find all Membership with any types in the specifed array. | OrganisationChapter[] | array | Filter by OrganisationChapter. Find all memberships in specified chapters. | FinancialStatus[] | array (default:financial) | Filter by FinancialStatus. [financial,expired,expiring,outstanding] | ExpiryDate[To] | datetime | Filter by memberships with an ExpiryDate before specified. | ExpiryDate[From] | datetime | Filter by memberships with an ExpiryDate after specified. | CurrentAddons[] | array | Find those memberships who have up to date addons in the specified array | Searchable | boolean | Filters by memberships that are intended to be searchable. (Current searchable addons and membership types
Response
[{ "FirstName":"Peter", "LastName":"Test1", "Title":"", "Email":"test1@example.com", "Organisation":"Test Org", "Address": { "Address":null, "Suburb":"Test Park", "Postcode":"", "State":"VIC", "Country":"Australia", }, "MailingAddress": { "Address":"whatever St", "Suburb":"Test Park", "Postcode":"", "State":"VIC", "Country":"Australia", }, "Phone":"22423423423", "WorkPhone":"23423423423", "Mobile":"", "Membership": { "ID":"31807", "MembershipNumber": "D23423423", "ExpiryDate":"2010-12-31", "JoiningDate":"2014-05-12", "Status":"outstanding", "Chapter":null, "MembershipType": { "ID":"362", "Type":"Membership Type #1", "Cost":"100", "Description":"", "Student": 0, "Extras": [ {"ID":"98","Question":"Test question?","Answer":"Yes 1"} ] }, "AmountOutstanding":"100.000", "Addons":[], "Extras":[] }, "Currency":"NZD", "InvoiceURL":"http:\/\/test.asnevents.localhost\/organisations\/invoice", "PaymentURL":"http:\/\/test.asnevents.localhost\/organisations\/payment", "Committee": { "Chapter": null, "Financial": true } }
List membership types in Organisation
GET /api/v1/organisation/{organisation_id}/membershiptypes
Parameters
| Name | Type | Description | | -------- | ---------------- | -------------------- | | Visible | boolean (default: true) | Filters by membership types that are publicy visible. | Searchable | boolean | Filters by membership types are intended to be searchable.
Response
[ { "ID": 3, "Name":"Full Member", "Cost":"500.00", "Searchable":false, "Visible": false, "AnniversaryExpiry": false, "GST": true } ]
List addons in Organisation
GET /api/v1/organisation/{organisation_id}/addons
Parameters
| Name | Type | Description | | -------- | ---------------- | -------------------- | | Visible | boolean (default: true) | Filters by addons that are publicy visible. | Searchable | boolean | Filters by addons are intended to be searchable.
Response
[ { "ID": 3, "Name":"Journal Subscription", "Cost":"50.00", "Searchable":false, "Visible": false, "GST": true } ]