Group APIs

OpenG2P Social Registry APIs are CRUD APIs that allow the end-user to create, read, and update the group registry data.

The Group APIs contain the following CRUD operations.

  • Create: Allows the creation of a new group entity.

  • Read: Enables the fetching of details about a group entity.

  • Update: Supports modifying existing group entities.

Delete API is not supported. Contact the Administrator to delete a group registrant.

The endpoints of Group APIs and their definitions are given below.

MethodAPI End PointAPI Functionality

POST

/registry/group

This endpoint allows the end-user to create a new group.

GET

/registry/group/{_id}

This endpoint allows the end-user to retrieve the partner's information by a specific ID.

GET

/registry/group

This endpoint allows the end-user to search the group based on a specific ID or name.

The API request and response values used in the below sections are only an example for understanding. Do not use the example values in an API call.

Authentication

The Group APIs use a session-based authentication mechanism provided by Odoo. This involves initiating a session using login credentials. The end-user must authenticate by calling the /web/session/authenticate endpoint with the appropriate parameters in the request body. Successfully authenticated sessions generate a session ID, which is then used to authenticate subsequent API requests.

Subsequent API requests must include the session ID in the header to maintain the authenticated session.

Session authentication endpoint

NameValue

Method

GET

URL

<openg2p.sandbox.net>/web/session/authenticate

Body parameters

Parameter NameDescriptionMandatory/OptionalData Type

jsonrpc

The version of the JSON-RPC protocol

Mandatory

String

db

The name of the database

Mandatory

String

login

The user's login name

Mandatory

String

password

The user's password

Mandatory

String

Sample cURL request

curl --location --request GET '<openg2p.sandox.net>/web/session/authenticate' \
--header 'Content-Type: application/json' \
--header 'Cookie: frontend_lang=en_US; session_id=c7b75ddb25f94ced204b78e6d7ea115c4a7c0f7e' \
--data '{
    "jsonrpc": "2.0", 
    "params": {
        "db": <db-name>, 
        "login": <login>, 
        "password": <password>
    }
}
'

Sample request

{
    "jsonrpc": "2.0", 
    "params": {
        "db": <db-name>, 
        "login": <login>, 
        "password": <password>
    }
}

Create group registry

This endpoint allows the end-user to create a new group.

Key request parameters

NameValue

Method

POST

URI

<openg2p.sandbox.net>/api/v1/registry/group

Cookie

session_id=<session_id>

Request body parameters

Parameter NameDescriptionMandatory/OptionalData Type

name

The name of a group

Mandatory

String

ids

It contains the list of ID details of a group

array

id_type

The type of the ID of a group

Mandatory

String

value

The value of the ID of a group

Mandatory

String

expiry_date

The date of expiry of a group registry

Mandatory

Date

Format: YYYY-MM-DD

registration_date

The date on which a group is registered

Optional

Date

Format: YYYY-MM-DD

phone_numbers

It contains the list of contact details of a group

array

phone_no

The contact number of a group

Mandatory

String

date_collected

The date on which a group data is collected

Optional

String

email

The email ID of a group

Optional

String

address

The address of a group

Optional

String

bank_ids

It contains the list of bank details of a group

array

bank_name

The bank name of a group

Optional

String

acc_number

The account number of a group

Optional

String

is_group

It defines whether the member belongs to group or not

Mandatory

Boolean

True

False

Note:

The default values is true.

members

It contains the details of a member belongs to a group

array

name

The name of a member

Mandatory

String

given_name

The given name of a member

Optional

String

addl_name

The additional name of a member

Optional

String

family_name

The family name of a member

Optional

String

ids

It contains the ID details of a member belongs to a group

array

id_type

The type of the ID of a member

Mandatory

String

value

The value of the ID of a member

Mandatory

String

expiry_date

The date of expiry of a member registry

Mandatory

Date

Format: YYYY-MM-DD

registration_date

The registration date of a member

Optional

Date

Format: YYYY-MM-DD

phone_numbers

It contains the contact details of a member

array

email

The email id of a member

Mandatory

address

The address of a member

Mandatory

gender

The gender of a member

Mandatory

String

birthdate

The date of birth of a member

Mandatory

Date

Format: YYYY-MM-DD

birth_place

The place of birth of a member

Mandatory

Date

Format: YYYY-MM-DD

is_group

It defines whether the member belongs to group or not

Optional

Boolean

True

False

Note:

The default values is true.

kind

It contains list of the name of the kind allocated to a member

array

name

The name of the kind allocated to a member

Mandatory

String

bank_ids

It contains the list of bank details of a member

array

bank_name

The bank name of a member

Optional

String

acc_number

The account number of a member

Optional

String

kind

It contains the name of the kind allocated to a group

Mandatory

is_partial_group

Mandatory

Sample cURL request

