Cash App Pay Customer Request API

REST API used to get permission from customers to perform actions on their accounts (such as collecting a payment), producing the grants consumed by the Network API. Wrapped by the Pay Kit JavaScript SDK.

OpenAPI Specification

cash-app-customer-request-api-openapi.json Raw ↑
{"openapi":"3.1.0","info":{"title":"Customer Request API","version":"1.0.0"},"paths":{"/requests":{"post":{"operationId":"create-request","summary":"Create request","description":"Creates a request to perform an action on a customer's account. All available actions can be found in the `action` schema.","tags":["requests"],"parameters":[{"name":"Accept","in":"header","required":true,"schema":{"type":"string"}},{"name":"User-Agent","in":"header","required":true,"schema":{"type":"string"}}],"responses":{"201":{"description":"Created","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Requests_create-request_Response_201"}}}}},"requestBody":{"description":"","content":{"application/json":{"schema":{"type":"object","properties":{"idempotency_key":{"$ref":"#/components/schemas/IdempotencyKey"},"request":{"$ref":"#/components/schemas/RequestsPostRequestBodyContentApplicationJsonSchemaRequest","description":"Details about the request to create."}},"required":["idempotency_key","request"]}}}}}},"/requests/{request_id}":{"get":{"operationId":"retrieve-request","summary":"Retrieve request","description":"Retrieves a customer request by its ID.","tags":["requests"],"parameters":[{"name":"request_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"Accept","in":"header","required":true,"schema":{"type":"string"}},{"name":"User-Agent","in":"header","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Requests_retrieve-request_Response_200"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}}},"patch":{"operationId":"update-request","summary":"Update request","description":"Updates a customer request. The request must have its `status` in a `PENDING` state to successfully update.\n\nTo clear a field, set it to `null`. Fields that are not provided in the request will not be changed.\nIf updating an array field, the entire contents of the array must be passed.","tags":["requests"],"parameters":[{"name":"request_id","in":"path","required":true,"schema":{"type":"string"}},{"name":"Accept","in":"header","required":true,"schema":{"type":"string"}},{"name":"User-Agent","in":"header","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"OK","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Requests_update-request_Response_200"}}}},"400":{"description":"Bad Request","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"404":{"description":"Not Found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}},"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"request":{"$ref":"#/components/schemas/RequestsRequestIdPatchRequestBodyContentApplicationJsonSchemaRequest","description":"Details about the request to update"}},"required":["request"]}}}}}}},"servers":[{"url":"https://api.cash.app/customer-request/v1","description":"Production"},{"url":"https://sandbox.api.cash.app/customer-request/v1","description":"Sandbox"}],"webhooks":{"customer-request-state-updated":{"post":{"operationId":"customer-request-state-updated","summary":"Event: customer_request.state.updated","description":"**When is this event triggered?**\n\nThis event is created whenever a customer request's state is updated. This is typically caused by a customer approving or declining the request.","parameters":[{"name":"Accept","in":"header","required":true,"schema":{"type":"string"}},{"name":"User-Agent","in":"header","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Webhook received successfully"}},"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"type":{"type":"string","description":"The type of event that occurred. `customer_request.state.updated` for this event."},"event_id":{"type":"string","description":"A unique identifier provided by Cash App for the event."},"created_at":{"type":"string","format":"date-time","description":"When this event occured in [RFC 3339](https://datatracker.ietf.org/doc/html/rfc3339) format (UTC).\n\nThe time that the event is delivered may be significantly later than this timestamp due to webhooks being retried for up to 72 hours."},"data":{"$ref":"#/components/schemas/WebhooksCustomerRequestStateUpdatedPayloadContentApplicationJsonSchemaData","description":"Data about the customer request that was updated."}},"required":["type","event_id","created_at","data"]}}}}}}},"components":{"schemas":{"IdempotencyKey":{"type":"string","description":"A unique identifier which can be used by Cash App to de-duplicate retries of this request, making it idempotent. Learn more about [idempotency](../docs/api/technical-documentation/api-fundamentals/idempotency) in the API.","title":"IdempotencyKey"},"Currency":{"type":"string","enum":["USD"],"description":"Indicates the country associated with an entity. Values are from the [ISO-4217 Alpha-3](https://www.iso.org/iso-4217-currency-codes.html) specification.\n\nCurrent values:\n\n- `USD`: United States Dollar","title":"Currency"},"OneTimePaymentActionType":{"type":"string","enum":["ONE_TIME_PAYMENT"],"description":"The type of the action (`ONE_TIME_PAYMENT`).","title":"OneTimePaymentActionType"},"OneTimePaymentAction":{"type":"object","properties":{"amount":{"type":"integer","description":"Amount to charge the customer, in the lowest unit of the associated currency.\n\nMin value: `1`"},"currency":{"$ref":"#/components/schemas/Currency"},"scope_id":{"type":"string","description":"ID of the client, brand, or merchant that will charge the customer.\n\nIf a client ID is passed, the grant from this action can be used to create a payment for any merchant owned by the client.\n\nIf a brand ID is passed, the grant from this action can be used to create a payment for any merchant that has a matching brand ID.\n\nIf a merchant ID is passed, the grant from this action can be used to create a payment for the merchant with a matching ID.\n\nMin length: `1`\nMax length: `128`"},"type":{"$ref":"#/components/schemas/OneTimePaymentActionType","description":"The type of the action (`ONE_TIME_PAYMENT`)."}},"required":["scope_id","type"],"description":"Describes an intent for a client to charge a customer a given amount.\n\nNote the following restrictions when using this action:\n\n- If no amount is provided to the action, the payment charged may be **any** amount.\n- If `amount` is provided, `currency` must be provided too (and vice versa).","title":"OneTimePaymentAction"},"OnFilePaymentActionType":{"type":"string","enum":["ON_FILE_PAYMENT"],"default":"ON_FILE_PAYMENT","description":"The type of the action (`ON_FILE_PAYMENT`).","title":"OnFilePaymentActionType"},"OnFilePaymentAction":{"type":"object","properties":{"scope_id":{"type":"string","description":"ID of the client or brand that will charge customers.\n\nIf a client ID is passed, the grant from this action can be used to create a payment for any merchant owned by the client.\n\nIf a brand ID is passed, the grant from this action can be used to create a payment for any merchant that has a matching brand ID.\n\nMerchant IDs may *not* be passed.\n\nMin length: `1`\nMax length: `128`"},"type":{"$ref":"#/components/schemas/OnFilePaymentActionType","description":"The type of the action (`ON_FILE_PAYMENT`)."},"account_reference_id":{"type":"string","description":"Identifier of the account or customer associated to the on file action."}},"required":["scope_id","type"],"description":"Describes an intent for a client to store a customer's account, allowing a client to create payments or issue refunds for it on a recurring basis.","title":"OnFilePaymentAction"},"OnFileDepositActionType":{"type":"string","enum":["ON_FILE_DEPOSIT"],"description":"The type of the action (`ON_FILE_DEPOSIT`).","title":"OnFileDepositActionType"},"OnFileDepositAction":{"type":"object","properties":{"type":{"$ref":"#/components/schemas/OnFileDepositActionType","description":"The type of the action (`ON_FILE_DEPOSIT`)."},"scope_id":{"type":"string","description":"ID of the client or brand that indicates the set of merchants that will deposit to customers.\n\nIf a client ID is passed, the grant from this action can be used to create a deposit for any merchant owned by the client.\n\nIf a brand ID is passed, the grant from this action can be used to create a deposit for any merchant that has a matching brand ID.\nMin length: `1`\nMax length: `128`"},"account_reference_id":{"type":"string","description":"Identifier of the account or customer associated to the on file action."}},"required":["type","scope_id","account_reference_id"],"description":"Describes an intent for a client to deposit funds into the Cash App account balances in perpetuity until the Cash App account revokes the grant.","title":"OnFileDepositAction"},"OnFilePayoutActionType":{"type":"string","enum":["ON_FILE_PAYOUT"],"description":"The type of the action (`ON_FILE_PAYOUT`).","title":"OnFilePayoutActionType"},"OnFilePayoutAction":{"type":"object","properties":{"type":{"$ref":"#/components/schemas/OnFilePayoutActionType","description":"The type of the action (`ON_FILE_PAYOUT`)."},"scope_id":{"type":"string","description":"ID of the client or brand that indicates the set of merchants that will payout to customers.\n\nIf a client ID is passed, the grant from this action can be used to create a payout for any merchant owned by the client.\n\nIf a brand ID is passed, the grant from this action can be used to create a payout for any merchant that has a matching brand ID.\n\nMerchant IDs may *not* be passed.\n\nMin length: `1`\nMax length: `128`"},"account_reference_id":{"type":"string","description":"Identifier of the account or customer associated to the on file action."}},"required":["type","scope_id"],"description":"Describes an intent for a client to payout funds from the Cash App account balances in perpetuity until the Cash App account revokes the grant.","title":"OnFilePayoutAction"},"LinkAccountActionType":{"type":"string","enum":["LINK_ACCOUNT"],"description":"The type of the action (`LINK_ACCOUNT`).","title":"LinkAccountActionType"},"LinkAccountAction":{"type":"object","properties":{"type":{"$ref":"#/components/schemas/LinkAccountActionType","description":"The type of the action (`LINK_ACCOUNT`)."}},"required":["type"],"description":"Describes an intent for a client to manage a customer's merchant profiles in Cash App.","title":"LinkAccountAction"},"CheckingBalanceActionType":{"type":"string","enum":["CHECKING_BALANCE"],"description":"The type of the action (`CHECKING_BALANCE`).","title":"CheckingBalanceActionType"},"CheckingBalanceAction":{"type":"object","properties":{"type":{"$ref":"#/components/schemas/CheckingBalanceActionType","description":"The type of the action (`CHECKING_BALANCE`)."},"scope_id":{"type":"string","description":"ID of the client or brand requesting access to read the customer's balances.\n\nIf a client ID is passed, the grant from this action can be used to read balances on behalf of the client.\n\nIf a brand ID is passed, the grant from this action can be used to read balances on behalf of any merchant that has a matching brand ID.\n\nMerchant IDs may *not* be passed.\n\nMin length: `1`\nMax length: `128`"}},"required":["type","scope_id"],"description":"Describes an intent for a client to read a customer's Cash App checking balance until the customer revokes the grant.\n\n**Beta:** This action is in beta.","title":"CheckingBalanceAction"},"Action":{"oneOf":[{"$ref":"#/components/schemas/OneTimePaymentAction"},{"$ref":"#/components/schemas/OnFilePaymentAction"},{"$ref":"#/components/schemas/OnFileDepositAction"},{"$ref":"#/components/schemas/OnFilePayoutAction"},{"$ref":"#/components/schemas/LinkAccountAction"},{"$ref":"#/components/schemas/CheckingBalanceAction"}],"description":"Represents what the client intends to do to a customer if given authorization.","title":"Action"},"RequestsPostRequestBodyContentApplicationJsonSchemaRequestChannel":{"type":"string","enum":["IN_PERSON","ONLINE","IN_APP"],"description":"How the customer is expected to interact with the request.\n\n- `IN_PERSON`: The customer presents or scans a QR code at a physical location to approve the request.\n- `ONLINE`: The customer scans a QR code or is redirected to Cash App from a browser context.\n- `IN_APP`: The customer scans a QR code or is redirected to Cash App from a native mobile application context.","title":"RequestsPostRequestBodyContentApplicationJsonSchemaRequestChannel"},"Metadata":{"type":"object","additionalProperties":{"type":"string"},"description":"Freeform key-value pairs of arbitrary data associated with this resource.\n\nKeys and values must be passed as strings and not contain any personally identifiable information (PII).\n\nMin keys: `0`\nMax keys: `50`\n\n> Note: Nested keys are not supported.","title":"Metadata"},"CustomerMetadata":{"type":"object","properties":{"reference_id":{"type":"string","description":"The `reference_id` of the customer approving this request. When a customer approves this request, that customer will be associated with this `reference_id`."}},"description":"Metadata to associate with the customer that approves this request.","title":"CustomerMetadata"},"RequestsPostRequestBodyContentApplicationJsonSchemaRequest":{"type":"object","properties":{"actions":{"type":"array","items":{"$ref":"#/components/schemas/Action"},"description":"A list of the different actions a client intends to take on the customer if the request is approved.\n\nNo duplicate action types allowed.\n\nMin number of items: `1`\nMax number of items: `5`"},"channel":{"$ref":"#/components/schemas/RequestsPostRequestBodyContentApplicationJsonSchemaRequestChannel","description":"How the customer is expected to interact with the request.\n\n- `IN_PERSON`: The customer presents or scans a QR code at a physical location to approve the request.\n- `ONLINE`: The customer scans a QR code or is redirected to Cash App from a browser context.\n- `IN_APP`: The customer scans a QR code or is redirected to Cash App from a native mobile application context."},"redirect_url":{"type":"string","format":"uri","description":"If this request is responded to via mobile redirect, this field specifies the URL that Cash App will open for a customer in the mobile device's default browser after the request is approved or declined."},"reference_id":{"type":"string","description":"A user-defined identifier for this request, typically used to associate the resource with a record in an external system.\n\nMin length: `1`\nMax length: `1024`"},"metadata":{"$ref":"#/components/schemas/Metadata"},"customer_metadata":{"$ref":"#/components/schemas/CustomerMetadata"}},"required":["actions","channel"],"description":"Details about the request to create.","title":"RequestsPostRequestBodyContentApplicationJsonSchemaRequest"},"RequestStatus":{"type":"string","enum":["APPROVED","DECLINED","PENDING","PROCESSING"],"default":"PENDING","description":"Indicates if the state is approved, declined, or pending. Approved requests have grants, while pending and declined grants do not.\n\nCurrent values:\n\n- `PENDING`: The request has been created, but not responded to.\n- `PROCESSING`: The Cash App customer is actively responding to the request on their mobile device, and will require time to fill out information before the request is approved / declined.\n- `APPROVED`: The request was approved by the customer and grants have been created for the provided actions.\n- `DECLINED`: The request was denied by the customer. No grants were created.","title":"RequestStatus"},"RequestAuthFlowTriggers":{"type":"object","properties":{"qr_code_image_url":{"type":"string","format":"uri","description":"Link to a QR code customers can scan with Cash App to authorize the given action, encoded as a PNG file.\n\nMin length: `8`\nMax length: `1024`"},"qr_code_svg_url":{"type":"string","format":"uri","description":"Link to a QR code customers can scan with Cash App to authorize the given action, encoded as an SVG file.\n\nMin length: `8`\nMax length: `1024`"},"mobile_url":{"type":"string","format":"uri","description":"If on an Android or iOS device, the URL to redirect customers to in order to authorize the given action.\n\nMin length: `8`\nMax length: `1024`"},"refreshes_at":{"type":"string","format":"date-time","description":"When the QR code image URL will be rotated. Generally, it will rotate every ~20 seconds and become invalid after 30 seconds."},"desktop_url":{"type":"string","format":"uri","description":"If on a desktop browser, the URL to redirect customers to in order to authorize the given action.\n\nMin length: `8`\nMax length: `1024`"}},"required":["qr_code_image_url","qr_code_svg_url","mobile_url","refreshes_at"],"description":"While the request is `PENDING`, contains different methods that can be used to start\nthe authorization flow in the Cash App mobile application. Its contents refresh each time\nthe `refreshes_at` timestamp passes. When the\ndata refreshes, you should update any buttons\nor QR codes referring to it immediately.\n\nAfter a request has been scanned (and is no\nlonger in the `PENDING` status), this\nfield will no longer be returned.","title":"RequestAuthFlowTriggers"},"RequestOriginType":{"type":"string","enum":["DIRECT","REQUEST_INITIATOR"],"description":"The method used to create the customer request.\n\n- `DIRECT` - the client or SDKs created this customer request by calling the \"CreateCustomerRequest\" endpoint\n- `REQUEST_INITIATOR` - a customer interacted with a request initiator and caused Cash App to create a customer request.","title":"RequestOriginType"},"RequestOrigin":{"type":"object","properties":{"type":{"$ref":"#/components/schemas/RequestOriginType","description":"The method used to create the customer request.\n\n- `DIRECT` - the client or SDKs created this customer request by calling the \"CreateCustomerRequest\" endpoint\n- `REQUEST_INITIATOR` - a customer interacted with a request initiator and caused Cash App to create a customer request."},"id":{"type":"string","description":"If present, is the ID of the initiator used to create this request.\n\nMin length: `1`\nMax length: `128`"}},"required":["type"],"description":"Metadata describing how the customer request was created.","title":"RequestOrigin"},"Channel":{"type":"string","enum":["IN_PERSON","ONLINE","IN_APP"],"description":"How the customer is expected to interact with the request.\n\n- `IN_PERSON`: The customer presents or scans a QR code at a physical location to approve the request.\n- `ONLINE`: The customer scans a QR code or is redirected to Cash App from a browser context.\n- `IN_APP`: The customer scans a QR code or is redirected to Cash App from a native mobile application context.","title":"Channel"},"GrantStatus":{"type":"string","enum":["ACTIVE","CONSUMED","REVOKED","EXPIRED"],"description":"Describes whether or not this grant can be used to perform the action associated with it.\n\nIf `ACTIVE`, it can be used to perform the action.\n\nIf `EXPIRED`, it may no longer be used to perform the action due to the current time being past the \"expires_at\" time.\n\nIf `CONSUMED`, it was already redeemed to perform the action and cannot be used again.\n\nIf `REVOKED`, the customer or merchant explicitly unauthorized the grant, preventing it from being used to perform the action.","title":"GrantStatus"},"GrantType":{"type":"string","enum":["ONE_TIME","EXTENDED"],"description":"Describes whether this grant can be only be used once (`ONE_TIME`) or repeatedly (`EXTENDED`).","title":"GrantType"},"Grant":{"type":"object","properties":{"id":{"type":"string","description":"Unique identifier for this grant issued by Cash App.\n\nMin length: `1`\nMax length: `256`"},"customer_id":{"type":"string","description":"ID of the customer that approved this grant.\n\nMin length: `1`\nMax length: `128`"},"request_id":{"type":"string","description":"A unique identifier issued by Cash App for the customer request that resulted in the creation of this grant.\n\nMin length: `1`\nMax length: `128`"},"action":{"$ref":"#/components/schemas/Action"},"status":{"$ref":"#/components/schemas/GrantStatus","description":"Describes whether or not this grant can be used to perform the action associated with it.\n\nIf `ACTIVE`, it can be used to perform the action.\n\nIf `EXPIRED`, it may no longer be used to perform the action due to the current time being past the \"expires_at\" time.\n\nIf `CONSUMED`, it was already redeemed to perform the action and cannot be used again.\n\nIf `REVOKED`, the customer or merchant explicitly unauthorized the grant, preventing it from being used to perform the action."},"type":{"$ref":"#/components/schemas/GrantType","description":"Describes whether this grant can be only be used once (`ONE_TIME`) or repeatedly (`EXTENDED`)."},"channel":{"$ref":"#/components/schemas/Channel"},"created_at":{"type":"string","format":"date-time","description":"When this grant was created, in [RFC 3339](https://datatracker.ietf.org/doc/html/rfc3339) format (UTC)."},"updated_at":{"type":"string","format":"date-time","description":"When this grant was last updated, in [RFC 3339](https://datatracker.ietf.org/doc/html/rfc3339) format (UTC)."},"expires_at":{"type":"string","format":"date-time","description":"If present, indicates when the grant's status will become `EXPIRED`, preventing a client from using it to create payments or refunds.\n\nThe timestamp is in the [RFC 3339](https://datatracker.ietf.org/doc/html/rfc3339) format (UTC)."}},"required":["id","customer_id","request_id","action","status","type","channel","created_at","updated_at"],"description":"Describes a grant that can be used to perform actions specified in a customer request using the Network API.","title":"Grant"},"RequestRequesterProfile":{"type":"object","properties":{"name":{"type":"string","description":"Name of the brand to be shown in Cash App next to payments.\n\nMin length: `1`\nMax length: `1024`"},"logo_url":{"type":"string","format":"uri","description":"URL to the image of the entity (brand or client) that is requesting permission to perform the actions on the customer request.\n\nFormats:\n- `.jpg`\n- `.jpeg`\n- `.png`\n\nMin length: `8`\nMax length: `8000`"}},"required":["name","logo_url"],"description":"Details about the brand or client that are requesting permission to perform the actions on the customer request.","title":"RequestRequesterProfile"},"RequestCustomerProfile":{"type":"object","properties":{"id":{"type":"string","description":"Unique identifier for this customer issued by Cash App.\n\nMin length: `1`\nMax length: `128`"},"cashtag":{"type":"string","description":"Public identifier for the customer on Cash App. [Learn more](https://cash.app/help/us/en-us/3123-cashtags).\n\nMin length: `1`\nMax length: `1024`"}},"required":["id","cashtag"],"description":"If the customer request was approved, contains the identity of the Cash App customer that approved it.","title":"RequestCustomerProfile"},"Request":{"type":"object","properties":{"id":{"type":"string","description":"A unique identifier for the request issued by Cash App.\n\nMin length: `1`\nMax length: `128`"},"status":{"$ref":"#/components/schemas/RequestStatus","description":"Indicates if the state is approved, declined, or pending. Approved requests have grants, while pending and declined grants do not.\n\nCurrent values:\n\n- `PENDING`: The request has been created, but not responded to.\n- `PROCESSING`: The Cash App customer is actively responding to the request on their mobile device, and will require time to fill out information before the request is approved / declined.\n- `APPROVED`: The request was approved by the customer and grants have been created for the provided actions.\n- `DECLINED`: The request was denied by the customer. No grants were created."},"actions":{"type":"array","items":{"$ref":"#/components/schemas/Action"},"description":"Represents what the client intends to do to a customer if given authorization.\n\nNo duplicate action types allowed.\n\nMin number of items: `1`\nMax number of items: `5`"},"auth_flow_triggers":{"$ref":"#/components/schemas/RequestAuthFlowTriggers","description":"While the request is `PENDING`, contains different methods that can be used to start\nthe authorization flow in the Cash App mobile application. Its contents refresh each time\nthe `refreshes_at` timestamp passes. When the\ndata refreshes, you should update any buttons\nor QR codes referring to it immediately.\n\nAfter a request has been scanned (and is no\nlonger in the `PENDING` status), this\nfield will no longer be returned."},"redirect_url":{"type":"string","format":"uri","description":"If this request is responded to via mobile redirect, this field specifies the URL that Cash App will open for a customer in the mobile device's default browser after the request is approved or declined."},"created_at":{"type":"string","format":"date-time","description":"When this customer request was created, in [RFC 3339](https://datatracker.ietf.org/doc/html/rfc3339) format (UTC)."},"updated_at":{"type":"string","format":"date-time","description":"When the customer request was last updated, in [RFC 3339](https://datatracker.ietf.org/doc/html/rfc3339) format (UTC)."},"expires_at":{"type":"string","format":"date-time","description":"When this customer request will be automatically declined by Cash App, in [RFC 3339](https://datatracker.ietf.org/doc/html/rfc3339) format (UTC)."},"origin":{"$ref":"#/components/schemas/RequestOrigin","description":"Metadata describing how the customer request was created."},"channel":{"$ref":"#/components/schemas/Channel"},"grants":{"type":"array","items":{"$ref":"#/components/schemas/Grant"},"description":"If present, contains grants that can be used to perform actions specified in the request using the Network API.\n\nEach grant corresponds directly to an action on the request.\n\nMin number of items: `1`\nMax number of items: `5`"},"reference_id":{"type":"string","description":"A user-defined identifier for this request, typically used to associate the resource with a record in an external system.\n\nMin length: `1`\nMax length: `1024`"},"requester_profile":{"$ref":"#/components/schemas/RequestRequesterProfile","description":"Details about the brand or client that are requesting permission to perform the actions on the customer request."},"customer_profile":{"$ref":"#/components/schemas/RequestCustomerProfile","description":"If the customer request was approved, contains the identity of the Cash App customer that approved it."},"metadata":{"$ref":"#/components/schemas/Metadata"},"customer_metadata":{"$ref":"#/components/schemas/CustomerMetadata"}},"required":["id","status","actions","redirect_url","created_at","updated_at","expires_at","origin","channel"],"description":"Describes a request from a client to perform a given action on a customer's account.","title":"Request"},"Requests_create-request_Response_201":{"type":"object","properties":{"request":{"$ref":"#/components/schemas/Request"}},"required":["request"],"title":"Requests_create-request_Response_201"},"Requests_retrieve-request_Response_200":{"type":"object","properties":{"request":{"$ref":"#/components/schemas/Request"}},"required":["request"],"title":"Requests_retrieve-request_Response_200"},"ErrorCategory":{"type":"string","enum":["API_ERROR","AUTHENTICATION_ERROR","BRAND_ERROR","DISPUTE_ERROR","MERCHANT_ERROR","INVALID_REQUEST_ERROR","PAYMENT_PROCESSING_ERROR","RATE_LIMIT_ERROR","WEBHOOK_ERROR","API_KEY_ERROR","GRANT_ERROR"],"description":"The high-level reason the error occurred","title":"ErrorCategory"},"Error":{"type":"object","properties":{"category":{"$ref":"#/components/schemas/ErrorCategory","description":"The high-level reason the error occurred"},"code":{"type":"string","description":"A unique identifier for the specific type of error that occurred. See the Error Code Reference for more information.\n\nMin length: `1`"},"detail":{"type":"string","description":"Human-readable description of why the error occurred and how to resolve it.\n\nMin length: `1`"},"field":{"type":"string","description":"The field in the request that caused the error, using array and object dot notation.\n\nMin length: `1`"}},"required":["category","code"],"description":"Represents an error encountered during a request to the API.","title":"Error"},"ErrorResponse":{"type":"object","properties":{"errors":{"type":"array","items":{"$ref":"#/components/schemas/Error"},"description":"A list of errors that occurred while processing the request.\n\nMin number of items: `1`"}},"required":["errors"],"title":"ErrorResponse"},"RequestsRequestIdPatchRequestBodyContentApplicationJsonSchemaRequest":{"type":"object","properties":{"actions":{"type":"array","items":{"$ref":"#/components/schemas/Action"},"description":"A list of the different actions a client intends to take on the customer if the request is approved.\n\nNo duplicate action types allowed.\n\nMin number of items: `1`\nMax number of items: `5`"},"reference_id":{"type":["string","null"],"description":"A user-defined identifier for this request, typically used to associate the resource with a record in an external system.\n\nMin length: `1`\nMax length: `1024`"},"metadata":{"$ref":"#/components/schemas/Metadata"}},"description":"Details about the request to update","title":"RequestsRequestIdPatchRequestBodyContentApplicationJsonSchemaRequest"},"Requests_update-request_Response_200":{"type":"object","properties":{"request":{"$ref":"#/components/schemas/Request"}},"required":["request"],"title":"Requests_update-request_Response_200"},"WebhooksCustomerRequestStateUpdatedPayloadContentApplicationJsonSchemaDataObject":{"type":"object","properties":{"request":{"$ref":"#/components/schemas/Request"}},"required":["request"],"description":"A snapshot of the customer request data immediately after the customer request's state was updated.","title":"WebhooksCustomerRequestStateUpdatedPayloadContentApplicationJsonSchemaDataObject"},"WebhooksCustomerRequestStateUpdatedPayloadContentApplicationJsonSchemaData":{"type":"object","properties":{"id":{"type":"string","description":"A unique identifier provided by Cash App for the customer request."},"object":{"$ref":"#/components/schemas/WebhooksCustomerRequestStateUpdatedPayloadContentApplicationJsonSchemaDataObject","description":"A snapshot of the customer request data immediately after the customer request's state was updated."},"type":{"type":"string","description":"The resource type contained in the `object` field. For this event, it is `customer_request`."}},"required":["id","object","type"],"description":"Data about the customer request that was updated.","title":"WebhooksCustomerRequestStateUpdatedPayloadContentApplicationJsonSchemaData"}}}}