generated: '2026-09-05' method: derived source: openapi/ — 118 first-party Citi OpenAPI/Swagger specifications harvested from https://developer.citi.com/apidocs/redocusaurus/.yaml on 2026-09-05; plus https://partner.citi.com/assets/json/pre-login/developers-page.json published: true note: Citi ships a full parallel sandbox estate on distinct hostnames, declared as a second servers[] entry inside the contracts themselves rather than as a mode flag or a key prefix. That means an integrator switches environments by switching base URL, and the environment is visible in the machine-readable contract. environments: - name: production hosts: - tts.apib2b.citi.com - b2b.api.icg.citi.com - b2b.tts.icgservices.citi.com - api.citivelocity.com path_marker: /citiconnect/prod - name: sandbox hosts: - tts.sandbox.apib2b.citi.com - sandbox.b2b.api.icg.citi.com - sanbox.tts.icgservices.citi.com - sandbox.api.citivelocity.com path_marker: /citiconnect/sb note: The Ukraine open banking contract spells its sandbox host "sanbox.tts.icgservices.citi.com" — a typo carried in Citi's published contract, recorded here verbatim rather than corrected. - name: uat / sit hosts: - tts.sit.apib2b.citi.com - sit.b2b.api.icg.citi.com - cte.b2b.tts.icgservices.citi.com - uat.b2b.tts.icgservices.citi.com - qa.b2b.tts.icgservices.citi.com path_marker: /citiconnect/sit5, /citiconnect/uat note: Client-test environments appear in several published contracts. Access is granted during onboarding, not on registration. access: self_service: true requires: a registered developer account on partner.citi.com note: 'Citi requires TWO developer accounts from the same organisation to complete certificate upload: "One account should upload the public keys then another developer from your organisation" completes the process.' source: https://developer.citi.com/apidocs/authentication/authentication-only-guide credentials: type: Client ID and Client Secret plus an uploaded public-key certificate test_key_prefix: null note: There is no test-vs-live key prefix convention. Environments are separated by host and by separately issued credentials, so a key cannot be accidentally used against the wrong environment the way a mis-prefixed key can. test_data: published: false note: No public test cards, test bank accounts, test clocks or fixture-trigger tooling are published. Sandbox test data is provisioned per client. NOTHING is invented here. mock_endpoints: - url: https://tts.sandbox.apib2b.citi.com/citiconnect/sb/accountstatementservices/v1/mock source: openapi/citi-statementsv2-api-openapi.yaml note: A dedicated mock server declared in the statements v2 contract. playground: name: API Playground url: https://partner.citi.com/user/register gated: true description: '"Utilize our demo app to test and familiarize yourself with the APIs you want to use." Routed to registration for anonymous visitors.' source: https://partner.citi.com/assets/json/pre-login/developers-page.json