NAV
javascript php

Introduction

Welcome to the Invivox Partner API documentation.

The code examples in the API are available for Javascript and PHP. You can change the language in the at the top right.

The default dns is : https://partner.invivox.com

Authentication

Introduction

The authentication is done via a token to be passed in a header IVX-PARTNER-TOKEN.

IVX-PARTNER-TOKEN: token

Trainings

List of trainings

const axios = require('axios');

try {
  const response = await axios.get('/v1/trainings', {
    headers: {
     'IVX-PARTNER-TOKEN': '123456789'
    },
  });
  console.log(response);
} catch (error) {
  console.error(error);
}
<?php

declare(strict_types=1);

final class TrainingService {
  public function __construct(
    private readonly string $api,
    private readonly HttpClientInterface $client
  ) {
  }

  public function getTrainings(): array
  {
    $response = $this->client->request('GET', $this->api. '/v1/trainings', [
      'headers' => [
         'IVX-PARTNER-TOKEN' => '123456789'
      ],
    ]);

    return $response->toArray();
  }
}

La route va retourner le json ci-dessous :

{
  "page": 1,
  "pages": 1,
  "count": 2,
  "items": 10,
  "results": [
    {
      "name": "Masterclass",
      "type": "MASTERCLASS",
      "subType": null,
      "description": "Lorem ipsum dolor set amet",
      "currency": "EUR",
      "identifier": "PART12345",
      "url": "https://invivox.com/training/detail/PART12345",
      "prices": [
        {
          "name": "Standard",
          "price": 1000.0
        }
      ],
      "sessions": [
        {
          "seatLeft": 100,
          "timezone": "Europe/Paris",
          "startAt": "2022-12-01T08:30:00+01:00",
          "endAt": "2040-01-01T19:00:00+01:00"
        }
      ],
      "createdAt": "2022-12-29T19:25:05+01:00",
      "updatedAt": null
    },
    {
      "name": "On-demand",
      "type": "ON-DEMAND",
      "subType": "E_LEARNING",
      "description": "Lorem ipsum dolor set amet",
      "currency": "EUR",
      "identifier": "PART12346",
      "url": "https://invivox.com/training/detail/PART12346",
      "prices": [
        {
          "name": "Standard",
          "price": 20.0
        },
        {
          "name": "Prenium",
          "price": 100.0
        }
      ],
      "sessions": [],
      "createdAt": "2022-12-29T19:25:05+01:00",
      "updatedAt": null
    }
  ]
}

This route is used to retrieve the institution's list of courses.

HTTP Request

GET https://partner.invivox.com/v1/trainings

Query Parameters

Parameter Default Description Optional
page 1 Page Yes
items 10 Number of items returned Yes

List of registrations for a training

This route allows you to retrieve the list of registrants for a training.

HTTP Request

GET https://partner.invivox.com/v1/trainings/{IDENTIFIER}/subscriptions

URL Parameters

Parameter Description Optional
identifier Identifier of the training No

Query Parameters

Parameter Default Description Optional
page 1 Page Yes
items 10 Number of items returned Yes
createdAfter Registration date (YYYY-MM-DD) Yes

Attendees

List of attendees

const axios = require('axios');

try {
  const response = await axios.get('/v1/attendees', {
    headers: {
     'IVX-PARTNER-TOKEN': '123456789'
    },
  });
  console.log(response);
} catch (error) {
  console.error(error);
}
<?php

declare(strict_types=1);

final class AttendeeService {
  public function __construct(
    private readonly string $api,
    private readonly HttpClientInterface $client
  ) {
  }

  public function getAttendees(): array
  {
    $response = $this->client->request('GET', $this->api. '/v1/attendees', [
      'headers' => [
         'IVX-PARTNER-TOKEN' => '123456789'
      ],
    ]);

    return $response->toArray();
  }
}

The route will return the following json :

