{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://raw.githubusercontent.com/api-evangelist/credorax/main/json-schema/credorax-post-charges-request-schema.json",
  "title": "PostChargesRequest",
  "x-generated": "2026-10-11",
  "x-method": "derived",
  "x-generator": "derive-json-schema.py",
  "x-source": "openapi/_ae-authored/credorax-openapi-generated.yml#/components/schemas/PostChargesRequest",
  "type": "object",
  "properties": {
    "amount": {
      "type": "integer",
      "description": "Charge amount in the minor units of the given currency."
    },
    "currency": {
      "type": "string",
      "description": "Charge currency as a three-letter ISO 4217 code."
    },
    "type": {
      "type": "string",
      "description": "Stored-credential indicator describing how the charge is initiated."
    },
    "description": {
      "type": "string",
      "description": "Optional description shown on the charge."
    },
    "customerId": {
      "type": "string",
      "description": "Identifier of the customer to associate with this charge."
    },
    "card": {
      "type": "string",
      "description": "Card token or ID, or CardCreate object."
    },
    "paymentMethod": {
      "type": "string",
      "description": "Payment method ID or Payment Method object."
    },
    "flow": {
      "type": "object",
      "description": "Payment-process details specific to the payment method."
    },
    "captured": {
      "type": "boolean",
      "description": "Whether to immediately capture the charge."
    },
    "options": {
      "type": "object",
      "description": "Authorization options."
    },
    "billing": {
      "type": "object",
      "description": "Billing details."
    },
    "shipping": {
      "type": "object",
      "description": "Shipping details for the order."
    },
    "threeDSecure": {
      "type": "object",
      "description": "3D Secure options."
    },
    "splits": {
      "type": "array",
      "description": "Split part of the charge amount to other merchants."
    },
    "recipient": {
      "type": "object",
      "description": "Recipient details, required for account-funding / top-up transactions."
    },
    "sender": {
      "type": "object",
      "description": "Sender details, required for top-up transactions when the sender differs from the recipient."
    },
    "merchantAccountId": {
      "type": "string",
      "description": "Identifier of the merchant account to use to process this charge."
    },
    "external": {
      "type": "object",
      "description": "External references to attach to the charge."
    },
    "collectionMode": {
      "type": "string",
      "description": "Indicates how the order was collected for this charge."
    },
    "metadata": {
      "type": "object",
      "description": "Set of key-value pairs for storing additional information."
    }
  },
  "required": [
    "amount",
    "currency"
  ]
}