curl --request POST
--url https://openg2p.stoplight.io/api/v1/registry/group/
--header 'Accept: application/json'
--header 'Accept-Language: '
--header 'Content-Type: application/json'
--header 'session_id=<session_id>'
--data '{ "name": "string", "ids": [ { "id_type": "string", "value": "string", "expiry_date": "2019-08-24" } ], "registration_date": "2019-08-24", "phone_numbers": [ { "phone_no": "string", "date_collected": "2019-08-24" } ], "email": "string", "address": "string", "bank_ids": [ { "bank_name": "string", "acc_number": "string" } ], "is_group": true, "members": [ { "name": "string", "given_name": "string", "addl_name": "string", "family_name": "string", "ids": [ { "id_type": "string", "value": "string", "expiry_date": "2019-08-24" } ], "registration_date": "2019-08-24", "phone_numbers": [ { "phone_no": "string", "date_collected": "2019-08-24" } ], "email": "string", "address": "string", "gender": "string", "birthdate": "2019-08-24", "birth_place": "string", "is_group": false, "kind": [ { "name": "string" } ], "bank_ids": [ { "bank_name": "string", "acc_number": "string" } ] } ], "kind": "string", "is_partial_group": true }'

Sample request

{
  "name": "string",
  "ids": [
    {
      "id_type": "string",
      "value": "string",
      "expiry_date": "2019-08-24"
    }
  ],
  "registration_date": "2019-08-24",
  "phone_numbers": [
    {
      "phone_no": "string",
      "date_collected": "2019-08-24"
    }
  ],
  "email": "string",
  "address": "string",
  "bank_ids": [
    {
      "bank_name": "string",
      "acc_number": "string"
    }
  ],
  "is_group": true,
  "members": [
    {
      "name": "string",
      "given_name": "string",
      "addl_name": "string",
      "family_name": "string",
      "ids": [
        {
          "id_type": "string",
          "value": "string",
          "expiry_date": "2019-08-24"
        }
      ],
      "registration_date": "2019-08-24",
      "phone_numbers": [
        {
          "phone_no": "string",
          "date_collected": "2019-08-24"
        }
      ],
      "email": "string",
      "address": "string",
      "gender": "string",
      "birthdate": "2019-08-24",
      "birth_place": "string",
      "is_group": false,
      "kind": [
        {
          "name": "string"
        }
      ],
      "bank_ids": [
        {
          "bank_name": "string",
          "acc_number": "string"
        }
      ]
    }
  ],
  "kind": "string",
  "is_partial_group": true
}

Sample response

Successful response

{
  "id": 0,
  "name": "string",
  "reg_ids": [
    {
      "id": 0,
      "id_type_as_str": "string",
      "value": "string",
      "expiry_date": "2019-08-24"
    }
  ],
  "is_group": true,
  "registration_date": "2019-08-24",
  "phone_number_ids": [
    {
      "id": 0,
      "phone_no": "string",
      "phone_sanitized": "string",
      "date_collected": "2019-08-24"
    }
  ],
  "email": "string",
  "address": "string",
  "create_date": "2019-08-24T14:15:22Z",
  "write_date": "2019-08-24T14:15:22Z",
  "bank_ids": [
    {
      "bank_name": "string",
      "acc_number": "string"
    }
  ],
  "group_membership_ids": [],
  "is_partial_group": true
}

Get group registry

This endpoint allows the end-user to retrieve the group registry data based on a specific ID.

Key request parameters

NameValue

Method

GET

URI

<openg2p.sandbox.net>/api/v1/registry/group/{_id}

Cookie

session_id=<session_id>

Parameter NameDescriptionMandatory/OptionalData Type

id

The ID of a group

Mandatory

Number

Example: 124567

Sample cURL request

curl --request GET
--url https://openg2p.stoplight.io/api/v1/registry/group/_id
--header 'Accept: application/json'
--header 'Accept-Language: '
--header 'session_id=<session_id>'

Sample response

Successful response

{
  "id": 0,
  "name": "string",
  "reg_ids": [
    {
      "id": 0,
      "id_type_as_str": "string",
      "value": "string",
      "expiry_date": "2019-08-24"
    }
  ],
  "is_group": true,
  "registration_date": "2019-08-24",
  "phone_number_ids": [
    {
      "id": 0,
      "phone_no": "string",
      "phone_sanitized": "string",
      "date_collected": "2019-08-24"
    }
  ],
  "email": "string",
  "address": "string",
  "create_date": "2019-08-24T14:15:22Z",
  "write_date": "2019-08-24T14:15:22Z",
  "bank_ids": [
    {
      "bank_name": "string",
      "acc_number": "string"
    }
  ],
  "group_membership_ids": [],
  "is_partial_group": true
}

Search group registry

This endpoint allows the end-user to search the group based on a specific ID or name.

Key request parameters

NameValue

Method

GET

URI

<openg2p.sandbox.net>/api/v1/registry/group/{_id}

(or)

<openg2p.sandbox.net>/api/v1/registry/group/{name}

Cookie

session_id=<session_id>

Parameter NameDescriptionMandatory/OptionalData Type

id

The ID of the individual

Optional

Number

Example: 4356789

name

The name of the individual

Optional

String

Example: John Miller

Sample cURL request

curl --request GET
--url https://openg2p.stoplight.io/api/v1/registry/group
--header 'Accept: application/json'
--header 'Accept-Language: '
--header 'session_id=<session_id>'

Sample response

<WIP>

API specification

The Group APIs are available in Stoplight at the following link.

openg2p-crud-apis

Last updated

Logo

Copyright © 2024 OpenG2P. This work is licensed under Creative Commons Attribution International LicenseCC-BY-4.0 unless otherwise noted.