openapi: 3.1.0 info: title: 'debiX Auth Provider API: Provider-to-SIX 3DS DetailedSettlementInformation API' version: 2.1.9 description: Callback API used by the Authentication Provider and implemented by SIX / debiX servers: - url: https://api.six-group.com/api/debix-auth/provider-auth/v2 description: PROD - Internet - url: https://api-preprod.np.six-group.com/api/debix-auth/provider-auth/v2 description: TEST - Internet - url: https://api.six.ssfn.ch/api/debix-auth/provider-auth/v2 description: PROD - SSFN - url: https://api-preprod.np.six.ssfn.ch/api/debix-auth/provider-auth/v2 description: TEST - SSFN - url: https://api.p2p.six-group.com/api/debix-auth/provider-auth/v2 description: PROD - P2P - url: https://api-preprod.np.p2p.six-group.com/api/debix-auth/provider-auth/v2 description: TEST - P2P tags: - name: DetailedSettlementInformation description: Query for detailed settlement information about a security paths: /detailed-settlement-information/securities/{isin}: get: tags: - DetailedSettlementInformation summary: Get detailed settlement information for a security. description: Get detailed settlement information for a security identified by its ISIN. operationId: getDetailedSettlementInfo parameters: - $ref: '#/components/parameters/SecurityID' - $ref: '#/components/parameters/CorrelationId' responses: '200': $ref: '#/components/responses/Http200DetailedSettlementInfo' '400': $ref: '#/components/responses/Http400ErrorResponse_DetailedQuery' '401': $ref: '#/components/responses/Http401ErrorResponse' '403': $ref: '#/components/responses/Http403ErrorResponse' '404': $ref: '#/components/responses/Http404ErrorResponse_NoIsin' '429': $ref: '#/components/responses/Http429ErrorResponse' '500': $ref: '#/components/responses/Http500ErrorResponse' '501': $ref: '#/components/responses/Http501ErrorResponse' '503': $ref: '#/components/responses/Http503ErrorResponse' '504': $ref: '#/components/responses/Http504ErrorResponse' components: schemas: ErrorDetail: required: - status type: object properties: type: type: string description: 'A URI reference (RFC3986) that describes the problem type (in the context of the provided API). Should resolve to a human-readable document.' format: uri default: about:blank title: type: string description: A short, human-readable summary of the problem type in English. example: Not Found status: maximum: 599 minimum: 100 type: integer description: The HTTP status code (RFC7231, Section 6) generated by the origin server for this occurrence of the problem. format: int32 example: 400 detail: type: string description: A human-readable explanation specific to this occurrence of the problem. example: ISIN 'US012071998' does not exist. instance: type: string description: A URI reference (RFC3986) that identifies the specific occurrence of the problem. It may or may not yield further information if dereferenced. format: uri example: https://www.example.com/books/1234 description: Detailed description of an error to help remediation. It follows RFC 7807 (https://datatracker.ietf.org/doc/html/rfc7807). SdrtAttributesOnISIN: type: object properties: eligibilityCrossBorder: type: boolean description: SDRT eligibility for cross-border orders. If missing, the information is unknown. example: false eligibilityInHouse: type: boolean description: SDRT eligibility for SIX SIS inhouse orders. If missing, the information is unknown. example: false inhouseForbidden: type: boolean description: SDRT SIX SIS inhouse transactions forbidden flag. If missing, the information is unknown. example: false description: SDRT attributes for the security BookingBasis: type: string description: "The booking basis for the security:\n * FAMT: face amount\n * UNIT: unit" example: UNIT enum: - FAMT - UNIT ResourceDetailedSettlementInfo: description: Detailed settlement information for a security, including custodians-specific information. allOf: - $ref: '#/components/schemas/PropertiesBasicResource' - required: - attributes type: object properties: attributes: $ref: '#/components/schemas/DetailedSettlementInfo' DetailedSettlementInfo: description: Detailed settlement information for a security, with custodians-specific information. allOf: - $ref: '#/components/schemas/DetailedSettlementInfoWithoutCustodians' - type: object properties: custodians: minItems: 1 type: array description: Detailed settlement information for a security per custodian (aka 'market'). If not provided, the security is not cross-border eligible. items: $ref: '#/components/schemas/DetailedSettlementInfoPerCustodian' DetailedSettlementInfoPerCustodian: required: - bookingBasis - bpId - externalOrdinarioAccount - marketGuides - name description: Detailed settlement information for a security for a custodian (aka 'market'). allOf: - $ref: '#/components/schemas/BasicSettlementInfoPerCustodian' - type: object properties: bpId: description: SIX SIS BP-ID for the custodian. example: CA100045 allOf: - $ref: '#/components/schemas/BpId' name: maxLength: 72 type: string description: Custodian name. example: CIBC MELLON TRUST COMPANY, TORONTO participantId: maxLength: 200 type: string description: Participant ID with local CSD example: 'DTC: 00000908FRB: ABA 021000089 A/C CUST' accountT2S: maxLength: 200 type: string description: T2S safekeeping account. example: DAKV71210000 externalOrdinarioAccount: maxLength: 200 type: string description: External ordinario account number at local custodian. example: '71210000' settlementEligibilityNotes: maxLength: 720 type: string description: Settlement eligibility notes/restrictions. example: 'RFP: Please contact your dedicated settlement desk' bookingBasis: description: "Booking Basis for local custodian:\n * FAMT: face amount\n * UNIT: unit." allOf: - $ref: '#/components/schemas/BookingBasis' marketGuides: minItems: 1 type: array description: Hyperlink (URL) to the relevant SIX SIS Market Guides for this custodian as well as the market name. example: - marketName: USA - Citibank url: https://sws.six-group.com/private/en/home/market-guide/overview/usa/usa-citibank.html items: $ref: '#/components/schemas/MarketGuideInfo' Error: required: - message type: object properties: message: type: string description: A human-readable explanation specific to this error. example: Unauthorized errorDetail: description: Additional information about the error. allOf: - $ref: '#/components/schemas/ErrorDetail' description: Description of an error to help remediation. PositionType: pattern: ^[A-Z]{2}$ type: string description: Market segregation code, aka position type. example: 'NO' FinancialInstitutionBIC: required: - bic type: object properties: bic: $ref: '#/components/schemas/AnyBIC' description: BIC of a financial institution example: bic: INSECHZZXXX ErrorDetail400: type: object description: Detailed description of a 400 error to help remediation. It extends RFC 7807 (https://datatracker.ietf.org/doc/html/rfc7807) with missing and invalid parameters information. allOf: - $ref: '#/components/schemas/ErrorDetail' - properties: invalidParams: minItems: 1 type: array description: List of parameters with invalid values. items: $ref: '#/components/schemas/InvalidParameter' missingParams: minItems: 1 type: array description: List of missing parameters. items: $ref: '#/components/schemas/MissingParameter' MarketGuideInfo: required: - url type: object properties: marketName: maxLength: 50 minLength: 1 type: string description: SIX SIS name for the market. If not provided, no market could be univoquely identified, in which case the sibling 'url' property provides a link to all market guides. url: description: Hyperlink (URL) to relevant SIX SIS Market Guide. example: https://sws.six-group.com/private/en/home/market-guide/overview/usa/usa-citibank.html allOf: - $ref: '#/components/schemas/URL' description: '' InvalidParameter: required: - in - name - value type: object properties: in: description: Location of the invalid parameter. allOf: - $ref: '#/components/schemas/ParameterLocation' name: type: string description: Name of the invalid parameter. reason: type: string description: The reason why the parameter's value is invalid. value: type: string description: The invalid value. description: Description of a parameter with invalid value. PrincipalCustodianReference: type: object description: Reference to the principal custodian, i.e., a BIC or (if none available) the name of the custodian. example: bic: INSECHZZXXX oneOf: - $ref: '#/components/schemas/FinancialInstitutionBIC' - $ref: '#/components/schemas/FinancialInstitutionName' BpId: pattern: ^[A-Z]{2}[0-9]{6}$ type: string description: Identifier of a business partner (BP) within SIX SIS. example: CH123456 FinancialInstitutionName: required: - name type: object properties: name: maxLength: 72 minLength: 1 type: string description: name description: Name of a financial institution. example: name: SIX SIS AG MissingParameter: required: - in - name type: object properties: in: description: Location of the missing parameter. allOf: - $ref: '#/components/schemas/ParameterLocation' name: type: string description: Name of the missing parameter. reason: type: string description: The reason why the parameter's value is missing. description: Description of a missing parameter. BasicSettlementInfoWithoutCustodians: required: - bookingBasis - inHouseEligibility - isin - limitedPartnership - lowPriceSecurity - marketSegregated - t2sEligibility type: object properties: isin: description: Identifier of the financial instrument. example: US0378331005 allOf: - $ref: '#/components/schemas/Isin' limitedPartnership: type: boolean description: Limited partnership security flag. example: false lowPriceSecurity: type: boolean description: Security under LPS (Low Price Security) SIX SIS policy. example: false inHouseEligibility: type: boolean description: SIX SIX inhouse eligibility. t2sEligibility: type: boolean description: SIX SIX T2S eligibility. t2sIssuerCSD: description: SIX SIS issuer CSD/Technical issuer CSD in T2S. example: CITIUS33XXX allOf: - $ref: '#/components/schemas/AnyBIC' marketSegregated: type: boolean description: Market segregated security (security separated by market). sdrt: description: SDRT attributes. If missing, the information is unknown. allOf: - $ref: '#/components/schemas/SdrtAttributesOnISIN' bookingBasis: description: "Booking Basis SIX SIS:\n * FAMT: face amount\n * UNIT: unit." example: UNIT allOf: - $ref: '#/components/schemas/BookingBasis' principalCustodian: description: BIC (or name if no BIC is available) of the principal custodian for the security. example: bic: INSECHZZXXX allOf: - $ref: '#/components/schemas/PrincipalCustodianReference' description: Basic settlement information for a security, without custodians-specific information. example: isin: GB00BP6MXD84 limitedPartnership: false lowPriceSecurity: false inHouseEligibility: true t2sEligibility: false marketSegregated: false sdrt: eligibilityCrossBorder: true eligibilityInHouse: true inhouseForbidden: false bookingBasis: UNIT principalCustodian: bic: PARBGB2LXXX AnyBIC: pattern: ^[A-Z]{6}[A-Z2-9][A-NP-Z0-9]([A-Z0-9]{3})?$ type: string description: Business Identifier Code (BIC) 8 or 11 according to ISO 9362:2014. example: CITIUS33XXX ApiGwError: required: - message type: object properties: message: type: string description: A human-readable explanation specific to this error. example: Unauthorized description: Description of an error as provided by the API GW to help remediation. PropertiesBasicResource: required: - id - type type: object properties: id: type: string description: Identifier of the resource format: uuid type: maxLength: 255 minLength: 1 type: string description: Type of the resource. description: Properties of any resource. BasicSettlementInfoPerCustodian: required: - bic type: object properties: bic: description: Identifier of the custodian. example: MELNUS3PGSS allOf: - $ref: '#/components/schemas/AnyBIC' settlementEligibility: type: boolean description: Settlement eligibility. If missing, to be interpreted as SIX SIS needs to be contacted. example: true marketSegregationCode: description: Market segregation code, aka position type. example: 'NO' allOf: - $ref: '#/components/schemas/PositionType' sdrtCountry: maxItems: 2 minItems: 1 type: array description: SDRT country code. example: - GB items: $ref: '#/components/schemas/PositionType' description: Basic settlement information for a security for a custodian (aka 'market'). ResponseDetailedSettlementInfoQuery: required: - data type: object properties: data: $ref: '#/components/schemas/ResourceDetailedSettlementInfo' description: HTTP 200 response (OK) for the query about detailed security settlement information. URL: maxLength: 2048 minLength: 1 type: string description: Uniform Resource Locator (URL) as defined in RFC 1738 (https://datatracker.ietf.org/doc/html/rfc1738). ParameterLocation: type: string description: The location of the parameter in question enum: - BODY - PATH - QUERY - HEADER Error400: required: - message type: object properties: message: type: string description: A human-readable explanation specific to this error. example: Unauthorized errorDetail: description: Additional information about the error. allOf: - $ref: '#/components/schemas/ErrorDetail400' description: Description of a 400 error to help remediation. Isin: pattern: ^[A-Z]{2}([A-Z0-9]){9}[0-9]$ type: string description: 'The ISIN (International Securities Identification Number) uniquely identifies a financial instrument. See ISO 6166:2021: Financial services — International securities identification number (ISIN).' example: CH0038863350 DetailedSettlementInfoWithoutCustodians: required: - bookingBasis description: Detailed settlement information for a security, without custodians-specific information. allOf: - $ref: '#/components/schemas/BasicSettlementInfoWithoutCustodians' XCorrelationIdType: pattern: ^[0-9A-Fa-f]{8}-?[0-9A-Fa-f]{4}-?4[0-9A-Fa-f]{3}-?[89ABab][0-9A-Fa-f]{3}-?[0-9A-Fa-f]{12}(#[1-9][0-9]*)?$ type: string description: Value of the correlation ID for the server, i.e., a UUID v4 (with or without the dash to separate the blocks), optionally followed by a '#' and a positive integer. headers: RateLimit-Remaining: description: 'Provides the remaining requests quota in the current time window (for the specific client). See the ''RateLimit Header Fields for HTTP'' (https://datatracker.ietf.org/doc/html/draft-polli-ratelimit-headers-01) for more information.' style: simple explode: false schema: minimum: 0 type: integer example: 1 RateLimit-Limit: description: 'Provides the the requests quota in the time window (i.e., the maximal number of acceptable requests for the client within the time window). See the ''RateLimit Header Fields for HTTP'' (https://datatracker.ietf.org/doc/html/draft-polli-ratelimit-headers-01) for more information.' style: simple explode: false schema: minimum: 0 type: integer example: 10 X-Correlation-Id: description: Correlation identifier of the original request. style: simple explode: false schema: $ref: '#/components/schemas/XCorrelationIdType' examples: As generated by client: value: ef199b05-d1ff-4a2b-b5ef-2bb3ab3f0820 As generated by API GW: value: ef199b05-d1ff-4a2b-b5ef-2bb3ab3f0820#23 RateLimit-Reset: description: 'Indicates the number of seconds until the quota resets. See the ''RateLimit Header Fields for HTTP'' (https://datatracker.ietf.org/doc/html/draft-polli-ratelimit-headers-01) for more information.' style: simple explode: false schema: minimum: 0 type: integer example: 50 Retry-After: description: 'Indicates the number of seconds the client ought to wait before making a follow-up request. See RFC7231, §7.1.3 (https://datatracker.ietf.org/doc/html/rfc7231#section-7.1.3). *Note: might be higher than ''RateLimit-Reset''.*' style: simple explode: false schema: minimum: 0 type: integer example: 50 responses: Http200DetailedSettlementInfo: description: Detailed settlement information for a security. headers: X-Correlation-Id: $ref: '#/components/headers/X-Correlation-Id' RateLimit-Limit: $ref: '#/components/headers/RateLimit-Limit' RateLimit-Remaining: $ref: '#/components/headers/RateLimit-Remaining' RateLimit-Reset: $ref: '#/components/headers/RateLimit-Reset' content: application/vnd.api+json: schema: $ref: '#/components/schemas/ResponseDetailedSettlementInfoQuery' examples: US0378331005: value: data: id: 95b1b467-bd69-4436-8181-96c16408c230 type: DetailedSettlementInfo attributes: isin: US0378331005 limitedPartnership: false lowPriceSecurity: false inHouseEligibility: true t2sEligibility: false marketSegregated: true sdrt: eligibilityCrossBorder: false eligibilityInHouse: false inhouseForbidden: false bookingBasis: UNIT principalCustodian: bic: CITIUS33XXX custodians: - bic: MELNUS3PGSS settlementEligibility: true marketSegregationCode: 'NO' bpId: CA100045 name: CIBC MELLON TRUST COMPANY externalOrdinarioAccount: SXSF1001002 bookingBasis: UNIT marketGuides: - marketName: Canada url: https://sws.six-group.com/private/en/home/market-guide/overview/canada.html - bic: MELNUS3PGSS settlementEligibility: true marketSegregationCode: 'NO' sdrtCountry: - CH bpId: DE100408 name: CLEARSTREAM BANKING AG participantId: '7121' accountT2S: DAKV7121000 externalOrdinarioAccount: '71210000' settlementEligibilityNotes: ATF:PLS RE-INSTRUCT BY MEANS OF DFP/RFP bookingBasis: UNIT marketGuides: - marketName: Germany url: https://sws.six-group.com/private/en/home/market-guide/overview/germany-cbf.html GB00BP6MXD84: value: data: id: f184c1f8-e86a-4c5c-beb9-d53caaf31aaf type: DetailedSettlementInfo attributes: isin: GB00BP6MXD84 limitedPartnership: false lowPriceSecurity: false inHouseEligibility: true t2sEligibility: false marketSegregated: false sdrt: eligibilityCrossBorder: true eligibilityInHouse: true inhouseForbidden: false bookingBasis: UNIT principalCustodian: bic: PARBGB2LXXX custodians: - bic: MGTCBEBEECL settlementEligibility: false sdrtCountry: - 'NO' bpId: BE100519 name: EUROCLEAR BANK SA/NV participantId: '23981' externalOrdinarioAccount: '23981' settlementEligibilityNotes: ISIN NOT TRANSFERABLE VIA THIS CUSTODIAN bookingBasis: UNIT marketGuides: - marketName: Eurobonds - Euroclear url: https://sws.six-group.com/private/en/home/market-guide/overview/other/eurobonds/eurobonds-euroclear-bank-brussels-eb.html - marketName: Ireland url: https://sws.six-group.com/private/en/home/market-guide/overview/ireland.html - bic: DAKVDEFFXXX settlementEligibility: true sdrtCountry: - DE bpId: DE100408 name: CLEARSTREAM BANKING AG participantId: '7121' accountT2S: DAKV7121000 externalOrdinarioAccount: '71210000' settlementEligibilityNotes: ATF:ATF NOT APPLICABLE IN THIS MARKET bookingBasis: UNIT marketGuides: - marketName: Germany url: https://sws.six-group.com/private/en/home/market-guide/overview/germany-cbf.html NL0000235190: value: data: id: 7b467b3f-23aa-4f84-b562-d880ccd70bcc type: DetailedSettlementInfo attributes: isin: NL0000235190 limitedPartnership: false lowPriceSecurity: false inHouseEligibility: true t2sEligibility: true t2sIssuerCSD: NECINL2AXXX marketSegregated: true sdrt: eligibilityCrossBorder: false eligibilityInHouse: false inhouseForbidden: false bookingBasis: UNIT principalCustodian: bic: PARBFRPPXXX custodians: - bic: OCSDATWWXXX settlementEligibility: true bpId: AT100042 name: OEKB CSD GMBH participantId: OCSDATWWXXX externalOrdinarioAccount: '244000' settlementEligibilityNotes: ATF:ATF NOT APPLICABLE IN THIS MARKET bookingBasis: UNIT marketGuides: - marketName: Austria url: https://sws.six-group.com/private/en/home/market-guide/overview/austria-oekb.html - bic: DAKVDEFFXXX settlementEligibility: true bpId: DE100408 name: CLEARSTREAM BANKING AG participantId: '7121' accountT2S: DAKV7121000 externalOrdinarioAccount: '71210000' settlementEligibilityNotes: ATF:ATF NOT APPLICABLE IN THIS MARKET bookingBasis: UNIT marketGuides: - marketName: Germany url: https://sws.six-group.com/private/en/home/market-guide/overview/germany-cbf.html Http503ErrorResponse: description: Service Unavailable headers: X-Correlation-Id: $ref: '#/components/headers/X-Correlation-Id' content: application/json: schema: $ref: '#/components/schemas/ApiGwError' examples: 503 Service Unavailable: value: message: unavailable Http404ErrorResponse_NoIsin: description: Not Found headers: X-Correlation-Id: $ref: '#/components/headers/X-Correlation-Id' RateLimit-Limit: $ref: '#/components/headers/RateLimit-Limit' RateLimit-Remaining: $ref: '#/components/headers/RateLimit-Remaining' RateLimit-Reset: $ref: '#/components/headers/RateLimit-Reset' content: application/json: schema: $ref: '#/components/schemas/Error' examples: 404 Not Found: value: message: Resource not found errorDetail: title: Not Found status: 404 detail: ISIN 'US012071998' does not exist. Http500ErrorResponse: description: Internal Server Error headers: X-Correlation-Id: $ref: '#/components/headers/X-Correlation-Id' content: application/json: schema: $ref: '#/components/schemas/Error' examples: 500 Internal Server Error: value: message: Server error errorDetail: title: Internal Server Error status: 500 detail: Something went wrong. Http400ErrorResponse_DetailedQuery: description: Bad Request headers: X-Correlation-Id: $ref: '#/components/headers/X-Correlation-Id' RateLimit-Limit: $ref: '#/components/headers/RateLimit-Limit' RateLimit-Remaining: $ref: '#/components/headers/RateLimit-Remaining' RateLimit-Reset: $ref: '#/components/headers/RateLimit-Reset' content: application/json: schema: $ref: '#/components/schemas/Error400' examples: 400 Bad Request - Invalid ISIN: $ref: '#/components/examples/Error400_InvalidPathParam' 400 Bad Request - Invalid header parameter: $ref: '#/components/examples/Error400_InvalidHeaderParam' Http403ErrorResponse: description: Forbidden headers: X-Correlation-Id: $ref: '#/components/headers/X-Correlation-Id' RateLimit-Limit: $ref: '#/components/headers/RateLimit-Limit' RateLimit-Remaining: $ref: '#/components/headers/RateLimit-Remaining' RateLimit-Reset: $ref: '#/components/headers/RateLimit-Reset' content: application/json: schema: $ref: '#/components/schemas/Error' examples: 403 Forbidden: value: message: Forbidden Http429ErrorResponse: description: Too Many Requests headers: X-Correlation-Id: $ref: '#/components/headers/X-Correlation-Id' RateLimit-Limit: $ref: '#/components/headers/RateLimit-Limit' RateLimit-Remaining: $ref: '#/components/headers/RateLimit-Remaining' RateLimit-Reset: $ref: '#/components/headers/RateLimit-Reset' Retry-After: $ref: '#/components/headers/Retry-After' content: application/json: schema: $ref: '#/components/schemas/ApiGwError' examples: 429 Too Many Requests: value: message: API rate limit exceeded Http504ErrorResponse: description: Gateway Timeout headers: X-Correlation-Id: $ref: '#/components/headers/X-Correlation-Id' content: application/json: schema: $ref: '#/components/schemas/ApiGwError' examples: 504 Service Unavailable: value: message: The upstream server is timing out. Http401ErrorResponse: description: Unauthorized headers: X-Correlation-Id: $ref: '#/components/headers/X-Correlation-Id' RateLimit-Limit: $ref: '#/components/headers/RateLimit-Limit' RateLimit-Remaining: $ref: '#/components/headers/RateLimit-Remaining' RateLimit-Reset: $ref: '#/components/headers/RateLimit-Reset' content: application/json: schema: $ref: '#/components/schemas/Error' examples: 401 Unauthorized - no certificate provided: value: message: No required TLS certificate was sent 401 Unauthorized - invalid certificate (no trust in certificate): value: message: TLS certificate failed verification 401 Unauthorized - not authorized (wrong client credentials): value: message: Unauthorized Http501ErrorResponse: description: Not Implemented headers: X-Correlation-Id: $ref: '#/components/headers/X-Correlation-Id' content: application/json: schema: $ref: '#/components/schemas/Error' examples: 501 Not Implemented: value: message: Not implemented errorDetail: title: Not Implemented status: 501 detail: This API endpoint is not yet implemented. examples: Error400_InvalidHeaderParam: value: message: 'header "X-Correlation-ID" validation failed with error: "failed to match pattern "^[0-9A-Fa-f]{8}-?[0-9A-Fa-f]{4}-?4[0-9A-Fa-f]{3}-?[89ABab][0-9A-Fa-f]{3}-?[0-9A-Fa-f]{12}" with ""' Error400_InvalidPathParam: value: message: 'path "isin" validation failed with error: "failed to match pattern "^[A-Z]{2}([A-Z0-9]){9}[0-9]$" with "CH003886335"' parameters: SecurityID: name: isin in: path description: Identifier of the security. required: true style: simple explode: false schema: $ref: '#/components/schemas/Isin' example: CH0038863350 CorrelationId: name: X-Correlation-Id in: header description: Correlation identifier for the request required: false style: simple explode: false schema: $ref: '#/components/schemas/XCorrelationIdType' examples: As generated by client: value: ef199b05-d1ff-4a2b-b5ef-2bb3ab3f0820 As generated by API GW: value: ef199b05-d1ff-4a2b-b5ef-2bb3ab3f0820#23