Citi · Schema

PaymentRequest

Payment Request

BankingFinancial ServicesOpen BankingPaymentsTreasuryISO 20022Commercial CardsForeign ExchangeCustodyTrade FinanceCorporate BankingAPI Gateway

Properties

Name Type Description
customer object
merchant object
method object
transaction object
shipping object
View JSON Schema on GitHub

JSON Schema

citi-payment-request-schema.json Raw ↑
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://raw.githubusercontent.com/api-evangelist/citi/main/json-schema/citi-payment-request-schema.json",
  "title": "PaymentRequest",
  "description": "Payment Request",
  "x-generated": "2026-10-12",
  "x-method": "derived",
  "x-generator": "derive-json-schema.py",
  "x-source": "openapi/citi-digitalpayments-api-openapi.yml#/components/schemas/PaymentRequest",
  "type": "object",
  "required": [
    "customer",
    "merchant",
    "method",
    "transaction"
  ],
  "properties": {
    "customer": {
      "$ref": "#/$defs/Customer"
    },
    "merchant": {
      "$ref": "#/$defs/Merchant"
    },
    "method": {
      "$ref": "#/$defs/Method"
    },
    "transaction": {
      "$ref": "#/$defs/Transaction"
    },
    "shipping": {
      "$ref": "#/$defs/Shipping"
    }
  },
  "additionalProperties": false,
  "$defs": {
    "AdditionalInfo": {
      "properties": {
        "name": {
          "maxLength": 50,
          "minLength": 1,
          "type": "string",
          "description": "Specifies a character string with a maximum length of 50 characters. \n- For Brazil QR transaction.additionalinfo.name is optional, if the `transaction.additionalinfo.name` parameter is provided by the merchant, then the `transaction.additionalinfo.value` parameter is mandatory."
        },
        "value": {
          "maxLength": 200,
          "minLength": 1,
          "type": "string",
          "description": "Specifies a character string with a maximum length of 200 characters. \n- For Brazil QR transaction.the `additionalinfo.value` parameter is optional, if the `transaction.additionalinfo.value` parameter is provided by merchant, then the `transaction.additionalinfo.name` parameter is mandatory."
        }
      }
    },
    "Address": {
      "description": "\n- For Brazil QR transaction `shipping.address` details is not applicable",
      "required": [
        "country_code"
      ],
      "properties": {
        "line1": {
          "maxLength": 40,
          "minLength": 1,
          "type": "string",
          "description": "Customer line1 address"
        },
        "line2": {
          "maxLength": 40,
          "minLength": 1,
          "type": "string",
          "description": "Customer line2 address."
        },
        "city": {
          "maxLength": 30,
          "minLength": 1,
          "type": "string",
          "description": "Customer city"
        },
        "postal_code": {
          "maxLength": 16,
          "minLength": 1,
          "type": "string",
          "description": "Customer postal code."
        },
        "state": {
          "maxLength": 30,
          "minLength": 1,
          "type": "string",
          "description": "Customer state."
        },
        "country_code": {
          "type": "string",
          "enum": [
            "BR"
          ],
          "description": "Customer country."
        }
      }
    },
    "Customer": {
      "properties": {
        "id": {
          "maxLength": 40,
          "minLength": 1,
          "type": "string",
          "description": "Merchant internal customer ID."
        },
        "type": {
          "type": "string",
          "enum": [
            "INDIVIDUAL",
            "BUSINESS"
          ],
          "description": "Merchant customer type \n - For Brazil QR creation `customer.type` parameter is mandatory"
        },
        "payer_id": {
          "maxLength": 128,
          "minLength": 1,
          "type": "string",
          "description": "Customer's payer identification (e.g., email address) \n - For Brazil QR creation, the `customer.payer_id` parameter is mandatory and only a numeric value is allowed, individual person tax identification (CPF) allowed length = 11  or business entity tax identification (CNPJ) allowed length = 14"
        },
        "payer_type": {
          "type": "string",
          "enum": [
            "BIID",
            "EMAL",
            "EWAL",
            "MBNO",
            "NIDN"
          ],
          "description": "Customer's payer type (BIID for bill identification, EMAL for email address, EWAL for electronic wallet identification, MBNO for mobile number and NIDN for national identification or tax identification \n - For Brazil QR creation `customer.payer_type` parameter is mandatory, applicable value NIDN"
        },
        "name": {
          "maxLength": 200,
          "minLength": 1,
          "type": "string",
          "description": " Payer name \n - For Brazil QR creation customer.name parameter is mandatory and allowed datatype alphanumeric, individual person or business entity name."
        },
        "address": {
          "$ref": "#/$defs/Address"
        }
      }
    },
    "Merchant": {
      "type": "object",
      "required": [
        "id"
      ],
      "properties": {
        "id": {
          "maxLength": 40,
          "minLength": 1,
          "type": "string",
          "description": "Merchant ID assigned by Citi."
        },
        "payee_id": {
          "maxLength": 128,
          "minLength": 1,
          "type": "string",
          "description": "Merchant's payee identification (e.g., email address) \n - For Brazil QR creation, `merchant.payee_id` parameter is mandatory, allowed maxlength is 77."
        },
        "payee_type": {
          "type": "string",
          "enum": [
            "BIID",
            "EMAL",
            "EWAL",
            "MBNO",
            "NIDN"
          ],
          "description": "Merchant's payee type (BIID for bill identification, EMAL for email address, EWAL for electronic wallet identification, MBNO for mobile number and NIDN for national identification or tax identification \n - For Brazil QR creation `merchant.payee_type` parameter is mandatory"
        }
      },
      "additionalProperties": false
    },
    "Method": {
      "type": "object",
      "required": [
        "type"
      ],
      "properties": {
        "type": {
          "description": "Method specified by the customer for the transaction \n- Provide PIX for Brazil QR creation",
          "type": "string",
          "enum": [
            "PIX"
          ]
        }
      }
    },
    "Shipping": {
      "type": "object",
      "properties": {
        "name": {
          "maxLength": 100,
          "minLength": 1,
          "type": "string",
          "description": "Recipient name \n- For Brazil QR, the `shipping.name` is not applicable."
        },
        "phone": {
          "maxLength": 10,
          "minLength": 1,
          "type": "number",
          "description": "Recepient phone \n- For Brazil QR, the `shipping.phone` is not applicable."
        },
        "carrier": {
          "maxLength": 200,
          "minLength": 1,
          "type": "string",
          "description": "Service that shipped a physical product \n- For Brazil QR, the `shipping.carrier` is not applicable."
        },
        "tracking_number": {
          "maxLength": 40,
          "minLength": 8,
          "type": "string",
          "description": "Tracking number. \n- For Brazil QR, the `shipping.tracking_number` is not applicable."
        },
        "address": {
          "$ref": "#/$defs/Address"
        }
      }
    },
    "Transaction": {
      "type": "object",
      "required": [
        "reference",
        "amount",
        "currency_code"
      ],
      "properties": {
        "reference": {
          "maxLength": 128,
          "minLength": 1,
          "type": "string",
          "description": "Unique transaction identification provided by the merchant during transaction creation \n- transaction.reference parameter is mandatory for all transaction type creation   \n- For Brazil QR creation `transaction.reference` parameter should be of length between 26 to 35 and allowed datatype is alphanumeric and should not be filled with spaces or zeroes"
        },
        "order_id": {
          "maxLength": 128,
          "minLength": 1,
          "type": "string",
          "description": "Unique order identification provided by the merchant during transaction creation."
        },
        "expiry_time": {
          "type": "integer",
          "format": "int32",
          "minimum": 10,
          "description": "Expiration time for QR collection, specified in seconds \n- QR Creation request will be rejected, if the expiration time value is less than 10."
        },
        "amount": {
          "type": "number",
          "minimum": 0.01,
          "maximum": 100000000000000,
          "description": "Transaction amount \n - For Brazil QR creation decimal values are mandatory for transaction.amount and it must have 2 digits \n - For Brazil QR creation maximum amount limit is 9999999999.99"
        },
        "currency_code": {
          "type": "string",
          "enum": [
            "BRL"
          ],
          "description": "ISO 4217 Currency Code for instance  USD/GBP/EUR \n- transaction.currency_code parameter is mandatory for all transaction type creation"
        },
        "update_flag": {
          "type": "string",
          "enum": [
            "Y",
            "N"
          ],
          "description": "For QR Creation (e.g., Brazil), during transaction processing if the merchant wants to allow their clients to change QR amount then the value should be Y otherwise, the default value is 'N'."
        },
        "qr_image": {
          "type": "string",
          "enum": [
            "Y",
            "N"
          ],
          "description": "Merchant to confirm QR Image is required or not, If required, the value should be 'Y'."
        },
        "additional_info": {
          "type": "array",
          "items": {
            "$ref": "#/$defs/AdditionalInfo"
          }
        }
      }
    }
  }
}

Work with this as data

Every JSON Schema here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for schemas

4 MCP tools reach this
  • find_json_schemasBrowse and filter every JSON Schema in the catalog.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This JSON Schema
curl "https://apis.io/api/v1/json-schemas/citi-payment-request"
All schemas
curl "https://apis.io/api/v1/json-schemas?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

A second provider on the same verified email joins the account you already have.