openapi: 3.2.0 info: title: Sourcepoint GDPR TCF GDPR TCF end-user consent status API version: 1.0.0 description: Sourcepoint Technologies API for managing property and end-user GDPR TCF information. servers: - url: https://cdn.privacy-mgmt.com/consent/tcfv2 tags: - name: GDPR TCF end-user consent status paths: /consent/v3/history/{siteId}: get: tags: - GDPR TCF end-user consent status summary: Get end-user consent status description: Returns end-user GDPR TCF consent status for a property. In addition to the `siteId`, you will also need to include either the end-user's `consentUUID` or `authId`. parameters: - name: siteId in: path required: true description: The property ID for the property in the Sourcepoint portal. schema: type: integer - $ref: '#/components/parameters/consentUUID' - $ref: '#/components/parameters/authId' - $ref: '#/components/parameters/latest' responses: '200': description: Success content: application/json: schema: $ref: '#/components/schemas/getConsentResponse' /consent/v3/{siteId}/tcstring: post: tags: - GDPR TCF end-user consent status summary: Merge end-user consent status with identity provider description: Merge an end-user's custom vendor consent profile with the information Sourcepoint has for IAB vendors taken from a TCString that is provided. Though originally planned for the German consortium *NetId*, it is available for any identity provider to confirm or revoke vendor consent in one place

*Your organization will require their own CMP ID to use this API. Please contact your Sourcepoint Client Support team if you require more information.* parameters: - name: siteId in: path required: true description: The property ID for the property in the Sourcepoint portal. schema: type: integer - $ref: '#/components/parameters/consentUUID' requestBody: required: true content: application/json: schema: type: object properties: euconsent: type: string description: tcString for end-user example: CPOA6HgPOA6HgFZABCDEBwCgAP_AAEwAAAYgIDpb_T7VbWFCWf59fvsgOYxXVMCeA required: - euconsent responses: '200': description: Success content: application/json: schema: $ref: '#/components/schemas/mergeConsent' /consent/v3/{siteId}: delete: tags: - GDPR TCF end-user consent status summary: Delete end-user consent status description: Deletes end-user GDPR TCF consent status for a property. In addition to the `siteId`, you will also need to include either the end-user's `consentUUID` or `authId`.