{
  "page": 1,
  "pages": 10,
  "count": 100,
  "items": 10,
  "results": [
    {
      "name": "Robert Lucy",
      "email": "hamel.raymond@pons.fr",
      "speciality": "Veterinarian",
      "city": "Munoz",
      "country": "CA",
      "count": 1,
      "trainings": [
        {
          "name": "Masterclass",
          "type": "MASTERCLASS",
          "status": "booked",
          "currency": "EUR",
          "session": "01/12/2022",
          "firstRead": "12/03/2011",
          "signAt": "23/02/2009",
          "identifier": "PART12345",
          "cgf": "",
          "price": 1000.0
        }
      ]
    },
    {
      "name": "Weiss Lucy",
      "email": "laurence.mary@germain.com",
      "speciality": "speech-therapist",
      "city": "Antoine",
      "country": "AZ",
      "count": 1,
      "trainings": [
        {
          "name": "Masterclass",
          "type": "MASTERCLASS",
          "status": "booked",
          "currency": "EUR",
          "session": "01/12/2022",
          "firstRead": "15/02/1984",
          "signAt": "10/08/1984",
          "identifier": "PART12345",
          "cgf": "",
          "price": 1000.0
        }
      ]
    },
    {
      "name": "Chauvin Rémy",
      "email": "richard43@orange.fr",
      "speciality": "pediatric-surgery",
      "city": "Barre-sur-Dupont",
      "country": "AN",
      "count": 1,
      "trainings": [
        {
          "name": "Masterclass",
          "type": "MASTERCLASS",
          "status": "booked",
          "currency": "EUR",
          "session": "01/12/2022",
          "firstRead": "09/04/2021",
          "signAt": "19/04/2002",
          "identifier": "PART12345",
          "cgf": "",
          "price": 1000.0
        }
      ]
    },
    {
      "name": "Francois Yves",
      "email": "claudine.lopes@free.fr",
      "speciality": "anatomo-cytopathology",
      "city": "Allard-la-Forêt",
      "country": "MU",
      "count": 1,
      "trainings": [
        {
          "name": "Masterclass",
          "type": "MASTERCLASS",
          "status": "booked",
          "currency": "EUR",
          "session": "01/12/2022",
          "firstRead": "20/04/1994",
          "signAt": "05/06/1992",
          "identifier": "PART12345",
          "cgf": "",
          "price": 1000.0
        }
      ]
    },
    {
      "name": "Guillaume Édith",
      "email": "rlemonnier@marchal.fr",
      "speciality": "PM&R",
      "city": "Lefebvre",
      "country": "MU",
      "count": 1,
      "trainings": [
        {
          "name": "Masterclass",
          "type": "MASTERCLASS",
          "status": "booked",
          "currency": "EUR",
          "session": "01/12/2022",
          "firstRead": "02/11/1994",
          "signAt": "12/10/1976",
          "identifier": "PART12345",
          "cgf": "",
          "price": 1000.0
        }
      ]
    },
    {
      "name": "Gros Laure",
      "email": "veronique.lefebvre@grondin.fr",
      "speciality": "neurology",
      "city": "Bruneau-la-Forêt",
      "country": "CU",
      "count": 1,
      "trainings": [
        {
          "name": "Masterclass",
          "type": "MASTERCLASS",
          "status": "booked",
          "currency": "EUR",
          "session": "01/12/2022",
          "firstRead": "31/08/2015",
          "signAt": "26/02/2007",
          "identifier": "PART12345",
          "cgf": "",
          "price": 1000.0
        }
      ]
    },
    {
      "name": "Lacroix Corinne",
      "email": "robert.ribeiro@lopez.com",
      "speciality": "medical-oncology",
      "city": "Bourdon-sur-Marin",
      "country": "NR",
      "count": 1,
      "trainings": [
        {
          "name": "Masterclass",
          "type": "MASTERCLASS",
          "status": "booked",
          "currency": "EUR",
          "session": "01/12/2022",
          "firstRead": "08/03/1984",
          "signAt": "04/10/2016",
          "identifier": "PART12345",
          "cgf": "",
          "price": 1000.0
        }
      ]
    },
    {
      "name": "Jourdan Jacques",
      "email": "elodie42@normand.com",
      "speciality": "cardiology-vascular-disease",
      "city": "Bernier",
      "country": "PF",
      "count": 1,
      "trainings": [
        {
          "name": "Masterclass",
          "type": "MASTERCLASS",
          "status": "booked",
          "currency": "EUR",
          "session": "01/12/2022",
          "firstRead": "07/05/1994",
          "signAt": "09/01/1978",
          "identifier": "PART12345",
          "cgf": "",
          "price": 1000.0
        }
      ]
    },
    {
      "name": "Lefort Laetitia",
      "email": "schneider.gabrielle@marty.net",
      "speciality": "pediatrics",
      "city": "HerveBourg",
      "country": "BN",
      "count": 1,
      "trainings": [
        {
          "name": "Masterclass",
          "type": "MASTERCLASS",
          "status": "booked",
          "currency": "EUR",
          "session": "01/12/2022",
          "firstRead": "08/01/2021",
          "signAt": "29/04/1999",
          "identifier": "PART12345",
          "cgf": "",
          "price": 1000.0
        }
      ]
    },
    {
      "name": "Bouvier Céline",
      "email": "jacqueline59@noos.fr",
      "speciality": "urology",
      "city": "Dupuydan",
      "country": "PK",
      "count": 1,
      "trainings": [
        {
          "name": "Masterclass",
          "type": "MASTERCLASS",
          "status": "booked",
          "currency": "EUR",
          "session": "01/12/2022",
          "firstRead": "17/07/1982",
          "signAt": "11/07/2004",
          "identifier": "PART12345",
          "cgf": "",
          "price": 1000.0
        }
      ]
    }
  ]
}

This route is used to retrieve the institution's list of courses.

HTTP Request

GET https://partner.invivox.com/v1/attendees

Query Parameters

Parameter Default Description Optional Type
page 1 Page Yes int
items 10 Number of items returned Yes int
search Allows you to search in the name, first name, email Yes string
countries Country filter (ISO 3166-1 / Alpha-2 Code) Yes array
specialities Filter by specialties (ID) Yes array

Errors

Code Description
400 Bad Request -- The input data is not valid.
401 Unauthorized -- The JWT is invalid.
404 Not Found -- The resource has not been found.
405 Method Not Allowed -- The endpoint is not available with this HTTP method.
500 Internal Server Error -- An unexpected error occurred.
503 Service Unavailable -- The API is not accessible.