Cash App · Schema
RecurringPaymentRequest
Financial ServicesPaymentsUnited StatesFintechNeobankBuy Now Pay LaterPayment AcceptanceDigital WalletConsumer Finance
Properties
| Name | Type | Description |
|---|---|---|
| requestId | string | A unique identifier for the request, used for idempotency |
| paymentMethod | object | |
| amount | object | The total amount of the payment |
| consumer | object | |
| billing | object | |
| shipping | object | |
| courier | object | |
| items | array | |
| discounts | array | |
| description | string | |
| merchant | object | |
| merchantReference | string | The reference/order ID in the merchant's system |
| shippingAmount | object | The shipping cost amount |
| taxAmount | object | The tax amount |
| custom | object | Custom key-value pairs for merchant use |
| paymentScheduleChecksum | string | Payment schedule validation checksum |
| enrichments | object |
JSON Schema
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"$id": "https://raw.githubusercontent.com/api-evangelist/cash-app/main/json-schema/cash-app-recurring-payment-request-schema.json",
"title": "RecurringPaymentRequest",
"x-generated": "2026-10-12",
"x-method": "derived",
"x-generator": "derive-json-schema.py",
"x-source": "openapi/cash-app-recurring-payments-api-openapi.yml#/components/schemas/RecurringPaymentRequest",
"type": "object",
"properties": {
"requestId": {
"type": "string",
"format": "uuid",
"description": "A unique identifier for the request, used for idempotency"
},
"paymentMethod": {
"$ref": "#/$defs/RecurringPaymentRequestPaymentMethod"
},
"amount": {
"$ref": "#/$defs/Money",
"description": "The total amount of the payment"
},
"consumer": {
"$ref": "#/$defs/Consumer"
},
"billing": {
"$ref": "#/$defs/Contact"
},
"shipping": {
"$ref": "#/$defs/Contact"
},
"courier": {
"$ref": "#/$defs/Shipping-Courier"
},
"items": {
"type": "array",
"items": {
"$ref": "#/$defs/Item"
}
},
"discounts": {
"type": "array",
"items": {
"$ref": "#/$defs/Discount"
}
},
"description": {
"type": "string"
},
"merchant": {
"$ref": "#/$defs/RecurringPaymentRequestMerchant"
},
"merchantReference": {
"type": "string",
"description": "The reference/order ID in the merchant's system"
},
"shippingAmount": {
"$ref": "#/$defs/Money",
"description": "The shipping cost amount"
},
"taxAmount": {
"$ref": "#/$defs/Money",
"description": "The tax amount"
},
"custom": {
"type": "object",
"additionalProperties": {
"description": "Any type"
},
"description": "Custom key-value pairs for merchant use"
},
"paymentScheduleChecksum": {
"type": "string",
"description": "Payment schedule validation checksum"
},
"enrichments": {
"$ref": "#/$defs/RecurringPaymentRequestEnrichments"
}
},
"required": [
"requestId",
"paymentMethod",
"amount"
],
"$defs": {
"Consumer": {
"type": "object",
"properties": {
"email": {
"type": "string",
"format": "email"
},
"givenNames": {
"type": "string",
"description": "The consumer's first name"
},
"surname": {
"type": "string",
"description": "The consumer's last name"
},
"phoneNumber": {
"type": "string"
}
},
"required": [
"email"
],
"description": "The consumer data model is used for gathering essential user information. It captures details such as the individual's first name, represented by `givenNames`, and their last name, captured under `surname`. In addition, it stores the user's contact number under `phoneNumber` and their email address under `email`. These fields collectively provide contact and identification details for a user.",
"title": "Consumer"
},
"Contact": {
"type": "object",
"properties": {
"name": {
"type": "string"
},
"line1": {
"type": "string",
"description": "First line of the address"
},
"line2": {
"type": "string",
"description": "Second line of the address "
},
"area1": {
"type": "string",
"description": "- AU: Suburb\n- NZ: Town or City\n- UK: Postal Town\n- US: City\n- Canada: City"
},
"area2": {
"type": "string",
"description": "- NZ: suburb\n- UK: village or local area."
},
"region": {
"type": "string",
"description": "- AU: State \n- NZ: Region\n- UK: County\n- US: State\n- CA: Province or Territory"
},
"postcode": {
"type": "string"
},
"countryCode": {
"$ref": "#/$defs/ContactCountryCode"
},
"phoneNumber": {
"type": "string",
"description": "The phone number, in [E.123](https://en.wikipedia.org/wiki/E.123) format."
}
},
"required": [
"name",
"line1",
"area1",
"region",
"postcode",
"countryCode"
],
"description": "This data model is used for storing an individual's contact information. Mandatory fields such as **name**, **line1**, **area1**, **region**, **postcode**, and **countryCode** help in capturing vital information about a user's location. \n\nThe `line2` and `area2` fields provide additional space for extended addresses, while `phoneNumber` can be used to store the user's contact number.\n\n\n<Warning Title=\"Important Note\">\n The `area1`, `area2` and `region` properties feature localized terminology based on country. Refer to the property descriptions for insights on each country's specific usage \n</Warning>\n",
"title": "Contact"
},
"ContactCountryCode": {
"type": "string",
"enum": [
"AU",
"NZ",
"US",
"CA",
"GB"
],
"title": "ContactCountryCode"
},
"Discount": {
"type": "object",
"properties": {
"displayName": {
"type": "string"
},
"amount": {
"$ref": "#/$defs/Money"
}
},
"description": "Discount applied to an order",
"title": "Discount"
},
"Item": {
"type": "object",
"properties": {
"name": {
"type": "string"
},
"sku": {
"type": "string"
},
"pageUrl": {
"type": "string"
},
"imageUrl": {
"type": "string"
},
"quantity": {
"type": "integer"
},
"price": {
"$ref": "#/$defs/Money"
},
"categories": {
"type": "array",
"items": {
"type": "array",
"items": {
"type": "string"
}
}
},
"estimatedShipmentDate": {
"type": "string",
"format": "date"
},
"preorder": {
"type": "boolean",
"default": false
}
},
"required": [
"name",
"quantity",
"price"
],
"description": "This data model is used to store crucial product details. The `price.amount` field represents the unit price of the individual item. The `quantity` field shows the number of units of the item. The `name` field denotes the name of the product, while `sku` holds the Stock Keeping Unit identifier. 100 is the maximum number of item objects in the items array.\n<Warning Title=\"Important Note\">\n It is crucial that the `price.amount` represents the unit price of the individual item.\n **Never** populate the `price.amount` by multiplying the quantity by the unit cost. Always enter the price for a single unit to maintain data accuracy.\n</Warning>\n",
"title": "Item"
},
"Money": {
"type": "object",
"properties": {
"amount": {
"type": "string",
"description": "The amount as a string representation of a decimal number, rounded to 2 decimal places."
},
"currency": {
"$ref": "#/$defs/MoneyCurrency"
}
},
"required": [
"amount",
"currency"
],
"description": "Object containing amount and currency",
"title": "Money"
},
"MoneyCurrency": {
"type": "string",
"enum": [
"AUD",
"NZD",
"USD",
"CAD",
"GBP"
],
"title": "MoneyCurrency"
},
"RecurringPaymentRequestEnrichments": {
"type": "object",
"properties": {
"initiation": {
"$ref": "#/$defs/RecurringPaymentRequestEnrichmentsInitiation",
"description": "Describes who initiated the transaction"
}
},
"title": "RecurringPaymentRequestEnrichments"
},
"RecurringPaymentRequestEnrichmentsInitiation": {
"type": "object",
"properties": {
"actor": {
"$ref": "#/$defs/RecurringPaymentRequestEnrichmentsInitiationActor",
"description": "The actor initiating the transaction. Use MERCHANT when the customer is not present."
}
},
"description": "Describes who initiated the transaction",
"title": "RecurringPaymentRequestEnrichmentsInitiation"
},
"RecurringPaymentRequestEnrichmentsInitiationActor": {
"type": "string",
"enum": [
"CUSTOMER",
"MERCHANT"
],
"description": "The actor initiating the transaction. Use MERCHANT when the customer is not present.",
"title": "RecurringPaymentRequestEnrichmentsInitiationActor"
},
"RecurringPaymentRequestMerchant": {
"type": "object",
"properties": {
"name": {
"type": "string",
"description": "The merchant name to display"
}
},
"title": "RecurringPaymentRequestMerchant"
},
"RecurringPaymentRequestPaymentMethod": {
"type": "object",
"properties": {
"token": {
"type": "string",
"description": "The billing agreement token"
},
"type": {
"$ref": "#/$defs/RecurringPaymentRequestPaymentMethodType",
"description": "The payment method type"
}
},
"required": [
"token",
"type"
],
"title": "RecurringPaymentRequestPaymentMethod"
},
"RecurringPaymentRequestPaymentMethodType": {
"type": "string",
"enum": [
"BILLING_AGREEMENT"
],
"description": "The payment method type",
"title": "RecurringPaymentRequestPaymentMethodType"
},
"Shipping-Courier": {
"type": "object",
"properties": {
"shippedAt": {
"type": "string",
"format": "date-time"
},
"name": {
"type": "string"
},
"tracking": {
"type": "string"
},
"priority": {
"$ref": "#/$defs/ShippingCourierPriority"
}
},
"description": "Essential information for tracking a shipment. The `shippedAt` key represents the date and time when the item was shipped. This value follows the [ISO 8601 standard format](https://www.iso.org/iso-8601-date-and-time-format.html) for date and time representations.\n\nThe `name` field indicates the courier service employed to handle the shipment (e.g. FEDEX, UPS). For orders that are picked up in-store (also known as Buy-Online-Pickup-Instore), please use \"INSTORE_PICKUP\" as the `name` field value.\n\nThe `tracking` key represents a unique tracking number provided by the courier service to monitor the shipment's progress. It's a valuable tool for customers and businesses to track and trace their packages.\n\nThe `priority` field tracks the shipping speed or service level associated with the delivery. ",
"title": "Shipping-Courier"
},
"ShippingCourierPriority": {
"type": "string",
"enum": [
"STANDARD",
"EXPRESS"
],
"title": "ShippingCourierPriority"
}
}
}
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.
Call it yourself
curl for this page
This JSON Schema
curl "https://apis.io/api/v1/json-schemas/cash-app-recurring-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.