This endpoint does not support mass deletions of end-user consent records. Please speak to your Sourcepoint representative to execute any mass deletions. parameters: - name: siteId in: path required: true description: The property ID for the property in the Sourcepoint portal. schema: type: integer - $ref: '#/components/parameters/consentUUID' - $ref: '#/components/parameters/authId' responses: '200': description: Success content: application/json: schema: type: array items: type: object properties: n: type: integer example: 1 ok: type: integer example: 1 deletedCount: type: integer example: 1 components: schemas: mergeConsent: description: Returns end-user consent after merging consent profile properties: userConsentRecord: type: object properties: categories: type: array description: Purposes consented to by end-user items: type: string description: Sourcepoint's purpose ID example: 5f9aa28f7ab71b20a1b12345 legIntCategories: type: array description: Purposes consented to who use legitimate interest as a legal basis. items: type: string description: Sourcepoint's purpose ID example: 5f9aa28fabcd1b20a1babcde vendors: type: array description: Vendors consented to by end-user items: type: string description: Sourcepoint's vendor ID example: 12343c6c091a5047885cf964 legIntVendors: type: array description: Vendors consented to by end-user who use legitimate interest as a legal basis for at least one purpose items: type: string description: Sourcepoint's vendor ID example: abcd3c6c12345047885cf964 id: type: string description: Request ID example: 645b8e5f19a120048b8d24f8 consentUUID: type: string description: consentUUID for end-user example: ab126231-e899-4fbb-b7e2-e8f762f080e6_14 siteId: type: integer description: Property ID for the property in the Sourcepoint portal. example: 1234 euconsent: type: string description: tcString for end-user example: 12344IAPrf4IAAjABCENDDCgAP_AAAAAACiQI5hV5DrMTWFAUXxZQNsgOYgU1sATIGQCCBCAAyABAAGA8AQA0WESEASAAAACAAAAowIBAAAEGAFEAAAAAAAEABEAAAQAgAAIIABAAAEQAAIAAAgIAAAAAAAAAAABAAAAmAAQIcKAREAAAIAQIgAAAAABAAAAAgIABAAAAAAAAAAAAgAAAAAAAAAAAAACARAAgAAAPCQKQAEAALAAqABkADkAHwAgABkADQAHkARABFACYAE8AN4AcwA_ACEAENAIgAiQBLACaAFKALcAYcA-wD9AIoARoAjgBJgCUgFzAMUAbQA3ACRAFDgLzAYMAw0AAMgAaAA8gCIAIoATAAngBSADEAHMAPwAhoBEAESAKUAWIAtwBowD7AP0Ai0BHAEdAJSAXMAvIBigDaAG4APsAi8BIgChwF5gMNAZIAywBrIDgigAUAC4AJAA2gEiALqAAA.YAAAAAAAAAAA vendorListId: type: string description: Vendor list ID example: 5f9aa290a228638af82db511 fromNetId: type: boolean description: Is the consent profile from an end-user using the netID single sign-on? example: true dateCreated: type: string description: Timestamp on the request example: '2023-05-10T12:30:23.918Z' __v: type: integer description: WIP example: 0 appendedConsentUUID: type: string description: consentUUID for end-user after request example: ab126231-e899-4fbb-b7e2-e8f762f080e6_14_19 getConsentResponse: description: Returned response to get consent request type: array items: type: object properties: _id: type: string description: Unique identifier for the consent record example: 6842d825666f5a1254fd263f siteId: type: number description: Sourcepoint ID for property. example: 39470 dateCreated: type: string description: Date consent status was created example: '2023-05-08T15:37:18.365Z' consentUUID: type: string description: Consent UUID for end-user example: 1234f5a8-67c9-4a38-a7cd-6fe4f30a5678 messageId: type: integer description: ID of the first layer message shown to end-user example: 123456 vendorListId: type: string description: ID of the vendor list example: 9876a560b8e05c06542b2a31 vendors: type: array description: Vendors consented to items: anyOf: - $ref: '#/components/schemas/IABAndCustomVendors' - $ref: '#/components/schemas/GoogleATPVendors' legIntVendors: type: array description: Vendors consented to who use legitimate interest as a legal basis for at least one purpose. items: anyOf: - $ref: '#/components/schemas/IABAndCustomVendors' - $ref: '#/components/schemas/GoogleATPVendors' categories: type: array description: Purposes consented to items: anyOf: - $ref: '#/components/schemas/IABPurposes' - $ref: '#/components/schemas/customPurposes' legIntCategories: type: array description: Purposes consented to who use legitimate interest as a legal basis. items: anyOf: - $ref: '#/components/schemas/IABPurposes' - $ref: '#/components/schemas/customPurposes' customPurposes: description: Returns custom purpose information properties: id: type: string description: Sourcepoint purpose ID example: 5fdbbcdf4f3f9789140e23a0 name: type: string description: Purpose name example: Custom purpose example IABAndCustomVendors: description: Returns IAB and Custom vendor information properties: id: type: string description: Sourcepoint vendor ID example: 5f23e826b8e05c0c0abcdef name: type: string description: Vendor name example: IAB vendor example vendorType: type: string description: Vendor type example: IAB GoogleATPVendors: description: Returns Google ATP vendor information properties: id: type: string description: Sourcepoint vendor ID example: 1234abcd5678efgh0d4fdb8f name: type: string description: Vendor name example: Google ATP vendor vendorType: type: string description: Vendor type example: CUSTOM googleId: type: integer description: Google vendor ID example: 1234 IABPurposes: description: Returns IAB purpose information properties: id: type: string description: Sourcepoint purpose ID example: 5fd7e01e32bd4d27654ba1d5 name: type: string description: Purpose name example: Store and/or access information on a device iabPurposeRef: properties: name: type: string description: Purpose name example: Store and/or access information on a device iabId: type: integer description: IAB purpose id example: 1 parameters: latest: name: latest in: query description: (Optional) Only return the latest consent record for the end-user. required: false schema: type: boolean authId: name: authId in: query description: Retrieved from the first-party cookie authId required: false schema: type: string consentUUID: name: consentUUID in: query description: Retrieved from the first-party cookie consentUUID required: false schema: type: string x-readme: explorer-enabled: true proxy-enabled: true