{ "$schema": "https://json-schema.org/draft/2020-12/schema", "$id": "https://raw.githubusercontent.com/api-evangelist/citi/main/json-schema/citi-initial-acknowledgement-response-schema.json", "title": "InitialAcknowledgementResponse", "x-generated": "2026-10-12", "x-method": "derived", "x-generator": "derive-json-schema.py", "x-source": "openapi/citi-non-payment-messages-api-openapi.yml#/components/schemas/Initial-Acknowledgement-Response", "type": "object", "properties": { "message_id": { "type": "string", "description": "Message Identification", "readOnly": true, "maxLength": 35, "title": "message_id" }, "creation_date_time": { "type": "string", "format": "date-time", "description": "UTC (ISO 8601 YYYY-MM-DDTHH:MM:SS.sssZ) \n- Date time when a message was created", "readOnly": true, "title": "creation_date_time" }, "message_type": { "type": "string", "description": "Message Type as provided by the customer \n- RFR - Request for Refund (camt.056) \n- RRFR - Response to Request for Refund(camt.029) \n- PCR - Payment Confirmation Request \n- RPCR - Response to Payment Confirmation Request \n- RFP - Request for Payment (pain.013) \n- RRFP - Response to Request for Payment (pain.014) \n- RRFICS - Response to Request for Information Compliance", "enum": [ "RFR", "RRFR", "PCR", "RPCR", "RFP", "RRFP", "RRFICS" ], "title": "message_type" }, "message": { "oneOf": [ { "$ref": "#/$defs/Initial-Response-To-Request-For-Refund" }, { "$ref": "#/$defs/Initial-Response-To-Payment-Confirmation-Request" }, { "$ref": "#/$defs/Initial-Response-To-Request-For-Payment" }, { "$ref": "#/$defs/Initial-Outgoing-Request-For-Refund" }, { "$ref": "#/$defs/Initial-Response-To-Request-for-Information-Compliance" } ] } }, "required": [ "message_id", "creation_date_time", "message_type" ], "$defs": { "Address": { "type": "string", "maxLength": 70, "minLength": 1, "maxItems": 7, "description": "Address", "title": "Address" }, "Debtor-Payment": { "type": "object", "title": "DebtorPayment", "writeOnly": true, "properties": { "name": { "minLength": 1, "maxLength": 140, "type": "string", "description": "Name of Debtor that may be passed for payment initiation", "title": "name" }, "street_name": { "minLength": 1, "maxLength": 70, "type": "string", "description": "Street Name of Debtor that may be passed for payment initiation", "title": "street_name" }, "building_number": { "minLength": 1, "maxLength": 16, "type": "string", "description": "Building number of Debtor that may be passed for payment initiation", "title": "building_number" }, "postal_code": { "minLength": 1, "maxLength": 16, "type": "string", "description": "Postal code of Debtor that may be passed for payment initiation", "title": "postal_code" }, "city": { "minLength": 1, "maxLength": 35, "type": "string", "description": "City of Debtor that may be passed for payment initiation", "title": "city" }, "state": { "minLength": 1, "maxLength": 35, "type": "string", "description": "State of Debtor that may be passed for payment initiation", "title": "state" }, "country": { "type": "string", "description": "Country of Debtor that may be passed for payment initiation", "pattern": "^[A-Z]{2,2}$", "title": "country" }, "address_lines": { "type": "array", "minItems": 1, "maxItems": 7, "description": "Debtor Address lines which is array of 7 lines and each line has maximum 70 characters which may be passed for payment initiation", "items": { "$ref": "#/$defs/Address" }, "title": "address_lines" } } }, "Initial-Outgoing-Request-For-Refund": { "type": "object", "title": "InitialOutgoingRequestForRefund", "properties": { "reasons": { "type": "object", "title": "reasons", "properties": { "code": { "type": "string", "description": "Code of Transaction reasons \n- AC03 InvalidCreditorAccountNumber \n- AM09 WrongAmount \n- CUST Requested by Customer \n- DUPL DuplicatePayment \n- FRAD FraudulentOrigin \n- FRTR FinalResponse \n- TECH TechnicalProblem \n- UPAY UnduePayment \n- UAPA Customer claims Credit Transfer is fraudulently induced", "enum": [ "AC03", "AM09", "CUST", "DUPL", "FRAD", "FRTR", "TECH", "UPAY", "AC02", "UAPA", "AGNT", "BE16", "COVR", "CURR", "CUTA", "DT01", "FRNA", "INDM", "MODT", "PAID", "SVNR", "SYAD", "ENUE", "NARR", "INCR", "BIAS", "DRTP", "WNTB", "MD06" ], "title": "code" }, "description": { "type": "string", "description": "Description of Transaction reasons. \n- For RFP warranty claim, the following codes/ warranty component may be used.The client may populate the code and warranty component, OR code, comma, free form text \n - N: No Legitimate Purpose \n- F: Part of Fraudulent Scheme to Induce Payment \n- H: Harassing \n- U: Otherwise Unlawful", "minLength": 1, "maxLength": 105, "title": "description" } }, "required": [ "code" ] }, "country": { "description": "ISO 3166 Alpha-2 code for the non pay message country. \n- This field is optional for US \n- This field is mandatory for SEPA", "type": "string", "default": "US", "enum": [ "US", "IE", "DE", "AT", "BE", "FI", "FR", "GR", "IT", "LU", "NL", "PT", "ES", "SK", "GB", "AU", "IN", "AR", "BR", "BG", "HK" ], "title": "country" }, "status": { "type": "object", "title": "status", "readOnly": true, "properties": { "date_time": { "type": "string", "format": "date-time", "description": "UTC (ISO 8601 YYYY-MM-DDTHH:MM:SS.sssZ) \n- Status change date time", "title": "date_time" }, "code": { "type": "string", "description": "ISO 20022 message status code", "enum": [ "PDNG" ], "title": "code" }, "description": { "type": "string", "description": "Status code description \n- PDNG - Pending", "minLength": 1, "maxLength": 256, "title": "description" } }, "required": [ "date_time", "code", "description" ] } } }, "Initial-Response-To-Payment-Confirmation-Request": { "type": "object", "title": "InitialResponseToPaymentConfirmationRequest", "properties": { "uetr": { "type": "string", "description": "UETR of Original payment", "pattern": "^[a-f0-9]{8}-[a-f0-9]{4}-4[a-f0-9]{3}-[89ab][a-f0-9]{3}-[a-f0-9]{12}$", "title": "uetr" }, "status": { "type": "object", "title": "status", "readOnly": true, "properties": { "date_time": { "type": "string", "format": "date-time", "description": "UTC (ISO 8601 YYYY-MM-DDTHH:MM:SS.sssZ) \n- Status change date time", "title": "date_time" }, "code": { "type": "string", "description": "ISO 20022 message status code", "enum": [ "PDNG" ], "title": "code" }, "description": { "type": "string", "description": "Status code description \n- PDNG - Pending", "minLength": 1, "maxLength": 256, "title": "description" } }, "required": [ "date_time", "code", "description" ] } } }, "Initial-Response-To-Request-For-Payment": { "type": "object", "title": "InitialResponseToRequestForPayment", "properties": { "uetr": { "type": "string", "pattern": "^[a-f0-9]{8}-[a-f0-9]{4}-4[a-f0-9]{3}-[89ab][a-f0-9]{3}-[a-f0-9]{12}$", "description": "UUID v4 format unique reference generated in outgoing payment", "title": "uetr" }, "decision_code": { "type": "string", "description": "Acceptance or Rejection of request for payment \n- ACTC - Acceptance to make requested payment \n- RJCT - Decline to pay requested amount", "enum": [ "ACTC", "RJCT" ], "title": "decision_code" }, "end_to_end_id": { "maxLength": 35, "minLength": 1, "pattern": "^(?!\\s*$).+", "type": "string", "description": "Unique End to End ID of Response to Request for Payment", "title": "end_to_end_id" }, "accepted_amount": { "type": "number", "minimum": 0.01, "maximum": 1000000000000000, "description": "Amount to be paid from Request for Payment.Indicates if Instructed amount in Payment request will be paid, or different amount.If Different amount not allowed by Payment Request, this field must carry Instructed amount \n- Mandatory if message.decision_code = ACTC", "title": "accepted_amount" }, "accepted_currency": { "type": "string", "description": "ISO 4217 code for the accepted currency \n- Mandatory if message.decision_code = ACTC", "enum": [ "USD" ], "title": "accepted_currency" }, "scheduled_exec_date": { "type": "string", "format": "date", "description": "Date payment is expected to be made.Format is YYYY-MM-DD \n- Mandatory if message.decision_code = ACTC", "title": "scheduled_exec_date" }, "reasons": { "type": "object", "title": "reasons", "properties": { "code": { "type": "string", "description": "Code of Transaction reasons \n - Mandatory if message.decision_code = RJCT", "enum": [ "AC06", "AG01", "AG03", "AM09", "AM14", "BE04", "BE07", "CH11", "CUST", "DS04", "MD07", "NARR", "SL12" ], "title": "code" }, "description": { "type": "string", "description": "Description of Transaction reasons \n- Mandatory if message.reasons.code = NARR", "minLength": 1, "maxLength": 105, "title": "description" } } }, "debtor": { "$ref": "#/$defs/Debtor-Payment" }, "ultimate_debtor": { "$ref": "#/$defs/Ultimate-Debtor-Payment" }, "status": { "type": "object", "title": "status", "readOnly": true, "properties": { "date_time": { "type": "string", "format": "date-time", "description": "UTC (ISO 8601 YYYY-MM-DDTHH:MM:SS.sssZ) \n- Status change date time", "title": "date_time" }, "code": { "type": "string", "description": "ISO 20022 message status code", "enum": [ "PDNG" ], "title": "code" }, "description": { "type": "string", "description": "Status code description \n- PDNG - Pending", "minLength": 1, "maxLength": 256, "title": "description" } }, "required": [ "date_time", "code", "description" ] } }, "required": [ "decision_code", "end_to_end_id", "payment_information_id" ] }, "Initial-Response-To-Request-For-Refund": { "type": "object", "title": "InitialResponseToRequestForRefund", "properties": { "case_id": { "type": "string", "description": "Case Id received from clearing", "minLength": 1, "maxLength": 35, "title": "case_id" }, "decision_code": { "type": "string", "description": "Acceptance or Rejection of return of funds. Only the below 3 codes are applicable \n- IPAY - Acceptance to Return the payment \n- RJCR - Decline to Return the payment \n- PECR - Partially Executed Cancellation Return", "enum": [ "ACDA", "ACNR", "ACVA", "CHRG", "CNCL", "CONF", "CVAA", "CWFW", "FTNA", "ICOV", "IDUP", "IPAY", "IPYI", "MCOV", "MODI", "MWFW", "PDCR", "PECR", "PURP", "RJCR", "RJNR", "RJVA", "SMTC", "SMTI", "UWFW", "BIAS", "IDNE", "IVCR", "INFO", "NINF", "PDNG" ], "title": "decision_code" }, "reasons": { "type": "object", "title": "reasons", "properties": { "code": { "type": "string", "description": "Code of Transaction reasons \n- If decision_code = RJCR,reasons.code is mandatory for ResponseToRequest-For-Refund ", "enum": [ "AC04", "ADAC", "AGNT", "AM04", "ARDT", "ARPL", "CUST", "LEGL", "NARR", "NOAS", "NOOR", "PTNA", "RQDA", "WSEQ", "IDMN", "ACLR", "AEXR", "ARFR", "ARJR", "PATE", "RR04", "RCAR", "RCNR", "RCPR", "URTP" ], "title": "code" }, "description": { "type": "string", "description": "Reason code description (e.g., Debtor account is invalid.). \n- For reasons.code = NARR this field is mandatory", "minLength": 1, "maxLength": 105, "title": "description" } } }, "instructed_amount": { "type": "number", "description": "Instructed amount for partial acceptance of return request \n- Mandatory for ResponseToRequest-For-Refund with decision code as PECR.", "minimum": 0.01, "maximum": 1000000000000000, "title": "instructed_amount" }, "instructed_currency": { "type": "string", "description": "Instructed currency for partial acceptance of return request \n- Mandatory for ResponseToRequest-For-Refund with decision code as PECR", "enum": [ "USD", "EUR", "AUD", "ARS", "BRL", "HKD", "CNY" ], "title": "instructed_currency" }, "instruction_id": { "type": "string", "description": "Unique Instruction id on return payment initiation", "minLength": 1, "maxLength": 35, "title": "instruction_id" }, "end_to_end_id": { "type": "string", "description": "Unique end to end id on return payment initiation", "minLength": 1, "maxLength": 35, "title": "end_to_end_id" }, "country": { "description": "ISO 3166 Alpha-2 code for the non pay message country. \n- This field is optional for US \n- This field is mandatory for SEPA", "type": "string", "default": "US", "enum": [ "US", "IE", "DE", "AT", "BE", "FI", "FR", "GR", "IT", "LU", "NL", "PT", "ES", "SK", "BG" ], "title": "country" }, "status": { "type": "object", "title": "status", "readOnly": true, "properties": { "date_time": { "type": "string", "format": "date-time", "description": "UTC (ISO 8601 YYYY-MM-DDTHH:MM:SS.sssZ) \n- Status change date time", "title": "date_time" }, "code": { "type": "string", "description": "ISO 20022 message status code", "enum": [ "PDNG" ], "title": "code" }, "description": { "type": "string", "description": "Status code description \n- PDNG - Pending", "minLength": 1, "maxLength": 256, "title": "description" } }, "required": [ "date_time", "code", "description" ] } }, "required": [ "case_id", "decision_code", "end_to_end_id" ] }, "Initial-Response-To-Request-for-Information-Compliance": { "type": "object", "title": "Initial-Response-To-Request-for-Information-Compliance", "properties": { "uetr": { "type": "string", "description": "UETR of Original payment", "pattern": "^[a-f0-9]{8}-[a-f0-9]{4}-4[a-f0-9]{3}-[89ab][a-f0-9]{3}-[a-f0-9]{12}$", "title": "uetr" }, "status": { "type": "object", "title": "status", "readOnly": true, "properties": { "date_time": { "type": "string", "format": "date-time", "description": "UTC (ISO 8601 YYYY-MM-DDTHH:MM:SS.sssZ) \n- Status change date time", "title": "date_time" }, "code": { "type": "string", "description": "ISO 20022 message status code", "enum": [ "PDNG" ], "title": "code" }, "description": { "type": "string", "description": "Status code description \n- PDNG - Pending", "minLength": 1, "maxLength": 256, "title": "description" } }, "required": [ "date_time", "code", "description" ] } } }, "Ultimate-Debtor-Payment": { "type": "object", "title": "UltimateDebtorPayment", "writeOnly": true, "properties": { "name": { "minLength": 1, "maxLength": 140, "type": "string", "description": "Name of Ultimate Debtor that may be passed for payment initiation", "title": "name" }, "street_name": { "minLength": 1, "maxLength": 70, "type": "string", "description": "Street Name of Ultimate Debtor that may be passed for payment initiation", "title": "street_name" }, "building_number": { "minLength": 1, "maxLength": 16, "type": "string", "description": "Building number of Ultimate Debtor that may be passed for payment initiation", "title": "building_number" }, "postal_code": { "minLength": 1, "maxLength": 16, "type": "string", "description": "Postal code of Ultimate Debtor that may be passed for payment initiation", "title": "postal_code" }, "city": { "minLength": 1, "maxLength": 35, "type": "string", "description": "City of Ultimate Debtor that may be passed for payment initiation", "title": "city" }, "state": { "minLength": 1, "maxLength": 35, "type": "string", "description": "State of Ultimate Debtor that may be passed for payment initiation", "title": "state" }, "country": { "type": "string", "description": "Country of Ultimate Debtor that may be passed for payment initiation", "pattern": "^[A-Z]{2,2}$", "title": "country" }, "address_lines": { "type": "array", "minItems": 1, "maxItems": 7, "description": "Ultimate Debtor Address lines which is array of 7 lines and each line has maximum 70 characters which may be passed for payment initiation", "items": { "$ref": "#/$defs/Address" }, "title": "address_lines" } } } } }