openapi: 3.2.0 info: title: Publiq Schools API version: '4.0' contact: name: publiq helpdesk email: technical-support@publiq.be url: https://docs.publiq.be x-refined-note: - x-source differs across the merged source definitions and was not carried description: 'Operations tagged Schools across 2 of this provider''s published API definitions: uitpas-uitpas.json, publiq-uitpas-openapi.yml. Each path carries the servers of the definition it was published in.' servers: - url: https://api-test.uitpas.be description: Testing - url: https://api.uitpas.be description: Production tags: - name: Schools paths: /passholders/{passholderId}/school: parameters: - $ref: '#/components/parameters/passholderId' get: summary: Get passholder school operationId: get-passholders-school responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/Organizer' examples: Example: value: id: 9c47936c-bdee-11eb-8529-0242ac130003 '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '404': description: 'Not found. Possible error types: * https://api.publiq.be/probs/uitpas/passholder-not-found * https://api.publiq.be/probs/uitpas/school-not-found The detail property might include more information for the client developer. ' content: application/problem+json: schema: $ref: '#/components/schemas/Error' description: 'Retrieve the passholder''s school. The caller of this request must have `PASSHOLDERS_SEARCH` permission. > Passholder schools are used to manage passholders in a very specific case. If you are not explicitly working with UiTPAS schools, you will probably **NOT** need this API. Using GET, PUT and DELETE on this endpoint, the school of a passholder can be retrieved, updated and deleted. All schools are organizers.' security: - USER_ACCESS_TOKEN: - https://api.publiq.be/auth/uitpas - CLIENT_ACCESS_TOKEN: - https://api.publiq.be/auth/uitpas tags: - Schools put: summary: Update passholder school operationId: put-passholders-school responses: '204': description: No Content. Update succeeded. '400': description: 'Bad request. Possible error types: * https://api.publiq.be/probs/body/missing * https://api.publiq.be/probs/body/invalid-syntax * https://api.publiq.be/probs/body/invalid-data * https://api.publiq.be/probs/uitpas/school-not-found The detail property might include more information for the client developer. ' content: application/problem+json: schema: $ref: '#/components/schemas/Error' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '404': description: 'Not found. Possible error types: * https://api.publiq.be/probs/uitpas/passholder-not-found The detail property might include more information for the client developer. ' content: application/problem+json: schema: $ref: '#/components/schemas/Error' description: 'Update the passholder''s school relation. The caller of this request must have `PASSHOLDERS_UPDATE` permission. > Passholder schools are used to manage passholders in a very specific case. If you are not explicitly working with UiTPAS schools, you will probably **NOT** need this API. Using GET, PUT and DELETE on this endpoint, the school of a passholder can be retrieved, updated and deleted. All schools are organizers.' requestBody: content: application/json: schema: $ref: '#/components/schemas/Organizer' description: The Organizer object representing the school, with at least the id present. Name will be ignored. security: - USER_ACCESS_TOKEN: - https://api.publiq.be/auth/uitpas - CLIENT_ACCESS_TOKEN: - https://api.publiq.be/auth/uitpas tags: - Schools delete: summary: Delete passholder school operationId: delete-passholders-school responses: '204': description: No Content. Delete succeeded. '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '404': description: 'Not found. Possible error types: * https://api.publiq.be/probs/uitpas/passholder-not-found The detail property might include more information for the client developer. ' content: application/problem+json: schema: $ref: '#/components/schemas/Error' description: 'Delete the passholder''s school relation. The user or client performing this request must have `PASSHOLDERS_UPDATE` permission. > Passholder schools are used to manage passholders in a very specific case. If you are not explicitly working with UiTPAS schools, you will probably **NOT** need this API. Using GET, PUT and DELETE on this endpoint, the school of a passholder can be retrieved, updated and deleted. All schools are organizers.' security: - USER_ACCESS_TOKEN: - https://api.publiq.be/auth/uitpas - CLIENT_ACCESS_TOKEN: - https://api.publiq.be/auth/uitpas tags: - Schools servers: - url: https://api-test.uitpas.be description: Testing - url: https://api.uitpas.be description: Production components: responses: Unauthorized: description: 'Unauthorized. Your request is missing the required credentials to authenticate. See the Authentication documentation for more info. * type: https://api.publiq.be/probs/auth/unauthorized * detail: might contain a developer-readable explanation of the reason' content: application/problem+json: schema: $ref: '#/components/schemas/Error' x-examples: Unauthorized: value: type: https://api.publiq.be/probs/auth/unauthorized title: Unauthorized status: 401 Forbidden: description: 'Forbidden. Your request was successfully authenticated but you do not have permission to perform this particular request. * type: https://api.publiq.be/probs/auth/forbidden * detail: might contain a developer-readable explanation of the reason' content: application/problem+json: schema: $ref: '#/components/schemas/Error' x-examples: Forbidden: value: type: https://api.publiq.be/probs/auth/forbidden title: Forbidden status: 403 detail: user must be admin of organiser abcd1234 schemas: Error: $ref: https://raw.githubusercontent.com/cultuurnet/apidocs/main/projects/errors/models/Error.json City: title: City type: object x-tags: - Models example: postalCode: '9300' name: Aalst properties: postalCode: type: string description: Postalcode of the city name: type: string description: Name of the city required: - postalCode - name Organizer: title: Organizer type: object description: An organisation that partners with UiTPAS to provide discounts and/or rewards, and/or allows points to be collected at their events. x-tags: - Models properties: id: type: string description: Unique ID of an UiTPAS organizer. (Same as its ID in UiTdatabank) name: type: string description: Human-readable name of an UiTPAS organizer. cardSystems: type: array description: Card systems linked to this organizer items: $ref: '#/components/schemas/CardSystem' linkedLocationId: type: string description: ID of the location linked to this organizer. readOnly: true address: type: object description: Address of this organizer. This property is alway available in responses. required: - city properties: street: type: string description: Street address of this organizer postalCode: type: string description: Postal code of this organizer city: type: string description: City of this organizer readOnly: true required: - id CardSystem: title: CardSystem description: A region, usually one or multiple municipalities in Belgium, that uses UiTPAS and provides discounts and/or rewards. For example "Paspartoe" (Brussels), UiTPAS Leuven, UiTPAS Hasselt, UiTPAS Gent, and so on. type: object x-tags: - Models example: id: 1 name: UiTPAS Dender branding: logo: https://www.uitpas.be/_nuxt/img/1351557.svg primaryColor: rgba(0,0,0,1.0) secondaryColor: rgba(97,166,14,1.0) links: website: https://www.uitpas.be cities: - postalCode: '9300' name: Aalst - postalCode: '9400' name: Ninove permanent: true properties: id: type: integer description: ID of the card system name: type: string description: Name of the card system. This field is always available in responses. branding: type: object description: Branding information of the card system properties: logo: type: string description: URL to the logo of the card system primaryColor: type: string description: Color code of the primary branding color. secondaryColor: type: string description: Color code of the secondary branding color. links: type: object description: Links of the card system properties: website: type: string description: URL of the website of the card system cities: type: array description: List of cities that are part of this card system items: $ref: '#/components/schemas/City' permanent: type: boolean description: Indicates whether this is a permanent card system allowsCardlessRegistration: type: boolean description: Indicates if cardless registration is enabled cardlessRegistrationType: type: string description: Indicates the types of online cardless registrations this cardsystem supports. enum: - ALL - REGULAR - SOCIALTARIFF - NONE socialTariffInfo: type: string description: Optional information about social tariff entitlement in this card system. required: - id Error_2: title: Error type: object description: RFC7807 error model for all publiq APIs. properties: type: type: string description: A URI reference that identifies the problem type. Can be used to recognize specific errors in your application code by comparing the complete URI. title: type: string description: A short, human-readable summary of the problem type (for developers). status: type: integer description: The HTTP status code. detail: type: string description: 'A human-readable explanation specific to this occurrence of the problem (for developers). ' endUserMessage: type: object description: A human-readable explanation of the problem, specifically for end-users, in one or more languages. Typically available for domain errors, but not for errors caused by a technical issue in the integration (for example invalid JSON syntax in a request body). An `nl` value is always provided, other languages may be provided depending on the API and its intended audience. When this property is included, it is strongly encouraged to show this to the end-user. properties: nl: type: string description: A human-readable explanation of the problem, specifically for end-users, localized in Dutch. fr: type: string description: A human-readable explanation of the problem, specifically for end-users, localized in French. de: type: string description: A human-readable explanation of the problem, specifically for end-users, localized in German. en: type: string description: A human-readable explanation of the problem, specifically for end-users, localized in English. required: - nl schemaErrors: type: array description: A list of one or more schema validation errors (usually used for error type https://api.publiq.be/probs/body/invalid-data). items: type: object properties: jsonPointer: type: string format: json-pointer description: RFC6901 compliant pointer that indicates what property/value was invalid. error: type: string description: A human-readable (but often technical) reason why the property was invalid. required: - jsonPointer - error required: - type - title - status x-internal: false parameters: passholderId: schema: type: string name: passholderId in: path description: Unique ID of an UiTPAS passholder. required: true securitySchemes: USER_ACCESS_TOKEN: type: oauth2 flows: {} description: A user access token, obtained by redirecting the end user to publiq's authorization server to login using the **Authorization Code OAuth Flow**. See the [authentication docs about user access tokens](https://docs.publiq.be/docs/authentication/methods/user-access-token) for more info. CLIENT_ACCESS_TOKEN: type: oauth2 flows: {} description: A client access token, obtained by exchanging your client id and client secret for a token via an HTTP request to publiq's authorization server using the **Client Credentials OAuth Flow**. See the [authentication docs about client access tokens](https://docs.publiq.be/docs/authentication/methods/client-access-token) for more info. CLIENT_IDENTIFICATION: name: x-client-id type: apiKey in: header CUSTOM_TOKEN: name: x-custom-token type: apiKey in: header x-refined-from: - uitpas-uitpas.json - publiq-uitpas-openapi.yml