openapi: 3.2.0 info: title: Gateway Services Certification API description: Self onboarding services for merchants to register on the platform, create wallets, and perform withdrawals or payouts to their designated settlement and external beneficiary accounts. contact: name: Standards & Developer Hub url: https://tts.sandbox.developer.citi.com/citiconnect/ email: developer-support@citi.com version: 1.0.0 servers: - url: https://b2b.api.icg.citi.com/citiconnect/prod/gatewayservices description: production gateway url - url: https://sandbox.b2b.api.icg.citi.com/citiconnect/sb/gatewayservices description: sbox url security: - oAuth2: - /authenticationservices/v1 tags: - name: Certification description: KYC certification submission and retrieval paths: /merchants/v1/certification: post: summary: Submit Certification description: This endpoint allows you to submit certification information to verify a merchant or update existing KYC details, and trigger review workflows required for compliance and account readiness. operationId: submitCertification servers: - url: https://b2b.api.icg.citi.com/citiconnect/prod/gatewayservices tags: - Certification parameters: - $ref: '#/components/parameters/Client-Id' - $ref: '#/components/parameters/Idempotency-Id' - $ref: '#/components/parameters/Country-Code' - $ref: '#/components/parameters/Merchant-Id' - $ref: '#/components/parameters/Operation' requestBody: required: true description: Request body for the certification request. content: application/json: schema: $ref: '#/components/schemas/Certification-Request' examples: Certification-Request: $ref: '#/components/examples/Certification-Request' Certification-Request-CN: $ref: '#/components/examples/Certification-Request-Cn' Certification-Request-HK: $ref: '#/components/examples/Certification-Request-Hk' responses: '200': description: Certification request accepted for processing. headers: apim-guid: $ref: '#/components/headers/Apim-Guid' content: application/json: schema: $ref: '#/components/schemas/Sync-Response' examples: Certification-Save-Acknowledgement: $ref: '#/components/examples/Certification-Save-Acknowledgement' Certification-Submit-Acknowledgement: $ref: '#/components/examples/Certification-Submit-Acknowledgement' '400': $ref: '#/components/responses/Bad-Request' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/Not-Found' '405': $ref: '#/components/responses/Method-Not-Allowed' '409': $ref: '#/components/responses/Conflict' '415': $ref: '#/components/responses/Unsupported-Media-Type' '429': $ref: '#/components/responses/Too-Many-Requests' '500': $ref: '#/components/responses/Internal-Server-Error' '503': $ref: '#/components/responses/Service-Unavailable' '504': $ref: '#/components/responses/Gateway-Timeout' security: - oAuth2: - /authenticationservices/v1 callbacks: certification-webhook: '{$notificationURL}': post: summary: Certification Webhook description: Webhook notification for certification status updates. Pushes updates of the KYC certification request. operationId: certificationWebhook parameters: - $ref: '#/components/parameters/Event-Type' - $ref: '#/components/parameters/Event-Name' - $ref: '#/components/parameters/Apim-Guid' requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/Webhook-Certification' examples: Certification-Approved-Webhook-Example: $ref: '#/components/examples/Certification-Approved-Webhook-Example' Certification-Declined-Webhook-Example: $ref: '#/components/examples/Certification-Declined-Webhook-Example' Certification-Rfi-Pending-Webhook-Example: $ref: '#/components/examples/Certification-Rfi-Pending-Webhook-Example' responses: '200': description: Webhook received successfully. rfi: '{$notificationURL}': post: operationId: rfiNotification summary: Request for Information (RFI) Notification Webhook description: This webhook pushes notifications of Request for Information. tags: - RFI Webhook parameters: - $ref: '#/components/parameters/Event-Type' - $ref: '#/components/parameters/Event-Name' - $ref: '#/components/parameters/Apim-Guid' requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/RFI-Notification' examples: rfi-notification-example: $ref: '#/components/examples/RFI-Notification-Example' responses: '200': description: Webhook received successfully. get: summary: Get Certification description: Check the status of a merchant's KYC review using the merchant_id returned during onboarding, including progress indicators, review outcomes, and required follow-up actions when applicable. operationId: getCertification servers: - url: https://b2b.api.icg.citi.com/citiconnect/prod/gatewayservices tags: - Certification parameters: - $ref: '#/components/parameters/Client-Id' - $ref: '#/components/parameters/Country-Code' - $ref: '#/components/parameters/Merchant-Id' responses: '200': description: Certification details retrieved successfully. headers: apim-guid: $ref: '#/components/headers/Apim-Guid' content: application/json: schema: $ref: '#/components/schemas/Get-Certification-Response' examples: Get-Certification: $ref: '#/components/examples/Get-Certification' '400': $ref: '#/components/responses/Bad-Request' '401': $ref: '#/components/responses/Unauthorized' '403': $ref: '#/components/responses/Forbidden' '404': $ref: '#/components/responses/Not-Found' '405': $ref: '#/components/responses/Method-Not-Allowed' '429': $ref: '#/components/responses/Too-Many-Requests' '500': $ref: '#/components/responses/Internal-Server-Error' '503': $ref: '#/components/responses/Service-Unavailable' '504': $ref: '#/components/responses/Gateway-Timeout' security: - oAuth2: - /authenticationservices/v1 components: schemas: RFI-Question: title: RFI-Question description: An individual RFI question with its associated information requests and certification source. allOf: - $ref: '#/components/schemas/Common-Question' - type: object properties: information_request: type: array title: information_request description: The information need to be responded. items: $ref: '#/components/schemas/Information-Request-Webhook' Merchant-Id: type: string description: Unique identifier generated by Citi for each seller. Seller to use this id for the further functional calls. title: merchant_id minLength: 1 maxLength: 36 example: ec689822-9864-4c4d-9d68-222467627901 Name: type: string title: name minLength: 1 maxLength: 128 example: SHASHANK VIJAYSHANKAR TIWARI RFI-Notification: type: object title: RFI-Notification description: Request for Information (RFI) notification. allOf: - $ref: '#/components/schemas/Common-Rfi' - type: object required: - merchant_id properties: merchant_id: $ref: '#/components/schemas/Merchant-Id' questions: type: array title: questions description: An array of RFI questions items: $ref: '#/components/schemas/RFI-Question' Business: title: Business type: object description: Detailed information of the business for certification. required: - name properties: name: allOf: - $ref: '#/components/schemas/Name' - description: The full legal name of the business in English. Required for CN and HK. example: payment service provider name_in_local_language: type: string title: name_in_local_language minLength: 1 maxLength: 128 description: The full legal name of the business in the local language. Required for CN and HK. example: payment service provider establishment_date: allOf: - $ref: '#/components/schemas/Common-Date' title: establishment_date description: Company establishment date. Required for CN and HK. license_expiry_date: allOf: - $ref: '#/components/schemas/Common-Date' title: license_expiry_date description: Expiry date of company license; format yyyy-mm-dd. Fill in 9999-12-31 for a long-term license. Required for CN. For HK, this is expiry date of business registration. address: $ref: '#/components/schemas/Business-Address' products_and_services_category: type: string title: products_and_services_category description: Products and services category. Required for CN and HK. example: KC02001008 minLength: 1 maxLength: 20 tax_id_type: type: string title: tax_id_type description: Tax id type. enum: - EIN - SSN - VAT - TIN - UTR example: VAT tax_id_number: type: string title: tax_id_number minLength: 1 maxLength: 128 description: Tax id number. example: tax_id_number1111 account_usage: type: array title: account_usage description: List of account usage. Required for CN and HK. items: $ref: '#/components/schemas/Account-Usage' minItems: 1 maxItems: 25 description: type: string title: description minLength: 1 maxLength: 2048 description: Description of the business. This is one of the three ways of proving the business. example: Selling products or purchasing raw materials on online platforms website: type: string title: website minLength: 1 maxLength: 2048 description: Website URL. This is one of the three ways of proving the business. example: http://www.company.cn business_proof_file_id: allOf: - $ref: '#/components/schemas/File-Id' title: business_proof_file_id description: File ID for a screenshot of the business website/dashboards. example: N1234567891011121314151622 documents: type: array title: documents description: List of documents. items: $ref: '#/components/schemas/Document' business_persons: type: array title: business_persons description: List of business person. items: $ref: '#/components/schemas/Business-Person' Common-Rfi: title: Common-Rfi type: object description: Response containing RFI list and details. properties: rfi_id: $ref: '#/components/schemas/Rfi-Id' type: type: string title: type minLength: 1 maxLength: 64 description: RFI type. Currently supports KYC, RECIPIENT. status: allOf: - $ref: '#/components/schemas/Status' title: status description: 'RFI status. Possible values: OPEN, CLOSED.' created_time: allOf: - $ref: '#/components/schemas/Created-Time' description: RFI Creation date time in ISO 8601 format. title: created_time expiry_time: allOf: - $ref: '#/components/schemas/Created-Time' description: RFI expiration time in ISO 8601 format. title: expiry_time creditor_id: allOf: - $ref: '#/components/schemas/Creditor-Id' title: creditor_id description: Recipient id (use for RECIPIENT RFI type). Sync-Response: title: SyncResponse type: object description: Acknowledgement. properties: status_details: $ref: '#/components/schemas/Status-Details' Business-Address: title: BusinessAddress type: object description: Address information for company. properties: street_name: type: string title: street_name minLength: 1 maxLength: 200 description: Street name. Required for CHINA and HONGKONG. example: Schillerstrasse 23 postal_code: type: string title: postal_code minLength: 1 maxLength: 16 description: Postal code or ZIP code. Required for CHINA and HONGKONG. example: '999077' city: type: string title: city minLength: 1 maxLength: 200 description: City name. Required for CHINA and HONGKONG. example: Ras Al Khaimah district: type: string title: district minLength: 1 maxLength: 200 description: District name. Required for CHINA and HONGKONG. example: district1111 state: type: string title: state minLength: 1 maxLength: 200 description: State or province name. Required for CHINA and HONGKONG. example: Ras al Khaymah Document: title: Document type: object description: Document information for KYC validation including document type, sub-type, and file reference. required: - type properties: type: type: string title: type description: Type of identity document (ID).
certificate_of_registration is applicable for CHINA.
certificate_of_incorporation and business_registration are applicable for HONGKONG. enum: - CERTIFICATE_OF_REGISTRATION - CERTIFICATE_OF_INCORPORATION - BUSINESS_REGISTRATION - SHARE_STRUCTURE - COMPANY_CONSTITUTION_OR_ANNUAL_REPORT - ARTICLE_OF_ASSOCIATION - UBO_DECLARATION - PARTNERSHIP_MINUTES_OF_MEETING - PARTNERSHIP_DEED - CERTIFICATE_OF_INCUMBENCY - INDONESIA_MINISTRY_OFFICIAL_APPROVAL_PROOF - OFFICE_PHOTO - PROOF_OF_ADDRESS - BANK_ACCOUNT_PROOF - BUSINESS_URL_OWNERSHIP example: CERTIFICATE_OF_REGISTRATION sub_type: type: string title: sub_type description: Applicable only if the type is certificate_of_registration. enum: - ACRA - GST - MSME - CERTIFICATE_OF_REGISTRATION example: ACRA number: type: string title: number minLength: 1 maxLength: 128 description: Document ID number.
required if type is certificate_of_registration for CHINA.
required if type are certificate_of_incorporation and business_registration for HONGKONG. example: DE123456789 file_id: $ref: '#/components/schemas/File-Id' Account-Usage: type: string title: account_usage description: Description of merchant's business purpose of using PSP account. Required for CN and HK. example: ONLINE_MARKETPLACE_TRADING File-Id: type: string description: Unique identifier for the document uploaded. title: file_id minLength: 1 maxLength: 128 example: '112213' Common-Question: title: Common-Question type: object description: An individual RFI question. properties: question_id: type: string title: question_id minLength: 1 maxLength: 64 description: The unique id for specific question. example: Q123456789 description_code: type: string title: description_code minLength: 1 maxLength: 64 description: The code for question's description. description_english: type: string title: description_english minLength: 1 maxLength: 2048 description: Question description in English. description_chinese: type: string title: description_chinese minLength: 1 maxLength: 2048 description: Question description in Chinese. certification_source: $ref: '#/components/schemas/Certification-Source' Information-Name: type: string title: information_name minLength: 1 maxLength: 64 description: Information name. example: id_doc_front Gateway-Error-Response: type: object title: GatewayErrorResponse required: - httpCode - httpMessage - moreInformation properties: httpCode: type: string maxLength: 3 description: Numeric HTTP Staus code title: httpCode httpMessage: type: string maxLength: 128 description: HTTP error message title: httpMessage example: Bad Request moreInformation: type: string maxLength: 128 description: HTTP error message title: moreInformation example: please provide valid value for request Merchant-Type: type: string title: merchant_type description: Type of merchant. enum: - INDIVIDUAL - ENTERPRISE Service-Error-Response: title: ServiceErrorResponse type: object required: - ref_id - error_details properties: ref_id: type: string maxLength: 120 description: Unique ID for the Transaction title: ref_id example: 444d0f3f-4x55-7g99-8b2c-0cf2a921a5ab error_details: type: array description: List of error details title: error_details items: $ref: '#/components/schemas/Error-Detail' Creditor-Id: type: string title: creditor_id description: The unique creditor identifier assigned by payment service provider. minLength: 1 maxLength: 36 example: R202501080950209789 Rfi-Id: type: string title: rfi_id minLength: 1 maxLength: 128 description: RFI unique id. Personal-Details: title: Personal-Details type: object description: This section contains the name details. properties: first_name: type: string title: first_name minLength: 1 maxLength: 64 description: Business person's first name in English. Required for CN and HK. example: Hongbo first_name_in_local_language: type: string title: first_name_in_local_language minLength: 1 maxLength: 64 description: Business person's first name in local language. Required for CN and HK. example: first name middle_name: type: string title: middle_name minLength: 1 maxLength: 64 description: Business person's middle name in English. Optional for CN and HK. example: s middle_name_in_local_language: type: string title: middle_name_in_local_language minLength: 1 maxLength: 64 description: Business person's middle name in local language. Optional for CN and HK. example: middle name last_name: type: string title: last_name minLength: 1 maxLength: 64 description: Business person's last name in English. Required for CN and HK. example: Lin last_name_in_local_language: type: string title: last_name_in_local_language minLength: 1 maxLength: 64 description: Business person's full name in local language. Required for CN and HK. example: last name Message: type: string description: Description of the status. title: message minLength: 1 maxLength: 500 example: Request is in-progress Certification-Source: title: CertificationSource description: Information related to the KYC source. allOf: - $ref: '#/components/schemas/Personal-Details' - type: object properties: role: type: string title: role description: Role of business person. Supported values are OWNER_OR_OPERATOR, PARTNER, UBO, DIRECTOR_CONTROL_PERSON_OR_LEGAL_REP, AGENT_OR_AUTHORISED_PERSON. example: AGENT_OR_AUTHORISED_PERSON merchant_type: $ref: '#/components/schemas/Merchant-Type' Status-Details: title: StatusDetails description: Status Details. type: object properties: status: $ref: '#/components/schemas/Status' message: $ref: '#/components/schemas/Message' Person-Document: title: PersonDocument type: object description: Document information for business person KYC validation. required: - type - sub_type properties: type: type: string title: type description: Type of identity document (ID). Provide details for one primary identity document (CHINESE_RESIDENT_IDENTITY_CARD, NATIONAL_OR_STATE_ID, PASSPORT, DRIVERS_LICENSE, RESIDENCE_PERMIT, TAX_ID, PROOF_OF_AGE_CARD, MY_NUMBER_CARD, MAINLAND_TRAVEL_PERMIT), optionally supplemented by AUTHORISED_LETTER, PROOF_OF_ADDRESS, or HAND_HOLD_PHOTO if required.
AUTHORISED_LETTER is required if the role is AUTHORISED_PERSON
NATIONAL_OR_STATE_ID, PASSPORT, RESIDENCE_PERMIT, MAINLAND_TRAVEL_PERMIT are applicable for CHINA.
NATIONAL_OR_STATE_ID, PASSPORT, RESIDENCE_PERMIT, CHINESE_RESIDENT_IDENTITY_CARD, MAINLAND_TRAVEL_PERMIT are applicable for HONGHONG. enum: - CHINESE_RESIDENT_IDENTITY_CARD - NATIONAL_OR_STATE_ID - PASSPORT - DRIVERS_LICENSE - RESIDENCE_PERMIT - TAX_ID - PROOF_OF_AGE_CARD - MY_NUMBER_CARD - MAINLAND_TRAVEL_PERMIT - AUTHORISED_LETTER - PROOF_OF_ADDRESS - HAND_HOLD_PHOTO example: NATIONAL_OR_STATE_ID sub_type: type: string title: sub_type description: Applicable for all id type other than PASSPORT. Front and Back both sub_type is applicable for CN and HK. When BACK is used, number, expiry_date, issue_date, issuing_authority are not required. enum: - FRONT - BACK example: FRONT number: type: string title: number minLength: 1 maxLength: 128 description: Document ID number. Required for CHINA and HONGKONG. example: ID123456789 expiry_date: allOf: - $ref: '#/components/schemas/Common-Date' title: expiry_date description: The expiry date of the ID document; format yyyy-mm-dd. Fill in 9999-12-31 if there is no expiry date. Required for CHINA and HONGKONG. issue_date: allOf: - $ref: '#/components/schemas/Common-Date' title: issue_date description: Issuing date of the ID document; format yyyy-mm-dd. Required for CHINA and HONGKONG. issuing_authority: type: string title: issuing_authority minLength: 1 maxLength: 2048 description: Issuing authority of merchant's identity document. Required for CHINA and HONGKONG. example: Government of China file_id: $ref: '#/components/schemas/File-Id' Business-Person-Address: title: BusinessPersonAddress description: Business person address information. allOf: - $ref: '#/components/schemas/Business-Address' - type: object title: Business-Person-Address properties: country_code: allOf: - $ref: '#/components/schemas/Country-Code' title: country_code description: Country code. Required for CHINA and HONGKONG. Information-Type: type: string title: information_type minLength: 1 maxLength: 32 description: 'Information type: text or file.' Common-Error-Response: title: CommonErrorResponse description: Details of error in the request. type: object properties: merchant_id: $ref: '#/components/schemas/Merchant-Id' status: allOf: - $ref: '#/components/schemas/Status' description: Status description.
Certification Webhook - Allowed values are APPROVED, DECLINED, RFI_PENDING.
Wallet Activation Webhook - Allowed values are AVAILABLE - account is available to be used; DECLINED - account application rejected; SUSPENDED - account is frozen; CLOSED - account is no longer available.
Link Account Webhook - Allowed values are AVAILABLE and DECLINED
Payment Webhook - Allowed values are SUCCESS, REJECTED.
Inbound Webhook - Allowed values is SUCCESS.
Transaction Reporting - PENDING, SUCCESS, REJECTED. message: $ref: '#/components/schemas/Message' Certification-Common-Details: title: CertificationCommonDetails type: object description: Certification details. properties: country_code: allOf: - $ref: '#/components/schemas/Country-Code' title: country_code description: Country code. merchant_ack: type: string title: merchant_ack description: Has the merchant signed the payment service provider service terms? YES or NO. enum: - 'YES' - 'NO' example: 'YES' business: $ref: '#/components/schemas/Business' Created-Time: type: string format: date-time description: Date and time of the file created. Pattern YYYY-MM-DDTHH:mm:ssZ title: created_time example: '2026-01-06T10:56:25Z' Common-Date: type: string title: date format: date description: Date in ISO 8601 (YYYY-MM-DD). example: '1975-03-07' Error-Detail: type: object title: ErrorDetail properties: issue: type: string minLength: 1 maxLength: 200 description: more details about the issue title: issue example: property emailAddress is mandatory and it cannot be empty action: type: string maxLength: 350 description: corrective action to be taken to resolve above issue title: action example: please provide valid value for property emailAddress code: type: string minLength: 1 maxLength: 64 description: unique code representing the issue title: code example: VC00010 Get-Certification-Response: title: GetCertificationResponse description: Response body for retrieving certification details including KYC status and business information. allOf: - $ref: '#/components/schemas/Certification-Common-Details' - type: object title: Get-Certification-Response properties: status: allOf: - $ref: '#/components/schemas/Status' title: status description: The status of the certification. Allowed values PENDING_SAVED, PENDING_SUBMITTED, APPROVED, DECLINED, RFI_PENDING. message: type: string title: message minLength: 1 maxLength: 500 description: Description of certification status. example: KYC approved merchant_type: $ref: '#/components/schemas/Merchant-Type' product_code: type: string title: product_code description: Product code. Currently supports PAYMENT_CORE and ACQ_ONLINE. minLength: 1 maxLength: 15 example: PAYMENT_CORE Webhook-Certification: title: WebhookCertification description: Notification for certification status updates. allOf: - $ref: '#/components/schemas/Common-Error-Response' - type: object properties: business_name: type: string title: business_name minLength: 1 maxLength: 256 description: Business name in English. example: business name business_name_in_local_language: type: string title: business_name_in_local_language minLength: 1 maxLength: 64 description: Business name in local language. example: business name in local Country-Code: type: string title: country_code pattern: ^[A-Z]{2,2}$ description: Country code. example: CN Business-Person: title: BusinessPerson description: Business person details for KYC certification. allOf: - $ref: '#/components/schemas/Personal-Details' - type: object properties: role: type: string title: role description: Role of business person. Required for both CHINA and HONGKONG.
UBO, DIRECTOR_CONTROL_PERSON_OR_LEGAL_REP, AGENT_OR_AUTHORISED_PERSON are applicable for CHINA.
UBO, DIRECTOR_CONTROL_PERSON_OR_LEGAL_REP, AGENT_OR_AUTHORISED_PERSON are applicable for HONGKONG.
For the limitation on the number of business persons-
UBO - 4 maximum across all regions (as UBO is defined as shareholding above 25%).
Legal rep/Director - 1 for CN (only one legal rep per CN law) and up to 25 directors for HK.
Agent - 1, as there can only be 1 agent. enum: - OWNER_OR_OPERATOR - PARTNER - UBO - DIRECTOR_CONTROL_PERSON_OR_LEGAL_REP - AGENT_OR_AUTHORISED_PERSON example: AGENT_OR_AUTHORISED_PERSON alias: type: string title: alias minLength: 1 maxLength: 2048 description: Business person's alias name. example: Hongbo nationality: type: string title: nationality description: Business person's nationality. Required for CHINA and HONGKONG. example: CN pattern: ^[A-Z]{2,2}$ gender: type: string title: gender description: Business person's gender. enum: - MALE - FEMALE example: MALE birth_details: $ref: '#/components/schemas/Birth-Details' address: $ref: '#/components/schemas/Business-Person-Address' tax_id_number: type: string title: tax_id_number minLength: 1 maxLength: 128 description: Tax id number. example: tax123456 business_title: type: string title: business_title minLength: 1 maxLength: 2048 description: Business title. example: Director documents: type: array description: List of documents title: documents items: $ref: '#/components/schemas/Person-Document' Certification-Request: title: CertificationRequest description: Request body for submitting certification information for KYC verification. allOf: - $ref: '#/components/schemas/Certification-Common-Details' - type: object title: Certification-Request required: - country_code - merchant_ack - business Birth-Details: title: BirthDetails type: object description: Birth information of the business person. properties: date: allOf: - $ref: '#/components/schemas/Common-Date' title: date description: ISO 8601 (YYYY-MM-DD), birth_date is required for CN and HK. country_code: allOf: - $ref: '#/components/schemas/Country-Code' title: country_code description: Country code. state: type: string title: state minLength: 1 maxLength: 2048 description: State (province of birth). example: beijing Information-Request-Webhook: type: object title: Information-Request-Webhook description: Information that needs to be responded to for the RFI question. properties: information_name: $ref: '#/components/schemas/Information-Name' information_type: $ref: '#/components/schemas/Information-Type' Status: type: string description: Status of the request. title: status minLength: 1 maxLength: 64 responses: Gateway-Timeout: description: Gateway Timeout content: application/json: schema: $ref: '#/components/schemas/Gateway-Error-Response' Unsupported-Media-Type: description: Unsupported Media Type content: application/json: schema: title: Unsupported-Media-Type-Response oneOf: - $ref: '#/components/schemas/Gateway-Error-Response' - $ref: '#/components/schemas/Service-Error-Response' examples: Un-Supported-Media-Type-Gateway-Error-Example: $ref: '#/components/examples/Un-Supported-Media-Type-Gateway-Error-Example' Un-Supported-Media-Type-Service-Error-Example: $ref: '#/components/examples/Un-Supported-Media-Type-Service-Error-Example' Not-Found: description: Not Found content: application/json: schema: $ref: '#/components/schemas/Gateway-Error-Response' examples: Not-Found-Gateway-Error-Example: $ref: '#/components/examples/Not-Found-Gateway-Error-Example' Conflict: description: Conflict content: application/json: schema: $ref: '#/components/schemas/Service-Error-Response' Service-Unavailable: description: Service Unavailable - The server is temporarily unable to handle the request. content: application/json: schema: $ref: '#/components/schemas/Gateway-Error-Response' examples: Service-Unavailable-Gateway-Example: $ref: '#/components/examples/Service-Unavailable-Gateway-Example' Forbidden: description: Forbidden content: application/json: schema: $ref: '#/components/schemas/Service-Error-Response' examples: Forbidden-Service-Example: $ref: '#/components/examples/Forbidden-Service-Example' Internal-Server-Error: description: Internal Server Error content: application/json: schema: title: Internal-Server-Error-Response oneOf: - $ref: '#/components/schemas/Gateway-Error-Response' - $ref: '#/components/schemas/Service-Error-Response' examples: Internal-Server-Service-Error-Example: $ref: '#/components/examples/Internal-Server-Service-Error-Example' Internal-Server-Gateway-Error-Example: $ref: '#/components/examples/Internal-Server-Gateway-Error-Example' Method-Not-Allowed: description: Method Not Allowed content: application/json: schema: title: Method-Not-Allowed-Response oneOf: - $ref: '#/components/schemas/Gateway-Error-Response' - $ref: '#/components/schemas/Service-Error-Response' examples: Method-Not-Allowed-Gateway-Error-Example: $ref: '#/components/examples/Method-Not-Allowed-Gateway-Error-Example' Method-Not-Allowed-Service-Error-Example: $ref: '#/components/examples/Method-Not-Allowed-Service-Error-Example' Bad-Request: description: Bad Request content: application/json: schema: title: Bad-Request-Response oneOf: - $ref: '#/components/schemas/Gateway-Error-Response' - $ref: '#/components/schemas/Service-Error-Response' examples: Bad-Request-Service-Error-Example: $ref: '#/components/examples/Bad-Request-Service-Error-Example' Bad-Request-Gateway-Error-Example: $ref: '#/components/examples/Bad-Request-Gateway-Error-Example' Unauthorized: description: Unauthorized content: application/json: schema: title: Unauthorized-Response oneOf: - $ref: '#/components/schemas/Service-Error-Response' - $ref: '#/components/schemas/Gateway-Error-Response' examples: Unauthorized-Service-Error-Example: $ref: '#/components/examples/Unauthorized-Service-Error-Example' Unauthorized-Gateway-Error-Example: $ref: '#/components/examples/Unauthorized-Gateway-Error-Example' Too-Many-Requests: description: Too Many Requests - Rate limit exceeded. Retry after the specified time. content: application/json: schema: $ref: '#/components/schemas/Gateway-Error-Response' examples: Too-Many-Requests-Gateway-Example: $ref: '#/components/examples/Too-Many-Requests-Gateway-Example' examples: Method-Not-Allowed-Service-Error-Example: value: ref_id: ec689822-9864-4c4d-9d68-222467627901 error_details: - issue: Method not supported action: Method not supported for this endpoint, please use valid http verb code: CC00001 Un-Supported-Media-Type-Service-Error-Example: value: ref_id: ec689822-9864-4c4d-9d68-222467627902 error_details: - issue: Media type not supported action: please use valid content-type in header code: CC00002 Unauthorized-Gateway-Error-Example: value: httpCode: '401' httpMessage: Unauthorized moreInformation: The server could not verify that you are authorized to access the URL Certification-Request-Cn: value: country_code: CN merchant_ack: 'YES' business: name: payment service provider name_in_local_language: payment service provider establishment_date: '1975-03-07' license_expiry_date: '1975-03-07' address: street_name: Schillerstrasse 23 postal_code: '999077' city: Ras Al Khaimah district: district1111 state: Ras al Khaymah products_and_services_category: KC02001008 account_usage: - ONLINE_MARKETPLACE_TRADING documents: - type: CERTIFICATE_OF_REGISTRATION sub_type: CERTIFICATE_OF_REGISTRATION number: DE123456789 file_id: N1234567891011121314151617 business_persons: - role: AGENT_OR_AUTHORISED_PERSON first_name: Hongbo first_name_in_local_language: first name last_name: Lin last_name_in_local_language: last name nationality: CN birth_details: date: '1975-03-07' address: street_name: Schillerstrasse 23 postal_code: '999077' city: Ras Al Khaimah district: district1111 state: Ras al Khaymah country_code: CN documents: - type: NATIONAL_OR_STATE_ID sub_type: FRONT number: ID123456789 expiry_date: '1975-03-07' issue_date: '1975-03-07' issuing_authority: Government of China file_id: N1234567891011121314151617 - type: NATIONAL_OR_STATE_ID sub_type: BACK file_id: N1234567891011121314151617 Un-Supported-Media-Type-Gateway-Error-Example: value: httpCode: '415' httpMessage: Unsupported Media Type moreInformation: Unsupported Content-Type application/octet-stream Too-Many-Requests-Gateway-Example: value: httpCode: '429' httpMessage: Too Many Requests moreInformation: Rate Limit exceeded Certification-Request-Hk: value: country_code: CN merchant_ack: 'YES' business: name: payment service provider name_in_local_language: payment service provider establishment_date: '1975-03-07' license_expiry_date: '1975-03-07' address: street_name: Schillerstrasse 23 postal_code: '999077' city: Ras Al Khaimah district: district1111 state: Ras al Khaymah products_and_services_category: KC02001008 tax_id_type: VAT tax_id_number: tax_id_number1111 account_usage: - ONLINE_MARKETPLACE_TRADING description: Selling products or purchasing raw materials on online platforms website: http://www.company.cn business_proof_file_id: N1234567891011121314151622 documents: - type: CERTIFICATE_OF_REGISTRATION sub_type: ACRA number: DE123456789 file_id: N1234567891011121314151617 business_persons: - role: AGENT_OR_AUTHORISED_PERSON first_name: Hongbo first_name_in_local_language: first name middle_name: s middle_name_in_local_language: middle name last_name: Lin last_name_in_local_language: last name alias: Hongbo nationality: CN gender: MALE birth_details: date: '1975-03-07' country_code: CN state: beijing address: street_name: Schillerstrasse 23 postal_code: '999077' city: Ras Al Khaimah district: district1111 state: Ras al Khaymah country_code: CN tax_id_number: tax123456 business_title: Director documents: - type: NATIONAL_OR_STATE_ID sub_type: FRONT number: ID123456789 expiry_date: '1975-03-07' issue_date: '1975-03-07' issuing_authority: Government of China file_id: N1234567891011121314151617 Not-Found-Gateway-Error-Example: value: httpCode: '404' httpMessage: Not Found moreInformation: No resources match requested URI Certification-Rfi-Pending-Webhook-Example: value: merchant_id: 27162edf-9429-453e-8289-ddbba0627327 status: RFI_PENDING business_name: company.enterprise.name business_name_in_local_language: 北京科技有限责任公司 message: Englishname is not standard-英文名不规范,fm_return_company_certificates_expiration-补充材料_证照过期_企业 Bad-Request-Gateway-Error-Example: value: httpCode: '400' httpMessage: Bad Request moreInformation: please provide valid value for request Certification-Request: value: country_code: CN merchant_ack: 'YES' business: name: payment service provider name_in_local_language: payment service provider establishment_date: '1975-03-07' license_expiry_date: '1975-03-07' address: street_name: Schillerstrasse 23 postal_code: '999077' city: Ras Al Khaimah district: district1111 state: Ras al Khaymah products_and_services_category: KC02001008 tax_id_type: VAT tax_id_number: tax_id_number1111 account_usage: - ONLINE_MARKETPLACE_TRADING description: Selling products or purchasing raw materials on online platforms website: http://www.company.cn business_proof_file_id: N1234567891011121314151622 documents: - type: CERTIFICATE_OF_REGISTRATION sub_type: ACRA number: DE123456789 file_id: N1234567891011121314151617 business_persons: - role: AGENT_OR_AUTHORISED_PERSON first_name: Hongbo first_name_in_local_language: first name middle_name: s middle_name_in_local_language: middle name last_name: Lin last_name_in_local_language: last name alias: Hongbo nationality: CN gender: MALE birth_details: date: '1975-03-07' country_code: CN state: beijing address: street_name: Schillerstrasse 23 postal_code: '999077' city: Ras Al Khaimah district: district1111 state: Ras al Khaymah country_code: CN tax_id_number: tax123456 business_title: Director documents: - type: NATIONAL_OR_STATE_ID sub_type: FRONT number: ID123456789 expiry_date: '1975-03-07' issue_date: '1975-03-07' issuing_authority: Government of China file_id: N1234567891011121314151617 Certification-Declined-Webhook-Example: value: merchant_id: 99f7f4b6-490c-468b-bd1b-f29310f9ebdd status: DECLINED business_name: company.enterprise.name business_name_in_local_language: 北京科技有限责任公司 message: reject_all Forbidden-Service-Example: value: ref_id: ec689822-9864-4c4d-9d68-222467627902 error_details: - code: CC00008 issue: User does not have privilege to access this functionality. action: Please reach out to support team to enable this feature. Service-Unavailable-Gateway-Example: value: httpCode: '503' httpMessage: Service is temporarily unavailable moreInformation: Retry the request after some time Method-Not-Allowed-Gateway-Error-Example: value: httpCode: '405' httpMessage: Method Not Allowed moreInformation: The method is not allowed for the requested URL Internal-Server-Gateway-Error-Example: value: httpCode: '500' httpMessage: Internal Server Error moreInformation: Internal Server Error Bad-Request-Service-Error-Example: value: ref_id: ec689822-9864-4c4d-9d68-222467627901 error_details: - issue: record that you are searching is not found action: resend the request with valid values code: VC00003 RFI-Notification-Example: summary: Example RFI notification payload value: merchant_id: ClientCustomerID1234 rfi_id: RFI123 type: KYC status: OPEN created_time: '2025-01-08T09:50:20Z' expiry_time: '2025-02-08T09:50:20Z' creditor_id: CR21245734 questions: - question_id: Q123654 description_code: KYCDR02001 description_english: '[Business person name] - Please upload a photo of an original ID. (not a copy or screenshot)' description_chinese: '[姓名] - 提供的证件照片非证件原件照片,请提供证件原件照片。' information_request: - information_name: ID Photo information_type: TEXT certification_source: merchant_type: ENTERPRISE role: UBO first_name: Hongbo middle_name: Su last_name: Lin first_name_in_local_language: first name middle_name_in_local_language: middle name last_name_in_local_language: last name Certification-Approved-Webhook-Example: value: merchant_id: ec689822-9864-4c4d-9d68-222467627901 status: APPROVED message: KYC request is approved business_name: business name business_name_in_local_language: business name in local Get-Certification: value: country_code: CN merchant_ack: 'YES' business: name: payment service provider name_in_local_language: payment service provider establishment_date: '1975-03-07' license_expiry_date: '1975-03-07' address: street_name: Schillerstrasse 23 postal_code: '999077' city: Ras Al Khaimah district: district1111 state: Ras al Khaymah products_and_services_category: KC02001008 tax_id_type: VAT tax_id_number: tax_id_number1111 account_usage: - ONLINE_MARKETPLACE_TRADING description: Selling products or purchasing raw materials on online platforms website: http://www.company.cn business_proof_file_id: N1234567891011121314151622 documents: - type: CERTIFICATE_OF_REGISTRATION sub_type: ACRA number: DE123456789 file_id: N1234567891011121314151617 business_persons: - role: AGENT_OR_AUTHORISED_PERSON first_name: Hongbo first_name_in_local_language: first name middle_name: s middle_name_in_local_language: middle name last_name: Lin last_name_in_local_language: last name alias: Hongbo nationality: CN gender: MALE birth_details: date: '1975-03-07' country_code: CN state: beijing address: street_name: Schillerstrasse 23 postal_code: '999077' city: Ras Al Khaimah district: district1111 state: Ras al Khaymah country_code: CN tax_id_number: tax123456 business_title: Director documents: - type: NATIONAL_OR_STATE_ID sub_type: FRONT number: ID123456789 expiry_date: '1975-03-07' issue_date: '1975-03-07' issuing_authority: Government of China file_id: N1234567891011121314151617 certification_status: APPROVED message: KYC approved merchant_type: ENTERPRISE product_code: PAYMENT_CORE Certification-Save-Acknowledgement: value: status_details: status: PENDING_SAVED message: Request is accepted and the further processing is in-progress Internal-Server-Service-Error-Example: value: ref_id: ec689822-9864-4c4d-9d68-222467627902 error_details: - issue: unable to serve your request at this moment action: Please refer to documentation provided or contact support team code: CC00004 Unauthorized-Service-Error-Example: value: ref_id: ec689822-9864-4c4d-9d68-222467627902 error_details: - issue: User not authorized for this functionality action: please use valid credentials to access this functionality code: CC00007 Certification-Submit-Acknowledgement: value: status_details: status: PENDING_SUBMITTED message: Request is accepted and the further processing is in-progress parameters: Operation: name: Operation in: header required: true description: Operation to indicate which functionality to be invoked. schema: type: string title: Operation enum: - SAVE - SUBMIT example: SAVE Idempotency-Id: in: header name: Idempotency-Id description: "Your unique identification for a POST request \n - Maximum length is 128. \n-CitiConnect API responds with an error (HTTP status 4XX) if your POST request idempotency identification value is a duplicate across a recent history of idempotency identifications in Citi's database. \n- If you don't receive any response (HTTP status 2XX, 4XX or 5XX) from Citi to your POST request and you wish to retry, reinitiate your request with the same idempotency identification to prevent accidental duplicate payment." schema: type: string title: Idempotency-Id minLength: 1 maxLength: 128 example: a44cbb606de4edb9a7a123414bba3bb required: true Event-Type: name: Event-Type in: header required: true description: Type of event (e.g., CERTIFICATION, WALLET_ACTIVATION, LINK_ACCOUNT, PAYMENT, INBOUND, RFI). schema: type: string title: event-type minLength: 1 maxLength: 64 example: Webhook Country-Code: in: header name: Country-Code description: Marketplace's country code. schema: pattern: ^[A-Z]{2,2}$ type: string title: Country-Code example: US required: true Apim-Guid: in: header name: Apim-Guid description: Unique system generated reference number generated by Citi. Refer to this number in case of any discrepancy reporting to a Citi representative. schema: type: string maxLength: 128 minLength: 1 title: Apim-Guid required: true example: na-apimgwgtds04~4a98cbc5-d813-4e65-bc81-d70f0f87f6ec Merchant-Id: in: header name: Merchant-Id description: CITI generated Merchant ID during merchant creation. schema: type: string title: Merchant-Id minLength: 1 maxLength: 36 example: ec689822-9864-4c4d-9d68-22246762901 required: true Event-Name: name: Event-Name in: header description: Name of event (e.g., PAYOUT, PAYIN). schema: type: string title: event-name minLength: 1 maxLength: 64 example: Payout Client-Id: in: query name: client_id description: Your unique identification, same as the identification you use for OAuth token generation, Citi shared with you during your CitiConnect API onboarding. schema: type: string title: Client-Id example: 6d3cf821-db6d-496d-bec0-064a362e9c31 minimum: 1 maximum: 128 required: true headers: Apim-Guid: description: Unique system generated reference number generated by Citi. Refer to this number in case of any discrepancy reporting to a Citi representative. schema: type: string maxLength: 128 minLength: 1 title: Apim-Guid required: true example: na-apimgwgtds04~4a98cbc5-d813-4e65-bc81-d70f0f87f6ec securitySchemes: oAuth2: type: oauth2 flows: clientCredentials: tokenUrl: https://b2b.api.icg.citi.com/authenticationservices/v3/oauth/token scopes: /authenticationservices/v1: Access to marketplace management APIs