openapi: 3.0.0 info: version: 1.0.0 title: TIGRS Registry Client API description: >- This API is used for retrieving and retiring TIGR certificates. APIs require an OAuth Authentication token. To create API credentials, please reach out to the TIGR administrator. contact: email: tigrs@apx.com tags: - name: corporateEntity description: Corporate Entities Operations - name: ledger description: Ledger Operations - name: subaccount description: SubAccount Operations - name: system description: System Information paths: /api/corporateEntity: get: tags: - corporateEntity summary: Corporate Entities operationId: getCorporateEntities parameters: - name: accountIds in: query description: >- Account ids: if specified, limits results to the items related to the accounts whose ids match the provided set; otherwise, all results related to any authorized account will be returned required: false explode: true schema: type: array items: type: string - name: $filter in: query description: OData-like filter expression required: false schema: type: string - name: $count in: query description: Whether to include the count of records with the result required: false schema: type: boolean - name: $orderby in: query description: Comma-separated list of columns for sorting required: false schema: type: string - name: $skip in: query description: Number of records to skip required: false schema: type: integer format: int32 - name: $top in: query description: Maximum number of records to return required: false schema: type: integer format: int32 responses: '200': description: Success content: application/json: schema: $ref: '#/components/schemas/ODataEnvelopeOfCorporateEntities' '400': description: Invalid parameter(s) content: application/json: schema: $ref: '#/components/schemas/ErrorContainer' '401': description: Unauthorized access content: application/json: schema: $ref: '#/components/schemas/ErrorContainer' '403': description: Permission denied content: application/json: schema: $ref: '#/components/schemas/ErrorContainer' '429': description: Server too busy or acceptable use policy violation content: application/json: schema: $ref: '#/components/schemas/ErrorContainer' '500': description: An unexpected error has occurred content: application/json: schema: $ref: '#/components/schemas/ErrorContainer' security: - JWT: [] /api/ledger/holding: get: tags: - ledger summary: Holdings operationId: getHoldings parameters: - name: accountIds in: query description: >- Account ids: if specified, limits results to the items related to the accounts whose ids match the provided set; otherwise, all results related to any authorized account will be returned required: false explode: true schema: type: array items: type: string - name: vintageStart in: query description: 'Vintage start (inclusive). Example: 2024-08-01T00:00:00Z' required: false schema: type: string format: date-time - name: vintageEnd in: query description: 'Vintage end (exclusive). Example: 2024-08-31T00:00:00Z' required: false schema: type: string format: date-time - name: program in: query description: Program code required: false schema: type: string - name: $filter in: query description: OData-like filter expression required: false schema: type: string - name: $orderby in: query description: Comma-separated list of columns for sorting required: false schema: type: string - name: $skip in: query description: Number of records to skip required: false schema: type: integer format: int32 - name: $top in: query description: Maximum number of records to return required: false schema: type: integer format: int32 responses: '200': description: Success content: application/json: schema: $ref: '#/components/schemas/ODataEnvelopeWithTotalCountOfHolding' '400': description: Invalid parameter(s) content: application/json: schema: $ref: '#/components/schemas/ErrorContainer' '401': description: Unauthorized access content: application/json: schema: $ref: '#/components/schemas/ErrorContainer' '403': description: Permission denied content: application/json: schema: $ref: '#/components/schemas/ErrorContainer' '429': description: Server too busy or acceptable use policy violation content: application/json: schema: $ref: '#/components/schemas/ErrorContainer' '500': description: An unexpected error has occurred content: application/json: schema: $ref: '#/components/schemas/ErrorContainer' security: - JWT: [] /api/ledger/retire: post: tags: - ledger summary: Retirements operationId: retireUsingPOST parameters: - name: onBehalfOfAccountId in: query description: >- Account id for which the request is being made: defaults to the primary account id of the requester unless specified required: false schema: type: string requestBody: content: application/json: schema: $ref: '#/components/schemas/RequestContainerOfRetireRequest' description: Retire requests required: true responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/ResponseContainerOfRetireResponse' '400': description: Invalid parameter(s) content: application/json: schema: $ref: '#/components/schemas/ErrorContainer' '401': description: Unauthorized access content: application/json: schema: $ref: '#/components/schemas/ErrorContainer' '403': description: Permission denied content: application/json: schema: $ref: '#/components/schemas/ErrorContainer' '413': description: Request payload is too large content: application/json: schema: $ref: '#/components/schemas/ErrorContainer' '429': description: Server too busy or acceptable use policy violation content: application/json: schema: $ref: '#/components/schemas/ErrorContainer' '500': description: An unexpected error has occurred content: application/json: schema: $ref: '#/components/schemas/ErrorContainer' security: - JWT: [] /api/subaccount/{subaccountType}: post: tags: - subaccount summary: Subaccounts operationId: createSubaccountsUsingPOST parameters: - name: subaccountType in: path description: Subaccount type required: true schema: type: string enum: - ACT - RET - name: onBehalfOfAccountId in: query description: >- Account id for which the request is being made: defaults to the primary account id of the requester unless specified required: false schema: type: string requestBody: content: application/json: schema: $ref: '#/components/schemas/RequestContainerOfSubaccountCreateRequest' description: Subaccount create requests required: true responses: '200': description: OK content: application/json: schema: $ref: >- #/components/schemas/ResponseContainerOfSubaccountCreateResponse '400': description: Invalid parameter(s) content: application/json: schema: $ref: '#/components/schemas/ErrorContainer' '401': description: Unauthorized access content: application/json: schema: $ref: '#/components/schemas/ErrorContainer' '403': description: Permission denied content: application/json: schema: $ref: '#/components/schemas/ErrorContainer' '413': description: Request payload is too large content: application/json: schema: $ref: '#/components/schemas/ErrorContainer' '429': description: Server too busy or acceptable use policy violation content: application/json: schema: $ref: '#/components/schemas/ErrorContainer' '500': description: An unexpected error has occurred content: application/json: schema: $ref: '#/components/schemas/ErrorContainer' security: - JWT: [] /api/system/ping: get: tags: - system summary: Ping System operationId: pingUsingGET responses: '200': description: OK content: application/json: schema: $ref: '#/components/schemas/Pong' '401': description: Unauthorized access content: application/json: schema: $ref: '#/components/schemas/ErrorContainer' '403': description: Permission denied content: application/json: schema: $ref: '#/components/schemas/ErrorContainer' '429': description: Server too busy or acceptable use policy violation content: application/json: schema: $ref: '#/components/schemas/ErrorContainer' '500': description: An unexpected error has occurred content: application/json: schema: $ref: '#/components/schemas/ErrorContainer' security: - JWT: [] servers: - url: //tigrsregistry.apx.com:443/clientapi components: securitySchemes: JWT: type: apiKey name: Authorization in: header schemas: CorporateEntities: type: object required: - accountId - corporateEntityId - corporateEntityName - corporateId - corporateIdType properties: accountId: type: integer format: int32 description: The account identifier example: '123' corporateEntityId: type: integer format: int32 description: The corporate entity id example: '55' corporateEntityName: type: string description: The corporate entity name example: Acme Corp. corporateId: type: string description: The corporate id example: 1234-55 corporateIdType: type: string description: The corporate id type example: DUNS title: CorporateEntities description: Corporate entities information ErrorContainer: type: object properties: errors: type: array description: List of errors items: $ref: '#/components/schemas/ErrorItem' submissionId: type: string description: Submission identifier for issue investigation title: ErrorContainer description: Container for errors ErrorItem: type: object required: - code - message properties: code: type: string description: The error code correlationId: type: string description: The correlation identifier from the input field: type: string description: The field in error, if applicable message: type: string description: The error message parameter: type: string description: The parameter in error, if applicable path: type: string description: The path to the field specifically in error, if applicable title: ErrorItem description: Describes a specific error Holding: type: object required: - accountId - certificateSerialNumberRange - certificateStatus - countryIso2Code - creditType - fuelTypeCode - fuelTypeDescription - quantity - resourceName - resourceProgramAssignedIdentifier - retirementTypeCode - retirementTypeDescription - subaccountId - subaccountName - vintageEnd - vintageStart properties: accountId: type: string description: The account identifier example: '55' beneficialOwner: type: string description: The beneficial owner example: Acme Corp. certificateSerialNumberRange: type: string description: The certificate serial number range example: TIGR-1234-GT-SM-08-2024-321-1 to 66 certificateStatus: type: string description: 'The certificate status: see documentation for possible values' example: RETIRED countryIso2Code: type: string description: The country to which resource belongs as an ISO-2 code example: GT creditType: type: string description: 'The credit type: see documentation for possible values' example: TIGR fuelTypeCode: type: string description: 'The fuel type code: see documentation for possible values' example: HRR fuelTypeDescription: type: string description: 'The fuel type description: see documentation for possible values' example: Hydroelectric - Run-of-River quantity: type: number description: The holding quantity example: '55' resourceName: type: string description: The resource name example: Acme Hydro Unit 1 resourceProgramAssignedIdentifier: type: string description: The resource identifier example: '1234' retireDate: type: string format: date-time description: The retire date example: '2024-01-24T03:01:57.82Z' retirementDetails: type: string description: Additional retirement details example: Retired for Green Energy Program retirementReasonCode: type: string description: 'The retirement reason code: see documentation for possible values' example: '7' retirementReasonDescription: type: string description: >- The retirement reason description: see documentation for possible values example: Meet Corporate Renewable Energy Goals retirementTypeCode: type: string description: 'The retirement type code: see documentation for possible values' example: OTH retirementTypeDescription: type: string description: >- The retirement type description: see documentation for possible values example: On Behalf of Corporate Retirement subaccountId: type: string description: The subaccount identifier example: '99' subaccountName: type: string description: The subaccount name example: Acme Retirements vintageEnd: type: string format: date-time description: The vintage end example: '2024-08-31T00:00:00Z' vintageStart: type: string format: date-time description: The vintage start example: '2024-08-01T00:00:00Z' title: Holding description: Holding information ODataEnvelopeOfCorporateEntities: type: object properties: '@count': type: integer format: int32 description: The total number of results (only present if requested) value: type: array description: Rows of information items: $ref: '#/components/schemas/CorporateEntities' title: ODataEnvelopeOfCorporateEntities description: Container for OData-like rows of information ODataEnvelopeWithTotalCountOfHolding: type: object required: - countExceeded - value properties: '@count': type: integer format: int32 countExceeded: type: boolean totalCount: type: integer format: int32 value: type: array items: $ref: '#/components/schemas/Holding' title: ODataEnvelopeWithTotalCountOfHolding Pong: type: object required: - pong properties: pong: type: string format: date-time description: The current time on the server example: '2024-10-31T17:58:38.066Z' title: Pong description: Response indicating server health RequestContainerOfRetireRequest: type: object properties: requests: type: array description: List of requests items: $ref: '#/components/schemas/RetireRequest' title: RequestContainerOfRetireRequest description: Container for requests RequestContainerOfSubaccountCreateRequest: type: object properties: requests: type: array description: List of requests items: $ref: '#/components/schemas/SubaccountCreateRequest' title: RequestContainerOfSubaccountCreateRequest description: Container for requests ResponseContainerOfRetireResponse: type: object required: - submissionId properties: responses: type: array description: List of responses items: $ref: '#/components/schemas/RetireResponse' submissionId: type: string description: Submission identifier for issue investigation title: ResponseContainerOfRetireResponse description: Container for responses ResponseContainerOfSubaccountCreateResponse: type: object required: - submissionId properties: responses: type: array description: List of responses items: $ref: '#/components/schemas/SubaccountCreateResponse' submissionId: type: string description: Submission identifier for issue investigation title: ResponseContainerOfSubaccountCreateResponse description: Container for responses RetireRequest: type: object required: - certificateSerialNumberRange - quantity - reasonCode - retirementTypeCode - subaccountId - year properties: certificateSerialNumberRange: type: string description: >- The certificate serial number range: certificate ranges as returned by the holdings call, may not be combined with other ranges, even if contiguous example: TIGR-1234-GT-SM-08-2024-321-1 to 55 correlationId: type: string description: >- Correlation identifier: an opaque value that will be returned in the responses and error messages to correlate the response or error with the corresponding request example: '1' details: type: string description: >- Additional details, may be required in some cases: see documentation for more information example: Retired for Green Energy Program emailNotification: type: string description: The e-mail address for notification example: jdoe@acmecorp.com onBehalfOfCorporateEntityId: type: integer format: int32 description: >- On Behalf Of Corporate Entity Id: see documentation for allowed values example: '99' quantity: type: number description: The quantity of the transaction example: '55' reasonCode: type: string description: 'The retire reason code: see documentation for allowed values' example: '7' retirementCertificateType: type: string description: 'Retirement certificate type: see documentation for allowed values' example: TIGR retirementTypeCode: type: string description: 'The retirement type code: GRN, BBO, OTH' example: OTH subaccountId: type: string description: The subaccount identifier example: '99' year: type: integer format: int32 description: 'The year attribute: see documentation for allowed values' example: '2024' title: RetireRequest description: Request to retire credits RetireResponse: type: object required: - certificateSerialNumberRange - quantity - reasonCode - retirementTypeCode - subaccountId - transferId - year properties: certificateSerialNumberRange: type: string description: >- The certificate serial number range: certificate ranges as returned by the holdings call, may not be combined with other ranges, even if contiguous example: TIGR-1234-GT-SM-08-2024-321-1 to 55 correlationId: type: string description: >- Correlation identifier: an opaque value that will be returned in the responses and error messages to correlate the response or error with the corresponding request example: '1' details: type: string description: >- Additional details, may be required in some cases: see documentation for more information example: Retired for Green Energy Program emailNotification: type: string description: The e-mail address for notification example: jdoe@acmecorp.com onBehalfOfCorporateEntityId: type: integer format: int32 description: >- On Behalf Of Corporate Entity Id: see documentation for allowed values example: '55' quantity: type: number description: The quantity of the transaction example: '55' reasonCode: type: string description: 'The retire reason code: see documentation for allowed values' example: '7' retirementCertificateType: type: string description: 'Retirement certificate type: see documentation for allowed values' example: TIGR retirementTypeCode: type: string description: 'The retirement type code: GRN, BBO, OTH' example: OTH subaccountId: type: string description: The subaccount identifier example: '99' transferId: type: string description: The transfer identifier example: '7654' year: type: integer format: int32 description: 'The year attribute: see documentation for allowed values' example: '2024' title: RetireResponse description: Response to an retire request SubaccountCreateRequest: type: object required: - name properties: additionalDetails: type: string description: The subaccount additional details example: Acme Retirements alias: type: string description: The subaccount alias example: Acme Retirements correlationId: type: string description: >- Correlation identifier: an opaque value that will be returned in the responses and error messages to correlate the response or error with the corresponding request example: '1' name: type: string description: The subaccount name example: Acme Retirements title: SubaccountCreateRequest description: Request to create a subaccount SubaccountCreateResponse: type: object required: - name - subaccountId properties: additionalDetails: type: string description: The subaccount additional details example: Acme Retirements alias: type: string description: The subaccount alias example: Acme Retirements correlationId: type: string description: >- Correlation identifier: an opaque value that will be returned in the responses and error messages to correlate the response or error with the corresponding request example: '1' name: type: string description: The subaccount name example: Acme Retirements subaccountId: type: string description: The subaccount identifier example: '99' title: SubaccountCreateResponse description: Response to a subaccount creation request